/* ==========================================================================
   Kanala Kickz: shop (cards, listing, refine, product page, bag, checkout)
   ========================================================================== */

/* ---------- Product grid + card ---------- */
.grid--products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px) clamp(12px, 1.6vw, 24px); }
@media (max-width: 1099px) { .grid--products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 699px) { .grid--products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; } }
.grid--products.is-large { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1099px) { .grid--products.is-large { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 699px) { .grid--products.is-large { grid-template-columns: minmax(0, 1fr); } }

.card { position: relative; display: grid; align-content: start; gap: 14px; min-width: 0; }
.card::before { content: none; }
.card__media { position: relative; aspect-ratio: 1; background: var(--ink-2); overflow: hidden; }
/* The lit tile: a pool of light where the pair stands, an LED edge at the foot. */
.card.is-cut .card__media { background: radial-gradient(64% 36% at 50% 76%, rgba(255, 255, 255, .11), transparent 72%), linear-gradient(180deg, var(--ink-2), var(--ink-3)); }
.card.is-cut .card__media::after { content: ""; position: absolute; left: 10%; right: 10%; bottom: 0; height: 2px; background: var(--led); box-shadow: var(--glow); opacity: .65; transition: opacity var(--t2) var(--ease); }
.card__img { position: absolute; inset: 0; display: grid; place-items: center; }
.card__pic { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t3) var(--ease-out); }
.card.is-cut .card__pic { width: 84%; height: 74%; object-fit: contain; filter: drop-shadow(0 16px 12px rgba(0, 0, 0, .55)); }
.card:hover .card__pic { transform: scale(1.035); }
.card.is-cut:hover .card__pic { transform: translateY(-8px) rotate(-3deg); }
.card.is-cut:hover .card__media::after { opacity: 1; }
.card__noimg { font: 800 1.5rem/1 var(--f-display); text-transform: uppercase; color: var(--dim); }
.card__flag { position: absolute; left: 10px; top: 10px; padding: 6px 9px; background: var(--ink); border: 1px solid var(--line-2); font: 700 10px/1 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--text); }
.card__flag--sale { background: var(--chrome-hi); color: var(--ink); border-color: var(--chrome-hi); }
.card.outofstock .card__pic { filter: grayscale(1) brightness(.75); }
.card.is-cut.outofstock .card__pic { filter: grayscale(1) brightness(.75) drop-shadow(0 16px 12px rgba(0, 0, 0, .55)); }
.card__mine { position: absolute; left: 10px; bottom: 10px; display: none; padding: 6px 9px; background: var(--chrome-hi); color: var(--ink); font: 700 10px/1 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; }
.card.is-mine .card__mine { display: block; }
.card.is-mine .card__mine::before { content: attr(data-label); }
.card__body { display: grid; gap: 4px; }
.card__line { font: 700 var(--fs-xs)/1.2 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--dim); }
.card__name { font: 800 clamp(1.25rem, 1.1rem + .4vw, 1.5rem)/1 var(--f-display); text-transform: uppercase; letter-spacing: .005em; }
.card__name a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__colour { font-size: var(--fs-sm); color: var(--muted); }
.card__w { color: var(--dim); }
.card .price { margin-top: 4px; }

/* Price */
.price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; font: 800 1.35rem/1 var(--f-display); letter-spacing: .02em; color: var(--text); }
.price__from { font: 600 var(--fs-xs)/1 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--dim); }
.price__was { font: 600 var(--fs-sm)/1 var(--f-sans); color: var(--dim); }
.price--ask { font: 600 var(--fs-sm)/1.2 var(--f-sans); color: var(--muted); }

/* Saved heart */
.wish { position: absolute; right: 8px; top: 8px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--muted); transition: color var(--t1) var(--ease), transform var(--t1) var(--ease); }
.wish:hover { color: var(--text); }
.wish .ic { width: 20px; height: 20px; }
.wish[aria-pressed="true"] { color: var(--text); }
.wish[aria-pressed="true"] .ic { fill: currentColor; }
.wish.is-pop { animation: kk-pop .45s var(--ease-out); }
@keyframes kk-pop { 40% { transform: scale(1.25); } }
.wish--label { position: static; width: auto; height: auto; min-height: 44px; display: inline-flex; gap: 10px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: var(--radius); font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; }

