/* WooCommerce – the default WC stylesheets are disabled (inc/woocommerce.php); everything is styled here. */

/* Product grid: 4 cols on desktop (420px cards, 40px column gap, 80px row gap at 1920) */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(2.5rem, 4.2vw, 5rem) var(--grid-gap); }
@media (max-width: 1099px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem .75rem; } }

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; padding: 1rem 1.25rem; margin: 0 0 1.25rem; border: 1px solid var(--c-line); }
.woocommerce-error { border-color: #b00020; }

/* Forms (cart / checkout / account) */
.woocommerce form .form-row { margin: 0 0 1.25rem; }
.woocommerce form .form-row label { display: block; margin-bottom: .25rem; color: var(--c-muted); }
.woocommerce input.input-text, .woocommerce select, .woocommerce textarea {
	width: 100%; padding: .625rem 0; border: 0; border-bottom: 1px solid var(--c-muted); border-radius: 0; background: transparent;
}
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .75rem .5rem; border-bottom: 1px solid var(--c-line); text-align: left; }
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive tr td::before { content: attr(data-title) ": "; font-weight: 600; }
}

/* ---------- Shop / category archive ("Product List") ---------- */
.lbk-shop { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.lbk-shop__head { max-width: 60rem; margin: clamp(3rem, 1.6rem + 4.6vw, 5.875rem) auto clamp(3rem, 1.5rem + 4.7vw, 5.625rem); display: flex; flex-direction: column; align-items: center; gap: 1.25rem; text-align: center; }
.lbk-shop__title { font-size: var(--fs-h2); letter-spacing: var(--ls-h2); text-transform: uppercase; line-height: 1.2; }
.lbk-shop__intro { color: var(--c-text); line-height: 22px; }
.lbk-shop__head .lbk-btn-stroke { margin-top: 1.875rem; }

.lbk-shop__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 1.5rem; margin-bottom: clamp(2rem, 1rem + 3vw, 5rem); }
.lbk-shop__count { font-size: 1rem; letter-spacing: .02em; color: var(--c-muted); text-transform: capitalize; line-height: 20px; }
.lbk-shop__cats { display: flex; justify-content: center; gap: 1.875rem; }
.lbk-shop__tools { display: flex; justify-content: flex-end; gap: 1.875rem; }

.lbk-pop { position: relative; }
.lbk-pop__list { position: absolute; z-index: 20; right: 0; top: calc(100% + .75rem); min-width: 13rem; padding: 1rem 1.25rem; background: var(--c-bg); border: 1px solid var(--c-line); display: flex; flex-direction: column; gap: .625rem; }
.lbk-pop__list a { color: var(--c-muted); }
.lbk-pop__list a:hover, .lbk-pop__list a.is-active { color: var(--c-ink); text-decoration: underline; text-underline-offset: 5px; }

