/* ============================================================================
   kb-woo.css — the shop: header cart, drawer, grid, product page, notices
   ============================================================================
   ADAPT of whatashag assets/css/was-woo.css, in this theme's own tokens and
   type. Loaded on EVERY page (inc/kb-woocommerce.php) because the drawer and
   the header count ship everywhere; scoping drawer CSS to shop pages is the
   page-scoped-asset bug the family has already paid for. The block cart and
   checkout skin is the separate kb-woo-blocks.css.

   House rules hold here too: radius 0 on surfaces (radios stay round,
   checkboxes square), no shadows, hairlines, brass the only accent — and
   brass is a FILL or a RULE on this cream ground, never small text: brass on
   cream measures 3.11:1 and fails AA. Navy on brass is 4.89:1 and passes, so
   every brass button carries navy type.

   No !important. The one place the donor needed it (Woo's red `a.remove`) is
   avoided at the source — see woocommerce/cart/mini-cart.php.
   ========================================================================= */

/* ── Shared ──────────────────────────────────────────────────────────────── */
.theme--kb .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.kb-chip {
	display: inline-block;
	padding: 5px 9px;
	font-family: var(--kb-sans);
	font-size: 0.68rem;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1;
}
/* Sold out: solid navy, cream type. A status, and it must not look like a
   button — so it is the page's dark colour, not its accent. */
.kb-chip--out { background: var(--kb-ink); color: var(--kb-paper); }
/* Sale: brass fill, ink type (the one accent, used as a fill — never brass type). */
.kb-chip--sale { background: var(--kb-brass); color: var(--kb-ink); }
/* Business-only: a hairline, quiet — a note for the team, not a selling point. */
.kb-chip--b2b { border: 1px solid rgba(var(--kb-ink-rgb), 0.45); color: var(--kb-ink); padding: 4px 8px; }
.kb-card-p__meta .kb-chip + .kb-chip,
.kb-product .kb-chip + .kb-chip { margin-left: 6px; }

/* The roast lot. Grey-dark, never brass: it is small type on cream. */
.kb-lot {
	font-family: var(--kb-sans);
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
/* On the product page the number is a link to its archive row: a brass
   rule under grey type, the site's link voice at this size. */
a.kb-lot { border-bottom: 1px solid var(--kb-brass); padding-bottom: 2px; transition: color .18s ease; }
a.kb-lot:hover { color: var(--kb-ink); }

/* Prices: the serif, at reading weight. Woo prints a range for a variable
   product ("21,00 € – 60,00 €") until a size is chosen. */
body.theme--kb .kb-woo .price,
body.theme--kb .kb-woo .price .amount,
body.theme--kb .kb-feat .price,
body.theme--kb .kb-feat .price .amount {
	font-family: var(--kb-serif);
	font-weight: 500;
	color: var(--kb-ink);
}
/* Woo's `.woocommerce div.product p.price` (0,3,2) is olive and out-ranked the
   rule above on the product page — the range's "–" showed olive. (1.10.1) */
body.theme--kb .kb-woo div.product p.price,
body.theme--kb .kb-woo div.product span.price { color: var(--kb-ink); }
/* A sale price (1.17.0): the old price small, grey and struck through in its own
   grey — WooCommerce drew the line olive — and the new price in the ink. */
body.theme--kb .price del,
body.theme--kb .price del .amount {
	color: var(--kb-grey-dark);
	font-weight: 400;
	text-decoration: line-through;
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
}
body.theme--kb .price del { opacity: .75; margin-right: 6px; font-size: 0.86em; }
body.theme--kb .price ins { text-decoration: none; background: none; }

/* ── Shop page and categories ────────────────────────────────────────────── */
.kb-shop__head { max-width: 46rem; margin-bottom: clamp(32px, 5vw, 56px); }
.kb-shop__head .kb-h1 { margin: 0; }
.kb-shop__intro:empty { display: none; }
.kb-shop__intro { margin-top: 18px; }
.kb-shop__intro .page-description > :last-child,
.kb-shop__intro .term-description > :last-child { margin-bottom: 0; }
body.theme--kb .kb-woo .woocommerce-result-count {
	margin: 0 0 18px;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
.kb-shop__empty { color: var(--kb-grey-dark); }

/* ── Filter bar (inc/kb-shop-filter.php, assets/js/kb-shop-filter.js) ────────
   Rows of chips above the grid: label left, chips right on desktop; label
   above, chips in ONE sideways-scrolling line on phones — sixteen coffees'
   countries wrapped into four lines would push the first card off screen.
   The scroll lives inside .kb-filter__chips, never on the page.
   Chips follow the size buttons on the product page: outline at rest, NAVY
   when on (a state), brass only as the focus ring — but smaller (32px, 1.7.4:
   Arnas wanted the bar more compact). 32px is under the 44px touch ideal;
   accepted because each chip is a whole word wide and 6px apart. */
.kb-filter {
	margin: 0 0 clamp(24px, 3vw, 36px);
	border-top: 1px solid var(--kb-line);
}
.kb-filter__row {
	display: grid;
	grid-template-columns: 8rem minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	padding: 8px 0;
	border-bottom: 1px solid var(--kb-line);
}
.kb-filter__label {
	font-family: var(--kb-sans);
	font-size: 0.64rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
.kb-filter__chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
body.theme--kb .kb-filter a.kb-chipf {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	padding: 0 11px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease, opacity .18s ease;
}
body.theme--kb .kb-filter a.kb-chipf:hover { border-color: var(--kb-ink); }
body.theme--kb .kb-filter a.kb-chipf.is-on { background: var(--kb-ink); border-color: var(--kb-ink); color: var(--kb-paper); }
body.theme--kb .kb-filter a.kb-chipf.is-dead { opacity: .38; }
body.theme--kb .kb-filter a.kb-chipf:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: 2px; }
.kb-chipf__n {
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	color: var(--kb-grey-dark);
	font-variant-numeric: tabular-nums;
}
.kb-chipf.is-on .kb-chipf__n { color: rgba(var(--kb-paper-rgb), 0.72); }

/* Search box above the chips (1.17.0): a square hairline field, the same
   voice as the form fields; one line, full width on a phone. */
.kb-filter__search { margin: 0 0 14px; max-width: 420px; }
body.theme--kb .kb-filter .kb-filter__q {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	border-radius: 0;
	background: #fff;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 0.92rem;
	-webkit-appearance: none;
	appearance: none;
}
body.theme--kb .kb-filter .kb-filter__q:focus { outline: 2px solid var(--kb-brass); outline-offset: 1px; border-color: var(--kb-ink); }
.kb-filter__status {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 40px;
	margin: 0;
	font-size: 0.8rem;
	color: var(--kb-grey-dark);
}
.kb-filter__count:empty { display: none; }
.kb-filter__status:has(.kb-filter__count:empty):has(.kb-filter__reset[hidden]) { min-height: 0; }
body.theme--kb .kb-filter__reset {
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--kb-brass);
	background: none;
	color: var(--kb-ink);
	font: inherit;
	cursor: pointer;
}
body.theme--kb .kb-filter__reset[hidden] { display: none; }
.kb-filter__reset:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: 3px; }
.kb-filter__none { margin: 0 0 24px; color: var(--kb-grey-dark); }
.kb-filter__none[hidden] { display: none; }

/* A filtered-out card. The grid item rules above never set display on the
   <li>, but Woo's might one day — this keeps [hidden] meaning hidden. */
body.theme--kb .kb-woo ul.kb-grid > li[hidden] { display: none; }

@media (max-width: 782px) {
	.kb-filter__row { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 10px 0 8px; }
	.kb-filter__chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		/* Let the line run to the screen edge, so a cut-off chip says "more". */
		margin-right: calc(-1 * clamp(20px, 5vw, 40px));
		padding-right: clamp(20px, 5vw, 40px);
	}
	.kb-filter__chips::-webkit-scrollbar { display: none; }
}
/* Landscape phones (844×390): wide enough for the desktop layout, so the
   chips wrapped to two lines per row and the bar filled the whole 390px
   screen before the first card. Keep the label column, one scrolling line. */