/* ---------- Listing ---------- */
.shop-head { padding-block: clamp(28px, 4vw, 56px) 20px; }
.shop-head__title, .cat-hero__title { font: 800 var(--fs-h1)/.9 var(--f-display); text-transform: uppercase; }
.shop-head__text, .cat-hero__text { max-width: 60ch; margin-top: 14px; color: var(--muted); }
.cat-hero { position: relative; display: grid; align-items: end; min-height: 360px; overflow: hidden; isolation: isolate; }
.cat-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.cat-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--ink) 0%, rgba(11, 11, 12, .4) 100%); }
.cat-hero__inner { padding-block: 40px 28px; }
.crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; font: 600 var(--fs-xs)/1.4 var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
.crumbs a:hover { color: var(--text); }
.crumbs .sep { color: var(--line-2); }

.shop { padding-bottom: var(--space-s); }
.shop.is-loading { opacity: .55; pointer-events: none; transition: opacity var(--t1) var(--ease); }
.subcats { margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.subcats ul { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.subcats ul::-webkit-scrollbar { display: none; }
.subcats a { position: relative; display: inline-flex; align-items: center; min-height: 52px; padding: 0 14px; font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.subcats a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--text); transform: scaleX(0); transition: transform var(--t2) var(--ease-out); }
.subcats a:hover, .subcats a[aria-current] { color: var(--text); }
.subcats a[aria-current]::after { transform: none; }
.subcats__mine a { color: var(--text); }

.toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; margin-bottom: 22px; }
.toolbar__actions { display: flex; align-items: center; gap: clamp(8px, 2vw, 24px); min-width: 0; }
.toolbar__meta { display: flex; align-items: center; gap: 16px; justify-content: flex-end; }
.toolbar__count { font-size: var(--fs-sm); color: var(--muted); }
.toolbar__walk { font-size: var(--fs-sm); }
.tbtn { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 2px; font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--text); }
.tbtn .ic { width: 18px; height: 18px; }
.tbtn .count { position: static; }
.sort { position: relative; }
.sort__list { position: absolute; left: 0; top: calc(100% + 6px); z-index: 20; min-width: 230px; padding: 6px 0; background: var(--ink-2); border: 1px solid var(--line-2); box-shadow: 0 18px 40px rgba(0, 0, 0, .5); }
.sort__list a { display: block; padding: 11px 18px; font-size: var(--fs-sm); color: var(--muted); }
.sort__list a:hover, .sort__list a[aria-current] { color: var(--text); background: var(--ink-3); }
.viewswitch { display: flex; }
.viewswitch .ibtn { color: var(--dim); min-width: 40px; }
.viewswitch .ibtn .ic { width: 20px; height: 20px; }
.viewswitch .ibtn[aria-pressed="true"] { color: var(--text); }
@media (max-width: 599px) {
	.toolbar { grid-template-columns: minmax(0, 1fr); }
	.toolbar__actions { justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
	.toolbar__meta { justify-content: space-between; }
	.toolbar__walk { display: none; }
}
.actives { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; }
.actives a { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 19px; font-size: var(--fs-sm); color: var(--text); }
.actives a .ic { width: 14px; height: 14px; }
.actives a.link { border: 0; padding: 0 4px; }
.pager { margin-top: 48px; }
.pager .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 8px; font: 800 1.15rem/1 var(--f-display); color: var(--muted); }
.pager .page-numbers.current { color: var(--ink); background: var(--chrome-hi); }
.pager .page-numbers:hover { color: var(--text); }
.pager .ic { width: 18px; height: 18px; }