/* Filters drawer (Figma "Filters": 600px, light grey, slides in from the right) */
.lbk-drawer--filters { --pad: clamp(1.5rem, 3.1vw, 3.75rem); width: min(100%, 37.5rem); background: #f4f4f4; }
.lbk-drawer--filters .lbk-drawer__head { padding: 2.5rem var(--pad) 0; border: 0; }
.lbk-drawer--filters .lbk-drawer__title { font-size: 1.5rem; letter-spacing: .04em; text-transform: capitalize; line-height: 2rem; }
.lbk-drawer--filters .lbk-drawer__close { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-right: -8px; }
.lbk-filters { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.lbk-filters__groups { flex: 1; overflow-y: auto; margin-top: 4.875rem; padding: 0 var(--pad); }
.lbk-acc + .lbk-acc { margin-top: 1.875rem; padding-top: 1.875rem; border-top: 1px solid var(--c-line); }
.lbk-acc__btn { display: flex; align-items: center; justify-content: space-between; width: 100%; text-align: left; font-size: 1.25rem; font-weight: 500; letter-spacing: .06em; text-transform: capitalize; line-height: 27px; }
.lbk-acc__btn svg { flex: none; transition: transform .3s var(--ease); }
.lbk-acc__btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.lbk-acc__panel { padding-top: 1.25rem; }
.lbk-acc__panel ul { display: flex; flex-direction: column; gap: .875rem; }

.lbk-check { position: relative; display: flex; align-items: center; gap: .75rem; cursor: pointer; color: var(--c-muted); font-size: 1rem; font-weight: 400; letter-spacing: .02em; line-height: 1.3; transition: color .2s; }
.lbk-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lbk-check__box { flex: none; width: 14px; height: 14px; border: 1px solid var(--c-ink); background: transparent; transition: background-color .2s; }
.lbk-check input:checked + .lbk-check__box { background: var(--c-ink); box-shadow: inset 0 0 0 2px #f4f4f4; }
.lbk-check input:focus-visible + .lbk-check__box { outline: 1px solid var(--c-ink); outline-offset: 3px; }
.lbk-check:hover, .lbk-check:has(input:checked) { color: var(--c-ink); }

.lbk-filters__foot { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; padding: 1.875rem var(--pad) clamp(2rem, 4vw, 3.75rem); }
.lbk-filters__submit { width: 100%; padding-block: 1.125rem; font-size: 1.25rem; }

.lbk-shop__empty { text-align: center; color: var(--c-muted); padding-block: 4rem; }

.lbk-pagination { margin-top: clamp(2.5rem, 1rem + 4vw, 5rem); }
.lbk-pagination ul { display: flex; justify-content: center; gap: 1.875rem; }
.lbk-pagination a, .lbk-pagination span { position: relative; display: inline-block; padding: 0 0 6px; font-size: 1rem; letter-spacing: .02em; line-height: 20px; color: var(--c-muted); }
.lbk-pagination a::after, .lbk-pagination .current::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.lbk-pagination a:hover, .lbk-pagination .current { color: var(--c-ink); }
.lbk-pagination a:hover::after, .lbk-pagination .current::after { transform: scaleX(1); }

@media (max-width: 899px) {
	.lbk-shop__bar { grid-template-columns: 1fr auto; grid-template-areas: "count tools" "cats cats"; row-gap: 1.25rem; }
	.lbk-shop__count { grid-area: count; }
	.lbk-shop__tools { grid-area: tools; }
	.lbk-shop__cats { grid-area: cats; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.lbk-shop__cats::-webkit-scrollbar { display: none; }
}

/* ---------- Single product ("Product In") ---------- */
.lbk-product { --panel-gap: clamp(2rem, 3.1vw, 3.75rem); }
.lbk-product > .woocommerce-notices-wrapper, .lbk-product .woocommerce-message, .lbk-product .woocommerce-error { max-width: 95rem; margin-inline: auto; padding-inline: var(--gutter); }

.lbk-product__layout {
	display: grid; grid-template-columns: minmax(0, 885fr) minmax(0, 580fr); gap: var(--panel-gap);
	max-width: 95.375rem; margin-inline: auto; padding-inline: var(--gutter); align-items: start;
}
.lbk-product__photos { display: flex; flex-direction: column; gap: 10px; margin-top: clamp(1.5rem, 1rem + 2.2vw, 5.875rem); }
.lbk-product__photo { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: #ece9e6; }
.lbk-product__photo img { width: 100%; height: 100%; object-fit: cover; }

/* Sticky info panel: top group + help block anchored to the bottom */
.lbk-product__panel {
	position: sticky; top: var(--header-h, 106px);
	display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem;
	min-height: min(50.75rem, calc(100svh - var(--header-h, 106px))); max-height: calc(100svh - var(--header-h, 106px)); overflow-y: auto; scrollbar-width: none;
	padding: clamp(2rem, 1rem + 3.6vw, 8.75rem) clamp(1rem, 4.2vw, 5rem) clamp(1.5rem, 3vw, 3.5rem) clamp(0rem, 4.2vw, 5rem);
}
.lbk-product__panel::-webkit-scrollbar { display: none; }
.lbk-product__title { font-size: 1.5rem; font-weight: 500; letter-spacing: .04em; text-transform: capitalize; line-height: 1.3; }
.lbk-product__price { margin-top: 1.5rem; font-size: 1.25rem; font-weight: 500; letter-spacing: .04em; line-height: 1.35; }
.lbk-product__price del { color: var(--c-muted); margin-right: .5rem; }
.lbk-product__price ins { text-decoration: none; }

.lbk-pacc-list { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 1.75rem; }
.lbk-pacc__btn { display: flex; align-items: center; justify-content: space-between; width: 100%; padding-bottom: .625rem; border-bottom: 1px solid var(--c-line); text-align: left; font-size: .8125rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; line-height: 22px; }
.lbk-pacc__btn svg { flex: none; transition: transform .3s var(--ease); }
.lbk-pacc__btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.lbk-pacc__panel { padding-top: .625rem; color: var(--c-text); font-size: .875rem; line-height: 20px; }
.lbk-prose > * + * { margin-top: .75em; }
.lbk-prose ul { list-style: disc; padding-left: 1.25rem; }
.lbk-prose ol { list-style: decimal; padding-left: 1.25rem; }
.lbk-prose a { text-decoration: underline; text-underline-offset: 3px; }

/* Add to cart */
.lbk-product__buy { margin-top: 2.125rem; }
.lbk-vars { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 1.75rem; }
.lbk-var__label { display: block; margin-bottom: .625rem; font-size: .8125rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.lbk-var__options { display: flex; flex-wrap: wrap; gap: .625rem; }
.lbk-swatch { min-width: 2.75rem; height: 2.75rem; padding: 0 .875rem; border: 1px solid var(--c-line); font-size: .9375rem; letter-spacing: .02em; transition: border-color .2s, background-color .2s, color .2s; }
.lbk-swatch:hover:not(:disabled) { border-color: var(--c-ink); }
.lbk-swatch[aria-pressed="true"] { border-color: var(--c-ink); background: var(--c-ink); color: #fff; }
.lbk-swatch:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.lbk-var__select { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } /* real <select> kept for WooCommerce JS */
.lbk-vars .reset_variations { align-self: flex-start; visibility: hidden; font-size: .8125rem; }
.single_variation_wrap .woocommerce-variation-price, .single_variation_wrap .woocommerce-variation-description { display: none; } /* price is shown at the top */
.single_variation_wrap .woocommerce-variation-availability { margin-bottom: .75rem; color: var(--c-muted); }
.lbk-product .stock { color: var(--c-muted); margin-bottom: .75rem; }

.lbk-buy-row { display: flex; align-items: center; gap: 1.25rem; }
/* Figma "Btn stroke small" stepper: 85×56, "-  1  +" with 10px gaps, 18px / 6% tracking */
.lbk-qty { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: .625rem; box-sizing: border-box; height: 3.5rem; padding: 0 1.25rem; border: 1px solid var(--c-ink); font-size: 1.125rem; font-weight: 500; letter-spacing: .06em; line-height: 1; }
.lbk-qty__btn { width: auto; min-width: .5rem; padding: 0; font-size: 1.125rem; font-weight: 500; letter-spacing: inherit; line-height: 1; text-align: center; }
.lbk-qty__btn:hover { opacity: .55; }
/* Specificity must beat ".woocommerce input.input-text" (the underlined form-field style), otherwise the number gets an underline + 100% width. */
.woocommerce .lbk-qty input.input-text, .lbk-qty input.qty {
	width: 1ch; min-width: 1ch; field-sizing: content; padding: 0; border: 0; border-bottom: 0; border-radius: 0; box-shadow: none; outline: 0;
	background: transparent; color: inherit; text-align: center; font: inherit; letter-spacing: inherit; -moz-appearance: textfield; appearance: textfield;
}
.lbk-qty input::-webkit-outer-spin-button, .lbk-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lbk-qty:focus-within { outline: 1px solid var(--c-ink); outline-offset: 3px; } /* keyboard focus shown on the whole box instead */
.lbk-buy-row .single_add_to_cart_button { flex: 1 1 auto; max-width: 15.3rem; padding-inline: 1.5rem; }
/* "Disabled" until a size/colour is chosen – still clickable so WooCommerce can show its "choose options" message. */
.lbk-buy-row .single_add_to_cart_button.disabled { opacity: .4; cursor: not-allowed; }
.lbk-buy-row .lbk-icon { width: 26px; height: 26px; flex: none; }

.lbk-product__help { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; text-align: center; }
.lbk-product__help .lbk-btn-stroke { width: 100%; padding-inline: 1rem; }
.lbk-product__phone { align-self: center; text-transform: capitalize; letter-spacing: .02em; }

.lbk-related { margin-top: var(--section-gap); }

@media (max-width: 1023px) {
	.lbk-product__layout { grid-template-columns: 1fr; gap: 0; padding-inline: 0; }
	/* Photos become a swipeable gallery */
	.lbk-product__photos { flex-direction: row; gap: 0; margin-top: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.lbk-product__photos::-webkit-scrollbar { display: none; }
	.lbk-product__photo { flex: 0 0 100%; scroll-snap-align: start; max-height: 80svh; }
	.lbk-product__panel { position: static; max-height: none; min-height: 0; overflow: visible; padding: 2rem var(--gutter) 0; gap: 2.5rem; }
	.lbk-buy-row .single_add_to_cart_button { max-width: none; }
}

/* Add-to-cart polish */
.lbk-var { position: relative; }
.lbk-card .added_to_cart { display: none; } /* WooCommerce injects a "View cart" link after AJAX add – the drawer replaces it */
.lbk-card .add_to_cart_button.loading { opacity: .4; }
.lbk-buy-row .single_add_to_cart_button:disabled { opacity: .5; pointer-events: none; }
@media (max-width: 479px) {
	.lbk-buy-row { flex-wrap: wrap; row-gap: .875rem; }
	.lbk-buy-row .single_add_to_cart_button { flex: 1 1 8rem; }
}