@media (max-height: 460px) and (orientation: landscape) {
	.kb-filter__row { grid-template-columns: 7rem minmax(0, 1fr); padding: 6px 0; }
	.kb-filter__chips { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
	.kb-filter__chips::-webkit-scrollbar { display: none; }
	body.theme--kb .kb-filter a.kb-chipf { min-height: 30px; }
}

/* The grid — THREE PER ROW (1.15.0, Arnas: "three per row, so they're
   bigger"), two on a tablet, one on a phone. Fixed tracks, not auto-fill:
   the filter bar can leave two cards, and fixed thirds keep them card-sized
   (until 1.7.0 auto-fit stretched two filtered cards to 520px each — the
   whatashag related-cards scar). The same grid on the front page (.kb-feat). */
body.theme--kb ul.kb-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 2.2vw, 32px);
}
@media (min-width: 600px) {
	body.theme--kb ul.kb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
	body.theme--kb ul.kb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* 🔴 WOO'S CLEARFIX BECOMES A GRID ITEM AND EATS THE FIRST CELL.
   woocommerce.css gives ul.products a ::before/::after clearfix; on a grid
   container a pseudo-element IS a grid item, so card one starts in cell two.
   content:none on EVERY ul.products — the related loop prints a bare one,
   and whatashag kept the bug there for a round after fixing its own. */
body.theme--kb ul.products::before,
body.theme--kb ul.products::after { content: none; }

/* Woo's float layout for li.product (width:22%; float:left; margin-right)
   still arrives from woocommerce.css at (0,3,1)-ish weight; in a grid the
   float is ignored but the width and margins are not. Matched and reset. */
body.theme--kb.woocommerce ul.products li.product,
body.theme--kb .woocommerce ul.products li.product,
body.theme--kb ul.products li.product {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
}

/* The card (1.15.0 — "smoother and juicier instead of flat"). Still the
   site's framed box with the brass tab, but with depth from light, not
   shadow: the bag stands in a lit well (a paper glow over a brass wash —
   brass as fill only), the card body is a shade lighter than the page, and on
   hover the bag comes forward a little. Radius 0, no shadows. */
.kb-card-p {
	position: relative;
	border: 1px solid var(--kb-line);
	background: rgba(255, 255, 255, 0.5);
	transition: border-color .25s ease, background-color .25s ease;
}
.kb-card-p::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	z-index: 1;
	width: 46px;
	height: 2px;
	background: var(--kb-brass);
	transition: width .3s ease;
}
.kb-card-p:hover { border-color: rgba(var(--kb-brass-rgb), 0.55); background: rgba(255, 255, 255, 0.8); }
.kb-card-p:hover::before { width: 96px; }
.kb-card-p__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.kb-card-p__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background:
		radial-gradient(70% 62% at 50% 44%, rgba(var(--kb-paper-rgb), 0.95) 0%, rgba(var(--kb-paper-rgb), 0) 100%),
		rgba(var(--kb-brass-rgb), 0.2);
}
body.theme--kb .kb-card-p__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
@media (hover: hover) {
	.kb-card-p:hover .kb-card-p__media img { transform: scale(1.045); }
}
.kb-card-p__hover {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .35s ease;
}
@media (hover: hover) {
	.kb-card-p:hover .kb-card-p__hover { opacity: 1; }
}
@media (hover: none) {
	.kb-card-p__hover { display: none; }
}
.kb-card-p__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	flex: 1;
	padding: clamp(20px, 2vw, 26px) clamp(20px, 2vw, 28px) clamp(20px, 2vw, 24px);
	border-top: 1px solid var(--kb-line);
}
.kb-card-p__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kb-grey);
}
.kb-card-p__meta .kb-chip { letter-spacing: 0.12em; }
body.theme--kb .kb-card-p__title {
	margin: 0;
	padding: 0;
	font-family: var(--kb-serif);
	font-weight: 500;
	font-size: clamp(1.08rem, 1.3vw, 1.24rem);
	line-height: 1.25;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--kb-ink);
}
/* Always two lines (1.15.1): clamped when longer, two lines of room when
   shorter, so every card in a row carries the same weight of text. */
.kb-card-p__notes {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	min-height: calc(2 * 1.45em);
	font-family: var(--kb-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 1rem;
	line-height: 1.45;
	color: var(--kb-grey-dark);
}
/* Price and button share the bottom row, pushed down so the rows of a
   grid line up whatever the length of the notes. */
.kb-card-p__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	width: 100%;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--kb-line);
}
body.theme--kb .kb-card-p__price { font-size: 1rem; }
/* Woo's `.woocommerce ul.products li.product .price` (0,3,2) sets its own
   margin and shrinks the size to .857em, so this is written above it. */
body.theme--kb ul.products li.product .kb-card-p__price { display: block; margin: 0; font-size: 1rem; }
/* The CTA is a <span> inside the card's link (the whole card is the target):
   solid ink, filling brass when the CARD is hovered. */
.kb-card-p__cta {
	padding: 11px 20px;
	background: var(--kb-ink);
	border: 1px solid var(--kb-ink);
	color: var(--kb-paper);
	font-size: 0.7rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
	transition: background-color .22s ease, border-color .22s ease, color .22s ease;
}
.kb-card-p:hover .kb-card-p__cta { background: var(--kb-brass); border-color: var(--kb-brass); color: var(--kb-ink); }

/* Front page: our coffee (1.15.0, kb_feat_section in kb-coffee.php).
   Straight after "Apie" both sections' padding stacked into one big gap
   (Arnas, 1.15.1: "too big, closer, tighter") — the story's bottom padding
   is the whole gap now, and the head sits closer to the cards. */
.kb-story + .kb-feat { padding-top: 0; }
.kb-feat .kb-feat__head { margin-bottom: clamp(28px, 3.5vw, 44px); }
.kb-feat__more { margin: clamp(32px, 4vw, 48px) 0 0; text-align: center; }

/* ── Product page ────────────────────────────────────────────────────────── */
.kb-product__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
}
/* 1.15.2 (Arnas: "all elements are very big and wide"): the picture gets a
   little more of the row, the buy column a little less, and everything in the
   buy column one step smaller — nothing removed. */
@media (min-width: 900px) {
	.kb-product__layout { grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); }
	/* The picture stays in view while the buy box is read. */
	.kb-product__gallery { position: sticky; top: 24px; }
}
.kb-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kb-gallery__item { margin: 0; }
.kb-gallery__item--hero,
.kb-gallery > img { grid-column: 1 / -1; }
body.theme--kb .kb-gallery img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	/* the same lit well as the shop cards (1.15.2) */
	background:
		radial-gradient(70% 62% at 50% 44%, rgba(var(--kb-paper-rgb), 0.95) 0%, rgba(var(--kb-paper-rgb), 0) 100%),
		rgba(var(--kb-brass-rgb), 0.2);
}