/* ---------- Refine by (drill-down filter panel) ---------- */
.refine__panel { width: min(440px, 100%); }
.refine__form { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.refine__viewport { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.refine__level { display: flex; flex-direction: column; min-height: 0; background: var(--ink-2); }
.js .refine__level { position: absolute; inset: 0; transform: translateX(100%); visibility: hidden; transition: transform .45s var(--ease-out), visibility 0s .45s; }
.js .refine__level.is-current { transform: none; visibility: visible; transition: transform .45s var(--ease-out); }
.js .refine__level.is-behind { transform: translateX(-28%); visibility: visible; transition: transform .45s var(--ease-out); }
.refine__head { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 8px; text-align: center; }
.refine__level[data-level="root"] .refine__head { grid-template-columns: minmax(0, 1fr) 44px; text-align: left; }
.refine__clear { justify-self: end; font-size: var(--fs-sm); }
.refine__groups { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 0 clamp(16px, 3vw, 28px); }
.refine__groups li { border-bottom: 1px solid var(--line); }
.refine__group { display: grid; grid-template-columns: auto minmax(0, 1fr) 18px; align-items: center; gap: 14px; width: 100%; min-height: 62px; text-align: left; font: 800 1.5rem/1 var(--f-display); text-transform: uppercase; color: var(--text); }
.refine__group .ic { width: 18px; height: 18px; color: var(--dim); transition: transform var(--t1) var(--ease); }
.refine__group:hover .ic { transform: translateX(3px); color: var(--text); }
.refine__group-picked { min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: 600 var(--fs-xs)/1.2 var(--f-sans); text-transform: none; color: var(--muted); }
.refine__options { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 8px clamp(16px, 3vw, 28px) 20px; display: grid; align-content: start; }
.refine__opt { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 50px; border-bottom: 1px solid var(--line); cursor: pointer; font-size: var(--fs-sm); color: var(--muted); }
.refine__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.refine__opt input:checked + .check__box { background: var(--chrome-hi); border-color: var(--chrome-hi); }
.refine__opt input:checked + .check__box::after { transform: rotate(45deg) scale(1); }
.refine__opt input:focus-visible + .check__box, .refine__opt input:focus-visible + .refine__dot { outline: 2px solid var(--chrome-hi); outline-offset: 3px; }
.refine__opt input:checked ~ .refine__label { color: var(--text); font-weight: 600; }
.refine__n { color: var(--dim); font-variant-numeric: tabular-nums; font-size: var(--fs-xs); }
.refine__opt.is-off { opacity: .45; }
.refine__dot { position: relative; width: 22px; height: 22px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.refine__opt input:checked + .refine__dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid var(--text); }
.refine__options--chip { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; padding-top: 18px; }
.refine__options--chip .refine__opt { grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: center; gap: 2px; min-height: 62px; border: 1px solid var(--line-2); text-align: center; }
.refine__options--chip .refine__label { font: 800 1.35rem/1 var(--f-display); color: var(--text); }
.refine__options--chip .refine__opt:hover { border-color: var(--chrome); }
.refine__options--chip .refine__opt:has(input:checked) { background: var(--chrome-hi); border-color: var(--chrome-hi); }
.refine__options--chip .refine__opt:has(input:checked) .refine__label, .refine__options--chip .refine__opt:has(input:checked) .refine__n { color: var(--ink); }
.refine__options--chip .refine__opt:has(input:focus-visible) { outline: 2px solid var(--chrome-hi); outline-offset: 2px; }
.refine__options--chip .check__box { display: none; }
.refine__foot { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 10px; padding: 14px clamp(16px, 3vw, 28px) calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--ink-2); }
.refine__foot .btn { padding-inline: 12px; }
@media (prefers-reduced-motion: reduce) { .js .refine__level, .js .refine__level.is-current, .js .refine__level.is-behind { transition: none; } }

/* ---------- Product page ---------- */
.pdp { padding-top: clamp(16px, 2vw, 28px); }
.pdp__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(28px, 4.5vw, 80px); align-items: start; }
.pdp__stage { position: sticky; top: calc(var(--top) + var(--hdr) + 20px); display: grid; gap: 14px; }
.pdp__photos-link { justify-self: start; font-size: var(--fs-sm); }
.pdp__info { min-width: 0; }
.pdp__sticky { display: grid; gap: 18px; }
.pdp__line { font: 700 var(--fs-xs)/1.3 var(--f-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.pdp__title { font: 800 clamp(2.5rem, 1.6rem + 3.4vw, 5rem)/.88 var(--f-display); text-transform: uppercase; margin-top: -6px; }
.pdp__colour { font-size: var(--fs-lead); color: var(--muted); margin-top: -8px; }
.pdp__price .price { font-size: 2.25rem; }
.pdp__label { font: 700 var(--fs-xs)/1.3 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.pdp__women { margin-left: 8px; padding: 4px 8px; border: 1px solid var(--line-2); letter-spacing: .08em; color: var(--text); }
.ways { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.way { display: grid; place-items: center; width: 76px; height: 58px; border: 1px solid var(--line-2); background: var(--ink-2); transition: border-color var(--t1) var(--ease); }
.way img { width: 90%; height: 90%; object-fit: contain; }
.way img.is-photo { width: 100%; height: 100%; object-fit: cover; }
.way:hover { border-color: var(--chrome-lo); }
.way.is-on { border-color: var(--chrome-hi); box-shadow: inset 0 0 0 1px var(--chrome-hi); }
.way.is-out img { opacity: .45; }
.pdp__buy { display: grid; gap: 14px; padding-top: 18px; border-top: 1px solid var(--line); }
.pdp__sizehead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pdp__sizehead .link { font-size: var(--fs-sm); }
.pdp__mine { font-size: var(--fs-sm); color: var(--text); }
.pdp__soldout { font: 800 1.5rem/1.1 var(--f-display); text-transform: uppercase; color: var(--muted); }
.pdp__more { display: flex; flex-wrap: wrap; gap: 10px; }

/* Variation form: WooCommerce's selects stay (hidden) and drive price/stock. */
.pdp form.cart { display: grid; gap: 14px; }
.pdp table.variations { width: 100%; }
.pdp table.variations tr { display: grid; gap: 10px; }
.pdp table.variations th.label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pdp table.variations td { padding: 0; }
.opts-field { position: relative; }
.opts-field select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; }
.opt { position: relative; min-height: 58px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--ink-2); font: 800 1.45rem/1 var(--f-display); color: var(--text); transition: border-color var(--t1) var(--ease), background-color var(--t1) var(--ease), color var(--t1) var(--ease); }
.opt:hover { border-color: var(--chrome); }
.opt[aria-checked="true"] { background: var(--chrome-hi); border-color: var(--chrome-hi); color: var(--ink); }
.opt.is-out, .opt.is-na { color: var(--dim); background: transparent; text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: var(--line-2); }
.opt.is-out:hover, .opt.is-na:hover { border-color: var(--line-2); }
.opt.is-mine::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--ok); }
.opt[aria-checked="true"].is-mine::after { background: var(--ink); }
.woocommerce-variation-price, .woocommerce-variation-description:empty { display: none; }
.woocommerce-variation-availability .stock { font-size: var(--fs-sm); color: var(--muted); }
.woocommerce-variation-availability .out-of-stock { color: var(--error); }
.pdp form.cart .quantity { display: none !important; }
.single_add_to_cart_button, .woocommerce .pdp button.button.alt { width: 100%; min-height: 60px; border: 0; border-radius: var(--radius); background: var(--chrome-grad); background-size: 200% 100%; color: var(--ink); font: 700 var(--fs-sm)/1 var(--f-sans); letter-spacing: .2em; text-transform: uppercase; cursor: pointer; transition: background-position .9s var(--ease-out); }
.single_add_to_cart_button:hover { background-position: 100% 0; }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { background: var(--ink-4); color: var(--muted); cursor: not-allowed; opacity: 1; }
.single_add_to_cart_button.is-busy { color: transparent; }
.buy-msg { padding: 12px 14px; border: 1px solid var(--error); color: var(--error); font-size: var(--fs-sm); }
.woocommerce-variation-add-to-cart { display: grid; gap: 12px; }
.reset_variations { display: none !important; }

