/* ==========================================================================
   LEMODUS — shop.css
   WooCommerce templates: archives, product page, cart, checkout, account,
   bundles. Loaded only on WooCommerce / bundle pages.
   ========================================================================== */

/* ---------- Archive ---------- */
.l-shop .l-archive { padding-bottom: 2rem; }
.l-archive__head { max-width: 860px; padding-block: .25rem 1.75rem; }
.l-archive__head > * { margin-block: 0; }
.l-archive__head .l-page-title { margin-top: .75rem; }
.l-archive__intro { margin-top: .75rem; color: #2e3638; font-size: var(--fs-md); line-height: 1.6; }
.l-archive__intro p { margin: 0 0 .6em; }
.l-archive__intro p:last-child { margin-bottom: 0; }
.l-archive__count { margin-top: .5rem; color: var(--c-muted); }
.l-archive__head .l-quicklinks, .l-subcats { margin-top: 1.25rem; }
.l-subcats .l-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--gutter)); padding: 2px var(--gutter); scrollbar-width: none; }
.l-subcats .l-chips::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .l-subcats .l-chips { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; } }

.l-archive__layout { display: grid; gap: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--c-line); }
.l-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.5rem; }
.l-toolbar > * { margin: 0 !important; }
.l-toolbar .woocommerce-result-count { margin: 0; color: var(--c-muted); font-size: var(--fs-sm); }
.l-toolbar .woocommerce-ordering { margin: 0; }
.woocommerce-ordering select, .l-product form.cart select, .woocommerce .select2-container .select2-selection, .wc-block-components-select select {
	appearance: none; height: 44px; padding: 0 2.5rem 0 1rem; border: 1px solid var(--c-line); border-radius: var(--r-pill); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2314191B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E") no-repeat right .9rem center;
	color: var(--c-ink); font: inherit; font-size: var(--fs-sm); cursor: pointer;
}
.woocommerce-ordering select:hover { border-color: var(--c-silver); }