.kb-product__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	margin: 0 0 14px;
}
.kb-product__cat {
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
.kb-product__cat a { border-bottom: 1px solid var(--kb-brass); }
body.theme--kb .kb-product .product_title { margin: 0 0 10px; font-size: clamp(1.55rem, 2.3vw, 2.05rem); line-height: 1.15; }
.kb-product .kb-chip { margin: 0 0 14px; }
/* Weighted past Woo's `.woocommerce div.product p.price` (0,3,2, 1.25em). */
body.theme--kb .kb-product .kb-product__price p.price,
body.theme--kb .kb-product .kb-product__price .price { margin: 0 0 16px; font-size: 1.15rem; }
.kb-product__excerpt { margin: 0 0 20px; font-size: 0.95rem; }
.kb-product__excerpt > :last-child { margin-bottom: 0; }

/* The spec block — the coffee's facts as a two-column list, one hairline
   per row. Labels in the small tracked caps the whole site uses for labels;
   values in the reading face. Brass is the rule on top, not the type. */
.kb-spec {
	margin: 0 0 22px;
	border-top: 2px solid var(--kb-brass);
}
.kb-spec__row {
	display: grid;
	grid-template-columns: minmax(7.5rem, 34%) 1fr;
	gap: 14px;
	padding: 8px 0;
	border-bottom: 1px solid var(--kb-line);
}
.kb-spec__label {
	margin: 0;
	padding-top: 3px;
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
.kb-spec__value { margin: 0; color: var(--kb-ink); font-weight: 400; font-size: 0.93rem; }

/* ── The buy box: variations, qty, add to cart ───────────────────────────── */
.kb-product__buy { margin-top: 6px; }
/* Woo's variation table is a <table>: made to read as rows, not fought into
   a grid (display:grid on a table is the trap the drawer notes record). */
body.theme--kb .kb-product table.variations { width: 100%; margin: 0 0 18px; border: 0; border-collapse: collapse; }
body.theme--kb .kb-product table.variations tr { display: block; margin: 0 0 18px; }
body.theme--kb .kb-product table.variations th,
body.theme--kb .kb-product table.variations td {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	text-align: left;
	line-height: 1.4;
}
body.theme--kb .kb-product table.variations th.label {
	margin: 0 0 7px;
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
body.theme--kb .kb-product table.variations label { color: inherit; font-weight: 400; }

/* The enhanced <select> stays in the DOM, visually hidden, as the source of
   truth. It must out-weigh the dropdown rule below (0,3,2), which sets
   width:100% — the first version lost that fight, the 1px box became a
   320px absolute one, and the product page scrolled sideways by 110px on
   desktop. Pinned to its own cell for the same reason. */
body.theme--kb .kb-product table.variations td.value { position: relative; }
body.theme--kb .kb-product table.variations select.kb-select-enhanced {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	max-width: none;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	border: 0;
}

/* The option buttons (assets/js/kb-variations.js). Outline at rest, NAVY
   when chosen — a chosen size is a state, and the site's state colour is its
   dark one; brass stays reserved for the one action, ADD TO CART. */
.kb-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.kb-opt {
	min-width: 64px;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-weight: 400;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.kb-opt:hover:not(:disabled) { border-color: var(--kb-ink); }
.kb-opt[aria-pressed="true"] { background: var(--kb-ink); border-color: var(--kb-ink); color: var(--kb-paper); }
.kb-opt:disabled { cursor: not-allowed; opacity: .38; }
.kb-opt.is-soldout { text-decoration: line-through; }
/* Price per 100 g: a second, quieter line inside a size button, and after the
   price once a size is chosen (inc/kb-coffee.php, 1.9.6). */
.kb-opt.has-unit { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; line-height: 1.2; }
/* Sizes with a unit price share the row equally, so three fit a phone. */
.kb-opts.has-units { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 400px; }
.kb-opts.has-units .kb-opt { min-width: 0; padding: 4px 8px; }
.kb-opt__unit { font-size: 0.68rem; letter-spacing: 0.02em; opacity: .72; }
/* Two options with a second line (the plan's Klasika / Nuotykis, 1.16.0) share
   the row in halves, not two thirds of a three-column grid. */
.kb-opts.has-units.is-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* The chosen option's sentence under its row (Customizer kb_opt_notes). */
body.theme--kb .kb-product .kb-opts__note { max-width: 400px; margin: 10px 0 0; font-size: 0.86rem; line-height: 1.5; color: var(--kb-ink); }
/* On a phone the targets stay finger-sized. */
@media (max-width: 599px) {
	.kb-opt { min-height: 44px; }
}
.kb-opt[aria-pressed="true"] .kb-opt__unit { opacity: .85; }
body.theme--kb .kb-product .woocommerce-variation-price:not(:empty) { margin-bottom: 20px; }
body.theme--kb .kb-product .woocommerce-variation-price .kb-unit { display: block; margin-top: 4px; font-size: 0.8rem; color: var(--kb-grey-dark); font-weight: 400; }
/* Dispatch and rest notes under the buy row. */
body.theme--kb .kb-product .kb-buy-notes { list-style: none; margin: 18px 0 0; padding: 0; font-size: 0.86rem; line-height: 1.5; color: var(--kb-ink); }
body.theme--kb .kb-product .kb-buy-notes li { margin: 0 0 4px; padding-left: 14px; position: relative; }
body.theme--kb .kb-product .kb-buy-notes li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; background: var(--kb-brass); }
.kb-opt:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: 2px; }

/* One-line fields above the add-to-cart row: the voucher's "Kam skirta dovana"
   (inc/kb-vouchers.php) and the coffee's "Kaip ruošiate kavą?" (inc/kb-brew.php).
   Same label voice as Kiekis / Malimas, a square hairline field. */
body.theme--kb .kb-product .kb-voucher-to,
body.theme--kb .kb-product .kb-brew { margin: 0 0 22px; flex: 1 1 100%; }
body.theme--kb .kb-product .kb-voucher-to label,
body.theme--kb .kb-product .kb-brew label {
	display: block;
	margin: 0 0 10px;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kb-ink);
}
body.theme--kb .kb-product .kb-voucher-to input,
body.theme--kb .kb-product .kb-brew input {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	border-radius: 0;
	background: #fff;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 16px;
}
body.theme--kb .kb-product .kb-voucher-to input:focus,
body.theme--kb .kb-product .kb-brew input:focus { outline: 2px solid var(--kb-brass); outline-offset: 0; border-color: var(--kb-ink); }

/* The tasting set's three picks (inc/kb-tastebox.php, 1.9.6): the same label
   voice and square hairline fields as the voucher and brew-note fields. */
body.theme--kb .kb-product .kb-box { flex: 1 1 100%; margin: 0 0 22px; }
body.theme--kb .kb-product .kb-box__pick { border: 0; margin: 0; padding: 0; min-width: 0; }
body.theme--kb .kb-product .kb-box__pick legend {
	margin: 0 0 10px;
	padding: 0;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kb-ink);
}
body.theme--kb .kb-product .kb-box__row { display: block; margin: 0 0 8px; }
body.theme--kb .kb-product .kb-box__row select {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	min-height: 48px;
	padding: 0 40px 0 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	border-radius: 0;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230C203E' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 16px;
}
body.theme--kb .kb-product .kb-box__row select:focus { outline: 2px solid var(--kb-brass); outline-offset: 0; border-color: var(--kb-ink); }
body.theme--kb .kb-product .kb-box__total { margin: 12px 0 0; font-size: 0.95rem; color: var(--kb-ink); }
body.theme--kb .kb-product .kb-box__error { margin: 10px 0 0; padding-left: 10px; border-left: 2px solid var(--kb-ink); font-size: 0.9rem; font-weight: 500; color: var(--kb-ink); }
body.theme--kb .kb-product .kb-box__roaster { margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--kb-ink); }

/* The dropdown, for when the buttons are not there (JS off). Square. */
body.theme--kb .kb-product table.variations select {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	max-width: 320px;
	padding: 12px 40px 12px 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	border-radius: 0;
	background-color: #fff;
	background-image: linear-gradient(45deg, transparent 50%, var(--kb-ink) 50%), linear-gradient(135deg, var(--kb-ink) 50%, transparent 50%);
	background-position: calc(100% - 19px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 16px;
}
body.theme--kb .kb-product .reset_variations {
	display: inline-block;
	margin: 18px 0 0; /* 1.12.5: was 4px — it read as part of the last row of options */
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
	border-bottom: 1px solid var(--kb-brass);
}
/* Until a size is chosen WooCommerce only hides the link (visibility), so it
   kept ~40px of empty room under Malimas; now it takes room only when shown. */
body.theme--kb .kb-product .reset_variations[style*="hidden"] { display: none; }
body.theme--kb .kb-product .woocommerce-variation-price .price { margin: 0 0 10px; font-size: 1.15rem; }
body.theme--kb .kb-product .woocommerce-variation-availability p {
	margin: 0 0 10px;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}

body.theme--kb .kb-product form.cart,
body.theme--kb .kb-product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0;
}
body.theme--kb .kb-product form.cart.variations_form { display: block; }
body.theme--kb .kb-product .quantity.kb-has-stepper {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.34);
	margin: 0;
}
body.theme--kb .kb-product .quantity .qty {
	width: 3rem;
	min-height: 48px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 16px;
	text-align: center;
	-moz-appearance: textfield;
}
body.theme--kb .kb-product .quantity .qty::-webkit-inner-spin-button,
body.theme--kb .kb-product .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* Centred on purpose: a button reset elsewhere leaves text-align inherited,
   and the − and + sat against the stepper's left edge (1.7.1). */
body.theme--kb .kb-product .kb-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	padding: 0;
	text-align: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}
.kb-step:hover { background: rgba(var(--kb-ink-rgb), 0.06); }
.kb-step:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: -2px; }

/* ADD TO CART — the site's one action, brass with navy type (4.89:1).
   Matched against Woo's own chain: a bare .single_add_to_cart_button loses
   to `.woocommerce div.product form.cart .button` and stays Woo-purple. */
body.theme--kb.woocommerce div.product form.cart .button,
body.theme--kb .kb-product .single_add_to_cart_button.button,
body.theme--kb .kb-product form.cart button.button {
	flex: 1 1 auto;
	min-height: 48px;
	padding: 0 24px;
	border: 1px solid var(--kb-brass);
	border-radius: 0;
	background: var(--kb-brass);
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-weight: 400;
	font-size: 0.82rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .22s ease, border-color .22s ease, color .22s ease;
}
body.theme--kb.woocommerce div.product form.cart .button:hover,
body.theme--kb .kb-product .single_add_to_cart_button.button:hover {
	background: var(--kb-ink);
	border-color: var(--kb-ink);
	color: var(--kb-paper);
}
body.theme--kb.woocommerce div.product form.cart .button.disabled,
body.theme--kb.woocommerce div.product form.cart .button:disabled,
body.theme--kb .kb-product .single_add_to_cart_button.disabled {
	background: transparent;
	border-color: rgba(var(--kb-ink-rgb), 0.3);
	color: var(--kb-grey-dark);
	opacity: 1;
	cursor: not-allowed;
}

/* ── Accordions ──────────────────────────────────────────────────────────── */
.kb-product__tell { margin-top: clamp(40px, 6vw, 72px); max-width: 780px; }
.kb-acc { border-top: 1px solid var(--kb-line); }
.kb-acc:last-child { border-bottom: 1px solid var(--kb-line); }
.kb-acc__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--kb-serif);
	font-weight: 500;
	font-size: 1.02rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}
.kb-acc__head::-webkit-details-marker { display: none; }
.kb-acc__head::after {
	content: "+";
	font-family: var(--kb-sans);
	font-weight: 300;
	font-size: 1.3rem;
	color: var(--kb-ink);
	transition: transform .2s ease;
}
.kb-acc[open] .kb-acc__head::after { transform: rotate(45deg); }
.kb-acc__body { padding: 0 0 22px; }
.kb-acc__body > :last-child { margin-bottom: 0; }