.alert { border: 1px solid var(--line); background: var(--ink-2); }
.alert summary { display: flex; align-items: center; min-height: 52px; padding: 0 16px; cursor: pointer; list-style: none; font-size: var(--fs-sm); color: var(--text); }
.alert summary::-webkit-details-marker { display: none; }
.alert summary::after { content: "+"; margin-left: auto; font-size: 1.25rem; color: var(--muted); }
.alert[open] summary::after { content: "−"; }
.alert .form { padding: 0 16px 16px; }
.alert__or { padding: 0 16px 16px; font-size: var(--fs-sm); color: var(--muted); }
.pdp__assure { display: grid; border-top: 1px solid var(--line); }
.pdp__assure li { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); color: var(--muted); }
.pdp__assure .ic { width: 22px; height: 22px; color: var(--chrome); }
.pdp__assure .link { font-size: inherit; }
.specs { display: grid; gap: 0; }
.specs > div { display: grid; grid-template-columns: minmax(0, 140px) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.specs dt { color: var(--dim); }
@media (max-width: 999px) {
	.pdp__grid { grid-template-columns: minmax(0, 1fr); }
	.pdp__stage { position: relative; top: 0; }
}

/* The Plinth (stage) */
.plinth { position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto auto; min-height: clamp(380px, 46vw, 680px); background: radial-gradient(56% 30% at 50% 80%, rgba(255, 255, 255, .12), transparent 70%), linear-gradient(180deg, #0E0E10 0%, #17171A 100%); border: 1px solid var(--line); overflow: hidden; isolation: isolate; }
.plinth__view { position: relative; display: grid; place-items: center; padding: clamp(20px, 4vw, 56px) clamp(16px, 4vw, 56px) 0; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; outline: 0; }
.plinth__view:focus-visible { box-shadow: inset 0 0 0 2px var(--chrome-hi); }
.plinth__view.is-dragging { cursor: grabbing; }
.plinth__img { width: 100%; max-height: clamp(260px, 34vw, 520px); object-fit: contain; filter: drop-shadow(0 30px 22px rgba(0, 0, 0, .7)); transition: opacity .12s linear; pointer-events: none; }
.plinth__img.is-photo { max-height: none; aspect-ratio: 1; object-fit: cover; filter: none; }
.plinth--photos .plinth__view { padding: 0; }
.plinth canvas { width: 100% !important; height: 100% !important; }
.plinth--model .plinth__view { min-height: clamp(360px, 40vw, 600px); }
.plinth--model .plinth__view canvas { position: absolute; inset: 0; }
.plinth__base { position: relative; height: 54px; }
.plinth__base span { position: absolute; left: 50%; top: 0; width: min(70%, 460px); height: 34px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(closest-side, rgba(0, 0, 0, .7), transparent); }
.plinth__base::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: 10px; height: 2px; background: var(--led); box-shadow: var(--glow); opacity: .8; }
.plinth--photos .plinth__base { display: none; }
.plinth__bar { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px; padding: 14px 18px; border-top: 1px solid var(--line); background: rgba(11, 11, 12, .7); }
.plinth__mode { display: inline-flex; align-items: center; gap: 10px; font: 600 var(--fs-xs)/1.2 var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.plinth__mode .ic { width: 20px; height: 20px; color: var(--text); }
.plinth--model .plinth__bar { grid-template-columns: minmax(0, 1fr); }
/* Turntable slider: a track of ticks with a chrome thumb. */
.plinth__range { -webkit-appearance: none; appearance: none; width: 100%; height: 44px; background: transparent; cursor: pointer; }
.plinth__range::-webkit-slider-runnable-track { height: 2px; background: repeating-linear-gradient(90deg, var(--line-2) 0 2px, transparent 2px 12px); }
.plinth__range::-moz-range-track { height: 2px; background: repeating-linear-gradient(90deg, var(--line-2) 0 2px, transparent 2px 12px); }
.plinth__range::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -12px; border-radius: 50%; background: var(--chrome-grad); border: 2px solid var(--ink); box-shadow: 0 0 0 1px var(--chrome-mid); }
.plinth__range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--chrome-hi); border: 2px solid var(--ink); }
.plinth__range:focus-visible { outline: 2px solid var(--chrome-hi); outline-offset: 2px; }
.plinth__hint { position: absolute; left: 50%; top: 50%; z-index: 2; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; background: rgba(11, 11, 12, .8); border: 1px solid var(--line-2); border-radius: 22px; transform: translate(-50%, -50%); font: 600 var(--fs-xs)/1 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; pointer-events: none; transition: opacity var(--t2) var(--ease); }
.plinth.is-touched .plinth__hint { opacity: 0; }
@media (max-width: 599px) { .plinth { min-height: 0; } .plinth__bar { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 14px; } }

