/* KEVIN.MURPHY shop experience – modelled on kevinmurphy.com.au. Fonts inherit from the theme. */
body.kmx {
	--kx-ink: #0d0d0d;
	--kx-muted: #77716a;
	--kx-line: #e2ddd6;
	--kx-tile: #f6f4f0;
	--kx-ease: cubic-bezier(.16, .84, .24, 1);
	--kx-pad: clamp(16px, 2.2vw, 40px);
}

/* ---------- full width ---------- */
body.kmx .container-wrap > .container.main-content,
body.kmx .container-wrap .container.main-content { max-width: none !important; width: 100% !important; padding-left: var(--kx-pad) !important; padding-right: var(--kx-pad) !important; }

/* =========================================================
 * CATEGORY / SHOP
 * ======================================================= */
body.kmx-plp .nectar-shop-header { display: flex; justify-content: flex-end; align-items: center; gap: 18px; margin: 0 0 18px; }
body.kmx-plp .woocommerce-result-count { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--kx-muted); margin: 0; }
body.kmx-plp .woocommerce-ordering select { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--kx-line); background: transparent; padding: 8px 12px; border-radius: 0; }
body.kmx-plp h1 { font-size: clamp(26px, 2.6vw, 40px) !important; font-weight: 400 !important; letter-spacing: -.01em; text-transform: none; margin: 8px 0 12px !important; }
body.kmx-plp .term-description, body.kmx-plp .term-description p { max-width: 70ch; font-size: 14px; line-height: 1.6; color: var(--kx-muted); }