/* ── Related coffees ─────────────────────────────────────────────────────── */
.kb-related { padding-top: 0; }
.kb-related > .kb-wrap > .related > h2 {
	margin: 0 0 clamp(24px, 3vw, 36px);
	padding-top: clamp(40px, 5vw, 64px);
	border-top: 1px solid var(--kb-line);
	font-family: var(--kb-serif);
	font-weight: 500;
	font-size: clamp(1.05rem, 1.9vw, 1.35rem);
	letter-spacing: 0.09em;
	text-transform: uppercase;
}
/* AUTO-FILL, not auto-fit — see the grid note above. */
body.theme--kb .kb-related ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 2.2vw, 32px);
}
@media (min-width: 600px) {
	body.theme--kb .kb-related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
	body.theme--kb .kb-related ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── Notices (classic: add-to-cart result, errors) ───────────────────────── */
body.theme--kb .woocommerce-notices-wrapper:empty { display: none; }
body.theme--kb .woocommerce-message,
body.theme--kb .woocommerce-info,
body.theme--kb .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px 20px;
	margin: 0 0 clamp(24px, 3vw, 36px);
	padding: 18px 22px;
	border: 1px solid var(--kb-line);
	border-left: 2px solid var(--kb-brass);
	border-top: 1px solid var(--kb-line);
	border-radius: 0;
	background: #fff;
	color: var(--kb-ink);
	list-style: none;
	font-size: 0.95rem;
}
/* Woo draws an icon font glyph in ::before and pads the box for it. */
body.theme--kb .woocommerce-message::before,
body.theme--kb .woocommerce-info::before,
body.theme--kb .woocommerce-error::before { content: none; }
/* …and a clearfix in ::after, which in a flex row is a third item: space-between
   then parked the buttons mid-box (1.16.1, Arnas: "should be on the right"). */
body.theme--kb .woocommerce-message::after,
body.theme--kb .woocommerce-info::after,
body.theme--kb .woocommerce-error::after { content: none; }
/* WooCommerce focuses the notice (tabindex -1) so screen readers hear it; the
   brass focus ring that drew round it was not for anyone — it is not a control. */
body.theme--kb .woocommerce-notices-wrapper [tabindex="-1"]:focus { outline: none; }
body.theme--kb .woocommerce-error { border-left-color: var(--kb-ink); }
.kb-msg__actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* Our own classes, so they cannot tie with Woo's `.woocommerce-message .button`. */
body.theme--kb .woocommerce-message a.kb-msg__btn {
	float: none;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--kb-ink);
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-weight: 400;
	font-size: 0.74rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
}
body.theme--kb .woocommerce-message a.kb-msg__btn--primary { background: var(--kb-brass); border-color: var(--kb-brass); }
body.theme--kb .woocommerce-message a.kb-msg__btn:hover { background: var(--kb-ink); border-color: var(--kb-ink); color: var(--kb-paper); }

/* ── Header cart trigger ─────────────────────────────────────────────────── */
.kb-cart-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: none;
	color: var(--kb-paper);
	transition: color .2s ease;
}
.kb-cart-trigger:hover { color: var(--kb-brass); }
.kb-cart-trigger svg { width: 23px; height: 23px; display: block; }
/* The account icon, just before the cart (1.18.0, kb_acc_trigger). Same box,
   same line weight; on the account pages it stays brass. */
.kb-acc-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: none;
	color: var(--kb-paper);
	transition: color .2s ease;
}
.kb-acc-trigger:hover,
.kb-acc-trigger.is-here { color: var(--kb-brass); }
.kb-acc-trigger svg { width: 23px; height: 23px; display: block; }
/* A pair, not two items of the row (1.18.2, Arnas: "closer and better
   aligned"): the cart sits right after the person, the nav gap cancelled. */
.kb-acc-trigger + .kb-cart-trigger { margin-left: calc(-1 * clamp(14px, 2.4vw, 30px)); }
/* The count: square, like everything else — the one place a badge would
   normally be round. Brass fill, navy numeral. */
.kb-cart-count {
	position: absolute;
	top: 3px;
	right: 0;
	min-width: 17px;
	padding: 0 4px;
	background: var(--kb-brass);
	color: var(--kb-ink);
	font-size: 0.62rem;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0;
	text-align: center;
}

.kb-cart-count.is-empty { display: none; }

/* ── The drawer ──────────────────────────────────────────────────────────── */
.kb-cart-overlay {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgba(var(--kb-ink-rgb), 0.55);
}
.kb-cart-overlay[hidden] { display: none; }
.kb-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 95;
	width: min(420px, 100vw);
	background: var(--kb-paper);
	border-left: 1px solid var(--kb-line);
	transform: translateX(100%);
	transition: transform .28s ease;
	visibility: hidden;
	display: flex;
	flex-direction: column;
}
.kb-cart-drawer.is-open { transform: translateX(0); visibility: visible; }
/* Logged in, WordPress's admin bar sits on top of everything and covered the
   drawer's title and close button. Only admins see it, and while the shop is
   hidden only admins see the drawer — so this is the case that matters now. */
body.admin-bar .kb-cart-drawer { top: 32px; }
body.admin-bar .kb-cart-drawer__inner { height: calc(100dvh - 32px); }
@media (max-width: 782px) {
	body.admin-bar .kb-cart-drawer { top: 46px; }
	body.admin-bar .kb-cart-drawer__inner { height: calc(100dvh - 46px); }
}
/* iOS: 100dvh, and only the body scrolls. */
.kb-cart-drawer__inner { display: flex; flex-direction: column; height: 100dvh; min-height: 0; }
.kb-cart-drawer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 28px;
	background: var(--kb-ink);
	color: var(--kb-paper);
	flex: none;
}
.kb-cart-drawer__title {
	margin: 0;
	font-family: var(--kb-serif);
	font-weight: 500;
	font-size: 1.05rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--kb-brass); /* headline on navy is brass — the brand rule */
}
.kb-cart-drawer__close {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kb-paper);
	font-size: 1.7rem;
	line-height: 1;
	cursor: pointer;
}
.kb-cart-drawer__close:hover { color: var(--kb-brass); }
.kb-cart-drawer__body { flex: 1 1 0; min-height: 0; overflow-y: auto; padding: 24px 28px 30px; }
body.theme--kb.kb-cart-open { overflow: hidden; }

/* Mini-cart internals. Style the TEMPLATE'S OWN classes (family scar §3):
   rules written against Woo's default mini-cart markup crush this one.

   🔴 AND OUT-WEIGH WOO'S WIDGET SHEET. On shop pages <body> carries
   `.woocommerce`, and woocommerce.css then styles this list as a widget:
   `.woocommerce ul.cart_list li img` (0,2,3) shrank the 64px thumbnail to
   32px and floated it right, `… li` (0,2,2) cut the row padding to 4px,
   `… li dl` drew a grey rule down the variation, `… li a` made every link
   bold. The drawer looked right on the front page and cramped on the shop
   — that was the "tight" Arnas saw (1.7.1). Every rule below starts at
   `body.theme--kb ul.kb-mini` (0,2,2)+ so it wins on every page. */
body.theme--kb ul.kb-mini { list-style: none; margin: 0; padding: 0; }
body.theme--kb ul.kb-mini > li { margin: 0; padding: 22px 0; border-bottom: 1px solid var(--kb-line); list-style: none; }
body.theme--kb ul.kb-mini > li:first-child { padding-top: 4px; }
body.theme--kb ul.kb-mini > li::before,
body.theme--kb ul.kb-mini > li::after { content: none; }
.kb-mini__row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 28px; gap: 18px; align-items: start; }
body.theme--kb ul.kb-mini .kb-mini__thumb a { display: block; }
body.theme--kb ul.kb-mini .kb-mini__thumb img {
	display: block;
	float: none;
	width: 72px;
	height: 72px;
	margin: 0;
	object-fit: cover;
	border: 1px solid var(--kb-line);
	box-shadow: none;
}
/* ONE line, always (Arnas, 1.7.4): smaller, tighter tracking, and the name
   is the coffee's own — the size moved to the meta. A name longer than the
   column ends in an ellipsis rather than wrapping. */
.kb-mini__title {
	font-family: var(--kb-serif);
	font-weight: 500;
	font-size: 0.8rem;
	line-height: 1.35;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding-top: 3px;
}
body.theme--kb ul.kb-mini .kb-mini__title a { display: inline; font-weight: inherit; color: var(--kb-ink); }
body.theme--kb ul.kb-mini .kb-mini__title a:hover { color: var(--kb-grey-dark); }
.kb-mini__meta { margin: 8px 0 0; font-size: 0.82rem; line-height: 1.55; color: var(--kb-grey-dark); }
/* Woo's `li dl`: margin, 1em padding and a 2px grey rule — all off. */
body.theme--kb ul.kb-mini .kb-mini__meta dl,
body.theme--kb ul.kb-mini .kb-mini__meta p { margin: 0; padding: 0; border: 0; }
/* The float neutraliser (scar §3b): the <ul> carries Woo's
   product_list_widget, whose sheet FLOATS dl.variation dt/dd (0,2,4) and
   scatters labels from values. A grid on the <dl> does not beat the float;
   inline + a forced break after each pair does — at (0,3,4). */