/* Every photo */
.photos { padding-block: var(--space-s) 0; }
.photos__title { margin-bottom: 24px; }
.photos__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.photos__btn { display: block; width: 100%; aspect-ratio: 1; overflow: hidden; background: var(--ink-2); cursor: zoom-in; }
.photos__btn img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t3) var(--ease-out); }
.photos__btn:hover img { transform: scale(1.04); }
@media (max-width: 699px) { .photos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pdp-more { padding-block: var(--space-s) 0; }
.pdp-more .ruled { margin-bottom: 28px; }

/* Sticky buy bar (phones) */
.buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: none; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--gut) calc(10px + env(safe-area-inset-bottom)); background: rgba(11, 11, 12, .96); border-top: 1px solid var(--line); transform: translateY(100%); transition: transform var(--t2) var(--ease-out); }
.buybar.is-on { transform: none; }
.buybar__info { display: grid; gap: 4px; min-width: 0; }
.buybar__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--fs-sm); color: var(--muted); }
.buybar .price { font-size: 1.15rem; }
.buybar .btn { min-height: 48px; }
@media (max-width: 999px) { .buybar { display: flex; } }

/* Zoom */
.zoom { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: var(--ink); }
.zoom__close { position: fixed; right: 12px; top: 12px; z-index: 2; background: var(--ink-3); }
.zoom__track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; }
.zoom__track img { flex: 0 0 100%; height: 100%; object-fit: contain; scroll-snap-align: center; }