/* step filter */
.kmx-steps { margin: 6px 0 22px; padding: 14px 0; border-top: 1px solid var(--kx-line); border-bottom: 1px solid var(--kx-line); background: #fff; }
.kmx-steps__label { margin: 0 0 10px; font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: var(--kx-muted); }
.kmx-steps__label span { letter-spacing: .08em; text-transform: none; font-size: 12px; }
.kmx-steps ul { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.kmx-steps ul::-webkit-scrollbar { display: none; }
.kmx-steps li { margin: 0; padding: 0; list-style: none; flex: 0 0 auto; }
.kmx-steps li::before { display: none; }
.kmx-chip {
	display: inline-flex; align-items: baseline; gap: 7px; padding: 9px 16px; border: 1px solid var(--kx-line); border-radius: 40px;
	font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--kx-ink) !important; text-decoration: none !important; white-space: nowrap;
	transition: border-color .2s, background .2s, color .2s;
}
.kmx-chip span { font-size: 13px; font-weight: 300; letter-spacing: 0; opacity: .6; }
.kmx-chip sup { font-size: 9px; letter-spacing: 0; opacity: .55; top: -.5em; }
.kmx-chip:hover { border-color: var(--kx-ink); }
.kmx-chip.is-on { background: var(--kx-ink); border-color: var(--kx-ink); color: #fff !important; }
.kmx-chip.is-on span, .kmx-chip.is-on sup { opacity: .8; }

/* need-ritual, folded */
details.kmrt--need { margin: 0 0 26px; padding: 0; background: transparent; }
details.kmrt--need > summary { list-style: none; cursor: pointer; padding: 14px 0; margin: 0; border-bottom: 1px solid var(--kx-line); font-size: 14px; }
details.kmrt--need > summary::-webkit-details-marker { display: none; }
details.kmrt--need > summary::after { content: "+"; float: right; font-weight: 300; font-size: 18px; line-height: 1; }
details.kmrt--need[open] > summary::after { content: "–"; }
details.kmrt--need .kmrt-need { padding: 14px 0 0; }

/* grid */
body.kmx-plp.woocommerce ul.products[class] {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 20px !important;
	margin: 0 0 60px !important; padding: 0 !important; width: 100% !important;
}
body.kmx-plp ul.products::before, body.kmx-plp ul.products::after { display: none !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] {
	position: relative; width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important;
	background: none !important; box-shadow: none !important; border: 0 !important;
}
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .background-color-expand { display: none !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .product-wrap { position: static; display: block; background: none !important; padding: 0 !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .product-wrap > a:first-child,
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-media {
	position: relative; display: block; aspect-ratio: 615 / 826; background: var(--kx-tile); overflow: hidden; margin: 0 !important;
}
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .product-wrap > a:first-child img {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain; padding: 9% 10%; margin: 0 !important;
	mix-blend-mode: multiply; transition: transform 1.1s var(--kx-ease); max-width: none !important;
}
body.kmx-plp.woocommerce ul.products[class] > li.product[class]:hover .product-wrap > a:first-child img { transform: scale(1.045); }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .product-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 12px; padding: 10px 0 0 !important; text-align: left !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .product-meta > a { grid-column: 1; min-width: 0; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .woocommerce-loop-product__title {
	margin: 0 !important; padding: 0 !important; font-size: 12px !important; line-height: 1.35 !important; font-weight: 700 !important; letter-spacing: .02em !important;
	text-transform: uppercase !important; color: var(--kx-ink) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-size { grid-column: 2; grid-row: 1; font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--kx-ink); white-space: nowrap; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .price-hover-wrap { grid-column: 1 / -1; position: static !important; transform: none !important; opacity: 1 !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .price-hover-wrap .price { display: block; margin: 2px 0 0 !important; font-size: 12px !important; color: var(--kx-muted) !important; font-weight: 400 !important; position: static !important; opacity: 1 !important; transform: none !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .price-hover-wrap .product-add-to-cart { position: static !important; opacity: 1 !important; transform: none !important; height: 0; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .nectar_quick_view { display: none !important; }

/* step badge + quick add, moved into the tile by JS */
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-media .kmrt-badge { position: absolute; left: 12px; bottom: 12px; z-index: 2; margin: 0; background: rgba(255,255,255,.85); border-color: rgba(0,0,0,.08); color: var(--kx-ink); }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add {
	position: absolute; right: 12px; bottom: 12px; z-index: 3; display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px;
	background: var(--kx-ink); color: #fff !important; border: 0; border-radius: 30px; font-family: inherit; font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
	opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .4s var(--kx-ease); cursor: pointer; text-decoration: none !important; line-height: 1;
}
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add i, body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add .screen-reader-text { display: none !important; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class]:hover .kmx-add, body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add:focus-visible { opacity: 1; transform: none; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add.loading { opacity: .6; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add.added { background: #fff; color: var(--kx-ink) !important; opacity: 1; }
body.kmx-plp.woocommerce ul.products[class] > li.product[class] .added_to_cart { display: none !important; }
@media (hover: none) { body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add { opacity: 1; transform: none; } }

/* video tile */
body.kmx-plp.woocommerce ul.products[class] > li.kmx-vtile[class] { position: relative; }
body.kmx-plp.woocommerce ul.products[class] > li.kmx-vtile[class] a { position: relative; display: block; aspect-ratio: 615 / 826; overflow: hidden; background: #d9d3cb; }
body.kmx-plp.woocommerce ul.products[class] > li.kmx-vtile[class] video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.kmx-plp.woocommerce ul.products[class] > li.kmx-vtile[class] .kmx-vtile__name { position: absolute; left: 14px; bottom: 14px; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-shadow: 0 1px 12px rgba(0,0,0,.35); }

@media (max-width: 1200px) { body.kmx-plp.woocommerce ul.products[class] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) {
	body.kmx-plp.woocommerce ul.products[class] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 10px !important; }
	body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-add { left: 8px; right: 8px; bottom: 8px; justify-content: center; padding: 0 8px; }
	body.kmx-plp.woocommerce ul.products[class] > li.product[class] .kmx-media .kmrt-badge { left: 8px; top: 8px; bottom: auto; font-size: 8.5px; letter-spacing: .1em; }
}

/* =========================================================
 * PRODUCT PAGE
 * ======================================================= */
body.kmx-pdp .nectar-prod-wrap {
	max-width: 2200px; margin-left: auto !important; margin-right: auto !important;
	display: grid !important; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.75fr) minmax(240px, .9fr); gap: clamp(24px, 3vw, 56px);
	align-items: start; margin-top: 20px;
}
body.kmx-pdp .nectar-prod-wrap::before, body.kmx-pdp .nectar-prod-wrap::after { display: none !important; }
body.kmx-pdp .nectar-prod-wrap > .single-product-main-image { grid-column: 2; grid-row: 1; width: auto !important; margin: 0 !important; float: none !important; }
body.kmx-pdp .nectar-prod-wrap > .single-product-summary { grid-column: 1; grid-row: 1; width: auto !important; margin: 0 !important; float: none !important; position: static !important; }
body.kmx-pdp .nectar-prod-wrap > .kmx-aside { grid-column: 3; grid-row: 1; position: static !important; }
body.kmx-pdp .single-product-summary .summary { padding: 0 !important; width: auto !important; }

/* hide theme gallery when ours is there */
body.kmx-pdp .single-product-main-image:has(.kmg) .woocommerce-product-gallery { display: none !important; }

/* left column */
body.kmx-pdp .product_title { font-size: clamp(22px, 1.9vw, 30px) !important; line-height: 1.12 !important; font-weight: 700 !important; letter-spacing: .01em !important; text-transform: uppercase; margin: 0 0 10px !important; }
body.kmx-pdp .summary .price { font-size: 16px !important; margin: 0 0 18px !important; color: var(--kx-ink) !important; }
body.kmx-pdp .woocommerce-product-details__short-description { font-size: 14px; line-height: 1.65; color: #3a3733; margin-bottom: 22px; }

/* size chips */
body.kmx-pdp table.variations { margin: 0 0 14px !important; border: 0 !important; }
body.kmx-pdp table.variations th.label, body.kmx-pdp table.variations td.label { display: block; padding: 0 0 8px !important; font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: var(--kx-muted); font-weight: 400; }
body.kmx-pdp table.variations td.value { display: block; padding: 0 !important; }
body.kmx-pdp table.variations tr { display: block; }
body.kmx-pdp .kmx-sizes { display: flex; flex-wrap: wrap; gap: 6px; }
body.kmx-pdp .kmx-sizes button {
	min-width: 64px; padding: 9px 14px; border: 1px solid var(--kx-line); background: transparent; border-radius: 0; margin: 0; box-shadow: none;
	font-family: inherit; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--kx-ink); cursor: pointer; transition: all .2s;
}
body.kmx-pdp .kmx-sizes button:hover { border-color: var(--kx-ink); }
body.kmx-pdp .kmx-sizes button.is-on { background: var(--kx-ink); color: #fff; border-color: var(--kx-ink); }
body.kmx-pdp .kmx-sizes button[disabled] { opacity: .35; text-decoration: line-through; cursor: default; }
body.kmx-pdp .kmx-sizes-wrap select, body.kmx-pdp .kmx-sizes-wrap .select2, body.kmx-pdp .reset_variations { display: none !important; }
body.kmx-pdp .single_add_to_cart_button { width: 100%; min-height: 54px; border-radius: 0 !important; background: var(--kx-ink) !important; color: #fff !important; font-size: 11px !important; letter-spacing: .24em !important; text-transform: uppercase !important; }

/* gallery */
.kmg { position: relative; }
.kmg-stage { position: relative; height: min(78vh, 980px); min-height: 420px; background: var(--kx-tile); overflow: hidden; }
.kmg-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .6s var(--kx-ease); }
.kmg-slide.is-on { opacity: 1; z-index: 1; }
.kmg-slide img { width: 100% !important; height: 100% !important; object-fit: contain; padding: 6%; mix-blend-mode: multiply; max-width: none !important; margin: 0 !important; }
.kmg-slide:not([data-main]) img { object-fit: cover; padding: 0; mix-blend-mode: normal; }
.kmg-slide--video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.kmg-thumbs { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
.kmg-thumb { width: 52px; height: 64px; padding: 0; margin: 0; border: 1px solid transparent; background: var(--kx-tile); cursor: pointer; overflow: hidden; border-radius: 0; box-shadow: none; transition: border-color .2s; }
.kmg-thumb img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; }
.kmg-thumb.is-on { border-color: var(--kx-ink); }
.kmg-thumb--video { display: inline-flex; align-items: center; justify-content: center; background: var(--kx-ink); color: #fff; font-size: 12px; }

/* right column */
.kmx-aside { font-size: 13px; line-height: 1.6; color: #3a3733; }
.kmx-aside .kmrt { margin: 0 0 26px; }
.kmx-aside__block { padding: 0 0 22px; margin: 0 0 22px; border-bottom: 1px solid var(--kx-line); }
.kmx-aside__block:last-child { border-bottom: 0; }
.kmx-aside__title { margin: 0 0 10px !important; font-size: 10px !important; line-height: 1.4 !important; letter-spacing: .26em !important; text-transform: uppercase !important; font-weight: 400 !important; color: var(--kx-muted) !important; }
.kmx-aside__body p { margin: 0 0 10px; }
.kmx-aside__body ul { margin: 0 0 10px; padding-left: 18px; }
.kmx-ing { margin: 0 0 12px; aspect-ratio: 4 / 3; overflow: hidden; background: var(--kx-tile); }
.kmx-ing img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; }

/* tabs + related below, kept to a readable width */
body.kmx-pdp .woocommerce-tabs { max-width: 900px; margin-left: auto; margin-right: auto; }

@media (max-width: 1100px) {
	body.kmx-pdp .nectar-prod-wrap { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
	body.kmx-pdp .nectar-prod-wrap > .single-product-main-image { grid-column: 1; grid-row: 1 / span 2; }
	body.kmx-pdp .nectar-prod-wrap > .single-product-summary { grid-column: 2; grid-row: 1; position: static; }
	body.kmx-pdp .nectar-prod-wrap > .kmx-aside { grid-column: 2; grid-row: 2; position: static; }
}
@media (max-width: 760px) {
	body.kmx-pdp .nectar-prod-wrap { grid-template-columns: minmax(0, 1fr); gap: 22px; }
	body.kmx-pdp .nectar-prod-wrap > .single-product-main-image { grid-column: 1; grid-row: auto; margin: 0 calc(-1 * var(--kx-pad)) !important; }
	body.kmx-pdp .nectar-prod-wrap > .single-product-summary, body.kmx-pdp .nectar-prod-wrap > .kmx-aside { grid-column: 1; grid-row: auto; }
	.kmg-stage { height: auto; min-height: 0; aspect-ratio: 4 / 5; }
}

/* no jump while JS moves the aside and the ritual into place */
body.kmx-pdp .single-product-summary .kmx-aside,
body.kmx-pdp .single-product-summary .kmrt { visibility: hidden; height: 0; overflow: hidden; margin: 0; padding: 0; }
@media (max-width: 760px) { body.kmx-pdp .single-product-summary .kmrt { visibility: visible; height: auto; overflow: visible; margin: 20px 0; padding: 18px 14px; } }

/* Typography aligned with kevinmurphy.no (Inter): see matchmaker.css. */
body.kmx-plp h1 { font-weight: 700 !important; letter-spacing: 0; }
.kmx-chip { font-weight: 500; letter-spacing: 2.5px; font-size: 12px; }
.kmx-chip span { font-weight: 700; opacity: .5; }
.kmx-steps__label, .kmx-aside__title { font-weight: 700 !important; letter-spacing: 1px !important; font-size: 11px !important; }
.kmx-add, button.kmx-add, a.kmx-add { font-size: 12px !important; font-weight: 500 !important; letter-spacing: 2.5px !important; }
.kmx-sizes button { font-weight: 500; letter-spacing: 1px; }
.kmx-steps__label span, .kmrt .kmrt-title span { font-weight: 400; letter-spacing: 0; }