body.theme--kb ul.kb-mini .kb-mini__meta dl dt,
body.theme--kb ul.kb-mini .kb-mini__meta dl dd { display: inline; float: none; clear: none; margin: 0; padding: 0; }
body.theme--kb ul.kb-mini .kb-mini__meta dl dt { margin-right: 4px; font-weight: 400; }
body.theme--kb ul.kb-mini .kb-mini__meta dl dd p { display: inline; }
body.theme--kb ul.kb-mini .kb-mini__meta dl dd::after { content: ""; display: block; }
.kb-mini__controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; }
.kb-mini__stepper { display: inline-flex; align-items: center; border: 1px solid rgba(var(--kb-ink-rgb), 0.34); }
.kb-mini__qtybtn {
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kb-ink);
	font-size: 0.95rem;
	line-height: 1;
	cursor: pointer;
}
.kb-mini__qtybtn:hover:not([disabled]) { background: rgba(var(--kb-ink-rgb), 0.06); }
.kb-mini__qtybtn[disabled] { opacity: .35; cursor: default; }
.kb-mini__stepper .kb-mini__qty { min-width: 30px; text-align: center; font-size: 0.9rem; }
.kb-mini__stepper.is-loading { opacity: .5; }
.kb-mini__price { font-family: var(--kb-serif); font-weight: 500; }
body.theme--kb ul.kb-mini a.kb-mini__remove {
	display: block;
	width: 28px;
	height: 28px;
	line-height: 26px;
	text-align: center;
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--kb-grey-dark);
}
body.theme--kb ul.kb-mini a.kb-mini__remove:hover,
body.theme--kb ul.kb-mini a.kb-mini__remove:focus-visible { color: var(--kb-ink); }
/* Free locker delivery: a line of text over a hairline track with a brass
   fill (brass as a FILL, never small text — the house rule). Reached, the
   track is full and the text says so in ink. */
.kb-freeship { margin: 24px 0 0; }
.kb-freeship__text { margin: 0 0 10px; font-size: 0.82rem; line-height: 1.45; color: var(--kb-grey-dark); }
.kb-freeship.is-reached .kb-freeship__text { color: var(--kb-ink); }
.kb-freeship__bar { position: relative; height: 4px; background: var(--kb-line); overflow: hidden; }
.kb-freeship__bar > span { display: block; height: 100%; background: var(--kb-brass); transition: width .35s ease; }

.kb-mini__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 26px 0 0;
	padding-top: 18px;
	border-top: 2px solid var(--kb-brass);
	font-size: 0.74rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
}
.kb-mini__total .amount { font-family: var(--kb-serif); font-weight: 500; font-size: 1.15rem; letter-spacing: 0; color: var(--kb-ink); }
.kb-mini__buttons { display: grid; gap: 10px; margin: 24px 0 0; }
/* Woo prints "View cart" and "Checkout": checkout first and solid, cart as
   the ghost — the same pair and order as the add-to-cart notice. */
body.theme--kb .kb-mini__buttons a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 18px;
	border: 1px solid var(--kb-ink);
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-weight: 400;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0;
}
body.theme--kb .kb-mini__buttons a.checkout { order: -1; background: var(--kb-brass); border-color: var(--kb-brass); }
body.theme--kb .kb-mini__buttons a:hover { background: var(--kb-ink); border-color: var(--kb-ink); color: var(--kb-paper); }
.kb-mini__empty { margin: 0; color: var(--kb-grey-dark); }

/* ── Header: the icon on phones ──────────────────────────────────────────────
   kb.css stacks the header on small phones (badge above a centred link row)
   and hides the shop CTA. The cart icon joins the link row at its end. */
@media (max-width: 560px) {
	.kb-cart-trigger,
	.kb-acc-trigger { width: 34px; height: 40px; }
	.kb-acc-trigger { margin-left: -8px; } /* the two icons read as one pair */
	.kb-acc-trigger + .kb-cart-trigger { margin-left: calc(-1 * clamp(12px, 3.8vw, 34px)); }
}

/* ── Landscape phones (~812–932 × 375–430) ───────────────────────────────────
   Gate on HEIGHT. The sticky gallery would pin a 400px-tall image to a
   390px-tall screen and the buy box would scroll under it. */
@media (max-height: 460px) and (orientation: landscape) {
	.kb-product__gallery { position: static; }
	.kb-cart-drawer__top { padding-block: 12px; }
	.kb-cart-drawer__body { padding-block: 14px 18px; }
}

/* ── Business clients: "+ PVM" after a price (1.10.0) ─────────────────────
   Woo colours the whole price olive; the suffix is a quiet ink note. */
body.theme--kb .price .kb-b2b-suffix,
body.theme--kb .woocommerce-variation-price .kb-b2b-suffix,
body.theme--kb .wc-block-components-product-price .kb-b2b-suffix {
	font-family: var(--kb-sans);
	font-size: 0.72em;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--kb-grey-dark);
}

/* ── Business clients: the "Kainos: be PVM | su PVM" switch (1.10.1) ────────
   A two-way segmented control; the chosen side is filled ink. */
body.theme--kb .kb-vat {
	display: inline-flex;
	align-items: stretch;
	gap: 0;
	margin: 0 0 18px;
	font-family: var(--kb-sans);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
body.theme--kb .kb-vat__label {
	display: flex;
	align-items: center;
	padding-right: 12px;
	color: var(--kb-grey-dark);
}
body.theme--kb .kb-vat__opt {
	display: flex;
	align-items: center;
	min-height: 34px;
	padding: 0 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.28);
	color: var(--kb-ink);
	text-decoration: none;
	transition: border-color .2s ease, background-color .2s ease;
}
body.theme--kb .kb-vat__opt + .kb-vat__opt { border-left: 0; }
body.theme--kb .kb-vat__opt:hover { border-color: var(--kb-ink); }
body.theme--kb .kb-vat__opt[aria-pressed="true"] {
	background: var(--kb-ink);
	border-color: var(--kb-ink);
	color: var(--kb-paper);
}
body.theme--kb .kb-vat__opt:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: 2px; }
body.theme--kb .kb-product__price + .kb-vat { margin-top: -6px; }

/* ══ Mano paskyra (1.11.0) ════════════════════════════════════════════════════
   Woo's account page arrived unstyled. The menu becomes a tab strip over the
   content (it scrolls sideways on a phone instead of stacking), tables take the
   shop's table look, forms the checkout's fields. Business clients' tabs
   (Greitas užsakymas, Sąskaitos, Įranga) use the same pieces. */
body.theme--kb .woocommerce-account .woocommerce { display: block; }
body.theme--kb .woocommerce-MyAccount-navigation,
body.theme--kb .woocommerce-MyAccount-content { float: none; width: auto; }
body.theme--kb .woocommerce-MyAccount-navigation {
	margin: 0 0 clamp(24px, 3vw, 36px);
	border-bottom: 1px solid var(--kb-line);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
body.theme--kb .woocommerce-MyAccount-navigation::-webkit-scrollbar { display: none; }
body.theme--kb .woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
}
body.theme--kb .woocommerce-MyAccount-navigation li { margin: 0; }
body.theme--kb .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 12px 16px 13px;
	font-size: 0.74rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color .2s ease, border-color .2s ease;
}
body.theme--kb .woocommerce-MyAccount-navigation li:first-child a { padding-left: 0; }
body.theme--kb .woocommerce-MyAccount-navigation a:hover { color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-navigation .is-active a { color: var(--kb-ink); border-bottom-color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-navigation-link--customer-logout { margin-left: auto; }
/* Phones (1.18.0): the strip no longer scrolls sideways — "Užsakymai" used to
   sit half off-screen. The tabs become a grid of three per row (a business
   client's six tabs = two rows), the open one filled ink. */
@media (max-width: 699px) {
	body.theme--kb .woocommerce-MyAccount-navigation { overflow: visible; border-bottom: 0; }
	body.theme--kb .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; white-space: normal; }
	body.theme--kb .woocommerce-MyAccount-navigation a,
	body.theme--kb .woocommerce-MyAccount-navigation li:first-child a {
		display: flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 8px 4px;
		border: 1px solid var(--kb-line); text-align: center; font-size: 0.68rem; letter-spacing: 0.1em; line-height: 1.25;
	}
	body.theme--kb .woocommerce-MyAccount-navigation .is-active a { background: var(--kb-ink); border-color: var(--kb-ink); color: var(--kb-paper); }
}
/* The Paskyra page (1.18.0): Adresai, then Paskyros duomenys, then Atsijungti. */
body.theme--kb .kb-acc-sec { margin: 0 0 clamp(28px, 4vw, 44px); }
body.theme--kb .kb-acc-sec__title { margin: 0 0 14px; font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kb-ink); }
body.theme--kb .kb-acc-out { margin: 28px 0 0; padding-top: 18px; border-top: 1px solid var(--kb-line); }
body.theme--kb .woocommerce-MyAccount-content { color: var(--kb-grey-dark); }
body.theme--kb .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
body.theme--kb .woocommerce-MyAccount-content a { color: var(--kb-ink); }
.kb-acc-intro { margin: 0 0 18px; max-width: 60ch; }
.kb-acc-empty { margin: 8px 0; padding: 18px 20px; background: rgba(var(--kb-ink-rgb), 0.04); color: var(--kb-ink); }
.kb-muted { color: var(--kb-grey); }