/* ---------- Bag drawer ---------- */
.drawer__body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.mini { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 6px clamp(16px, 3vw, 28px); }
.mini__item { position: relative; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.mini__item.is-busy { opacity: .5; pointer-events: none; }
.mini__img { display: grid; place-items: center; height: 80px; background: var(--ink-3); }
.mini__img img { max-height: 76px; width: auto; object-fit: contain; }
.mini__info { display: grid; gap: 4px; align-content: start; min-width: 0; padding-right: 54px; }
.mini__name { font: 800 1.15rem/1.05 var(--f-display); text-transform: uppercase; }
.mini__meta { font-size: var(--fs-xs); color: var(--muted); }
.mini__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.mini__price { font: 800 1.1rem/1 var(--f-display); }
.mini__remove { position: absolute; right: 0; top: 18px; font-size: var(--fs-xs); }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line-2); }
.qty button { display: grid; place-items: center; width: 36px; height: 36px; color: var(--text); }
.qty button:disabled { color: var(--dim); }
.qty .ic { width: 16px; height: 16px; }
.qty__n { min-width: 26px; text-align: center; font-size: var(--fs-sm); }
.drawer__foot { flex: none; display: grid; gap: 10px; padding: 16px clamp(16px, 3vw, 28px) calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--ink-2); }
.drawer__total { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--fs-sm); }
.drawer__total strong { font: 800 1.6rem/1 var(--f-display); }
.drawer__note { font-size: var(--fs-xs); color: var(--muted); }
.freeline { display: grid; gap: 8px; font-size: var(--fs-sm); color: var(--muted); }
.freeline strong { color: var(--text); }
.freeline__bar { height: 3px; background: var(--line); overflow: hidden; }
.freeline__bar span { display: block; height: 100%; background: var(--chrome-hi); transform-origin: left; transition: transform var(--t3) var(--ease-out); }
.freeline.is-free p { color: var(--ok); }

/* ---------- Wishlist page ---------- */
.wishlist__loading { display: grid; place-items: center; min-height: 200px; }
.spinner { width: 28px; height: 28px; border: 2px solid var(--line-2); border-top-color: var(--text); border-radius: 50%; animation: kk-spin .8s linear infinite; }

