/*
Theme Name: Kayette et Kanou
Theme URI: https://kanetteetkayou.local
Description: Block theme for the Kanette & Kayou WooCommerce store. Colors and typography from the Figma design system.
Author: Kayette et Kanou
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.4
Version: 2.2.50
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kayetteetkanou
Tags: full-site-editing, block-themes, e-commerce, woocommerce, custom-colors, custom-logo, editor-style, wide-blocks
*/

/* Theme styles primarily live in theme.json. Chrome helpers below. */

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* Buttons — gentle fade for hover / focus (colors from theme.json).
   Default core Button text is regular (400); do not set weight on
   .wp-element-button or custom CTAs (hero, ATC) inherit it too. */
.wp-element-button,
.wp-block-button__link {
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.wp-block-button .wp-block-button__link {
	font-weight: 400;
}

/* Woo components-button sets `transition: box-shadow .1s` at higher
   specificity, which drops the theme color fade. Restore it. */
.wc-block-components-button.wp-element-button:not(.is-link):not(.wc-block-components-drawer__close) {
	font-weight: 400;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		box-shadow var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.wc-block-components-button.wp-element-button:not(.is-link) .wc-block-components-button__text {
	font-weight: inherit;
}

/* -------------------------------------------------------------------------
   Header — Figma HOMEPAGE #36:7117 (content 1066 × 108)
   ------------------------------------------------------------------------- */

/* WP wraps the header part in <header class="wp-block-template-part">;
   sticky must live on that wrapper — .kk-header alone has no room to move
   inside it. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.kk-header {
	position: relative;
	min-height: var(--kk-header-height, 108px);
	display: flex;
	align-items: center;
	box-sizing: border-box;
}

/* Figma hairline: header/wide width (1066), not full bleed */
.kk-header::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(
		var(--wp--style--global--wide-size, 1066px),
		calc(100% - 2 * var(--wp--preset--spacing--50, 1.5rem))
	);
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	pointer-events: none;
}

.kk-header__inner {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	width: 100%;
	min-height: var(--kk-header-height, 108px);
	gap: 1rem;
}

.kk-header__nav {
	justify-self: start;
	min-width: 0;
}

.kk-header__brand {
	justify-self: center;
	grid-column: 2;
}

.kk-header__logo .custom-logo-link,
.kk-header__logo img,
.kk-header__logo .custom-logo {
	display: block;
	max-height: 71px;
	width: auto;
	height: auto;
}

.kk-header__nav .wp-block-navigation {
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.3;
}

.kk-header__nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
	transition: color 0.3s ease;
}

.kk-header__nav .wp-block-navigation-item__content:hover,
.kk-header__nav .wp-block-navigation-item__content:focus {
	text-decoration: none;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767)); /* Figma muted gray */
}

.kk-header-tools {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	justify-self: end;
	gap: 2.4375rem; /* 39px edge gap between icons in Figma */
	min-width: 0;
}

.kk-header-tools a,
.kk-header-tools button,
.kk-header-tools .wc-block-mini-cart__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background: transparent;
	border: 0;
	padding: 0;
	box-shadow: none;
	transition: color 0.3s ease;
}

.kk-header-tools a:hover,
.kk-header-tools a:focus,
.kk-header-tools button:hover,
.kk-header-tools button:focus,
.kk-header-tools .wc-block-mini-cart__button:hover,
.kk-header-tools .wc-block-mini-cart__button:focus {
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767)); /* same as .kk-header__nav */
}

/* Uniform 24px-tall hit rows; width follows each icon's Figma proportions */
.kk-header-tools .wc-block-mini-cart__button,
.kk-header-tools .wc-block-customer-account__link,
.kk-header-tools .wp-block-search__button {
	height: 24px;
	width: auto;
	min-width: 0;
	padding: 0;
}

.kk-header-tools .wc-block-mini-cart,
.kk-header-tools .wp-block-woocommerce-customer-account,
.kk-header-tools .kk-header-search {
	display: flex;
	align-items: center;
	margin: 0;
}

/* Figma line icons (extracted from header cluster #36:7114) replace the
   default Woo/core glyphs via CSS masks — blocks stay functional. */
.kk-header-tools .wc-block-mini-cart__icon,
.kk-header-tools .wc-block-customer-account__account-icon,
.kk-header-search .wp-block-search__button svg {
	display: none;
}

.kk-header-tools .wc-block-mini-cart__button::before,
.kk-header-tools .wp-block-woocommerce-customer-account a::before,
.kk-header-search .wp-block-search__button::before {
	content: "";
	display: block;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* Figma sizes: bag 18×23.4 · profile 22×22 · search 22.4×22 */
.kk-header-tools .wc-block-mini-cart__button::before {
	width: 18px;
	height: 23.5px;
	-webkit-mask-image: url("assets/images/icon-bag.svg");
	mask-image: url("assets/images/icon-bag.svg");
}

.kk-header-tools .wp-block-woocommerce-customer-account a::before {
	width: 22px;
	height: 22px;
	-webkit-mask-image: url("assets/images/icon-account.svg");
	mask-image: url("assets/images/icon-account.svg");
}

.kk-header-search .wp-block-search__button::before {
	width: 22.5px;
	height: 22px;
	-webkit-mask-image: url("assets/images/icon-search.svg");
	mask-image: url("assets/images/icon-search.svg");
}

/* Cart count pinned to the bag's top-right corner.
   Woo sets gap:8px on the button; the empty quantity-badge span still
   participates in flex, which made the bag sit left of center (18+8=26). */
.kk-header-tools .wc-block-mini-cart__button {
	position: relative;
	gap: 0;
}

.kk-header-tools .wc-block-mini-cart__quantity-badge {
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	pointer-events: none;
}

.kk-header-tools .wc-block-mini-cart__badge {
	position: absolute;
	top: 0;
	right: -9px;
	font-size: 0.625rem;
	line-height: 1;
	aspect-ratio: 1/1;
}

.kk-header-search .wp-block-search__button {
	background: transparent !important;
	color: var(--wp--preset--color--ink, #1c1c1c) !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0;
	transition: color 0.3s ease;
}

.kk-header-search .wp-block-search__button:hover,
.kk-header-search .wp-block-search__button:focus {
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767)) !important;
}

/* Pin the search form to the shared 24px icon row; the field/input must
   never participate in the tools flex (or icons jump on open/close). */
.kk-header-tools .kk-header-search {
	position: static;
	width: auto;
	height: 24px;
	overflow: visible !important;
}

.kk-header-search .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: 24px;
	width: auto !important;
	min-width: 0 !important;
	padding: 0;
	border: 0;
	overflow: visible;
	transition: none !important;
}

.kk-header-search.wp-block-search__button-only .wp-block-search__input,
.kk-header-search.wp-block-search__button-only .wp-block-search__inside-wrapper {
	transition: none !important;
}

/*
 * Field wrapper is always position:absolute (out of tools flow).
 * Open/close only toggles visibility — never display/width in the icon row.
 */