/* Tables: Woo's order list and order details, our invoices and quick order. */
body.theme--kb .woocommerce-MyAccount-content table.shop_table,
body.theme--kb .woocommerce-MyAccount-content .kb-acc-table,
body.theme--kb .kb-quick__table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	margin: 0 0 24px;
	font-size: 0.92rem;
}
body.theme--kb .woocommerce-MyAccount-content table.shop_table th,
body.theme--kb .woocommerce-MyAccount-content .kb-acc-table thead th,
body.theme--kb .kb-quick__table thead th {
	padding: 10px 14px 10px 0;
	border: 0;
	border-bottom: 1px solid var(--kb-ink);
	font-size: 0.68rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
	text-align: left;
}
body.theme--kb .woocommerce-MyAccount-content table.shop_table td,
body.theme--kb .woocommerce-MyAccount-content table.shop_table tbody th,
body.theme--kb .woocommerce-MyAccount-content .kb-acc-table td,
body.theme--kb .woocommerce-MyAccount-content .kb-acc-table tbody th,
body.theme--kb .kb-quick__table td,
body.theme--kb .kb-quick__table tbody th {
	padding: 13px 14px 13px 0;
	border: 0;
	border-bottom: 1px solid var(--kb-line);
	vertical-align: middle;
	text-align: left;
	font-weight: 300;
	color: var(--kb-ink);
}
body.theme--kb .woocommerce-MyAccount-content table.shop_table tfoot th,
body.theme--kb .woocommerce-MyAccount-content table.shop_table tfoot td { font-weight: 400; }
body.theme--kb .kb-num,
body.theme--kb .kb-quick__num { text-align: right; }
body.theme--kb .woocommerce-MyAccount-content .kb-acc-table th.kb-num,
body.theme--kb .kb-quick__table th.kb-quick__num,
body.theme--kb .kb-quick__table td.kb-quick__num { text-align: right; }

/* Small outline buttons in tables (Peržiūrėti, Užsakyti dar kartą, Mokėti). */
body.theme--kb .woocommerce-MyAccount-content .woocommerce-button,
body.theme--kb .woocommerce-MyAccount-content a.button,
body.theme--kb .woocommerce-MyAccount-content .order-again .button {
	display: inline-block;
	margin: 3px 6px 3px 0;
	padding: 9px 14px;
	border: 1px solid var(--kb-ink);
	border-radius: 0;
	background: transparent;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-size: 0.68rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1;
	transition: background-color .2s ease, border-color .2s ease;
}
body.theme--kb .woocommerce-MyAccount-content .woocommerce-button:hover,
body.theme--kb .woocommerce-MyAccount-content a.button:hover { background: var(--kb-brass); border-color: var(--kb-brass); color: var(--kb-ink); }
.kb-acc-link { font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 1px solid var(--kb-ink); }

/* Nuolatiniai užsakymai — the box above the Užsakymai list (1.13.0,
   inc/kb-b2b-routine.php). Same small buttons as the order rows; the
   overview's cards use them too (1.18.0). */
body.theme--kb .woocommerce-MyAccount-content .kb-home .kb-acc-btn,
body.theme--kb .woocommerce-MyAccount-content .kb-so .kb-acc-btn {
	display: inline-block; margin: 0; padding: 9px 14px;
	border: 1px solid var(--kb-ink); border-radius: 0; background: transparent; color: var(--kb-ink);
	font-family: var(--kb-sans); font-size: 0.68rem; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1;
	cursor: pointer; transition: background-color .2s ease, border-color .2s ease;
}
body.theme--kb .woocommerce-MyAccount-content .kb-home .kb-acc-btn:hover,
body.theme--kb .woocommerce-MyAccount-content .kb-so .kb-acc-btn:hover { background: var(--kb-brass); border-color: var(--kb-brass); color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-content .kb-home .kb-acc-btn--fill,
body.theme--kb .woocommerce-MyAccount-content .kb-so .kb-acc-btn--fill { padding: 13px 22px; font-size: 0.74rem; background: var(--kb-ink); color: var(--kb-paper); }
body.theme--kb .woocommerce-MyAccount-content .kb-so .kb-acc-btn--quiet { border-color: var(--kb-line); color: var(--kb-grey-dark); }
body.theme--kb .kb-so { margin: 0 0 36px; }
body.theme--kb .kb-so__title { margin: 0 0 10px; font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kb-ink); }
body.theme--kb .kb-so__plan {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
	padding: 16px 0; border-top: 1px solid var(--kb-line);
}
body.theme--kb .kb-so__plan:last-of-type { border-bottom: 1px solid var(--kb-line); }
body.theme--kb .kb-so__plan.is-paused .kb-so__what { opacity: 0.6; }
body.theme--kb .kb-so__what { min-width: 0; flex: 1 1 320px; }
body.theme--kb .kb-so__when { margin: 0 0 4px; color: var(--kb-ink); }
body.theme--kb .kb-so__every { margin-left: 10px; padding: 3px 8px; background: rgba(var(--kb-brass-rgb), 0.22); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kb-ink); }
body.theme--kb .kb-so__lines { margin: 0; font-size: 0.9rem; color: var(--kb-grey-dark); }
body.theme--kb .kb-so__src { color: var(--kb-grey); }
body.theme--kb .kb-so__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
body.theme--kb .woocommerce-MyAccount-content .kb-so__actions select { width: auto; padding: 7px 30px 7px 10px; font-size: 0.82rem; }
body.theme--kb .kb-so__new { margin-top: 14px; }
body.theme--kb .kb-so__new > summary { display: inline-block; cursor: pointer; padding: 6px 0; font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kb-ink); border-bottom: 1px solid var(--kb-brass); list-style: none; }
body.theme--kb .kb-so__new > summary::-webkit-details-marker { display: none; }
body.theme--kb .kb-so__new > summary::before { content: "+ "; }
body.theme--kb .kb-so__new[open] > summary::before { content: "− "; }
body.theme--kb .kb-so__form { max-width: 620px; margin-top: 16px; padding: 20px; background: rgba(var(--kb-ink-rgb), 0.04); }
body.theme--kb .kb-so__pair { display: grid; gap: 0 16px; grid-template-columns: 1fr; }
@media (min-width: 560px) { body.theme--kb .kb-so__pair { grid-template-columns: 1fr 1fr; } }
body.theme--kb .kb-so__note { margin: 0 0 16px; font-size: 0.84rem; color: var(--kb-grey-dark); }