/* ---------- WooCommerce flow pages ---------- */
.store-page { padding-block: clamp(22px, 3vw, 40px) var(--space-s); }
.store-page__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px 40px; margin-bottom: clamp(24px, 4vw, 44px); padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.store-page__title { font: 800 var(--fs-h1)/.9 var(--f-display); text-transform: uppercase; }
.flow-steps { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.flow-steps li { display: flex; align-items: center; gap: 10px; font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--dim); }
.flow-steps span { font: 800 1.15rem/1 var(--f-display); }
.flow-steps .is-now, .flow-steps .is-done { color: var(--text); }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .wc-block-components-notice-banner {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
	margin: 0 0 22px; padding: 16px 20px; list-style: none; border: 1px solid var(--line-2); background: var(--ink-2); font-size: var(--fs-sm); color: var(--text);
}
.woocommerce-error { border-color: var(--error); }
.woocommerce-error li { list-style: none; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-forward {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border: 1px solid var(--text); border-radius: var(--radius);
	background: var(--text); color: var(--ink); font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: .18em; text-transform: uppercase; cursor: pointer;
	transition: background-color var(--t2) var(--ease), border-color var(--t2) var(--ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--chrome); border-color: var(--chrome); color: var(--ink); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { background: var(--ink-4); border-color: var(--ink-4); color: var(--muted); }
.woocommerce a.button.alt, .woocommerce button.button.alt, #place_order, .checkout-button { background: var(--chrome-grad); border: 0; color: var(--ink); }

.woocommerce-cart-form { min-width: 0; }
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .cart-empty, .woocommerce-cart .return-to-shop { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce:has(.wc-empty-cart-message) { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding-block: 24px 40px; }
.wc-empty-cart-message .cart-empty { display: block; margin: 0; padding: 0; border: 0; background: none; font: 800 var(--fs-h3)/1.1 var(--f-display); text-transform: uppercase; color: var(--text); }
.woocommerce-cart .return-to-shop { margin: 22px 0 0; }
table.shop_table { width: 100%; font-size: var(--fs-sm); }
table.shop_table th { font: 700 var(--fs-xs)/1.3 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); }
table.shop_table td { padding: 18px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.cart .product-thumbnail { width: 110px; }
table.cart .product-thumbnail img { width: 96px; height: 76px; object-fit: contain; background: var(--ink-3); }
table.cart .product-name a { font: 800 1.2rem/1.1 var(--f-display); text-transform: uppercase; }
table.cart .product-name .variation { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; margin: 8px 0 0; font-size: var(--fs-xs); color: var(--muted); }
table.cart .product-name .variation dd, table.cart .product-name .variation p { margin: 0; }
table.cart .product-remove a { display: grid; place-items: center; width: 40px; height: 40px; font-size: 22px; color: var(--muted); }
table.cart .product-remove a:hover { color: var(--error); }
table.cart .quantity .qty { width: 72px; min-height: 44px; text-align: center; }
table.cart td.actions { padding-top: 22px; }
table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; float: left; }
table.cart td.actions .coupon .input-text { width: 200px; }
table.cart td.actions > .button { float: right; }
.cart-collaterals { min-width: 0; }
.cart_totals { position: sticky; top: calc(var(--top) + var(--hdr) + 24px); padding: 26px; background: var(--ink-2); border: 1px solid var(--line); }
.cart_totals h2 { font-size: 1.75rem; margin-bottom: 16px; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: var(--fs-md); color: var(--text); }
.cart_totals .order-total .amount { font: 800 1.6rem/1 var(--f-display); }
.wc-proceed-to-checkout { margin-top: 18px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 60px; }
#shipping_method { display: grid; gap: 6px; }
#shipping_method li { display: flex; gap: 8px; align-items: center; }
@media (max-width: 899px) {
	.woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr); }
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { position: relative; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 4px 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
	table.shop_table_responsive td { display: block; border: 0; padding: 0; }
	table.cart .product-thumbnail { grid-row: span 4; width: auto; }
	table.cart .product-thumbnail img { width: 88px; }
	table.cart .product-remove { position: absolute; right: 0; top: 10px; }
	table.cart td[data-title]::before { content: attr(data-title) ": "; font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
	table.cart td.product-name::before, table.cart td.product-thumbnail::before, table.cart td.product-remove::before { content: none; }
	table.cart td.product-name { padding-right: 44px; }
	table.cart td.actions { grid-column: 1 / -1; display: grid; gap: 12px; }
	table.cart td.actions .coupon, table.cart td.actions > .button { float: none; width: 100%; }
	table.cart td.actions .coupon .input-text { flex: 1; width: auto; }
	.cart_totals { position: static; }
	.cart_totals table tr { display: table-row; }
}

form.checkout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
#customer_details { min-width: 0; display: grid; gap: 34px; grid-row: 1; }
#customer_details .col-1, #customer_details .col-2 { width: auto; float: none; }
#order_review_heading { display: none; }
#order_review { position: sticky; top: calc(var(--top) + var(--hdr) + 24px); padding: 26px; background: var(--ink-2); border: 1px solid var(--line); min-width: 0; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, .woocommerce-checkout h3 { font-size: 1.75rem; margin-bottom: 20px; }
.woocommerce form .form-row { display: grid; gap: 8px; margin: 0 0 16px; padding: 0; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes, #billing_address_1_field, #billing_address_2_field, #shipping_address_1_field, #shipping_address_2_field { grid-column: 1 / -1; }
.woocommerce form .form-row .required { color: var(--chrome); text-decoration: none; border: 0; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--error); }
.select2-container--default .select2-selection--single { height: 52px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--ink-3); display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 52px; padding-left: 16px; color: var(--text); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; right: 8px; }
.select2-dropdown { border-color: var(--line-2); border-radius: 0; background: var(--ink-2); color: var(--text); }
.select2-search--dropdown .select2-search__field { background: var(--ink-3); color: var(--text); border-color: var(--line-2); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--chrome-hi); color: var(--ink); }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { padding: 12px 0; }
.woocommerce-checkout-review-order-table .order-total .amount { font: 800 1.6rem/1 var(--f-display); }
#payment { margin-top: 16px; }
#payment ul.payment_methods { display: grid; gap: 8px; margin: 0 0 16px; }
#payment ul.payment_methods > li { padding: 14px 16px; border: 1px solid var(--line-2); background: var(--ink-3); }
#payment ul.payment_methods label { font-weight: 600; cursor: pointer; }
#payment ul.payment_methods img { display: inline-block; max-height: 24px; width: auto; vertical-align: middle; margin-left: 6px; }
#payment .payment_box { margin-top: 10px; font-size: var(--fs-sm); color: var(--muted); }
#place_order { width: 100%; min-height: 60px; }
.woocommerce-terms-and-conditions-wrapper { font-size: var(--fs-sm); margin-bottom: 12px; color: var(--muted); }
.pay-note { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0; font-size: var(--fs-sm); color: var(--muted); }
.pay-note .ic { width: 18px; height: 18px; color: var(--chrome); }
form.checkout_coupon, form.woocommerce-form-login { margin-bottom: 26px; padding: 22px; border: 1px solid var(--line); }
@media (max-width: 899px) {
	form.checkout { grid-template-columns: minmax(0, 1fr); }
	#order_review { position: static; }
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
}
.woocommerce-order { display: grid; gap: 26px; max-width: 900px; }
.woocommerce-thankyou-order-received { font: 800 var(--fs-h3)/1.1 var(--f-display); text-transform: uppercase; }
ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
ul.woocommerce-order-overview li { padding: 18px; background: var(--ink-2); border: 1px solid var(--line); font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
ul.woocommerce-order-overview strong { display: block; margin-top: 8px; font: 800 1.2rem/1.2 var(--f-display); letter-spacing: 0; color: var(--text); }
.woocommerce-order-details h2, .woocommerce-customer-details h2, .woocommerce-bacs-bank-details h2 { font-size: 1.75rem; margin-bottom: 14px; }
.woocommerce-customer-details address { font-style: normal; padding: 20px; border: 1px solid var(--line); }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-MyAccount-navigation ul { display: grid; }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 0; font: 700 var(--fs-xs)/1.3 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { color: var(--text); }
.woocommerce-MyAccount-content { min-width: 0; color: var(--muted); }
.woocommerce-MyAccount-content a:not(.button) { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.u-columns.col2-set, #customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 80px); }
#customer_login h2 { font-size: var(--fs-h3); margin-bottom: 22px; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); margin-bottom: 14px; }
.woocommerce-LostPassword a { color: var(--muted); font-size: var(--fs-sm); text-decoration: underline; }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.woocommerce-Address { padding: 22px; border: 1px solid var(--line); }
.woocommerce-Address address { font-style: normal; margin-top: 12px; }
@media (max-width: 799px) {
	.woocommerce-account .woocommerce, .u-columns.col2-set, #customer_login, .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: 18px; scrollbar-width: none; }
	.woocommerce-MyAccount-navigation a { white-space: nowrap; border: 0; }
}
#reviews .commentlist { display: grid; gap: 20px; }
#reviews .comment_container img.avatar { display: none; }
.star-rating { color: var(--chrome); font-size: var(--fs-sm); }