.kk-header-search__field {
	--kk-header-search-inline: max(
		var(--wp--preset--spacing--50, 1.5rem),
		calc((100% - var(--wp--style--global--wide-size, 1066px)) / 2)
	);
	display: flex;
	align-items: center;
	gap: 1rem;
	position: absolute;
	top: 100%;
	left: var(--kk-header-search-inline);
	right: var(--kk-header-search-inline);
	z-index: 102;
	box-sizing: border-box;
	height: var(--kk-header-search-panel-height, 5.5rem);
	margin: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.kk-header-search:not(.wp-block-search__searchfield-hidden) .kk-header-search__field {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	animation: kk-header-search-in 0.22s ease-out;
}

/* White panel + bottom hairline (positioned against .kk-header). */
.kk-header-search::before {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: var(--kk-header-search-panel-height, 5.5rem);
	background-color: var(--wp--preset--color--white, #fff);
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	z-index: 101;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
}

.kk-header-search:not(.wp-block-search__searchfield-hidden)::before {
	opacity: 1;
	visibility: visible;
	animation: kk-header-search-in 0.22s ease-out;
}

/* Magnifying glass inside the field (left of the input). */
.kk-header-search__field::before {
	content: "";
	flex: 0 0 1.5rem;
	width: 1.5rem;
	height: 1.5rem;
	background-color: var(--wp--preset--color--ink, #1c1c1c);
	-webkit-mask-image: url("assets/images/icon-search.svg");
	mask-image: url("assets/images/icon-search.svg");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	pointer-events: none;
}

.kk-header-search .wp-block-search__input {
	position: static;
	box-sizing: border-box;
	flex: 1 1 auto;
	width: 100% !important;
	min-width: 0 !important;
	height: 100%;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--wp--preset--color--ink, #1c1c1c);
	-webkit-appearance: none;
	appearance: none;
}

.kk-header-search .wp-block-search__input::placeholder {
	color: var(--kk-color-placeholder, #9a9a9a);
	opacity: 1;
}

.kk-header-search .wp-block-search__input:focus {
	outline: none;
	box-shadow: none;
}

@keyframes kk-header-search-in {
	from {
		opacity: 0;
		transform: translateY(-0.35rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Drop the header hairline while the panel is open (panel has its own). */
.kk-header:has(.kk-header-search:not(.wp-block-search__searchfield-hidden))::after,
.kk-header:has(.kk-mega:not([hidden]))::after {
	opacity: 0;
}

/* Ensure sticky chrome can paint the overlay panel below itself. */
header.wp-block-template-part,
.kk-header,
.kk-header__inner,
.kk-header-tools {
	overflow: visible;
}

/* Mobile: overlay nav left, brand center, tools right */
@media (max-width: 781px) {
	.kk-header {
		min-height: 72px;
	}

	.kk-header__inner {
		min-height: 72px;
		grid-template-columns: auto 1fr auto;
	}

	.kk-header__brand {
		grid-column: auto;
		justify-self: center;
	}

	.kk-header__logo .custom-logo-link,
	.kk-header__logo img,
	.kk-header__logo .custom-logo {
		max-height: 52px;
		max-width: 140px;
	}

	.kk-header-tools {
		gap: 1rem;
	}

	/*
	 * Cart + account live in the mobile overlay (Figma MOBILE MENU).
	 * Keep the mini-cart block mounted so overlay bag can still open the drawer.
	 */
	.kk-header-tools .wp-block-woocommerce-customer-account {
		display: none;
	}

	.kk-header-tools .wc-block-mini-cart {
		width: 0;
		min-width: 0;
		height: 0;
		margin: 0;
		overflow: visible;
	}

	.kk-header-tools .wc-block-mini-cart__button {
		display: none;
	}

	.kk-header-search,
	.kk-header-search::before,
	.kk-header-search__field {
		--kk-header-search-panel-height: 4.5rem;
	}

	.kk-header-search .wp-block-search__input {
		font-size: 1rem;
	}

	/* Hamburger affordance — two ink bars, Figma weight */
	.kk-primary-nav .wp-block-navigation__responsive-container-open {
		padding: 0;
		color: var(--wp--preset--color--ink, #1c1c1c);
	}

	.kk-primary-nav .wp-block-navigation__responsive-container-open svg {
		width: 24px;
		height: 24px;
	}
}

/* -------------------------------------------------------------------------
   Mobile menu overlay — Figma MOBILE MENU / SOUS-MENU
   ------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		--kk-mobile-menu-inline: 3.25rem;
		position: fixed;
		inset: 0;
		z-index: 100000;
		width: 100%;
		height: 100vh;
		max-height: 100vh;
		padding: 0;
		display: flex;
		flex-direction: column;
		overflow: hidden;
		background: var(--wp--preset--color--cream, #f2f0eb);
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		width: 100%;
		height: 100%;
		max-height: 100vh;
		max-width: none;
		min-height: 0;
		margin: 0;
		padding: 0;
		overflow: hidden;
		background: var(--wp--preset--color--cream, #f2f0eb);
		box-shadow: none;
		border: 0;
	}

	.kk-primary-nav .kk-mobile-menu__brand {
		display: none;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		min-height: 72px;
		padding: 0.75rem 3.5rem 0.5rem;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .kk-mobile-menu__brand {
		display: flex;
	}

	.kk-primary-nav .kk-mobile-menu__brand .custom-logo-link,
	.kk-primary-nav .kk-mobile-menu__brand .custom-logo,
	.kk-primary-nav .kk-mobile-menu__brand img {
		display: block;
		max-height: 52px;
		max-width: 150px;
		width: auto;
		height: auto;
		margin: 0 auto;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: 1.35rem;
		right: 1.15rem;
		z-index: 2;
		padding: 0.25rem;
		color: var(--wp--preset--color--ink, #1c1c1c);
		background: transparent;
		border: 0;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container-close svg {
		width: 22px;
		height: 22px;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		min-height: 0;
		padding: 0.75rem var(--kk-mobile-menu-inline) 2rem;
		overflow: hidden;
	}

	.kk-primary-nav .kk-mobile-menu__back {
		display: none;
		flex-shrink: 0;
		align-items: center;
		justify-content: flex-start;
		width: 2.5rem;
		height: 2rem;
		margin: 0 0 0.35rem;
		padding: 0;
		color: var(--wp--preset--color--ink, #1c1c1c);
		background: transparent;
		border: 0;
		cursor: pointer;
	}

	.kk-primary-nav .kk-mobile-menu__back svg {
		display: block;
		width: 17px;
		height: 15px;
		transform: rotate(180deg);
	}

	.kk-primary-nav .kk-mobile-menu__rule,
	.kk-primary-nav .kk-mobile-menu__tools {
		display: none;
		flex-shrink: 0;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .kk-mobile-menu__rule {
		display: block;
		width: 100%;
		height: 0;
		margin: 1.75rem 0 1.35rem;
		border: 0;
		border-top: 1px solid var(--wp--preset--color--hairline, #dddddd);
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .kk-mobile-menu__tools {
		display: flex;
		align-items: center;
		gap: 1.35rem;
	}

	.kk-primary-nav .kk-mobile-menu__tool {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		padding: 0;
		color: var(--wp--preset--color--ink, #1c1c1c);
		background: transparent;
		border: 0;
		text-decoration: none;
		cursor: pointer;
	}

	.kk-primary-nav .kk-mobile-menu__tool--bag {
		position: relative;
		overflow: visible;
	}

	.kk-primary-nav .kk-mobile-menu__tool svg {
		display: block;
		width: 24px;
		height: 24px;
	}

	/* Same qty pill as the header mini-cart we hide on mobile. */
	.kk-primary-nav .kk-mobile-menu__cart-count {
		position: absolute;
		top: 0;
		right: -9px;
		z-index: 1;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		min-width: 1em;
		padding: 0.15em;
		font-size: 0.625rem;
		line-height: 1;
		font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
		aspect-ratio: 1 / 1;
		border-radius: 1em;
		background: var(--wp--preset--color--ink, #1c1c1c);
		color: var(--wp--preset--color--cream, #f2f0eb);
		white-space: nowrap;
	}

	.kk-primary-nav .kk-mobile-menu__cart-count[hidden],
	.kk-primary-nav .kk-mobile-menu__cart-count:empty {
		display: none;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 1.35rem;
		margin: 0;
		padding: 0.75rem 0 0;
		list-style: none;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		margin: 0;
		width: 100%;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		display: block;
		width: 100%;
		padding: 0;
		color: var(--wp--preset--color--ink, #1c1c1c);
		font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
		font-size: 1.125rem;
		font-weight: 400;
		line-height: 1.4;
		letter-spacing: 0;
		text-align: left;
		text-decoration: none;
		background: transparent;
		border: 0;
		cursor: pointer;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		display: none !important;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open:not(.kk-mobile-menu--submenu) .wp-block-navigation__submenu-container {
		display: none !important;
		visibility: hidden;
		height: 0;
		overflow: hidden;
	}

	/* Submenu: chrome stays put; only the category list scrolls */
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .wp-block-navigation__responsive-container-close,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .kk-mobile-menu__rule,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .kk-mobile-menu__tools {
		display: none;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .wp-block-navigation__responsive-container-content {
		padding: 0 var(--kk-mobile-menu-inline);
		gap: 0;
		align-items: stretch;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .kk-mobile-menu__back {
		display: inline-flex;
		margin: 0 0 2rem;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .wp-block-navigation__container,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .kk-mobile-menu__item--active {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		overflow: hidden;
		width: 100%;
		margin: 0;
		padding: 0;
		gap: 0;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu .wp-block-navigation__container {
		border-top: 1px solid var(--wp--preset--color--hairline, #dddddd);
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.wp-block-navigation__container > .wp-block-navigation-item:not(.kk-mobile-menu__item--active) {
		display: none;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.kk-mobile-menu__item--active > .wp-block-navigation-submenu__toggle,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.kk-mobile-menu__item--active > .wp-block-navigation-item__content,
	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.kk-mobile-menu__item--active > .wp-block-navigation__submenu-icon {
		display: none !important;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.kk-mobile-menu__item--active > .wp-block-navigation__submenu-container {
		display: flex !important;
		visibility: visible;
		position: static;
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
		min-height: 0;
		margin: 0;
		padding: 2.25rem 0 4rem;
		overflow-x: hidden;
		overflow-y: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
		background: transparent;
		border: 0;
		box-shadow: none;
		opacity: 1;
	}

	.kk-primary-nav .wp-block-navigation__responsive-container.is-menu-open.kk-mobile-menu--submenu
		.kk-mobile-menu__item--active > .wp-block-navigation__submenu-container::-webkit-scrollbar {
		display: none;
	}
}

/* Desktop: never show mobile-only chrome; keep Boutique as a flat link */
@media (min-width: 782px) {
	.kk-primary-nav .kk-mobile-menu__brand,
	.kk-primary-nav .kk-mobile-menu__back,
	.kk-primary-nav .kk-mobile-menu__rule,
	.kk-primary-nav .kk-mobile-menu__tools {
		display: none !important;
	}

	.kk-primary-nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon,
	.kk-primary-nav .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle,
	.kk-primary-nav .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
		display: none !important;
	}

	.kk-primary-nav .wp-block-navigation-submenu.has-child > a.wp-block-navigation-item__content[aria-expanded="true"] {
		opacity: 0.5;
	}
}

/* -------------------------------------------------------------------------
   Desktop Boutique mega menu — Figma SOUS-MENU #336:906
   ------------------------------------------------------------------------- */

.kk-mega {
	display: none;
	position: absolute;
	top: 100%;
	left: calc(50% - 50vw);
	width: 100vw;
	max-width: none;
	height: 24.75rem; /* 396px */
	margin: 0;
	margin-block-start: 0 !important; /* beat constrained-layout sibling gap */
	background-color: #fff;
	z-index: 20;
	box-sizing: border-box;
}

.kk-mega:not([hidden]) {
	display: block;
}

/* 100vw includes the scrollbar; clip the ~8px overhang. */
html:has(.kk-mega:not([hidden])) {
	overflow-x: clip;
}

.kk-mega__inner {
	display: grid;
	grid-template-columns: 13rem 1px minmax(0, 1fr); /* 208px — room for labels + scrollbar */
	column-gap: 0;
	align-items: start;
	max-width: var(--wp--style--global--wide-size, 1066px);
	height: 100%;
	margin: 0 auto;
	padding: 1.9375rem 2.1875rem 1.875rem; /* 31 35 30 */
	box-sizing: border-box;
}

.kk-mega__list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem; /* 10px — 31px row pitch with 21px type */
	list-style: none;
	margin: 0;
	padding: 0 0.5rem 0 0; /* room for the filter-panel-sized scrollbar */
	max-height: 20.6875rem; /* 331px */
	overflow-x: hidden;
	overflow-y: auto;
	scrollbar-width: auto; /* match shop filter panel, not thin */
}

.kk-mega__item {
	margin: 0;
	padding: 0;
}

.kk-mega__link {
	display: block;
	font-family: var(--wp--preset--font-family--host-grotesk);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3125rem; /* 21px */
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
}

.kk-mega__link:hover,
.kk-mega__link:focus,
.kk-mega__link:focus-visible {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
	outline: none;
}

.kk-mega__divider {
	width: 1px;
	height: 20.6875rem; /* 331px */
	margin-left: 0;
	background-color: var(--wp--preset--color--hairline, #dddddd);
	align-self: start;
}

.kk-mega__previews {
	position: relative;
	min-height: 20.9375rem; /* 335px */
	margin-left: 2.4375rem; /* 39px — Figma preview x:251 after divider at 212 */
}

.kk-mega__preview {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: 16.4375rem 18.0625rem; /* 263 + 289 */
	column-gap: 2.1875rem; /* ~35px to image at x:297 */
	align-items: start;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		visibility var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.kk-mega__preview.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.kk-mega__copy {
	max-width: 16.375rem; /* 262px */
	min-width: 0;
}

.kk-mega__title {
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--hepta-slab);
	font-size: 1.125rem; /* 18px */
	font-weight: 400;
	line-height: 1.28;
	color: #000;
}

.kk-mega__desc {
	margin: 0;
	font-family: var(--wp--preset--font-family--host-grotesk);
	font-size: 0.875rem; /* 14px */
	font-weight: 300;
	line-height: 1.36;
	color: #000;
}

.kk-mega__media {
	width: 18.0625rem; /* 289px */
	height: 20.9375rem; /* 335px */
	overflow: hidden;
	border-radius: 8px;
}

.kk-mega__image,
.kk-mega__media img {
	display: block;
	width: 18.0625rem;
	height: 20.9375rem;
	object-fit: cover;
	border-radius: 8px;
}

@media (prefers-reduced-motion: reduce) {
	.kk-mega__preview {
		transition: none;
	}
}

@media (max-width: 781px) {
	.kk-mega {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
   Footer — Figma HOMEPAGE (footer region of docs/design-refs/homepage/website.png)
   ------------------------------------------------------------------------- */

/* Lock desktop sizes — theme.json fluid clamp shrinks presets on narrow viewports */
.kk-footer .has-large-font-size,
.kk-footer .wp-block-heading.has-large-font-size {
	font-size: 1.125rem !important; /* 18px — column titles */
}

.kk-footer .has-medium-font-size,
.kk-footer .wp-block-navigation.has-medium-font-size,
.kk-footer .wp-block-navigation .wp-block-navigation-item__content {
	font-size: 1rem !important; /* 16px — column links */
}

.kk-footer .has-small-font-size {
	font-size: 0.875rem !important; /* 14px — secure + copyright */
}

/* Heading → links rhythm (link columns). Social column is tighter — see below. */
.kk-footer .wp-block-column > .wp-block-heading {
	margin-top: 0;
	margin-bottom: 2.25rem;
}

/* Suivez-nous: ~21px title → icons in homepage PNG (override column blockGap) */
.kk-footer .wp-block-column:has(.kk-footer-social) > .wp-block-heading {
	margin-bottom: 0;
}

.kk-footer .wp-block-column:has(.kk-footer-social) > .wp-block-heading + .kk-footer-social {
	margin-block-start: 1.3125rem !important;
}

.kk-footer .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
}

.kk-footer .wp-block-navigation .wp-block-navigation-item__content:hover,
.kk-footer .wp-block-navigation .wp-block-navigation-item__content:focus {
	text-decoration: underline;
}

/* Social: ink squircles with cut-out glyphs (from homepage PNG; Figma MCP rate-limited) */
.kk-footer-social {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}

.kk-social {
	display: block;
	width: 30px;
	height: 30px;
	flex: none;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background-color: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.kk-social--facebook {
	-webkit-mask-image: url("assets/images/icon-facebook.svg");
	mask-image: url("assets/images/icon-facebook.svg");
}

.kk-social--instagram {
	-webkit-mask-image: url("assets/images/icon-instagram.svg");
	mask-image: url("assets/images/icon-instagram.svg");
}

/* Lock + “Paiement 100% sécurisé” (mask pattern shared with header icons) */
.kk-footer-secure {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.kk-footer-secure::before {
	content: "";
	flex: none;
	width: 16px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("assets/images/icon-lock.svg") center / contain no-repeat;
	mask: url("assets/images/icon-lock.svg") center / contain no-repeat;
}

/* Payment marks as currentColor masks; sizes follow the Figma proportions */
.kk-footer-payments {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pay {
	display: inline-block;
	background-color: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.kk-pay--visa {
	width: 48px;
	height: 15px;
	-webkit-mask-image: url("assets/images/pay-visa.svg");
	mask-image: url("assets/images/pay-visa.svg");
}

.kk-pay--mastercard {
	width: 44px;
	height: 27px;
	-webkit-mask-image: url("assets/images/pay-mastercard.svg");
	mask-image: url("assets/images/pay-mastercard.svg");
}

.kk-footer-copyright {
	color: var(--wp--preset--color--ink-soft, #3c3c3b);
}

/* -------------------------------------------------------------------------
   Homepage — Suivez-nous (pattern kayetteetkanou/home-social)
   Stack: heading → copy → theme social icons → Feed Them Social shortcode.
   ------------------------------------------------------------------------- */
.kk-home-social {
	text-align: center;
}

.kk-home-social .kk-home-social__heading {
	margin: 0;
	line-height: 1.26;
	font-weight: 500;
}

.kk-home-social .kk-home-social__copy {
	margin: 0 auto;
	max-width: 35rem;
	font-weight: 300;
}

.kk-home-social .kk-home-social__icons {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin: 0.25rem 0 0;
}

/* Same 30px ink squircles as the footer (provided SVG masks, not core Social Links). */
.kk-home-social a.kk-social {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
	background-color: currentColor;
	background-image: none;
}

.kk-home-social .kk-home-social__feed {
	width: 100%;
	/* Padding so Gutenberg blockGap cannot collapse the icons→grid space. */
	margin-block-start: 0;
	padding-block-start: var(--wp--preset--spacing--60, 2rem);
	text-align: initial;
}

.kk-home-social .kk-home-social__feed .fts-instagram-inline-block-centered,
.kk-home-social .kk-home-social__feed .fts-slicker-instagram-posts-wrap {
	width: 100%;
	max-width: 100%;
}

@media (max-width: 781px) {
	.kk-footer {
		/* Match homepage section rhythm (spacing|60); beats inline 5.5rem */
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-footer .wp-block-column > .wp-block-heading {
		margin-bottom: 1.25rem;
	}
}

/* -------------------------------------------------------------------------
   Homepage — mobile vertical rhythm
   Gutenberg padding/margin are not breakpoint-aware. Desktop keeps pattern /
   block padding (spacing|70). On small screens: equal section pads + no
   stacked main blockGap, so content gaps stay even (~2 × spacing|60).
   ------------------------------------------------------------------------- */
@media (max-width: 781px) {
	/* Root template parts also use blockGap — zero on homepage so header/main/footer
	   don’t add a third spacing layer on top of section padding. */
	body.home .wp-site-blocks > * + * {
		margin-block-start: 0 !important;
	}

	.kk-home {
		padding-top: var(--wp--preset--spacing--50, 1.5rem) !important;
		/* Bottom handled by last section pad + newsletter pad (avoids 112px stack) */
		padding-bottom: 0 !important;
	}

	/* Kill theme/global blockGap between homepage sections (padding owns rhythm) */
	.kk-home > * + * {
		margin-block-start: 0 !important;
	}

	.kk-hero-swiper__layout,
	.kk-categories,
	.kk-product-rail,
	.kk-home-about,
	.kk-home-trust,
	.kk-home-social {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-newsletter {
		padding-block: var(--wp--preset--spacing--60, 2rem);
	}

	.kk-home-social .kk-home-social__feed {
		margin-block-start: 0;
		padding-block-start: var(--wp--preset--spacing--50, 1.5rem);
	}
}

/* -------------------------------------------------------------------------
   Homepage — À propos (pattern kayetteetkanou/home-about)
   Pull center copy over side images on desktop only.
   ------------------------------------------------------------------------- */

@media (min-width: 782px) {
	.kk-home-about__content,
	section.alignwide .wp-block-columns:has(> .wp-block-column:nth-child(3):last-child) > .wp-block-column:nth-child(2) > .wp-block-group {
		margin-left: -6rem;
		margin-right: -6rem;
		z-index: 1;
		position: relative;
	}
}

@media (max-width: 781px) {
	.kk-home-about .wp-block-image.alignleft,
	.kk-home-about .wp-block-image.alignright {
		float: none;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}

	.kk-home-about .wp-block-image.alignleft img,
	.kk-home-about .wp-block-image.alignright img {
		display: inline-block;
		margin-left: auto;
		margin-right: auto;
	}
}

/* -------------------------------------------------------------------------
   Homepage — Pourquoi choisir (pattern kayetteetkanou/home-trust)
   Keep captions aligned despite uneven native picto heights.
   ------------------------------------------------------------------------- */

.kk-home-trust .wp-block-column > .wp-block-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 5.0625rem; /* 81px — tallest asset (picto-feuilles) */
	margin: 0;
}

.kk-home-trust .wp-block-column > .wp-block-image + p {
	margin-top: var(--wp--preset--spacing--30, 0.75rem);
}

@media (max-width: 781px) {
	.kk-home-trust .wp-block-column {
		border-right: 0 !important;
		border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
		padding-top: var(--wp--preset--spacing--50, 1.5rem) !important;
		padding-bottom: var(--wp--preset--spacing--50, 1.5rem) !important;
		padding-left: var(--wp--preset--spacing--20, 0.5rem) !important;
		padding-right: var(--wp--preset--spacing--20, 0.5rem) !important;
	}

	.kk-home-trust .wp-block-column:last-child {
		border-bottom: 0;
	}

	.kk-home-trust .wp-block-column > .wp-block-image {
		min-height: 4.5rem;
	}
}

/* -------------------------------------------------------------------------
   Page titles — Boutique / Panier / generic pages
   Hepta Slab, centered, xxx-large, weight 500 (Figma shop + cart)
   ------------------------------------------------------------------------- */

.kk-page-title,
.kk-shop__title,
.kk-cart__title {
	margin: 0 0 var(--wp--preset--spacing--50, 1.5rem);
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: center;
}

.kk-page {
	width: 100%;
}

.kk-page.is-layout-constrained > .kk-page-title + * {
	margin-block-start: 0;
}

@media (max-width: 781px) {
	.kk-page {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}
}

/* -------------------------------------------------------------------------
   404 — Figma 36-9194 + docs/design-refs/404/website.png
   Compact empty-state: 105×102 cloud, Hepta Slab x-large, white pill CTA.
   ------------------------------------------------------------------------- */

.kk-404 {
	width: 100%;
	padding-top: var(--wp--preset--spacing--80, 4rem);
	padding-bottom: var(--wp--preset--spacing--80, 4rem);
}

.kk-404__inner {
	align-items: center;
	width: 100%;
}

.kk-404__inner > * {
	margin-block: 0;
}

.kk-404__cloud,
.kk-404__cloud.wp-block-image {
	margin: 0;
}

.kk-404__cloud img {
	display: block;
	width: 105px;
	height: auto;
}

.kk-404__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: center;
}

.kk-404__cta {
	margin-top: 0.875rem;
	margin-bottom: 0;
}

@media (max-width: 781px) {
	.kk-404 {
		padding-top: var(--wp--preset--spacing--70, 3rem) !important;
		padding-bottom: var(--wp--preset--spacing--70, 3rem) !important;
	}
}

/* -------------------------------------------------------------------------
   Yoast breadcrumbs — under header hairline, above shop / category / PDP titles
   ------------------------------------------------------------------------- */

.kk-breadcrumbs {
	width: 100%;
	box-sizing: border-box;
}

/* Woo wraps the single-product template; drop site-blocks gap above crumbs. */
.wp-site-blocks > .wp-block-group.woocommerce.product:has(.kk-breadcrumbs) {
	margin-block-start: 0;
}

.kk-breadcrumbs .yoast-breadcrumbs,
.kk-breadcrumbs .kk-breadcrumbs__trail {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: left;
}

.kk-breadcrumbs a {
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
	text-decoration: none;
}

.kk-breadcrumbs a:hover,
.kk-breadcrumbs a:focus-visible {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
}

.kk-breadcrumbs .breadcrumb_last {
	color: var(--wp--preset--color--ink, #1c1c1c);
	font-weight: 400;
}

@media (max-width: 781px) {
	.kk-breadcrumbs {
		padding-top: var(--wp--preset--spacing--30, 0.75rem) !important;
	}
}

/* -------------------------------------------------------------------------
   Shop / boutique (archive-product + taxonomy-product_cat)
   Match Figma node 36-7885 + docs/design-refs/shop/website.png
   ------------------------------------------------------------------------- */

.kk-shop {
	width: 100%;
}

.kk-shop__description {
	margin: 0 0 var(--wp--preset--spacing--40, 1rem);
	text-align: center;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
}

.kk-shop__description:empty {
	display: none;
}

.kk-shop__toolbar {
	width: 100%;
	margin: 0 0 var(--wp--preset--spacing--40, 1rem);
}

/* Tighten main blockGap so title→toolbar / toolbar→grid use the margins above */
.kk-shop.is-layout-constrained > .kk-shop__title + .kk-shop__toolbar,
.kk-shop.is-layout-constrained > .kk-shop__toolbar,
.kk-shop.is-layout-constrained > .kk-shop__collection {
	margin-block-start: 0;
}

/* [featured_products] reuses shop cards; drop Boutique main padding */
.kk-featured-products.kk-shop {
	padding: 0 !important;
	gap: var(--wp--preset--spacing--60, 2rem);
}

/* Catalog sorting → “Filtrer par” trigger + left panel */
.kk-shop .wc-block-catalog-sorting {
	display: block;
	margin: 0;
}

.kk-shop-sort {
	display: inline-flex;
	align-items: center;
}

.kk-shop-sort.has-filters .kk-shop-sort__trigger {
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.3;
	font-weight: 400;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
	cursor: pointer;
}

.kk-shop-sort__trigger:hover,
.kk-shop-sort__trigger:focus-visible {
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__trigger-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: var(--wp--preset--color--ink, #1c1c1c);
	color: var(--wp--preset--color--cream, #f2f0eb);
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1;
}

.kk-shop-sort__trigger:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 3px;
}

.kk-shop-sort__trigger-icon {
	display: inline-flex;
	align-items: center;
	color: inherit;
}

.kk-shop-sort__trigger-icon .kk-shop-sort__icon {
	display: block;
	flex-shrink: 0;
	width: 18px;
	height: 15px;
	color: inherit;
}

.kk-shop-sort__backdrop {
	position: fixed;
	inset: 0;
	z-index: 100040;
	background: rgba(28, 28, 28, 0.18);
	border: 0;
	padding: 0;
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.kk-shop-sort.is-open .kk-shop-sort__backdrop {
	opacity: 1;
}

.kk-shop-sort__panel {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100050;
	display: flex;
	flex-direction: column;
	width: min(22.5rem, 86vw);
	height: 100vh;
	height: 100dvh;
	margin: 0;
	padding: 1.75rem 1.75rem 1.5rem;
	background: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #1c1c1c);
	box-sizing: border-box;
	transform: translateX(-105%);
	visibility: hidden;
	pointer-events: none;
	transition: transform 0.3s ease, visibility 0.3s ease;
	overflow: hidden;
}

.kk-shop-sort.is-open .kk-shop-sort__panel {
	transform: translateX(0);
	visibility: visible;
	pointer-events: auto;
}

.kk-shop-sort__panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 1.25rem;
	margin-bottom: 1.75rem;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	flex-shrink: 0;
}

.kk-shop-sort__panel-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__panel .kk-shop-sort__icon {
	display: block;
	flex-shrink: 0;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__options {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin: 0;
	padding: 0 0 1.5rem;
	list-style: none;
	flex-shrink: 0;
}

.kk-shop-sort__option-btn {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.4;
	font-weight: 400;
	color: var(--wp--preset--color--ink, #1c1c1c);
	cursor: pointer;
	transition: color 0.25s ease;
}

.kk-shop-sort__option-btn:hover,
.kk-shop-sort__option-btn:focus-visible {
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
}

.kk-shop-sort__option-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 3px;
}

.kk-shop-sort__option-btn.is-active {
	font-weight: 500;
}

.kk-shop-sort__filters {
	display: flex;
	flex-direction: column;
	min-height: 0;
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	border: 0;
	min-inline-size: 0;
}

.kk-shop-sort__filters-title {
	display: block;
	float: none;
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 0.75rem;
	padding: 0 0 1.25rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	flex-shrink: 0;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__filter-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0 0 0.5rem;
	list-style: none;
	overflow-y: auto;
	min-height: 0;
	flex: 1 1 auto;
}

.kk-shop-sort__filter-label {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.25;
	font-weight: 400;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__filter-label.is-checked .kk-shop-sort__filter-name {
	font-weight: 500;
}

.kk-shop-sort__filter-input {
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--wp--preset--color--ink, #1c1c1c);
	cursor: pointer;
}

.kk-shop-sort__filter-input:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 2px;
}

.kk-shop-sort__actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.75rem;
	flex-shrink: 0;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--hairline, #dddddd);
}

.kk-shop-sort__apply {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0.7rem 1.25rem;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--wp--preset--color--ink, #1c1c1c);
	color: #fff;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.kk-shop-sort__apply:hover,
.kk-shop-sort__apply:focus-visible {
	background: #fff;
	border-color: var(--wp--preset--color--ink, #1c1c1c);
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__apply:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 3px;
}

.kk-shop-sort__reset {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.25rem 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	line-height: 1.4;
	font-weight: 400;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
	cursor: pointer;
}

.kk-shop-sort__reset:hover,
.kk-shop-sort__reset:focus-visible {
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop-sort__reset:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 3px;
}

html.kk-shop-sort-open,
html.kk-shop-sort-open body {
	overflow: hidden;
}

/* Keep sr-only close available for a11y */
.kk-shop-sort .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Product grid — force 3 cols (Woo __responsive auto-fill + larger gap collapses to 2) */
.kk-shop__collection .wc-block-product-template,
.kk-shop__collection ul.wc-block-product-template,
.kk-shop__collection .wc-block-product-template__responsive.columns-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-image,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-product-image {
	display: block;
	width: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
	background: var(--wp--preset--color--white, #ffffff);
	transition: transform 0.3s ease-in-out;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product:hover .wc-block-components-product-image,
:is(.kk-shop, .kk-pdp__related) .wc-block-product:focus-within .wc-block-components-product-image {
	transform: translateY(-2px);
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-image img,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-product-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	border-radius: 8px;
}

/* Media + hover add-to-cart overlay */
:is(.kk-shop, .kk-pdp__related) .kk-product-card__media-wrap {
	position: relative;
	width: 100%;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	z-index: 2;
	margin: 0;
	width: auto;
	max-width: calc(100% - 2rem);
	opacity: 0;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product:hover .kk-product-card__atc,
:is(.kk-shop, .kk-pdp__related) .wc-block-product:focus-within .kk-product-card__atc {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

@media (hover: none) {
	:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc {
		opacity: 1;
		pointer-events: auto;
		transform: none;
	}
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc.wp-block-button,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc.wc-block-components-product-button {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	width: auto;
}

/* Hide Woo “Voir le panier” sibling in the overlay; keep AJAX button only */
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc > :not(.wp-block-button__link):not(.wc-block-components-product-button__button) {
	display: none !important;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button {
	display: inline-flex !important;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	box-sizing: border-box;
	width: auto !important;
	min-width: 1.125rem !important;
	max-width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	padding: 0 !important;
	overflow: hidden;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--kk-product-atc-overlay, #1f2333) !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: 0;
	text-decoration: none !important;
	text-transform: none;
	white-space: nowrap;
	box-shadow: none !important;
	transition:
		max-width 0.3s ease,
		gap 0.3s ease;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link::before,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button::before {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	background: transparent url("assets/images/icon-add-to-cart.svg") center / contain no-repeat;
	transform: rotate(0deg);
	transform-origin: center;
	transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:hover::before,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:hover::before,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:focus-visible::before,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:focus-visible::before {
	transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
	:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link::before,
	:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button::before {
		transition: none;
	}
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link .wc-block-components-product-button__button--text {
	display: inline-block;
	max-width: 0;
	margin: 0;
	overflow: hidden;
	color: var(--kk-product-atc-overlay, #1f2333) !important;
	font: inherit;
	transition: max-width 0.3s ease;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:hover,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:hover,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:focus-visible,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:focus-visible {
	max-width: 16rem;
	gap: 0.5rem;
	background: transparent !important;
	color: var(--kk-product-atc-overlay, #1f2333) !important;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:hover span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:hover span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:focus-visible span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:focus-visible span,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:hover .wc-block-components-product-button__button--text,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:hover .wc-block-components-product-button__button--text,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wp-block-button__link:focus-visible .wc-block-components-product-button__button--text,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__atc .wc-block-components-product-button__button:focus-visible .wc-block-components-product-button__button--text {
	max-width: 12rem;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__meta {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	min-width: 0;
	width: 100%;
}

:is(.kk-shop, .kk-pdp__related) .kk-product-card__info {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	flex: 1 1 auto;
	min-width: 0;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-post-title,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-post-title a {
	margin: 0;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 400;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
	transition: color 0.3s ease-in-out;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product:hover .wp-block-post-title,
:is(.kk-shop, .kk-pdp__related) .wc-block-product:hover .wp-block-post-title a {
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-woocommerce-product-price,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price {
	flex: 0 0 auto;
	margin: 0;
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: right;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.125rem;
	line-height: 1.2;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price del {
	font-size: 0.875rem;
	line-height: 1.35;
	font-weight: 400;
	text-decoration: line-through;
	text-decoration-thickness: 1px;
	color: var(--wp--preset--color--ink, #1c1c1c);
	opacity: 1;
	order: 2;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price ins {
	text-decoration: none;
	color: var(--wp--preset--color--green, var(--kk-color-text-sale, #42b676));
	font-weight: 500;
	order: 1;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price .amount,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-price bdi {
	font-style: normal;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-summary,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-woocommerce-product-summary,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__subtitle {
	display: block;
	width: 100%;
	max-width: none;
	min-width: 0;
	margin: 0;
	margin-left: 0 !important;
	margin-right: 0 !important;
	overflow: hidden;
	text-align: left;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	line-height: 1.35;
	font-weight: 400;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
	white-space: nowrap;
	text-overflow: ellipsis;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-summary p,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-woocommerce-product-summary p,
:is(.kk-shop, .kk-pdp__related) .kk-product-card__subtitle p {
	margin: 0;
	overflow: hidden;
	color: inherit;
	font: inherit;
	white-space: nowrap;
	text-overflow: ellipsis;
}

:is(.kk-shop, .kk-pdp__related) .wc-block-product .wc-block-components-product-summary:empty,
:is(.kk-shop, .kk-pdp__related) .wc-block-product .wp-block-woocommerce-product-summary:empty {
	display: none;
}

/* Child selector beats Gutenberg flow `> * + * { margin-block-start }` */
.kk-shop__collection > .kk-shop__pagination,
.kk-shop__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	width: 100%;
	margin-block-start: var(--wp--preset--spacing--80, 4rem);
	margin-bottom: 0;
}

.kk-shop__pagination .wp-block-query-pagination-numbers {
	display: inline-flex;
	align-items: center;
	gap: 1.25rem;
}

.kk-shop__pagination a,
.kk-shop__pagination .page-numbers {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.2;
	font-weight: 400;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
	text-decoration: none;
	transition: color 0.3s ease-in-out;
}

.kk-shop__pagination a:hover,
.kk-shop__pagination a:focus-visible {
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
}

.kk-shop__pagination .page-numbers.current {
	position: relative;
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop__pagination .page-numbers.current::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.2em;
	height: 2px;
	background: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-shop__pagination .wp-block-query-pagination-previous,
.kk-shop__pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--ink, #1c1c1c);
	line-height: 0;
}

.kk-shop__pagination .kk-shop__pagination-arrow {
	display: inline-flex;
	width: 17px;
	height: 15px;
	transition: transform 0.3s ease-in-out;
}

.kk-shop__pagination .kk-shop__pagination-arrow svg {
	display: block;
	width: 100%;
	height: 100%;
}

.kk-shop__pagination .kk-shop__pagination-arrow--prev {
	transform: scaleX(-1);
}

.kk-shop__pagination .wp-block-query-pagination-previous:hover .kk-shop__pagination-arrow--prev,
.kk-shop__pagination .wp-block-query-pagination-previous:focus-visible .kk-shop__pagination-arrow--prev {
	transform: scaleX(-1) translateX(3px);
}

.kk-shop__pagination .wp-block-query-pagination-next:hover .kk-shop__pagination-arrow--next,
.kk-shop__pagination .wp-block-query-pagination-next:focus-visible .kk-shop__pagination-arrow--next {
	transform: translateX(3px);
}

/* Core arrow glyphs are replaced by SVG; keep rule as safety net */
.kk-shop__pagination .wp-block-query-pagination-previous-arrow:not(:has(svg)),
.kk-shop__pagination .wp-block-query-pagination-next-arrow:not(:has(svg)) {
	font-size: 0;
}

@media (max-width: 900px) {
	.kk-shop__collection .wc-block-product-template,
	.kk-shop__collection ul.wc-block-product-template,
	.kk-shop__collection .wc-block-product-template__responsive.columns-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
	}
}

@media (max-width: 781px) {
	.kk-shop__pagination {
		gap: 0.75rem;
	}

	.kk-shop__pagination .wp-block-query-pagination-numbers {
		gap: 0.65rem;
	}

	.kk-shop {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
		gap: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-featured-products.kk-shop {
		padding: 0 !important;
	}

	.kk-shop .kk-home-trust {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-shop__collection .wc-block-product-template,
	.kk-shop__collection ul.wc-block-product-template,
	.kk-shop__collection .wc-block-product-template__responsive.columns-3 {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* -------------------------------------------------------------------------
   Cart / Panier — design ref docs/design-refs/cart/website.png
   ------------------------------------------------------------------------- */

.kk-cart {
	overflow: visible;
}

.kk-cart.is-layout-constrained > .kk-cart__title + .kk-cart__content,
.kk-cart.is-layout-constrained > .kk-cart__content {
	margin-block-start: 0;
}

.kk-cart__content,
.kk-cart__content > .wp-block-woocommerce-cart,
.kk-cart .wp-block-woocommerce-cart {
	max-width: 100%;
	width: 100%;
}

.kk-cart .wc-block-cart {
	padding-top: 0;
}

/* Two-column filled cart.
   Woo injects an absolute aria-hidden sibling that still occupies a CSS grid cell,
   which crushed the sidebar (~110px). Use flex so abspos children are ignored. */
.kk-cart .wc-block-cart__container,
.kk-cart .wp-block-woocommerce-filled-cart-block {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: flex-start;
	/* PNG: products 557 + gap 92 + card 417 = 1066 */
	gap: 5.75rem;
}

.kk-cart .wp-block-woocommerce-filled-cart-block > [aria-hidden="true"] {
	/* Keep Woo’s focus/scroll sentinel out of the flex layout entirely. */
	position: absolute !important;
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	pointer-events: none !important;
}

.kk-cart .wp-block-woocommerce-cart-items-block,
.kk-cart .wc-block-components-main.wc-block-cart__main {
	flex: 1 1 auto;
	min-width: 0;
	width: auto !important;
	max-width: none !important;
	padding-right: 0 !important;
}

.kk-cart .wp-block-woocommerce-cart-totals-block,
.kk-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
	position: relative;
	isolation: isolate;
	flex: 0 0 26.0625rem;
	width: 26.0625rem !important;
	max-width: 26.0625rem !important;
	margin-top: 2.25rem;
	padding: 1.75rem 1.5rem 1.5rem;
	/* Transparent shell — white plate is ::before so deco can sit behind it. */
	background: transparent;
	border-radius: 12px;
	box-shadow: none;
	overflow: visible;
	box-sizing: border-box;
}

.kk-cart .wp-block-woocommerce-cart-totals-block::before,
.kk-cart .wc-block-components-sidebar.wc-block-cart__sidebar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(28, 28, 28, 0.08);
	pointer-events: none;
}

.kk-cart .wp-block-woocommerce-cart-totals-block > *:not(.kk-cart__deco),
.kk-cart .wc-block-components-sidebar.wc-block-cart__sidebar > *:not(.kk-cart__deco) {
	position: relative;
	z-index: 1;
}

.kk-cart__deco {
	position: absolute;
	pointer-events: none;
	user-select: none;
	z-index: -1;
	height: auto;
}

.kk-cart__deco--papillon {
	/* Design capture: ~28% of card width; ~75% above top edge; center ~63% from left. */
	width: 7.3125rem; /* ~117px */
	height: auto;
	top: -4.9375rem; /* ~79px above */
	left: 12.6875rem; /* ~203px — right half of 417px card */
	right: auto;
	transform: rotate(6deg);
}

.kk-cart__deco--blue {
	/* Design capture: ~21% of card; tucked under bottom-left corner. */
	width: 5.5625rem; /* ~89px */
	height: auto;
	bottom: -2.35rem; /* ~38px below */
	left: -3.9375rem; /* ~63px to the left */
	transform: none;
}

/* Line items table */
.kk-cart table.wc-block-cart-items {
	width: 100%;
	border-bottom: 0;
}

.kk-cart table.wc-block-cart-items .wc-block-cart-items__header {
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-cart table.wc-block-cart-items .wc-block-cart-items__header th {
	padding: 0 0 0.85rem;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	vertical-align: bottom;
}

/* Woo places “Produits” in the image header column; hide the “Détails” column label. */
.kk-cart table.wc-block-cart-items .wc-block-cart-items__header-image {
	width: 5.5rem;
	padding-right: 1rem !important;
	text-align: left;
	white-space: nowrap;
}

.kk-cart table.wc-block-cart-items .wc-block-cart-items__header-product {
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
}

.kk-cart table.wc-block-cart-items .wc-block-cart-items__header-total {
	text-align: right;
	width: 5.5rem;
}

.kk-cart table.wc-block-cart-items .wc-block-cart-items__row td {
	padding: 1.25rem 0;
	vertical-align: top;
	border: 0 !important;
	border-top: 1px solid var(--wp--preset--color--hairline, #dddddd) !important;
}

.kk-cart table.wc-block-cart-items tbody .wc-block-cart-items__row:first-child td {
	border-top: 0 !important;
}

/* Mobile: header is hidden and rows are CSS grid — draw one full-width top line per row. */
.kk-cart .is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
.kk-cart .is-small table.wc-block-cart-items .wc-block-cart-items__row,
.kk-cart .is-medium table.wc-block-cart-items .wc-block-cart-items__row {
	border-top: 1px solid var(--wp--preset--color--hairline, #dddddd);
	padding: 1.25rem 0;
}

.kk-cart .is-mobile table.wc-block-cart-items .wc-block-cart-items__row td,
.kk-cart .is-small table.wc-block-cart-items .wc-block-cart-items__row td,
.kk-cart .is-medium table.wc-block-cart-items .wc-block-cart-items__row td,
.kk-cart .is-mobile table.wc-block-cart-items tbody .wc-block-cart-items__row:first-child td,
.kk-cart .is-small table.wc-block-cart-items tbody .wc-block-cart-items__row:first-child td,
.kk-cart .is-medium table.wc-block-cart-items tbody .wc-block-cart-items__row:first-child td {
	border: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.kk-cart .wc-block-cart-item__image {
	width: 5.5rem;
	padding-right: 1rem !important;
}

.kk-cart .wc-block-cart-item__image img {
	width: 5.5rem;
	height: 5.5rem;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}

.kk-cart .wc-block-cart-item__product,
.kk-cart .wc-block-cart-item__product a,
.kk-cart .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-decoration: none;
}

.kk-cart .wc-block-cart-item__quantity {
	margin-top: 0.85rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.kk-cart .wc-block-components-quantity-selector,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	box-sizing: border-box;
	width: 6.25rem !important;
	min-width: 6.25rem !important;
	max-width: 6.25rem !important;
	height: 2rem !important;
	border: 1px solid var(--wp--preset--color--hairline, #dddddd) !important;
	border-radius: 999px !important;
	background: #fff !important;
	overflow: hidden;
}

.kk-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	font-weight: 500;
	min-width: 1.75rem;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background: transparent;
}

.kk-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	color: var(--wp--preset--color--ink, #1c1c1c);
	min-width: 1.75rem;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
}

.kk-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.kk-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus,
.kk-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible {
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	opacity: 1;
}

.kk-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus,
.kk-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus-visible,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus,
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus-visible,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

/* Mini-cart filled checkout — same ink/cream fade as core buttons */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-checkout {
	opacity: 1;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:hover,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:focus,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:focus-visible,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-checkout:hover,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-checkout:focus,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-checkout:focus-visible {
	background-color: var(--wp--preset--color--ink, #1c1c1c);
	color: var(--wp--preset--color--cream, #f2f0eb);
	opacity: 1;
}

/* Mini-cart footer CTAs — dark focus outline (replace Woo blue #0675c4) */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-button:not(.is-link):focus,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-button:not(.is-link):focus-visible,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer .wc-block-components-button:not(.is-link):focus,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer .wc-block-components-button:not(.is-link):focus-visible {
	outline: 3px solid transparent;
	box-shadow:
		inset 0 0 0 1px #fff,
		0 0 0 2px var(--wp--preset--color--ink, #1c1c1c) !important;
}

/* Outline « Voir mon panier » — keep outline style; darken the stroke on focus */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart.is-style-outline:focus,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart.is-style-outline:focus-visible,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-cart.is-style-outline:focus,
.wp-block-woocommerce-filled-mini-cart-contents-block .wc-block-mini-cart__footer-cart.is-style-outline:focus-visible {
	background: transparent !important;
	color: var(--wp--preset--color--ink, #1c1c1c) !important;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--ink, #1c1c1c) !important;
	outline: none;
}

.kk-cart .wc-block-cart-item__total {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: right;
	white-space: nowrap;
}

.kk-cart .wc-block-cart-item__total .wc-block-components-sale-badge,
.kk-cart .wc-block-cart-item__total .wc-block-components-product-badge {
	display: none !important;
}

/* Design shows name + qty only (no sale price stack / description / save badge). */
.kk-cart .wc-block-cart-item__prices,
.kk-cart .wc-block-cart-item__product .wc-block-components-product-metadata,
.kk-cart .wc-block-cart-item__product .wc-block-components-product-badge,
.kk-cart .wc-block-cart-item__product .wc-block-components-product-metadata__description,
.kk-cart .wc-block-cart-item__product .price,
.kk-cart .wc-block-cart-item__product .wc-block-components-product-price,
.kk-cart .wc-block-cart-item__product .wc-block-components-sale-badge,
.kk-cart .wc-block-cart-item__low-stock-badge {
	display: none !important;
}

.kk-cart .wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--ink-soft, var(--kk-color-ink-soft, #3c3c3b));
	opacity: 0.45;
	cursor: pointer;
}

.kk-cart .wc-block-cart-item__remove-link:hover,
.kk-cart .wc-block-cart-item__remove-link:focus-visible {
	opacity: 1;
}

.kk-cart .wc-block-cart-item__remove-link svg {
	width: 24px;
	height: 24px;
}

/* Order summary card */
.kk-cart .wp-block-woocommerce-cart-order-summary-block {
	border-bottom: 0 !important;
	margin-bottom: 0 !important;
	font-size: 0.9375rem;
	line-height: 1.4;
}

.kk-cart .wc-block-cart__totals-title,
.kk-cart .wp-block-woocommerce-cart-order-summary-heading-block {
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif) !important;
	font-size: 1.375rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 0 0 1rem !important;
	padding: 0 0 0.85rem !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd) !important;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

/* Coupon as text row — no hairline under promo (line sits under the title instead). */
.kk-cart .wc-block-components-totals-coupon {
	padding: 0 0 0.9rem !important;
	border: 0 !important;
	margin: 0 0 0.9rem !important;
}

.kk-cart .wc-block-components-totals-coupon.wc-block-components-panel {
	border: 0 !important;
}

.kk-cart .wc-block-components-totals-coupon .wc-block-components-panel__button,
.kk-cart .wc-block-components-totals-coupon .wc-block-components-panel__button[aria-expanded] {
	display: flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	font-weight: 400;
	padding: 0;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.kk-cart .wc-block-components-totals-coupon .wc-block-components-panel__button > svg,
.kk-cart .wc-block-components-totals-coupon .wc-block-components-panel__button .wc-block-components-panel__button-icon {
	display: none !important;
}

/* Neutralize Woo totals-wrapper default borders/padding — we draw our own rows. */
.kk-cart .wc-block-components-totals-wrapper {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Hide subtotal / taxes to match design (coupon + shipping + estimated total) */
.kk-cart .wp-block-woocommerce-cart-order-summary-subtotal-block,
.kk-cart .wc-block-components-totals-item.wc-block-components-totals-subtotal,
.kk-cart .wp-block-woocommerce-cart-order-summary-taxes-block,
.kk-cart .wc-block-components-totals-taxes {
	display: none !important;
}

.kk-cart .wc-block-components-totals-shipping {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}

.kk-cart .wc-block-components-totals-item {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: 1rem;
	width: 100% !important;
	max-width: none !important;
	padding: 0.9rem 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	color: var(--wp--preset--color--ink, #1c1c1c);
	box-sizing: border-box;
}

.kk-cart .wc-block-components-totals-item__label {
	flex: 1 1 auto;
	min-width: 0;
}

.kk-cart .wc-block-components-totals-item__value {
	flex: 0 0 auto;
	text-align: right;
}

.kk-cart .wc-block-components-totals-item__description:empty {
	display: none !important;
}

.kk-cart .wc-block-components-totals-footer-item {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: 1rem;
	width: 100% !important;
	padding: 1rem 0 0.25rem !important;
	margin: 0 !important;
	border-bottom: 0 !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.kk-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 600;
}

.kk-cart .wc-block-components-totals-shipping .wc-block-components-totals-shipping__via,
.kk-cart .wc-block-components-totals-shipping .wc-block-components-shipping-address,
.kk-cart .wc-block-components-totals-shipping .wc-block-components-totals-shipping__calculator-button,
.kk-cart .wc-block-components-totals-shipping fieldset {
	display: none !important;
}

/* CTA — inverted theme button (ink fill / cream text → white fill / ink text + border) */
.kk-cart .wc-block-cart__submit {
	margin: 1.5rem 0 0;
}

.kk-cart .wc-block-cart__submit-container {
	padding: 0 !important;
}

.kk-cart .wc-block-cart__submit-button,
.kk-cart .wc-block-cart__submit-button.wc-block-components-button,
.kk-cart .wc-block-cart__submit-button.wp-element-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0.75rem 1.5rem;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--ink, #1c1c1c) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	opacity: 1;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.kk-cart .wc-block-cart__submit-button:hover,
.kk-cart .wc-block-cart__submit-button:focus,
.kk-cart .wc-block-cart__submit-button:focus-visible {
	opacity: 1;
	background: #fff !important;
	border-color: var(--wp--preset--color--ink, #1c1c1c) !important;
	color: var(--wp--preset--color--ink, #1c1c1c) !important;
}

/* Empty cart — reuse 404 cloud + core pill button */
.kk-cart .wp-block-woocommerce-empty-cart-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--50, 1.5rem);
	padding: 2rem 0 1rem;
	text-align: center;
}

.kk-cart .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
.kk-cart .with-empty-cart-icon::before {
	display: none !important;
	content: none !important;
}

.kk-cart__empty-cloud {
	margin: 0;
}

.kk-cart__empty-cloud img {
	display: block;
	width: 105px;
	height: auto;
}

.kk-cart .kk-cart__empty-title,
.kk-cart .wc-block-cart__empty-cart__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-size: var(--wp--preset--font-size--x-large, 1.75rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: center;
}

.kk-cart__empty-cta {
	margin: 0.875rem 0 0;
}

.kk-cart .kk-cart__empty-cta .wp-element-button {
	text-decoration: none;
}

/* Empty mini-cart overlay — same cloud + Hepta heading + white pill as empty cart */
.wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__empty-cart-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--50, 1.5rem);
	padding: 2rem 1.5rem;
	text-align: center;
}

.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-title,
.wp-block-woocommerce-empty-mini-cart-contents-block p.has-text-align-center {
	margin: 0;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-size: var(--wp--preset--font-size--x-large, 1.75rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-align: center;
}

.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-cta {
	margin: 0.875rem 0 0;
}

.wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__shopping-button.wp-element-button,
.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-cta .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--white, #fff) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: var(--wp--preset--color--ink, #1c1c1c) !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.2;
	padding: 0.75rem 1.5rem;
	text-decoration: none;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__shopping-button.wp-element-button:hover,
.wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__shopping-button.wp-element-button:focus,
.wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__shopping-button.wp-element-button:focus-visible,
.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-cta .wp-element-button:hover,
.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-cta .wp-element-button:focus,
.wp-block-woocommerce-empty-mini-cart-contents-block .kk-cart__empty-cta .wp-element-button:focus-visible {
	background: var(--wp--preset--color--ink, #1c1c1c) !important;
	color: var(--wp--preset--color--cream, #f2f0eb) !important;
}

@media (max-width: 900px) {
	.kk-cart .wc-block-cart__container,
	.kk-cart .wp-block-woocommerce-filled-cart-block {
		flex-wrap: wrap;
		/* Clear papillon overhang above the stacked totals card. */
		gap: 2rem !important;
	}

	.kk-cart .wp-block-woocommerce-cart-totals-block,
	.kk-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: 26.0625rem !important;
		margin-top: 0;
	}

	.kk-cart__deco--papillon {
		left: auto;
		right: 4rem;
		top: -3.75rem;
		width: 6.25rem;
	}

	.kk-cart__deco--blue {
		left: -2.5rem;
		bottom: -1.75rem;
		width: 4.75rem;
	}
}

@media (max-width: 781px) {
	.kk-cart {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-cart .wc-block-cart-item__image {
		width: 4.25rem;
	}

	.kk-cart .wc-block-cart-item__image img {
		width: 4.25rem;
		height: 4.25rem;
	}
}

/* -------------------------------------------------------------------------
   Checkout / Commander — sidecart matches cart totals card (no Figma frame).
   ------------------------------------------------------------------------- */

.kk-checkout {
	overflow: visible;
}

.kk-checkout.is-layout-constrained > .kk-page-title + .kk-checkout__content,
.kk-checkout.is-layout-constrained > .kk-checkout__content {
	margin-block-start: 0;
}

.kk-checkout__content,
.kk-checkout__content > .wp-block-woocommerce-checkout,
.kk-checkout .wp-block-woocommerce-checkout {
	max-width: 100%;
	width: 100%;
}

.kk-checkout .wp-block-woocommerce-checkout {
	padding-top: 0;
}

/* Two-column checkout: form + 417px summary card (same math as Panier). */
.kk-checkout .wc-block-components-sidebar-layout,
.kk-checkout .wp-block-woocommerce-checkout-fields-block,
.kk-checkout .wc-block-checkout {
	align-items: flex-start;
}

.kk-checkout .wc-block-components-sidebar-layout {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 5.75rem;
	margin-bottom: 0;
}

.kk-checkout .wc-block-components-sidebar-layout .wc-block-components-main,
.kk-checkout .wp-block-woocommerce-checkout-fields-block {
	flex: 1 1 auto;
	min-width: 0;
	width: auto !important;
	max-width: none !important;
	padding-right: 0 !important;
}

.kk-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar,
.kk-checkout .wp-block-woocommerce-checkout-totals-block {
	position: relative;
	isolation: isolate;
	flex: 0 0 26.0625rem;
	width: 26.0625rem !important;
	max-width: 26.0625rem !important;
	margin-top: 2.25rem;
	padding: 1.75rem 1.5rem 1.5rem;
	padding-left: 1.5rem !important;
	box-sizing: border-box;
	background: transparent;
	border-radius: 12px;
	box-shadow: none;
	overflow: visible;
}

.kk-checkout .wp-block-woocommerce-checkout-totals-block::before,
.kk-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(28, 28, 28, 0.08);
	pointer-events: none;
}

.kk-checkout .wp-block-woocommerce-checkout-totals-block > *:not(.kk-cart__deco),
.kk-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar > *:not(.kk-cart__deco) {
	position: relative;
	z-index: 1;
}

.kk-checkout .wp-block-woocommerce-checkout-order-summary-block {
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: 0.9375rem;
	line-height: 1.4;
}

.kk-checkout .wc-block-components-checkout-order-summary__title {
	display: block !important;
	margin: 0 0 1rem !important;
	padding: 0 0 0.85rem !important;
	border: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd) !important;
	cursor: default;
}

.kk-checkout .wc-block-components-checkout-order-summary__title-text {
	display: block;
	flex-grow: 0;
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif) !important;
	font-size: 1.375rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-checkout .wc-block-components-checkout-order-summary__title-price,
.kk-checkout .wc-block-components-checkout-order-summary__title-icon {
	display: none !important;
}

.kk-checkout .wc-block-components-checkout-order-summary__content {
	margin: 0;
}

.kk-checkout .wc-block-components-totals-wrapper,
.kk-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block.wc-block-components-totals-wrapper,
.kk-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

.kk-checkout .wc-block-components-sidebar .wc-block-components-panel,
.kk-checkout .wc-block-components-sidebar .wc-block-components-totals-coupon,
.kk-checkout .wc-block-components-sidebar .wc-block-components-totals-item,
.kk-checkout .wc-block-components-sidebar .wc-block-components-panel .wc-block-components-totals-item,
.kk-checkout .wc-block-components-sidebar .wc-block-components-totals-item .wc-block-components-panel {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Line items — name + qty + line total (hide sale stack / description). */
.kk-checkout .wc-block-components-order-summary {
	margin-top: 0;
}

.kk-checkout .wc-block-components-order-summary-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
}

.kk-checkout .wc-block-components-order-summary-item:first-child {
	padding-top: 0;
}

.kk-checkout .wc-block-components-order-summary-item__image {
	flex: 0 0 3.5rem;
	width: 3.5rem;
}

.kk-checkout .wc-block-components-order-summary-item__image img {
	width: 3.5rem;
	height: 3.5rem;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}

.kk-checkout .wc-block-components-order-summary-item__quantity {
	background: var(--wp--preset--color--ink, #1c1c1c);
	color: #fff;
}

.kk-checkout .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--wp--preset--color--ink, #1c1c1c);
	max-width: none;
}

.kk-checkout .wc-block-components-order-summary-item__total-price,
.kk-checkout .wc-block-components-order-summary-item__total-price .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #1c1c1c);
	white-space: nowrap;
}

.kk-checkout .wc-block-cart-item__prices,
.kk-checkout .wc-block-components-product-metadata,
.kk-checkout .wc-block-components-sale-badge,
.kk-checkout .wc-block-components-product-badge,
.kk-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
.kk-checkout .wp-block-woocommerce-checkout-order-summary-taxes-block,
.kk-checkout .wc-block-components-totals-item.wc-block-components-totals-subtotal,
.kk-checkout .wc-block-components-totals-taxes {
	display: none !important;
}

.kk-checkout .wc-block-components-totals-coupon {
	padding: 0.9rem 0 !important;
	border: 0 !important;
	margin: 0 !important;
}

.kk-checkout .wc-block-components-totals-coupon.wc-block-components-panel {
	border: 0 !important;
}

.kk-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button,
.kk-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button[aria-expanded] {
	display: flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	font-weight: 400;
	padding: 0;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.kk-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button > svg,
.kk-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button .wc-block-components-panel__button-icon {
	display: none !important;
}

.kk-checkout .wc-block-components-totals-shipping {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}

.kk-checkout .wc-block-components-totals-item {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: 1rem;
	width: 100% !important;
	max-width: none !important;
	padding: 0.9rem 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	color: var(--wp--preset--color--ink, #1c1c1c);
	box-sizing: border-box;
}

.kk-checkout .wc-block-components-totals-item__label {
	flex: 1 1 auto;
	min-width: 0;
}

.kk-checkout .wc-block-components-totals-item__value {
	flex: 0 0 auto;
	text-align: right;
}

.kk-checkout .wc-block-components-totals-item__description:empty {
	display: none !important;
}

.kk-checkout .wc-block-components-totals-footer-item {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: 1rem;
	width: 100% !important;
	padding: 1rem 0 0.25rem !important;
	margin: 0 !important;
	border-bottom: 0 !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.kk-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 600;
}

.kk-checkout .wc-block-components-totals-shipping .wc-block-components-totals-shipping__via,
.kk-checkout .wc-block-components-totals-shipping .wc-block-components-shipping-address,
.kk-checkout .wc-block-components-totals-shipping .wc-block-components-totals-shipping__calculator-button,
.kk-checkout .wc-block-components-totals-shipping fieldset {
	display: none !important;
}

/* Mobile fill-wrapper (cloned into the form) — same card chrome as the desktop sidecart. */
.kk-checkout .checkout-order-summary-block-fill-wrapper {
	box-sizing: border-box;
	margin: 0 0 1.5rem;
	padding: 1.75rem 1.5rem 1.5rem;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(28, 28, 28, 0.08);
}

.kk-checkout .checkout-order-summary-block-fill-wrapper .wc-block-components-checkout-step__heading {
	margin: 0 0 1rem;
	padding: 0 0 0.85rem;
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
}

.kk-checkout .checkout-order-summary-block-fill-wrapper .wc-block-components-title,
.kk-checkout .checkout-order-summary-block-fill-wrapper .wc-block-components-checkout-step__title {
	margin: 0 !important;
	padding: 0;
	border: 0;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif) !important;
	font-size: 1.375rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-checkout .checkout-order-summary-block-fill {
	border: 0 !important;
	border-radius: 0;
	padding: 0 !important;
	background: transparent;
	box-shadow: none;
}

.kk-checkout .checkout-order-summary-block-fill-wrapper .wc-block-components-order-summary,
.kk-checkout .checkout-order-summary-block-fill .wc-block-components-totals-coupon,
.kk-checkout .checkout-order-summary-block-fill .wc-block-components-totals-item,
.kk-checkout .checkout-order-summary-block-fill .wc-block-components-panel {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

@media (max-width: 900px) {
	.kk-checkout .wc-block-components-sidebar-layout {
		flex-wrap: wrap;
		gap: 2rem !important;
	}

	.kk-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar,
	.kk-checkout .wp-block-woocommerce-checkout-totals-block {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: 26.0625rem !important;
		margin-top: 3.5rem;
	}
}

/* Woo shows the form fill-wrapper below 700px container — hide the duplicate sidebar card. */
@container (max-width: 699px) {
	.kk-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar,
	.kk-checkout .wp-block-woocommerce-checkout-totals-block {
		display: none !important;
	}

	.kk-checkout .checkout-order-summary-block-fill-wrapper {
		padding-bottom: 1.5rem !important;
	}
}

@media (max-width: 781px) {
	.kk-checkout {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}
}

/* -------------------------------------------------------------------------
   Product detail (PDP) — Figma node 36-8980 + docs/design-refs/product/website.png
   ------------------------------------------------------------------------- */

.kk-pdp {
	width: 100%;
	--kk-pdp-col-gap: 5.75rem;
	--kk-pdp-col-left: 4fr;
	--kk-pdp-col-right: 3fr;
}

.kk-pdp.is-layout-constrained > .kk-pdp__layout {
	margin-block-start: 0;
}

.kk-pdp.is-layout-constrained > .kk-pdp__accordion-col {
	margin-block-start: var(--wp--preset--spacing--70, 3rem);
}

.kk-pdp.is-layout-constrained > .kk-pdp__related {
	margin-block-start: var(--wp--preset--spacing--70, 3rem);
}

.kk-pdp.is-layout-constrained > .kk-home-trust {
	margin-block-start: 0;
}

/* Gallery + buy box — same columns as tabs so they line up (Figma 36-8980 / cart 557+92+417) */
.kk-pdp__layout {
	display: grid;
	grid-template-columns: minmax(0, var(--kk-pdp-col-left)) minmax(0, var(--kk-pdp-col-right));
	column-gap: var(--kk-pdp-col-gap);
	align-items: start;
	width: 100%;
}

.kk-pdp__layout > * {
	margin-block-start: 0 !important;
}

.kk-pdp__left,
.kk-pdp__right {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--50, 1.5rem);
	min-width: 0;
}

.kk-pdp__left > *,
.kk-pdp__right > * {
	margin-block-start: 0 !important;
}

/* Buy box rhythm vs Figma node 36-8980: title→price 24px, price→excerpt 40px, excerpt→ATC 36px */
.kk-pdp__buy-col {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.kk-pdp__buy-col > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.kk-pdp__buy-col > .kk-pdp__title {
	padding-bottom: 1.5rem;
}

.kk-pdp__buy-col > .kk-pdp__price {
	padding-bottom: 2.5rem;
}

.kk-pdp__buy-col > .kk-pdp__excerpt {
	padding-bottom: 2.25rem;
}

.kk-pdp__title {
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-weight: 400;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp__price,
.kk-pdp__price .wc-block-components-product-price,
.kk-pdp .wp-block-woocommerce-product-price {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp__price del {
	font-size: 0.875em;
	font-weight: 400;
	text-decoration: line-through;
	margin-left: 0.4em;
}

.kk-pdp__price ins {
	text-decoration: none;
	color: var(--wp--preset--color--green, var(--kk-color-text-sale, #42b676));
}

.kk-pdp__excerpt,
.kk-pdp__excerpt p {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 400;
	color: var(--wp--preset--color--muted, var(--kk-color-muted, #676767));
}

.kk-pdp__excerpt p {
	margin: 0 0 0.5rem;
}

.kk-pdp__excerpt p:last-of-type {
	margin-bottom: 0;
}

.kk-pdp__excerpt .wp-block-post-excerpt__more-text {
	margin-top: 0.35rem;
	margin-bottom: 0;
}

.kk-pdp__excerpt .wp-block-post-excerpt__more-link {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	font-weight: 400;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.kk-pdp__excerpt .wp-block-post-excerpt__more-link:hover,
.kk-pdp__excerpt .wp-block-post-excerpt__more-link:focus-visible {
	color: var(--wp--preset--color--ink-soft, #3c3c3b);
}

#kk-pdp-description {
	scroll-margin-top: calc(var(--kk-header-height, 108px) + var(--wp--preset--spacing--40, 1rem));
}

/* Gallery — thumbs left of the main image.
   Thumb column height = 1:1 main image (gallery width − thumbs − gap),
   via container query units so it cannot circular-collapse on mobile.
   Inner __scrollable overflows; Woo auto-scrolls the active thumb
   (actions.selectImage → scrollTo) and fades via --overflow-top/bottom. */
.kk-pdp__gallery.wc-block-product-gallery,
.kk-pdp .wc-block-product-gallery {
	--kk-pdp-thumb: 6rem;
	--kk-pdp-gallery-gap: 0.75rem;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto;
	align-items: start;
	gap: var(--kk-pdp-gallery-gap);
	width: 100%;
	container-type: inline-size;
}

.kk-pdp__gallery.wc-block-product-gallery:has(.wc-block-product-gallery-thumbnails),
.kk-pdp .wc-block-product-gallery:has(.wc-block-product-gallery-thumbnails) {
	grid-template-columns: var(--kk-pdp-thumb) minmax(0, 1fr);
}

.kk-pdp .wc-block-product-gallery-thumbnails {
	display: flex;
	flex-direction: column;
	flex: none;
	width: var(--kk-pdp-thumb);
	max-width: var(--kk-pdp-thumb);
	aspect-ratio: auto !important;
	height: calc(100cqi - var(--kk-pdp-thumb) - var(--kk-pdp-gallery-gap));
	max-height: calc(100cqi - var(--kk-pdp-thumb) - var(--kk-pdp-gallery-gap));
	overflow: hidden;
	align-self: start;
	order: 0;
}

.kk-pdp .wc-block-product-gallery-thumbnails__scrollable {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: stretch;
	gap: 0.75rem;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.kk-pdp .wc-block-product-gallery-thumbnails__scrollable::-webkit-scrollbar {
	display: none;
}

.kk-pdp .wc-block-product-gallery-thumbnails__thumbnail {
	flex: 0 0 var(--kk-pdp-thumb);
	box-sizing: border-box;
	width: var(--kk-pdp-thumb);
	height: var(--kk-pdp-thumb);
	min-width: var(--kk-pdp-thumb);
	max-width: var(--kk-pdp-thumb);
}

.kk-pdp .wc-block-product-gallery-thumbnails__thumbnail__image {
	box-sizing: border-box;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover;
	border-radius: 6px;
}

.kk-pdp .wc-block-product-gallery-thumbnails--active-outline .wc-block-product-gallery-thumbnails__thumbnail__image--is-active {
	border-color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp .wc-block-product-gallery-large-image,
.kk-pdp .wp-block-woocommerce-product-gallery-large-image {
	flex: none;
	min-width: 0;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--white, #ffffff);
}

.kk-pdp .wc-block-product-gallery-large-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
	cursor: zoom-in;
}

.kk-pdp dialog.wc-block-product-gallery-dialog {
	display: none !important;
}

.pswp {
	z-index: 100060;
}

.kk-pdp .wc-block-next-previous-buttons {
	display: none;
}

/* Quantity + add to cart */
.kk-pdp .wp-block-woocommerce-add-to-cart-form,
.kk-pdp .wc-block-add-to-cart-form {
	width: 100%;
	max-width: 100%;
}

/* Figma PDP has no remaining-qty line. Keep .out-of-stock. */
.kk-pdp p.stock.in-stock,
.kk-pdp .woocommerce-variation-availability .stock.in-stock {
	display: none !important;
}

.kk-pdp .wp-block-woocommerce-add-to-cart-form form.cart,
.kk-pdp .wc-block-add-to-cart-form form.cart,
.kk-pdp form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.75rem;
	width: 100%;
	margin: 0 !important;
}

.kk-pdp .wp-block-woocommerce-add-to-cart-form form.cart:before,
.kk-pdp .wp-block-woocommerce-add-to-cart-form form.cart > :not(.quantity):not(.single_add_to_cart_button) {
	flex: 1 1 100%;
}

.kk-pdp .wp-block-woocommerce-add-to-cart-form > * + *,
.kk-pdp .wc-block-add-to-cart-form > * + * {
	margin-top: 0;
	padding: 0;
}

.kk-pdp .quantity {
	display: flex;
	align-items: stretch;
	align-self: stretch;
	margin: 0 !important;
	position: relative;
}

.kk-pdp .quantity > label,
.kk-pdp .quantity .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}

/* Cart pill chrome; height follows the ATC button */
.kk-pdp .wc-block-components-quantity-selector,
.kk-pdp form.cart .quantity.wc-block-components-quantity-selector {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	align-self: stretch;
	box-sizing: border-box;
	width: 6.25rem !important;
	min-width: 6.25rem !important;
	max-width: 6.25rem !important;
	height: auto !important;
	min-height: 0;
	margin: 0 !important;
	border: 1px solid var(--wp--preset--color--hairline, #dddddd) !important;
	border-radius: 999px !important;
	background: #fff !important;
	overflow: hidden;
}

.kk-pdp .wc-block-components-quantity-selector input.qty,
.kk-pdp .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
	font-weight: 500;
	min-width: 1.75rem;
	padding: 0 !important;
	color: var(--wp--preset--color--ink, #1c1c1c);
	background: transparent;
	box-shadow: none !important;
	outline: none !important;
}

.kk-pdp .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	color: var(--wp--preset--color--ink, #1c1c1c);
	min-width: 1.75rem;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent;
	opacity: 1;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 0.875rem;
}

.kk-pdp .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.kk-pdp .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus,
.kk-pdp .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible,
.kk-pdp .wc-block-components-quantity-selector input.qty:focus,
.kk-pdp .wc-block-components-quantity-selector input.qty:focus-visible,
.kk-pdp .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus,
.kk-pdp .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus-visible {
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	opacity: 1;
}

/* Theme pill: white fill, no border, ink → cream on hover — hug the label */
.kk-pdp .single_add_to_cart_button.wp-element-button,
.kk-pdp .single_add_to_cart_button {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0.75rem 1.5rem;
	border: 0 !important;
	border-radius: 999px;
	background: var(--wp--preset--color--white, #ffffff) !important;
	color: var(--wp--preset--color--ink, #1c1c1c) !important;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.2;
	box-shadow: none;
	min-height: 0;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.kk-pdp .single_add_to_cart_button:hover,
.kk-pdp .single_add_to_cart_button:focus,
.kk-pdp .single_add_to_cart_button:focus-visible {
	background: var(--wp--preset--color--ink, #1c1c1c) !important;
	color: var(--wp--preset--color--cream, #f2f0eb) !important;
	border: 0 !important;
}

/* Vertical product tabs — Figma node 36-8980 + docs/design-refs/product/website.png */
.kk-pdp__accordion-col:not(:has(.wp-block-woocommerce-accordion-item)) {
	display: none;
}

.kk-pdp__accordion.wp-block-woocommerce-accordion-group {
	--kk-pdp-tab-gap: var(--kk-pdp-col-gap);
	display: grid;
	grid-template-columns: minmax(0, var(--kk-pdp-col-left)) minmax(0, var(--kk-pdp-col-right));
	column-gap: var(--kk-pdp-tab-gap);
	row-gap: 0;
	grid-auto-rows: max-content;
	align-items: start;
	align-content: start;
	position: relative;
	/* Open panel may be taller than the nav; grow without stretching rows */
	min-height: var(--kk-pdp-tabs-panel-height, 0px);
}

.kk-pdp .wp-block-woocommerce-accordion-item {
	display: contents !important;
	border: 0;
	grid-template-rows: none !important;
	transition: none !important;
}

.kk-pdp .accordion-item__heading,
.kk-pdp .wp-block-woocommerce-accordion-header {
	grid-column: 1;
	align-self: start;
	height: max-content;
	margin: 0;
	border-top: 1px solid var(--wp--preset--color--hairline, #dddddd);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp .wp-block-woocommerce-accordion-item:last-child .accordion-item__heading,
.kk-pdp .wp-block-woocommerce-accordion-item:last-child .wp-block-woocommerce-accordion-header {
	border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
}

.kk-pdp .accordion-item__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	min-height: 3.5rem;
	padding: 0.875rem 0;
	text-align: left;
}

.kk-pdp .accordion-item__toggle > span:first-child {
	width: auto;
	flex: 1 1 auto;
}

/* Shop pagination arrow (injected in functions.php) */
.kk-pdp .accordion-item__toggle .kk-shop__pagination-arrow,
.kk-pdp .accordion-item__toggle-icon.kk-shop__pagination-arrow {
	flex: 0 0 17px;
	width: 17px;
	height: 15px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--ink, #1c1c1c);
	transform: none !important;
	transition: none;
	line-height: 0;
}

.kk-pdp .accordion-item__toggle .kk-shop__pagination-arrow svg {
	display: block;
	width: 100%;
	height: 100%;
}

/* Panels sit in the right column without affecting left row heights */
.kk-pdp .wp-block-woocommerce-accordion-panel {
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	grid-column: auto;
	grid-row: auto;
	/* Match content column: 3fr of (4fr + 3fr) after gap */
	width: calc((100% - var(--kk-pdp-tab-gap)) * 3 / 7);
	display: none !important;
	overflow: visible !important;
	margin: 0 !important;
}

.kk-pdp .wp-block-woocommerce-accordion-item.is-open .wp-block-woocommerce-accordion-panel {
	display: block !important;
}

.kk-pdp__tab-panel-title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-size: var(--wp--preset--font-size--x-large, 1.75rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp .accordion-content__wrapper,
.kk-pdp .kk-pdp__fact,
.kk-pdp .zoo-product-tab,
.kk-pdp .zoo-product-tab p {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp .accordion-content__wrapper {
	padding: 0;
}

.kk-pdp .accordion-content__wrapper > .zoo-product-tab > *:first-child,
.kk-pdp .accordion-content__wrapper > .kk-pdp__fact:empty + *,
.kk-pdp .zoo-product-tab p:first-child {
	margin-top: 0;
}

.kk-pdp__description-title {
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-weight: 500;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp__description,
.kk-pdp__description p {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-pdp__description p:first-child {
	margin-top: 0;
}

.kk-pdp__related-title {
	width: 100%;
}

.kk-pdp .kk-home-trust {
	padding-top: var(--wp--preset--spacing--70, 3rem);
	padding-bottom: var(--wp--preset--spacing--70, 3rem);
}

@media (max-width: 781px) {
	.kk-pdp {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
		gap: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-pdp .kk-home-trust {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-pdp__layout {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--wp--preset--spacing--60, 2rem);
	}

	.kk-pdp__left,
	.kk-pdp__right {
		display: contents;
	}

	.kk-pdp__gallery-col {
		order: 1;
	}

	.kk-pdp__buy-col {
		order: 2;
	}

	.kk-pdp__description-col {
		order: 3;
	}

	.kk-pdp__accordion-col {
		order: 4;
	}

	.kk-pdp__accordion.wp-block-woocommerce-accordion-group {
		--kk-pdp-tab-count: 3;
		display: grid;
		grid-template-columns: repeat(var(--kk-pdp-tab-count), minmax(0, 1fr));
		grid-template-rows: auto auto;
		flex-direction: unset;
		flex-wrap: unset;
		column-gap: 0;
		row-gap: 0;
		min-height: 0;
		align-items: stretch;
		align-content: start;
	}

	.kk-pdp .wp-block-woocommerce-accordion-item {
		display: contents !important;
		grid-template-rows: none !important;
		border: 0;
	}

	.kk-pdp .accordion-item__heading,
	.kk-pdp .wp-block-woocommerce-accordion-header {
		grid-row: 1;
		grid-column: auto;
		flex: none;
		order: 0;
		width: auto;
		min-width: 0;
		height: auto;
		border-top: 0;
		border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	}

	.kk-pdp .wp-block-woocommerce-accordion-item:last-child .accordion-item__heading,
	.kk-pdp .wp-block-woocommerce-accordion-item:last-child .wp-block-woocommerce-accordion-header {
		border-bottom: 1px solid var(--wp--preset--color--hairline, #dddddd);
	}

	.kk-pdp .wp-block-woocommerce-accordion-item.is-open .accordion-item__heading,
	.kk-pdp .wp-block-woocommerce-accordion-item.is-open .wp-block-woocommerce-accordion-header {
		border-bottom-color: var(--wp--preset--color--ink, #1c1c1c);
		border-bottom-width: 2px;
	}

	.kk-pdp .accordion-item__toggle {
		justify-content: center;
		gap: 0;
		min-height: 2.75rem;
		padding: 0.75rem 0.25rem;
		text-align: center;
	}

	.kk-pdp .accordion-item__toggle > span:first-child {
		flex: 0 1 auto;
		width: auto !important;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.kk-pdp .accordion-item__toggle .kk-shop__pagination-arrow,
	.kk-pdp .accordion-item__toggle-icon {
		display: none !important;
	}

	.kk-pdp .wp-block-woocommerce-accordion-panel {
		position: static;
		top: auto;
		right: auto;
		left: auto;
		width: auto;
		flex: none;
		order: 0;
		grid-row: 2;
		grid-column: 1 / -1;
		display: none !important;
		overflow: visible !important;
	}

	.kk-pdp .wp-block-woocommerce-accordion-item.is-open .wp-block-woocommerce-accordion-panel {
		display: block !important;
	}

	.kk-pdp .wp-block-woocommerce-accordion-item:not(.is-open) .wp-block-woocommerce-accordion-panel {
		visibility: visible;
	}

	.kk-pdp__tab-panel-title {
		display: none;
	}

	.kk-pdp .accordion-content__wrapper {
		padding-top: 1.25rem;
		padding-bottom: 0;
	}

	.kk-pdp__gallery.wc-block-product-gallery,
	.kk-pdp .wc-block-product-gallery {
		--kk-pdp-thumb: 4.5rem;
	}
}

/* -------------------------------------------------------------------------
   À propos page (templates/page-a-propos.html)
   Figma bXurq5cVqXjHiPqK8vdJpe node 530-3753 (canonical, verified per-node 2026-08-25).
   Content width 1066px. Sections own their vertical rhythm; main wrapper stays
   padding-free. Clean per-node asset exports live in assets/images/about/;
   decorative doodles are CSS overlays (relative url() from this stylesheet).
   ------------------------------------------------------------------------- */

.kk-about {
	width: 100%;
}

/* Body copy is Host Grotesk Light (300) per Figma — the woff2 axis reaches 300,
   unlocked by widening the theme.json fontWeight range to "300 700". */
.kk-about p {
	font-weight: 300;
}

/* CTAs inherit global regular weight (400). */

/* Shared visual boxes (portrait / collage) carry decorative overlays */
.kk-about-hero__visual,
.kk-about-future__visual {
	position: relative;
	margin: 0;
	overflow: visible;
}

.kk-about-hero__visual img,
.kk-about-future__visual img {
	display: block;
	width: 100%;
	height: auto;
}

.kk-about-hero__visual::before,
.kk-about-hero__visual::after,
.kk-about-future__visual::before,
.kk-about-future__visual::after {
	content: "";
	position: absolute;
	background: no-repeat center / contain;
	pointer-events: none;
}

/* ===== Hero ===== */
.kk-about-hero .wp-block-columns {
	gap: 47px;
	align-items: flex-start;
}

.wp-block-column.kk-about-hero__media {
	flex: 0 0 325px;
	max-width: 325px;
}

.wp-block-column.kk-about-hero__body {
	flex: 1 1 auto;
	max-width: 560px;
}

/* Portrait cropped to the mock's 325×385 frame */
.kk-about-hero__visual img {
	aspect-ratio: 325 / 385;
	object-fit: cover;
	border-radius: 8px;
}

.kk-about-hero__title {
	color: var(--kk-color-ink, #1c1c1c);
}

/* Blue flower, top-right of the portrait */
.kk-about-hero__visual::before {
	background-image: url("assets/images/about/hero-flower.webp");
	width: 22.2%;
	aspect-ratio: 72 / 67;
	left: 70.8%;
	top: -7.3%;
}

/* Orange star, bottom-left of the portrait */
.kk-about-hero__visual::after {
	background-image: url("assets/images/about/hero-star.webp");
	width: 37.5%;
	aspect-ratio: 122 / 111;
	left: 7.1%;
	top: 84%;
}

/* ===== Quote band (full-bleed sky) ===== */
.kk-about-quote .wp-block-columns {
	gap: 80px;
	align-items: flex-start;
}

.wp-block-column.kk-about-quote__lead {
	flex: 0 0 371px;
	max-width: 371px;
}

.wp-block-column.kk-about-quote__body {
	flex: 1 1 auto;
	max-width: 502px;
}

.kk-about-quote__quote {
	margin: 0;
	color: var(--kk-color-ink, #1c1c1c);
}

/* ===== Ma philosophie ===== */
.kk-about-philo__title {
	text-align: left;
	color: var(--kk-color-ink, #1c1c1c);
}

.kk-about-philo__cards {
	gap: 51px;
}

.kk-about-philo .wp-block-column.is-vertically-aligned-stretch {
	align-self: stretch;
}

.kk-about-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 300px;
	/* Neutralise a stray -96px logical margin WP applies to the middle
	   flex-column child; keep each card inside its own column. */
	margin: 0 !important;
	width: 100%;
	max-width: 100%;
	/* Figma: white #fff at 40% opacity over cream (behind the text only) */
	background-color: rgba(255, 255, 255, 0.4);
	border-radius: 8px;
}

.kk-about-card__title {
	text-align: left;
}

.kk-about-card__icon {
	margin: var(--wp--preset--spacing--50, 1.5rem) 0 0;
	margin-top: auto;
}

.kk-about-card__icon img {
	display: block;
	width: 5rem;
	height: auto;
}

/* ===== Et demain ? ===== */
.kk-about-future .wp-block-columns {
	gap: 57px;
	align-items: center;
}

.wp-block-column.kk-about-future__media {
	flex: 0 0 325px;
	max-width: 325px;
}

.wp-block-column.kk-about-future__body {
	flex: 1 1 auto;
	max-width: 554px;
}

.kk-about-future__quote {
	color: var(--kk-color-ink, #1c1c1c);
}

/* Pink flower, lower-left over the collage */
.kk-about-future__visual::before {
	background-image: url("assets/images/about/future-flower-pink.webp");
	width: 38.8%;
	aspect-ratio: 123 / 115;
	left: 5.4%;
	top: 65.4%;
}

/* Blue flower, upper-right over the collage */
.kk-about-future__visual::after {
	background-image: url("assets/images/about/future-flower-blue.webp");
	width: 31.5%;
	aspect-ratio: 100 / 113;
	left: 72.9%;
	top: -12.4%;
}

/* ===== Mobile ===== */
@media (max-width: 781px) {
	/* Main wrapper must not add the generic .kk-page mobile padding —
	   the About sections carry their own vertical rhythm. */
	.kk-about.kk-page {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.kk-about-hero,
	.kk-about-quote,
	.kk-about-philo,
	.kk-about-future {
		padding-top: var(--wp--preset--spacing--60, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--60, 2rem) !important;
	}

	.kk-about-hero .wp-block-columns,
	.kk-about-quote .wp-block-columns,
	.kk-about-future .wp-block-columns {
		gap: var(--wp--preset--spacing--50, 1.5rem);
	}

	/* Stacked columns go full width; visuals center under their text */
	.wp-block-column.kk-about-hero__media,
	.wp-block-column.kk-about-hero__body,
	.wp-block-column.kk-about-quote__lead,
	.wp-block-column.kk-about-quote__body,
	.wp-block-column.kk-about-future__media,
	.wp-block-column.kk-about-future__body {
		flex-basis: 100%;
		max-width: 100%;
	}

	.wp-block-column.kk-about-hero__media,
	.wp-block-column.kk-about-future__media {
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
	}

	.kk-about-philo__cards {
		gap: var(--wp--preset--spacing--50, 1.5rem);
	}

	.kk-about-card {
		min-height: 0;
	}

	.kk-about-card__icon {
		margin-top: var(--wp--preset--spacing--50, 1.5rem);
	}
	.kk-about-hero__visual img {
		margin-bottom: 32px;
	}
}

/* -------------------------------------------------------------------------
   Contact + global CF7 forms — DS tokens (no Contact Figma frame)
   Page column 557px; fields = white card + 8px radius; submit = theme pill.
   ------------------------------------------------------------------------- */

.kk-contact .wp-block-post-content {
	max-width: 557px;
	width: 100%;
	margin-inline: auto;
}

.kk-contact .wp-block-post-content > .wp-block-paragraph {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.wpcf7,
.kk-form {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
}

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

.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
	word-break: normal !important;
}

.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 form {
	margin: 0;
}

.wpcf7 form p {
	margin: 0 0 var(--wp--preset--spacing--50, 1.5rem);
}

.wpcf7 form p:last-of-type {
	margin-bottom: 0;
}

.wpcf7 label {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: var(--wp--preset--font-size--medium, 1rem);
	font-weight: 400;
	line-height: 1.45;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.wpcf7 label br {
	display: none;
}

.wpcf7-form-control-wrap {
	position: relative;
	display: block;
	width: 100%;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="password"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--hairline, #dddddd);
	border-radius: 8px;
	background: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #1c1c1c);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: var(--wp--preset--font-size--medium, 1rem);
	font-weight: 400;
	line-height: 1.45;
	appearance: none;
}

.wpcf7 textarea {
	min-height: 8rem;
	resize: vertical;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: var(--kk-color-text-placeholder, #9a9a9a);
	opacity: 1;
}

.wpcf7 input:focus,
.wpcf7 input:focus-visible,
.wpcf7 select:focus,
.wpcf7 select:focus-visible,
.wpcf7 textarea:focus,
.wpcf7 textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--ink, #1c1c1c);
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid {
	border-color: var(--wp--preset--color--orange, #ff5b23);
}

.wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.35rem;
	color: var(--wp--preset--color--orange, #ff5b23);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 400;
	line-height: 1.4;
}

.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0.75rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #1c1c1c);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 .wpcf7-submit:hover,
.wpcf7 .wpcf7-submit:focus,
.wpcf7 .wpcf7-submit:focus-visible {
	background: var(--wp--preset--color--ink, #1c1c1c);
	color: var(--wp--preset--color--cream, #f2f0eb);
	outline: none;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.wpcf7 form .wpcf7-response-output {
	margin: var(--wp--preset--spacing--50, 1.5rem) 0 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--hairline, #dddddd);
	border-radius: 8px;
	background: var(--wp--preset--color--white, #ffffff);
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	font-size: var(--wp--preset--font-size--medium, 1rem);
	line-height: 1.45;
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--wp--preset--color--green, #42b676);
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: var(--wp--preset--color--orange, #ff5b23);
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0 0 0 0.75rem;
	padding: 0;
	border: none;
	border-radius: 100%;
	background-color: var(--wp--preset--color--ink, #1c1c1c);
	opacity: 0.75;
	vertical-align: middle;
	position: relative;
}

form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7-spinner::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 5px;
	height: 5px;
	border: none;
	border-radius: 100%;
	background-color: var(--wp--preset--color--cream, #f2f0eb);
	transform-origin: 7px 7px;
	animation-name: kk-wpcf7-spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-spinner::before {
		animation-name: kk-wpcf7-blink;
		animation-duration: 2000ms;
	}
}

@keyframes kk-wpcf7-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes kk-wpcf7-blink {
	from {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.wpcf7 [inert] {
	opacity: 0.5;
}

/* -------------------------------------------------------------------------
   Back to top — CTA atoms, bottom-right (cookie FAB is bottom-left)
   ------------------------------------------------------------------------- */
.kk-back-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 20;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	margin: 0;
	border: 1px solid var(--wp--preset--color--hairline, #dddddd);
	border-radius: 100px;
	background-color: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #1c1c1c);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		background-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		border-color var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		opacity var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		visibility var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

.kk-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.kk-back-to-top:hover,
.kk-back-to-top:focus-visible {
	background-color: var(--wp--preset--color--ink, #1c1c1c);
	color: var(--wp--preset--color--cream, #f2f0eb);
	border-color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-back-to-top:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink, #1c1c1c);
	outline-offset: 3px;
}

.kk-back-to-top .kk-shop__pagination-arrow {
	display: block;
	width: 17px;
	height: 15px;
	line-height: 0;
	transform: rotate(-90deg);
}

.kk-back-to-top .kk-shop__pagination-arrow svg {
	display: block;
	width: 100%;
	height: 100%;
}

@media (prefers-reduced-motion: reduce) {
	.kk-back-to-top {
		transition: none;
	}
}

@media print {
	.kk-back-to-top {
		display: none;
	}
}

/* -------------------------------------------------------------------------
   Tarteaucitron icon — reverse of back-to-top: visible at top, hide after scroll
   Node is injected by TAC Cloud; theme only styles #tarteaucitronIcon.
   ------------------------------------------------------------------------- */
#tarteaucitronIcon {
	transition:
		opacity var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out),
		visibility var(--kk-duration-fade, 300ms) var(--kk-easing-standard, ease-in-out);
}

html.kk-scrolled #tarteaucitronIcon {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

@media (prefers-reduced-motion: reduce) {
	#tarteaucitronIcon {
		transition: none;
	}
}

/* -------------------------------------------------------------------------
   Coming soon — Woo LYS template, theme-owned (logo only, FR copy, no login)
   ------------------------------------------------------------------------- */

.kk-coming-soon,
.woocommerce-coming-soon-default.kk-coming-soon {
	font-family: var(--wp--preset--font-family--host-grotesk, "Host Grotesk", sans-serif);
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-coming-soon__header {
	width: 100%;
}

.kk-coming-soon__logo .custom-logo-link,
.kk-coming-soon__logo img,
.kk-coming-soon__logo .custom-logo {
	display: block;
	max-height: 71px;
	width: auto;
	height: auto;
}

.kk-coming-soon__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--hepta-slab, "Hepta Slab", serif);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink, #1c1c1c);
	text-wrap: balance;
}

.kk-coming-soon__tagline {
	margin: 0;
	font-weight: 300;
	color: var(--wp--preset--color--ink, #1c1c1c);
}

.kk-coming-soon .wp-block-loginout,
.kk-coming-soon .wp-block-site-title {
	display: none;
}