/* Payment state pills — fills, ink type. */
.kb-state {
	display: inline-block;
	padding: 4px 8px;
	font-size: 0.66rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kb-ink);
	background: rgba(var(--kb-ink-rgb), 0.07);
	white-space: nowrap;
}
.kb-state--open { background: rgba(var(--kb-brass-rgb), 0.22); }
.kb-state--late { background: #b4532a; color: var(--kb-paper); }
.kb-state--refunded { background: transparent; border: 1px solid var(--kb-line); }
body.theme--kb .woocommerce-MyAccount-content a.kb-inv__order { display: block; margin-top: 3px; font-size: 0.78rem; font-weight: 300; color: var(--kb-grey-dark); }

/* Forms: addresses, account details, login — the checkout's field look. */
body.theme--kb .woocommerce-MyAccount-content form .form-row,
body.theme--kb .kb-login .form-row { margin: 0 0 16px; padding: 0; }
body.theme--kb .woocommerce-MyAccount-content form label,
body.theme--kb .kb-login label {
	display: block;
	margin-bottom: 7px;
	font-size: 0.76rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kb-grey-dark);
	line-height: 1.4;
}
body.theme--kb .woocommerce-MyAccount-content form .input-text,
body.theme--kb .woocommerce-MyAccount-content form select,
body.theme--kb .kb-login .input-text,
body.theme--kb .kb-quick select,
body.theme--kb .kb-quick__qty {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(var(--kb-ink-rgb), 0.28);
	border-radius: 0;
	background: #fff;
	color: var(--kb-ink);
	font-family: var(--kb-sans);
	font-weight: 300;
	font-size: 1rem;
	box-shadow: none;
}
body.theme--kb .woocommerce-MyAccount-content form .input-text:focus,
body.theme--kb .woocommerce-MyAccount-content form select:focus,
body.theme--kb .kb-login .input-text:focus,
body.theme--kb .kb-quick select:focus,
body.theme--kb .kb-quick__qty:focus { outline: 2px solid var(--kb-brass); outline-offset: 0; border-color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-content form fieldset { margin: 26px 0 0; padding: 0; border: 0; }
body.theme--kb .woocommerce-MyAccount-content form legend { padding: 0; margin-bottom: 14px; font-family: var(--kb-serif); text-transform: uppercase; letter-spacing: 0.05em; color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-content form button[type="submit"],
body.theme--kb .kb-login button[type="submit"] {
	padding: 15px 30px;
	border: 1px solid var(--kb-ink);
	border-radius: 0;
	background: var(--kb-ink);
	color: var(--kb-paper);
	font-family: var(--kb-sans);
	font-size: 0.82rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
}
body.theme--kb .woocommerce-MyAccount-content form button[type="submit"]:hover,
body.theme--kb .kb-login button[type="submit"]:hover { background: var(--kb-brass); border-color: var(--kb-brass); color: var(--kb-ink); }
/* ── Logged out: log in, forgotten password, set a password (1.13.0) ───────
   woocommerce/myaccount/form-login.php, form-lost-password.php and
   form-reset-password.php wrap the form in .kb-login: one narrow column under
   the page title, so the whole screen reads at a glance. (Until 1.13.0 these
   rules were written `.woocommerce-account .woocommerce-form-login` — a
   descendant of the body class, which never matched; WooCommerce's grey,
   rounded defaults showed instead.) */
body.theme--kb .kb-login { max-width: 420px; }
body.theme--kb .kb-login form.login,
body.theme--kb .kb-login form.lost_reset_password { margin: 0; padding: 0; border: 0; border-radius: 0; }
body.theme--kb .kb-login__lead { margin: 0 0 22px; color: var(--kb-grey-dark); }
body.theme--kb .kb-login .form-row { margin: 0 0 18px; padding: 0; float: none; width: auto; }
body.theme--kb .kb-login .required { display: none; }
body.theme--kb .kb-login .kb-login__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
body.theme--kb .kb-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 0.86rem; letter-spacing: 0; text-transform: none; color: var(--kb-grey-dark); cursor: pointer; }
body.theme--kb .kb-login .woocommerce-form-login__rememberme input { width: 16px; height: 16px; margin: 0; accent-color: var(--kb-ink); }
body.theme--kb .kb-login__lost,
body.theme--kb .kb-login__note a { color: var(--kb-ink); border-bottom: 1px solid var(--kb-brass); font-size: 0.86rem; }
body.theme--kb .kb-login .kb-login__submit { display: block; float: none; width: 100%; margin: 0; padding: 16px 20px; text-align: center; }
body.theme--kb .kb-login__note { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--kb-line); font-size: 0.86rem; color: var(--kb-grey-dark); }
/* WooCommerce's "show password" eye: it adds a bare <button> after the input,
   styled by woocommerce.css, which this theme does not load — so it showed as
   an empty pill under the field. Drawn here: an eye inside the field's right
   edge, crossed out while the password is visible. Applies to every password
   field in Mano paskyra. */
body.theme--kb .password-input { position: relative; display: block; }
body.theme--kb .password-input .input-text { padding-right: 46px; }
body.theme--kb .show-password-input {
	position: absolute; top: 0; right: 0; bottom: 0; width: 44px;
	margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer;
	color: var(--kb-grey-dark);
}
body.theme--kb .show-password-input::before {
	content: ""; position: absolute; inset: 0; margin: auto; width: 20px; height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.theme--kb .show-password-input.display-password::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
}
body.theme--kb .show-password-input:hover { color: var(--kb-ink); }
body.theme--kb .show-password-input:focus-visible { outline: 2px solid var(--kb-brass); outline-offset: -2px; }
body.theme--kb .woocommerce-Addresses { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 700px) { body.theme--kb .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }
body.theme--kb .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; padding: 20px; background: rgba(var(--kb-ink-rgb), 0.04); }
body.theme--kb .woocommerce-Address-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; margin-bottom: 8px; }
body.theme--kb .woocommerce-Addresses .woocommerce-Address-title::before,
body.theme--kb .woocommerce-Addresses .woocommerce-Address-title::after { content: none; } /* Woo's clearfix became flex items and pushed the title right (1.18.0) — the notice-button scar again */
body.theme--kb .woocommerce-Address-title h2 { margin: 0 0 10px; font-family: var(--kb-serif); font-weight: 500; font-size: 1rem; color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-content .woocommerce-Address-title .edit { flex: none; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 1px solid var(--kb-brass); }
body.theme--kb .woocommerce-Address address { font-style: normal; color: var(--kb-ink); }

/* ── Greitas užsakymas ── */
.kb-quick__table .kb-quick__row.is-first > * { border-top: 1px solid rgba(var(--kb-ink-rgb), 0.28); }
.kb-quick__table .kb-quick__row:first-child > * { border-top: 0; }
.kb-quick__name { display: block; font-family: var(--kb-serif); font-weight: 500; font-size: 0.98rem; color: var(--kb-ink); }
.kb-quick__name.is-repeat { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } /* said once per coffee; screen readers still hear it */
.kb-quick__size { display: block; font-size: 0.86rem; color: var(--kb-grey-dark); }
body.theme--kb .kb-quick .kb-quick__choice select { /* (0,3,2): beats the field rule above */
	width: auto; min-width: 9.5rem; padding: 9px 34px 9px 12px; font-size: 0.92rem;
	-webkit-appearance: none; appearance: none;
	background-color: #fff;
	background-image: linear-gradient(45deg, transparent 50%, var(--kb-ink) 50%), linear-gradient(135deg, var(--kb-ink) 50%, transparent 50%);
	background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.kb-quick__dash { color: var(--kb-grey); }
.kb-quick__price { white-space: nowrap; }
.kb-quick__unit { display: block; font-size: 0.76rem; color: var(--kb-grey-dark); }
body.theme--kb .kb-quick__qty { width: 5.2rem; padding: 9px 10px; text-align: right; font-size: 0.98rem; }
.kb-quick__row.has-qty > * { background: rgba(var(--kb-brass-rgb), 0.10); }
.kb-quick__foot {
	position: sticky;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	padding: 14px 0;
	background: var(--kb-paper);
	border-top: 1px solid var(--kb-ink);
}
.kb-quick__total { margin: 0 auto 0 0; color: var(--kb-ink); }
.kb-quick__total strong { font-family: var(--kb-serif); font-weight: 500; font-size: 1.15rem; }
.kb-quick__clear { padding: 0; border: 0; background: none; color: var(--kb-grey-dark); font: inherit; font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: underline; cursor: pointer; }
.kb-quick__note { margin: 6px 0 0; font-size: 0.84rem; color: var(--kb-grey); }
.kb-quick__scope { margin: 0 0 18px; } /* 1.14.0: "Rodyti visas prekes / tik mano" above the table */

/* ── Greitas užsakymas as a grid (1.18.0; 1.18.1 slimmer) ──
   One row per coffee: name | grind | a narrow column per size, the price over
   a small box, centred. 1.18.1 (Arnas: "squeezed, names cut"): no price per
   100 g, coffee only (a "566 g" cleaning product made its own column), so the
   name keeps its room and four sizes fit the 1060 px column. */
.kb-quick__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 18px; }
.kb-quick__bar .kb-quick__scope { margin: 0; }
.kb-quick__bar .kb-vat { margin: 0; }
body.theme--kb .kb-quick__table--grid .kb-quick__row > * { border-top: 0; }
body.theme--kb .kb-quick__table--grid th.kb-quick__num { text-align: center; padding-right: 0; }
body.theme--kb .kb-quick__table--grid tbody th.kb-quick__item { min-width: 12rem; padding-right: 18px; }
body.theme--kb .kb-quick__table--grid td.kb-quick__cell { width: 6.8rem; padding: 12px 6px; text-align: center; white-space: nowrap; }
.kb-quick__table--grid .kb-quick__cell .kb-quick__price { display: block; margin: 0 0 6px; font-size: 0.86rem; color: var(--kb-grey-dark); }
body.theme--kb .kb-quick__table--grid .kb-quick__qty { width: 4.6rem; padding: 8px 6px; text-align: center; }
body.theme--kb .kb-quick .kb-quick__table--grid .kb-quick__choice select { width: 10rem; min-width: 0; }
@media (min-width: 700px) and (max-width: 1023px) {
	body.theme--kb .kb-quick .kb-quick__table--grid .kb-quick__choice select { width: 8.5rem; }
	body.theme--kb .kb-quick__table--grid tbody th.kb-quick__item { min-width: 9rem; }
}
/* "Kita": name | price + box */
.kb-quick__table--list .kb-quick__cell .kb-quick__price { display: inline-block; vertical-align: middle; margin-right: 12px; }
.kb-quick__table--list .kb-quick__cell .kb-quick__qty { vertical-align: middle; }
.kb-quick__table--grid .kb-quick__cell.has-qty { background: rgba(var(--kb-brass-rgb), 0.14); }
.kb-quick__table--grid .kb-quick__cell.is-none { color: var(--kb-grey); }
.kb-quick__table--list { margin-top: 28px; }
body.theme--kb .kb-quick__table--list td.kb-quick__cell { text-align: right; white-space: nowrap; }
body.theme--kb .kb-quick__qty { scroll-margin-bottom: 96px; } /* a focused box never hides under the sticky total */
.kb-quick__table--grid + .kb-quick__foot,
.kb-quick__table--list + .kb-quick__foot { margin-top: -24px; }

/* ── Apžvalga: the business client's overview (1.18.0, kb-b2b-home.php) ── */
.kb-home__top { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 0 0 clamp(22px, 3vw, 32px); }
body.theme--kb .kb-home__hello { margin: 0 auto 0 0; font-family: var(--kb-serif); font-weight: 500; font-size: clamp(1.15rem, 1.6vw, 1.35rem); color: var(--kb-ink); }
.kb-home__top .kb-vat { margin: 0; }
/* The page's one filled button. (0,3,2) to beat the content-link colour. */
body.theme--kb .woocommerce-MyAccount-content a.kb-home__cta { background: var(--kb-ink); color: var(--kb-paper); }
body.theme--kb .woocommerce-MyAccount-content a.kb-home__cta:hover { background: var(--kb-brass); border-color: var(--kb-brass); color: var(--kb-ink); }
.kb-home__grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .kb-home__grid { grid-template-columns: 1fr 1fr; } }
.kb-home__card { display: flex; flex-direction: column; padding: 20px 22px; border: 1px solid var(--kb-line); background: #fff; }
.kb-home__card.is-late { border-color: #b4532a; }
body.theme--kb .kb-home__k { margin: 0 0 12px; font-family: var(--kb-sans); font-size: 0.68rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kb-grey-dark); }
body.theme--kb .kb-home__big { margin: 0 0 4px; font-family: var(--kb-serif); font-weight: 500; font-size: 1.2rem; color: var(--kb-ink); }
body.theme--kb .woocommerce-MyAccount-content .kb-home__big a { color: var(--kb-ink); border-bottom: 1px solid var(--kb-brass); }
body.theme--kb .kb-home__meta { margin: 0 0 6px; font-size: 0.9rem; color: var(--kb-grey-dark); }
body.theme--kb .kb-home__lines { margin: 0 0 6px; font-size: 0.9rem; color: var(--kb-ink); }
.kb-home__card p:last-of-type { margin-bottom: 0; }
.kb-home__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: auto; padding-top: 16px; }
.kb-home__form { margin: 0; }