/* Product filters (built per listing; see lemodus-core includes/filters.php) */
.l-archive__filters { min-width: 0; }
.l-filters__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.l-filters__title { margin: 0; font-size: var(--fs-lg); letter-spacing: -0.02em; }
.l-filters { display: grid; gap: 0; }
.l-filters.is-loading { opacity: .55; pointer-events: none; transition: opacity .2s; }
.l-filter { min-width: 0; margin: 0; padding: 1.1rem 0; border: 0; border-top: 1px solid var(--c-line); }
.l-filter__title { float: left; width: 100%; margin: 0 0 .7rem; padding: 0; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.l-filter__title + * { clear: both; }
.l-filter__list { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.l-check { display: flex; align-items: center; gap: .65rem; min-height: 36px; padding: .15rem 0; font-size: 14.5px; cursor: pointer; }
.l-check input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--c-slate); cursor: pointer; }
.l-check__label { flex: 1; min-width: 0; line-height: 1.3; }
.l-check:hover .l-check__label { color: var(--c-slate); }
.l-check.is-empty { color: var(--c-muted); }
.l-filter__n { font-size: 12px; color: var(--c-muted); font-variant-numeric: tabular-nums; }
.l-filter__more summary { margin-top: .35rem; color: var(--c-slate); font-size: var(--fs-sm); font-weight: 560; cursor: pointer; list-style: none; }
.l-filter__more summary::-webkit-details-marker { display: none; }
.l-filter__more[open] summary { display: none; }
.l-price-range { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .5rem; }
.l-price-range input { width: 100%; height: 42px; padding: 0 .7rem; box-sizing: border-box; border: 1px solid var(--c-line); border-radius: var(--r-sm); font: inherit; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.l-price-range input:focus { border-color: var(--c-slate); outline: none; box-shadow: 0 0 0 1px var(--c-slate); }
.l-price-range__go { grid-column: 1 / -1; min-height: 40px; font-size: var(--fs-sm); }
.l-filters__actions { display: grid; gap: .5rem; padding-top: 1.1rem; border-top: 1px solid var(--c-line); }

/* Toolbar: "Filtrai" button + active filter chips */
.l-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; flex-basis: 100%; }
.l-filters-toggle { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1.1rem; border: 1px solid var(--c-line); border-radius: var(--r-pill); background: #fff; color: var(--c-ink); font: inherit; font-size: var(--fs-sm); font-weight: 560; cursor: pointer; }
.l-filters-toggle .l-icon { width: 18px; height: 18px; }
.l-filters-toggle__n { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: var(--r-pill); background: var(--c-slate); color: #fff; font-size: 12px; box-sizing: border-box; }
.l-chips--active { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.l-chip.is-active { gap: .45rem; border-color: var(--c-slate); background: #f3f7f8; color: var(--c-ink); }
.l-chip.is-active:hover { background: #e7eff1; }
.l-chip__x { font-size: 1.05em; line-height: 1; color: var(--c-slate); }
.l-clear-filters { display: inline-flex; align-items: center; min-height: 36px; padding: 0 .4rem; color: var(--c-muted); font-size: var(--fs-sm); }
.l-active-filters:not(:has(.l-chips--active)):not(:has(.l-filters-toggle:not([hidden]))) { display: none; }

/* Phones & tablets: filters slide in from the side with a sticky apply button. */
@media (max-width: 1023px) {
	.l-archive__filters {
		position: fixed; z-index: 60; top: var(--wp-admin--admin-bar--height, 0px); right: 0; bottom: 0; display: flex; flex-direction: column; width: min(92vw, 420px); box-sizing: border-box;
		background: #fff; box-shadow: var(--sh-overlay); transform: translateX(105%); visibility: hidden; transition: transform .28s var(--ease), visibility 0s .28s;
	}
	.l-archive__filters.is-open { transform: none; visibility: visible; transition: transform .28s var(--ease); }
	.l-filters__head { padding: 1rem var(--gutter); border-bottom: 1px solid var(--c-line); }
	.l-filters { flex: 1; overflow-y: auto; padding: 0 var(--gutter); overscroll-behavior: contain; }
	.l-filters__actions { position: sticky; bottom: 0; margin: 0 calc(-1 * var(--gutter)); padding: .85rem var(--gutter) calc(.85rem + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -8px 20px -16px rgba(20, 25, 27, .35); }
	.l-filters__backdrop { position: fixed; z-index: 59; inset: 0; background: rgba(20, 25, 27, .4); }
	.l-filters__backdrop[hidden] { display: none; }
	.l-filter:first-of-type { border-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .l-archive__filters { transition: none !important; } }

@media (min-width: 1024px) {
	.l-archive__layout:has(> .l-archive__filters) { grid-template-columns: 236px minmax(0, 1fr); gap: 2.75rem; }
	.l-filters-toggle, .l-filters__close, .l-filters__backdrop { display: none !important; }
	.l-filters__head { margin-bottom: .25rem; }
	.l-filters__title { font-size: var(--fs-md); }
	.l-filters__apply { display: none; }
	.l-filters__actions:not(:has(a)) { display: none; }
	.l-archive__filters { position: sticky; top: 9.5rem; align-self: start; max-height: calc(100vh - 11rem); overflow-y: auto; padding-right: .25rem; scrollbar-width: thin; }
	.l-archive .l-products .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1440px) {
	.l-archive__layout:not(:has(> .l-archive__filters)) .l-products .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Category SEO block (below products) */
.l-catseo { max-width: 820px; margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--c-line); }
.l-catseo > * + * { margin-top: clamp(2rem, 4vw, 3rem); }
.l-catseo .l-section-title { font-size: var(--fs-xl); }
.l-catseo__related .l-chips { margin-top: 1rem; }

/* ---------- Single product ---------- */
.l-product .l-wrap { box-sizing: border-box; }
.l-product__top { display: grid; gap: 1.5rem; padding-block: 1rem 2.5rem; }
.l-product__gallery { min-width: 0; }
.l-product__summary { display: flex; flex-direction: column; gap: .85rem; min-width: 0; }
@media (min-width: 900px) {
	.l-product__top { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(2rem, 4vw, 4.5rem); padding-top: 1.5rem; }
	.l-product__gallery { position: sticky; top: 9rem; align-self: start; }
}

.l-bc .woocommerce-breadcrumb { white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.l-bc .woocommerce-breadcrumb::-webkit-scrollbar { display: none; }

/* Gallery: one fixed square stage (no layout shift), whole product visible (contain). */
.l-gallery { display: grid; gap: .75rem; }
.l-gallery__stage { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--c-surface); }
.l-gallery__track { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; outline-offset: -3px; }
.l-gallery__track::-webkit-scrollbar { display: none; }
.l-gallery__slide { flex: 0 0 100%; margin: 0; aspect-ratio: 1; scroll-snap-align: start; scroll-snap-stop: always; }
.l-gallery__link { display: block; width: 100%; height: 100%; padding: clamp(.75rem, 3vw, 2rem); box-sizing: border-box; cursor: zoom-in; }
.l-gallery__img, .l-gallery__slide img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.l-gallery__nav, .l-gallery__zoom { position: absolute; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: var(--sh-raised); color: var(--c-ink); cursor: pointer; transition: opacity .2s, background-color .2s; }
.l-gallery__nav:hover, .l-gallery__zoom:hover { background: #fff; }
.l-gallery__nav { top: 50%; margin-top: -22px; opacity: 0; }
.l-gallery__nav--prev { left: .85rem; }
.l-gallery__nav--next { right: .85rem; }
.l-gallery__stage:hover .l-gallery__nav, .l-gallery__nav:focus-visible { opacity: 1; }
.l-gallery__zoom { top: .85rem; right: .85rem; width: 40px; height: 40px; }
.l-gallery__zoom .l-icon { width: 20px; height: 20px; }
.l-gallery:not(.is-ready) .l-gallery__zoom, .l-gallery:not(.is-ready) .l-gallery__nav { display: none; }
.l-gallery__counter { position: absolute; z-index: 2; right: .85rem; bottom: .85rem; margin: 0; padding: .2rem .6rem; border-radius: var(--r-pill); background: rgba(20, 25, 27, .66); color: #fff; font-size: 12.5px; font-weight: 560; font-variant-numeric: tabular-nums; }
.l-gallery__thumbs { display: flex; gap: .6rem; margin: 0; padding: 3px; overflow-x: auto; overflow-y: hidden; list-style: none; scrollbar-width: none; }
.l-gallery__thumbs::-webkit-scrollbar { display: none; }
.l-gallery__thumb { display: block; width: 76px; height: 76px; padding: .35rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.l-gallery__thumb:hover { border-color: var(--c-silver); }
.l-gallery__thumb[aria-current="true"] { border-color: var(--c-slate); box-shadow: 0 0 0 1px var(--c-slate); }
.l-gallery__thumb-img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
@media (hover: none) { .l-gallery__nav { display: none; } }
@media (max-width: 599px) {
	.l-gallery__thumbs { display: none; }
	.l-gallery__stage { margin-inline: calc(-1 * var(--gutter)); border-radius: 0; }
}
@media (min-width: 600px) { .l-gallery__counter { display: none; } }

/* Fullscreen viewer */
.l-lightbox { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #fff; color: var(--c-ink); }
.l-lightbox::backdrop { background: rgba(20, 25, 27, .6); }
.l-lightbox__stage { display: grid; place-items: center; width: 100%; height: 100%; overflow: hidden; touch-action: pinch-zoom; }
.l-lightbox__img { display: block; max-width: min(100%, 1400px); max-height: 100%; object-fit: contain; cursor: zoom-in; transition: transform .25s var(--ease); }
.l-lightbox.is-zoomed .l-lightbox__img { transform: scale(2.2); cursor: zoom-out; }
.l-lightbox__btn { position: fixed; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--c-surface-2); color: var(--c-ink); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.l-lightbox__btn:hover { background: var(--c-line); }
.l-lightbox__close { top: 1rem; right: 1rem; font-size: 1.15rem; }
.l-lightbox__prev { top: 50%; left: 1rem; margin-top: -24px; }
.l-lightbox__next { top: 50%; right: 1rem; margin-top: -24px; }
.l-lightbox__counter { position: fixed; top: 1.6rem; left: 1.25rem; margin: 0; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; color: var(--c-muted); }
.l-lightbox__hint { position: fixed; bottom: 1rem; left: 0; right: 0; margin: 0; text-align: center; font-size: 12.5px; color: var(--c-muted); }
@media (hover: none) { .l-lightbox__hint { display: none; } }

.l-product__summary > * { margin: 0 !important; }
.l-product__brand { margin-top: -.35rem !important; }
.l-product__brand a { font-size: 12px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--c-slate); text-decoration: none; }
.l-product__brand a:hover { text-decoration: underline; }
.l-product__title { font-size: var(--fs-2xl) !important; line-height: 1.1; letter-spacing: -0.032em; text-wrap: balance; }
.l-product__rating .wc-block-components-product-rating__container { gap: .4rem; }
.l-product__rating a { color: var(--c-muted); font-size: var(--fs-sm); }
.l-product__benefit { margin: 0; font-size: var(--fs-md); line-height: 1.5; color: #2e3638; }
.l-product__short { color: #2e3638; }
.l-product__short p { margin: 0; }
.l-checklist { display: grid; gap: .5rem; margin: .25rem 0 0; padding: 0; list-style: none; }
.l-checklist li { display: flex; gap: .6rem; align-items: flex-start; font-size: 15px; }
.l-checklist .l-icon { margin-top: .1rem; color: var(--c-slate); }

.l-buybox { display: grid; gap: 1rem; margin-top: .5rem !important; padding: clamp(1.1rem, 2.5vw, 1.5rem); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: #fff; }
.l-buybox > * { margin: 0 !important; }
.l-product__price, .l-product__price .wc-block-components-product-price { font-size: var(--fs-xl) !important; font-weight: 650; letter-spacing: -0.02em; }
.l-product__price .woocommerce-price-suffix { font-size: 13px; font-weight: 400; color: var(--c-muted); }

/* Classic add-to-cart form (simple + variable) */
.l-product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.l-product form.cart.variations_form { display: block; }
.l-product .variations { width: 100%; margin: 0 0 1rem; border-collapse: collapse; border: 0; }
.l-product .variations tr { display: grid; gap: .4rem; margin-bottom: .75rem; }
.l-product .variations th, .l-product .variations td { padding: 0; border: 0; text-align: left; background: none; }
.l-product .variations label { font-size: var(--fs-sm); font-weight: 600; }
.l-product .variations select { width: 100%; max-width: 360px; border-radius: var(--r-sm); font-size: 15px; }
.l-product form.l-one-attr .reset_variations { display: none !important; }
.l-product .reset_variations { display: inline-block; margin-top: .4rem; font-size: 13px; color: var(--c-muted); }
.l-product .single_variation_wrap { display: grid; gap: .75rem; }
.l-product .woocommerce-variation-price .price { font-size: var(--fs-lg); font-weight: 650; }
.l-product .l-price-synced .woocommerce-variation-price { display: none; }
.l-product__price .price { font-size: inherit; font-weight: inherit; }
.l-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; }
.l-product .quantity { display: inline-flex; align-items: center; height: 52px; border: 1px solid var(--c-line); border-radius: var(--r-pill); background: #fff; }
.l-product .quantity .qty { width: 3rem; height: 100%; padding: 0; border: 0; background: transparent; text-align: center; font: inherit; font-weight: 600; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.l-product .quantity .qty::-webkit-outer-spin-button, .l-product .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.l-product .quantity.has-steppers .qty { width: 2.25rem; }
.l-product form.cart .quantity { flex: none; margin: 0 !important; }
.l-qty-btn { display: grid; place-items: center; width: 40px; height: 100%; padding: 0; border: 0; background: none; color: var(--c-ink); font-size: 1.25rem; cursor: pointer; border-radius: var(--r-pill); }
.l-qty-btn:hover { background: var(--c-surface-2); }
/* WooCommerce ships more specific rules for these; keep our sizing deterministic. */
.l-product form.cart .variations select { height: 48px !important; min-height: 48px; padding: 0 2.5rem 0 1rem !important; line-height: 1.2 !important; font-size: 15px !important; margin: 0 !important; }
.l-product form.cart .variations th, .l-product form.cart .variations td { padding: 0 !important; line-height: 1.3 !important; }
.l-product form.cart .variations td.value { display: grid !important; gap: .35rem; }
.l-product form.cart .single_variation:empty { display: none !important; }
.l-product form.cart .woocommerce-variation { margin: 0 !important; }
.l-product .single_add_to_cart_button, .l-product form.cart .button {
	flex: 1 1 0; min-width: 140px; min-height: 52px; padding: 0 1.25rem; border: 0; border-radius: var(--r-pill); background: var(--c-slate) !important; color: #fff !important;
	font: inherit; font-weight: 600; font-size: var(--wp--preset--font-size--base); cursor: pointer; transition: background-color .2s;
}
.l-product .single_add_to_cart_button:hover { background: var(--c-slate-dark) !important; }
.l-product .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }
.l-product form.cart .l-stock, .l-product .woocommerce-variation-availability .l-stock { flex-basis: 100%; order: -1; }

/* Variation option buttons (WooCommerce's selects stay in the form, hidden). */
.l-product form.cart .variations select.l-select-hidden { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
.l-product form.cart .variations td.value { position: relative; }
.l-swatch-current { font-weight: 450; color: var(--c-muted); }
.l-swatches { display: flex; flex-wrap: wrap; gap: .5rem; }
.l-swatch { position: relative; display: inline-grid; align-content: center; justify-items: start; gap: .1rem; min-width: 76px; min-height: 48px; padding: .45rem .9rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.l-swatch:hover { border-color: var(--c-silver); }
.l-swatch__input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.l-swatch__text { font-size: 14.5px; font-weight: 560; line-height: 1.25; }
.l-swatch__meta { font-size: 12.5px; color: var(--c-muted); font-variant-numeric: tabular-nums; }
.l-swatch__meta:empty { display: none; }
.l-swatch.is-selected { border-color: var(--c-slate); box-shadow: 0 0 0 1px var(--c-slate); background: #f6f9fa; }
.l-swatch:has(.l-swatch__input:focus-visible) { outline: 2px solid var(--c-cyan); outline-offset: 2px; }
.l-swatch.is-out .l-swatch__text { color: var(--c-muted); }
.l-swatch.is-unavailable { border-style: dashed; background: var(--c-surface); }
.l-swatch.is-unavailable .l-swatch__text { color: var(--c-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.l-product .woocommerce-variation-availability .l-stock { margin: 0; }

.l-unit { margin: -.6rem 0 0 !important; font-size: 13px; color: var(--c-muted); font-variant-numeric: tabular-nums; }
.l-unit[hidden] { display: none; }

.l-product__intro { display: grid; gap: .85rem; }
.l-product__short { color: #2e3638; font-size: 15.5px; line-height: 1.6; }
.l-product__short p { margin: 0 0 .5em; }
.l-product__short p:last-child { margin-bottom: 0; }

/* Long sections on phones: first part visible, rest on request (still in the HTML). */
.l-psec__body.is-clamped { max-height: 520px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.l-more { display: inline-flex; align-items: center; min-height: 44px; margin-top: .5rem; padding: 0 1.1rem; border: 1px solid var(--c-line); border-radius: var(--r-pill); background: #fff; color: var(--c-ink); font: inherit; font-size: var(--fs-sm); font-weight: 560; cursor: pointer; }
.l-more:hover { border-color: var(--c-silver); }

.l-tiers { padding: .85rem 1rem; border-radius: var(--r-md); background: var(--c-surface); font-size: var(--fs-sm); }
.l-tiers__title { margin: 0 0 .35rem; font-weight: 600; }
.l-tiers ul { margin: 0; padding-left: 1.1rem; }
.l-tiers__note { margin: .35rem 0 0; color: var(--c-muted); font-size: 12.5px; }

.l-delivery { display: grid; gap: .55rem; margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--c-line); list-style: none; font-size: 14px; color: #2e3638; }
.l-delivery li { display: flex; align-items: flex-start; gap: .65rem; }
.l-delivery .l-icon { margin-top: .05rem; color: var(--c-slate); }

/* In-page section nav + sections */
.l-product__details { max-width: calc(880px + 2 * var(--gutter)); padding-bottom: 2rem; }
.l-ptoc { margin-bottom: .5rem; }
.l-ptoc ul { display: flex; gap: .4rem; margin: 0 calc(-1 * var(--gutter)); padding: .25rem var(--gutter); overflow-x: auto; list-style: none; scrollbar-width: none; }
.l-ptoc ul::-webkit-scrollbar { display: none; }
.l-ptoc a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 .95rem; border-radius: var(--r-pill); background: var(--c-surface); color: var(--c-ink); font-size: var(--fs-sm); font-weight: 500; text-decoration: none; white-space: nowrap; }
.l-ptoc a:hover { background: var(--c-surface-2); }
@media (min-width: 900px) { .l-ptoc ul { flex-wrap: wrap; margin: 0; padding: 0; } }
.l-psec, .l-product__details .l-faq { padding-block: 2.25rem; border-top: 1px solid var(--c-line); }
.l-ptoc + .l-psec { border-top: 0; }
.l-psec__title, .l-product__details .l-faq .l-section-title { margin: 0 0 1.25rem; font-size: var(--fs-xl); letter-spacing: -0.025em; }
.l-psec h3 { margin: 0 0 .6rem; font-size: var(--fs-md); }

.l-fit { display: grid; gap: 1rem; }
@media (min-width: 640px) { .l-fit { grid-template-columns: 1fr 1fr; } }
.l-fit__col { padding: 1.25rem; border-radius: var(--r-md); background: var(--c-surface); }
.l-fit__col ul { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.l-fit__col li { display: flex; gap: .6rem; }
.l-fit__col--yes .l-icon { color: var(--c-success); }
.l-fit__col--no .l-icon { color: var(--c-danger); }

.l-usage__prep { margin-bottom: 1.25rem; }
.l-usage__prep ul { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.l-usage__prep li { padding: .35rem .8rem; border: 1px solid var(--c-line); border-radius: var(--r-pill); font-size: var(--fs-sm); }
.l-steps { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.l-steps li { position: relative; padding: .95rem 1rem .95rem 3.5rem; border-radius: var(--r-md); background: var(--c-surface); counter-increment: step; }
.l-steps li::before { content: counter(step); position: absolute; left: 1rem; top: .85rem; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--c-slate); color: #fff; font-size: 13px; font-weight: 600; }
.l-callout { display: flex; gap: .85rem; margin-top: 1.25rem; padding: 1rem 1.1rem; border-radius: var(--r-md); }
.l-callout--warn { background: #fbf6ea; border: 1px solid #ead9b0; color: #4f3a00; }
.l-callout .l-icon { color: var(--c-warning); }
.l-callout__title { margin: 0 0 .25rem; font-weight: 600; }
.l-callout ul { margin: 0; padding-left: 1.1rem; }
.l-video-link, .l-doc-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem; font-weight: 560; }

.l-specs { width: 100%; border-collapse: collapse; font-size: 15px; }
.l-specs th, .l-specs td { padding: .8rem 0; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.l-specs th { width: 42%; padding-right: 1rem; font-weight: 500; color: var(--c-muted); }

.l-ghs { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.l-ghs li { display: flex; align-items: center; gap: .9rem; font-size: var(--fs-sm); }
.l-ghs__mark { display: grid; place-items: center; width: 34px; height: 34px; margin: 6px; border: 3px solid #c8102e; background: #fff; transform: rotate(45deg); }
.l-ghs__mark span { transform: rotate(-45deg); font-size: 12px; font-weight: 700; }
.l-signal { margin: 0 0 .75rem; }
.l-hazards { margin: 0; padding-left: 1.1rem; font-size: 14.5px; color: #2e3638; }

/* WooCommerce reviews template */
.l-reviews #reviews h2, .l-reviews .woocommerce-Reviews-title { margin: 0 0 1.25rem; font-size: var(--fs-xl); letter-spacing: -0.025em; }
.l-reviews .commentlist { margin: 0; padding: 0; list-style: none; }
.l-reviews .commentlist li { margin: 0 0 1rem; padding: 1.25rem; border-radius: var(--r-md); background: var(--c-surface); }
.l-reviews .comment_container img.avatar { display: none; }
.l-reviews .woocommerce-noreviews { color: var(--c-muted); }
.l-reviews .woocommerce-verification-required { padding: 1rem; border-radius: var(--r-md); background: var(--c-surface); color: var(--c-muted); font-size: var(--fs-sm); }
.l-reviews #review_form input:not([type=checkbox]):not([type=submit]), .l-reviews #review_form textarea { width: 100%; padding: .75rem 1rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); font: inherit; box-sizing: border-box; }

/* "Rekomenduojame kartu" */
.l-together { padding-block: 0 2.5rem; }
.l-together__inner { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: var(--r-lg); background: var(--c-surface); }
.l-together__inner .l-section-title { font-size: var(--fs-xl); }
.l-together__inner > p { margin: 0; }
.l-together__form { display: grid; gap: 1.25rem; }
.l-together__list { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.l-together__item { display: flex; align-items: center; gap: .75rem; padding: .6rem .9rem .6rem .75rem; border-radius: var(--r-md); background: #fff; }
.l-together__item label { display: grid; grid-template-columns: auto 52px minmax(0, 1fr) auto; align-items: center; gap: .85rem; flex: 1; min-width: 0; cursor: pointer; }
.l-together__item input { width: 20px; height: 20px; margin: 0; accent-color: var(--c-slate); }
.l-together__img img { display: block; width: 52px; height: 52px; object-fit: contain; border-radius: var(--r-xs); background: var(--c-surface); mix-blend-mode: multiply; }
.l-together__name { font-size: 14.5px; font-weight: 500; line-height: 1.35; }
.l-together__tag { display: block; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-slate); }
.l-together__price { font-weight: 620; white-space: nowrap; font-variant-numeric: tabular-nums; }
.l-together__link { flex: none; font-size: 13px; color: var(--c-muted); }
.l-together__choice { display: grid; grid-template-columns: auto 52px minmax(0, 1fr) auto; align-items: center; gap: .85rem; flex: 1; min-width: 0; color: var(--c-ink); text-decoration: none; }
.l-together__box { width: 20px; height: 20px; }
.l-together__inner .l-section-lead { margin-top: .35rem; }
.l-together__item:has(input:not(:checked)) .l-together__img, .l-together__item:has(input:not(:checked)) .l-together__name, .l-together__item:has(input:not(:checked)) .l-together__price { opacity: .5; }
.l-together__total { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }
.l-together__total p { margin: 0; font-size: var(--fs-md); }
.l-together__total strong { font-size: var(--fs-lg); font-variant-numeric: tabular-nums; }
@media (max-width: 520px) {
	.l-together__item label { grid-template-columns: auto 44px minmax(0, 1fr); }
	.l-together__img img { width: 44px; height: 44px; }
	.l-together__price { grid-column: 3; font-size: var(--fs-sm); }
	.l-together__link { display: none; }
	.l-together__total .l-btn { width: 100%; }
}

/* Mobile sticky purchase bar */
.l-sticky { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; padding-bottom: env(safe-area-inset-bottom); background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--c-line); box-shadow: 0 -10px 30px -18px rgba(20, 25, 27, .35); }
.l-sticky[hidden] { display: none; }
.l-sticky__inner { display: flex; align-items: center; gap: .75rem; min-height: 68px; }
.l-sticky__info { display: grid; flex: 1; min-width: 0; }
.l-sticky__name { overflow: hidden; font-size: 13.5px; font-weight: 560; white-space: nowrap; text-overflow: ellipsis; }
.l-sticky__variant { font-size: 12px; color: var(--c-muted); }
.l-sticky__variant:empty { display: none; }
.l-sticky__price { font-weight: 650; white-space: nowrap; }
.l-sticky__price del { display: none; }
.l-sticky__price ins { text-decoration: none; }
.l-sticky__btn { min-height: 46px; padding: 0 1.25rem; }
body.has-sticky-buy { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
@media (min-width: 900px) { .l-sticky { display: none !important; } }

/* ---------- Bundles ---------- */
.l-bundle .l-wrap, .l-bundles .l-wrap { padding-bottom: 3rem; }
.l-bundle__top { display: grid; gap: 2rem; padding-block: 1rem 2.5rem; }
.l-bundle__intro { display: grid; gap: .85rem; align-content: start; }
.l-bundle__media img { border-radius: var(--r-lg); }
@media (min-width: 900px) { .l-bundle__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; } }
.l-bundle-buy { display: grid; gap: 1.1rem; align-content: start; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.l-bundle-buy__title { margin: 0; font-size: var(--fs-lg); }
.l-bundle-buy__list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.l-bundle-buy__item { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto auto; align-items: center; gap: .85rem; }
.l-bundle-buy__img img { display: block; width: 56px; height: 56px; object-fit: contain; border-radius: var(--r-sm); background: var(--c-surface); mix-blend-mode: multiply; }
.l-bundle-buy__name { color: var(--c-ink); font-weight: 500; text-decoration: none; font-size: 15px; }
.l-bundle-buy__name:hover { color: var(--c-slate); }
.l-bundle-buy__qty { color: var(--c-muted); font-size: var(--fs-sm); white-space: nowrap; }
.l-bundle-buy__price { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.l-bundle-buy__total { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin: 0; padding-top: 1rem; border-top: 1px solid var(--c-line); font-size: var(--fs-lg); }
.l-bundle-buy__total del { margin-left: auto; color: var(--c-muted); font-size: var(--fs-sm); }
.l-bundle-buy__note { margin: -.5rem 0 0; font-size: 13px; }
.l-bundle-buy form .l-btn { width: 100%; }
.l-bundle__content { padding-bottom: 2rem; }

/* ---------- Cart, checkout, account (WooCommerce blocks) ---------- */
.l-cart .l-wrap, .l-checkout .l-wrap { padding-bottom: 3rem; }
.l-cart .l-page-title, .l-checkout .l-page-title { margin-top: 1.5rem; }
.wc-block-cart, .wc-block-checkout { font-family: inherit; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	min-height: 52px; border-radius: var(--r-pill) !important; background: var(--c-slate) !important; color: #fff !important; font-weight: 600 !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--c-slate-dark) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-textarea, .wc-blocks-components-select__select {
	border-radius: var(--r-sm) !important; border-color: var(--c-line) !important;
}
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus { border-color: var(--c-slate) !important; box-shadow: 0 0 0 1px var(--c-slate) !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wp-block-woocommerce-cart-order-summary-block, .wp-block-woocommerce-checkout-order-summary-block { border-radius: var(--r-md); }
.wc-block-components-notice-banner { border-radius: var(--r-md) !important; }
.wc-block-components-product-name { color: var(--c-ink); font-weight: 560; text-decoration: none; }
.wc-block-cart-items__row .wc-block-cart-item__image img { border-radius: var(--r-sm); background: var(--c-surface); }
.wp-block-woocommerce-empty-cart-block .wp-block-heading { font-size: var(--fs-xl); }

.l-header--checkout .l-header__bar { grid-template-columns: 1fr auto; min-height: 64px; }
.l-site-header--checkout { position: relative; top: 0; }
.l-back { display: inline-flex; align-items: center; gap: .45rem; color: var(--c-ink); font-size: var(--fs-sm); text-decoration: none; }
.l-back:hover { color: var(--c-slate); }

.l-confirmation .l-wrap { padding-block: 2rem 3rem; }
.l-confirmation__status { font-size: var(--fs-xl); }

/* My account (classic shortcode inside the page). */
.woocommerce-account .woocommerce { display: grid; gap: 2rem; }
@media (min-width: 900px) { .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 220px 1fr; } }
.woocommerce-MyAccount-navigation ul { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation a { display: block; padding: .6rem .9rem; border-radius: var(--r-sm); color: var(--c-ink); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--c-surface); }
.woocommerce-account form .input-text { min-height: 48px; padding: .6rem .9rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); font: inherit; box-sizing: border-box; width: 100%; }
.woocommerce-account .button { min-height: 48px; padding: 0 1.5rem; border: 0; border-radius: var(--r-pill); background: var(--c-slate); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