/* ── Įranga ── */
.kb-eq { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .kb-eq { grid-template-columns: 1fr 1fr; } }
.kb-eq__item { padding: 20px 22px; border: 1px solid var(--kb-line); background: #fff; }
.kb-eq__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
body.theme--kb .kb-eq__title { margin: 0; font-family: var(--kb-serif); font-weight: 500; font-size: 1.05rem; letter-spacing: 0.02em; color: var(--kb-ink); text-transform: none; }
.kb-eq__rows { margin: 0 0 12px; }
.kb-eq__rows > div { display: grid; grid-template-columns: 9.5rem 1fr; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--kb-line); }
.kb-eq__rows dt { font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kb-grey-dark); padding-top: 2px; }
.kb-eq__rows dd { margin: 0; color: var(--kb-ink); }
.kb-eq__note { margin: 0 0 12px; font-size: 0.9rem; }

/* ── Phones: tables become stacked rows (label before each value) ── */
@media (max-width: 699px) {
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table thead,
	body.theme--kb .kb-quick__table thead { display: none; }
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table tr,
	body.theme--kb .kb-quick__table tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--kb-line); }
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table td,
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table tbody th,
	body.theme--kb .kb-quick__table td,
	body.theme--kb .kb-quick__table tbody th { padding: 0; border: 0; }
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table tbody th { grid-column: 1 / -1; }
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table td[data-label]::before {
		content: attr(data-label) " ";
		display: block;
		font-size: 0.64rem;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--kb-grey);
	}
	body.theme--kb .woocommerce-MyAccount-content .kb-acc-table td.kb-num { text-align: left; }
	/* quick order grid (1.18.0): a coffee is a block — name, grind, then the
	   sizes side by side, each with its label, price and box */
	body.theme--kb .kb-quick__table--grid tr.kb-quick__row { grid-template-columns: repeat(var(--kb-cols, 3), minmax(0, 1fr)); gap: 8px; padding: 14px 0; border-top: 0; border-bottom: 1px solid rgba(var(--kb-ink-rgb), 0.28); }
	.kb-quick__table--grid .kb-quick__row > th.kb-quick__item,
	.kb-quick__table--grid .kb-quick__row > td.kb-quick__choice { grid-column: 1 / -1; grid-row: auto; }
	body.theme--kb .kb-quick__table--grid .kb-quick__choice select { max-width: none; }
	body.theme--kb .kb-quick__table--grid td.kb-quick__cell { width: auto; min-width: 0; grid-column: auto; grid-row: auto; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 8px 6px; text-align: left; white-space: normal; background: rgba(var(--kb-ink-rgb), 0.035); }
	body.theme--kb .kb-quick__table--grid td.kb-quick__cell::before { content: attr(data-label); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kb-grey-dark); }
	.kb-quick__table--grid .kb-quick__cell .kb-quick__price { margin: 0; text-align: left; color: var(--kb-ink); }
	body.theme--kb .kb-quick__table--grid .kb-quick__qty { width: 100%; }
	.kb-quick__table--grid .kb-quick__cell.is-none { background: transparent; }
	.kb-quick__table--grid .kb-quick__choice.is-empty { display: none; } /* nothing to choose: no lone dash line */
	.kb-quick__table--grid .kb-quick__row.has-qty { background: none; }
	/* the list ("Kita"): name | box, grind under */
	body.theme--kb .kb-quick__table--list td.kb-quick__cell { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
	/* the sticky total: one short line, not a third of the screen */
	.kb-quick__foot { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 0; }
	.kb-quick__total { grid-column: 1; grid-row: 1; font-size: 0.9rem; }
	.kb-quick__foot .kb-quick__clear { grid-column: 1; grid-row: 2; justify-self: start; font-size: 0.66rem; }
	body.theme--kb .kb-quick__foot .kb-btn { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: auto; padding: 14px 18px; }
	/* quick order list, two lines a size: name + size | price, then grind | quantity */
	.kb-quick__table .kb-quick__row.is-first > * { border-top: 0; }
	.kb-quick__table .kb-quick__row.is-first { border-top: 1px solid rgba(var(--kb-ink-rgb), 0.28); }
	.kb-quick__table tbody th { grid-column: 1; grid-row: 1; }
	.kb-quick__table .kb-quick__price { grid-column: 2; grid-row: 1; }
	.kb-quick__table .kb-quick__choice { grid-column: 1; grid-row: 2; align-self: center; }
	.kb-quick__table td:last-child { grid-column: 2; grid-row: 2; }
	body.theme--kb .kb-quick .kb-quick__choice select { min-width: 0; width: 100%; max-width: 13rem; }
	/* Woo's own order list (Užsakymai): the same stacking, its labels are data-title */
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table thead { display: none; }
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; padding: 14px 0; border-bottom: 1px solid var(--kb-line); }
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table td,
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table tbody th { display: block; padding: 0; border: 0; text-align: left; }
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table [data-title]::before {
		content: attr(data-title);
		display: block;
		font-size: 0.64rem;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--kb-grey);
	}
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; }
	body.theme--kb .woocommerce-MyAccount-content table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions::before { display: none; }
	.kb-quick__row.has-qty > * { background: none; }
	.kb-quick__row.has-qty { background: rgba(var(--kb-brass-rgb), 0.10); }
	.kb-quick__name.is-repeat { position: static; width: auto; height: auto; clip: auto; font-size: 0.82rem; color: var(--kb-grey-dark); font-family: var(--kb-sans); font-weight: 400; }
	.kb-home__top { align-items: stretch; }
	body.theme--kb .kb-home__hello { flex: 1 1 100%; }
	.kb-home__cta { flex: 1 1 100%; text-align: center; }
	.kb-eq__rows > div { grid-template-columns: 8rem 1fr; }
}
.kb-block-notices { margin: 0 0 18px; }

/* Business clients: log in (1.11.1) — one quiet line above cart / checkout. */
.kb-b2b-login-hint { margin: 0 0 18px; font-size: 0.88rem; color: var(--kb-grey-dark); }
.kb-b2b-login-hint a { color: var(--kb-ink); border-bottom: 1px solid var(--kb-ink); }
