/*
 * Store Part 1b storefront styling. Loaded on store pages only (inc/store/store-pages.php);
 * every page rule is scoped under body.cb-store.
 */

/* ---- Tokens (design system v1, handoff cb-tokens.css) ---- */
body.cb-store {
	--brand: #088800;
	--brand-bright: #31a801;
	--brand-tint: rgba( 8, 136, 0, .08 );
	--on-brand: #fff;
	--ink: #404040;
	--ink-heading: #4a4a4a;
	--ink-muted: #6b6b6b;
	--surface: #fff;
	--surface-100: #f4f4f4;
	--surface-200: #ebebeb;
	--line: #ccc;
	--line-strong: #bbb;
	--error: #dc3232; /* validation errors only (ruling 4) */
	--warn: #b26b00; /* allergen warning icon only (operator 2026-11-03); 4.2:1 on white, 3.8:1 on --surface-100 */
	--radius-sm: 10px;
	--radius-pill: 20px;
	--radius-pill-sm: 16px;
	--shadow-card: 0 0 12px -5px rgba( 0, 0, 0, .75 );
	--shadow-brand-center: 0 0 16px -2px rgba( 8, 136, 0, .55 );
	--container: 1168px;
	font-family: Assistant, "Arial Hebrew", Arial, sans-serif;
	color: var( --ink );
}

/* ---- Frame: the site header always white here (no hero under it) ---- */
body.cb-store #masthead {
	background: #fff !important;
	box-shadow: 0 0 17px 2px rgba( 0, 0, 0, .34 ) !important;
}
body.cb-store #masthead .main-navigation a {
	color: var( --brand ) !important;
	text-shadow: none !important;
}
/* S-3a (2026-10-20): with the shop item the menu wrapped below ~1200px (and already did at 1130).
   Between the hamburger breakpoint and 1280 the links stay one line on tighter padding. */
@media ( min-width: 1130px ) and ( max-width: 1279px ) {
	body.cb-store #masthead .main-navigation a {
		padding-inline: 10px;
		white-space: nowrap;
	}
}
body.cb-store .cb-hdr-icons {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-inline-start: auto;
	margin-inline-end: 12px;
}
body.cb-store .cb-hdr-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var( --ink-heading );
}
body.cb-store .cb-hdr-count {
	position: absolute;
	top: 2px;
	inset-inline-end: 0;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var( --brand );
	color: #fff;
	font-size: 12px;
	line-height: 18px;
	font-weight: 600;
	text-align: center;
}
body.cb-store .cb-store-wrap {
	max-width: var( --container );
	margin: 0 auto;
	padding: 88px 16px 80px;
}
body.cb-store .woocommerce-breadcrumb {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 24px;
	color: var( --ink-muted );
}
body.cb-store .woocommerce-breadcrumb a {
	color: var( --ink-muted );
	text-decoration: none;
}
body.cb-store .woocommerce-breadcrumb a:hover {
	color: var( --brand );
}
body.cb-store .cb-page-title,
body.cb-store .woocommerce-products-header__title {
	margin: 0 0 24px;
	font-size: 32px;
	line-height: 44px;
	font-weight: 600;
	color: var( --ink-heading );
	text-align: start;
}

/* ---- Buttons ---- */
body.cb-store .button,
body.cb-store button.button,
body.cb-store a.button,
body.cb-store .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: var( --radius-pill );
	background: linear-gradient( 333deg, var( --brand ), var( --brand-bright ) );
	color: #fff;
	font: 600 16px/30px Assistant, "Arial Hebrew", Arial, sans-serif;
	text-decoration: none;
	cursor: pointer;
	transition: color .45s ease-out, background .45s ease-out, border-color .45s ease-out;
}
body.cb-store .button:hover,
body.cb-store .single_add_to_cart_button:hover {
	background: transparent;
	border-color: var( --brand );
	color: var( --brand );
}
body.cb-store .button.disabled,
body.cb-store .single_add_to_cart_button.disabled {
	opacity: .45;
}

/* ---- Shop: chips, toolbar, card grid ---- */
body.cb-store .cb-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 8px;
}
body.cb-store .cb-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0 16px;
	border: 1px solid var( --line );
	border-radius: var( --radius-pill );
	background: #fff;
	color: var( --ink );
	font-size: 16px;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color .45s ease-out, background .45s ease-out, color .45s ease-out;
}
body.cb-store .cb-chip:hover {
	border-color: var( --brand );
	color: var( --brand );
}
body.cb-store .cb-chip[aria-pressed="true"] {
	background: var( --brand );
	border-color: var( --brand );
	color: #fff;
}
body.cb-store .cb-chip .n {
	font-size: 14px;
	opacity: .8;
}
body.cb-store .woocommerce-result-count,
body.cb-store .woocommerce-ordering {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 16px 0;
	font-size: 14px;
	color: var( --ink-muted );
}
body.cb-store .woocommerce-ordering {
	float: left;
}
body.cb-store .woocommerce-result-count {
	float: right;
}
body.cb-store .woocommerce-ordering select {
	height: 36px;
	padding: 0 14px;
	border: 1px solid var( --line );
	border-radius: var( --radius-pill );
	background: #fff;
	font-size: 16px;
	color: var( --ink );
}
body.cb-store ul.products {
	clear: both;
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 32px 24px;
	margin: 0;
	padding: 24px 0 0;
	border-top: 1px solid var( --surface-200 );
	list-style: none;
}
body.cb-store ul.products::before,
body.cb-store ul.products::after {
	display: none;
}
body.cb-store ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	width: auto;
	margin: 0;
	padding: 0 0 16px;
	float: none;
	background: #fff;
	border-radius: var( --radius-sm );
	box-shadow: var( --shadow-card );
	overflow: hidden;
	transition: box-shadow .45s ease-out;
}
body.cb-store ul.products li.product:hover,
body.cb-store ul.products li.product:focus-within {
	box-shadow: var( --shadow-brand-center );
}
body.cb-store ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1;
	color: var( --ink );
	text-decoration: none;
}
body.cb-store ul.products li.product img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 0 14px;
}
body.cb-store ul.products li.product .cb-card-cat,
body.cb-store ul.products li.product .woocommerce-loop-product__title,
body.cb-store ul.products li.product .cb-card-sub,
body.cb-store ul.products li.product .price {
	display: block;
	padding: 0 16px;
}
body.cb-store .cb-card-cat {
	font-size: 14px;
	line-height: 20px;
	color: var( --ink-muted );
}
/* S-1 (2026-10-20): the title reserves and is clamped to two lines, the price sits at the foot of the card
   link, so a row's prices share one height and every button has the same gap above it. */
body.cb-store ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	min-height: 52px;
	margin: 6px 0;
	font-size: 18px;
	line-height: 26px;
	font-weight: 500;
	color: var( --ink );
}
body.cb-store ul.products li.product:hover .woocommerce-loop-product__title {
	color: var( --brand );
}
body.cb-store .cb-card-sub {
	font-size: 14px;
	line-height: 20px;
	color: var( --ink-muted );
}
body.cb-store .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
	margin: 6px 0 0;
	font-size: 18px;
	line-height: 26px;
	font-weight: 600;
	color: var( --brand );
}
body.cb-store .price del {
	font-size: 15px;
	font-weight: 400;
	color: var( --ink-muted );
}
body.cb-store .price ins {
	text-decoration: none;
	background: none; /* the theme paints <ins> yellow */
}
body.cb-store ul.products li.product .price {
	margin-top: auto;
	padding-top: 6px;
}
body.cb-store ul.products li.product .button {
	margin: 14px 16px 0;
	min-height: 32px;
	border-radius: var( --radius-pill-sm );
}
body.cb-store ul.products li.product .added_to_cart {
	margin: 6px 16px 0;
	font-size: 14px;
	color: var( --brand );
}
body.cb-store .onsale.cb-badge {
	position: absolute;
	top: 12px;
	inset-inline-start: 12px;
	z-index: 1;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 10px;
	border-radius: var( --radius-pill-sm );
	background: var( --brand );
	color: #fff;
	font: 600 14px/20px Assistant, "Arial Hebrew", Arial, sans-serif;
	/* One line each, at most half the card minus the insets: the two corner pills can never meet. */
	display: block;
	box-sizing: border-box;
	white-space: nowrap;
	max-width: calc( 50% - 16px );
	overflow: hidden;
	text-overflow: ellipsis;
}
body.cb-store ul.products li.product .cb-free-badge {
	position: absolute;
	top: 12px;
	inset-inline-end: 12px;
	z-index: 1;
	padding: 4px 10px;
	border-radius: var( --radius-pill-sm );
	background: #fff;
	color: var( --brand );
	border: 1px solid var( --brand );
	font: 600 14px/18px Assistant, "Arial Hebrew", Arial, sans-serif;
	display: block;
	box-sizing: border-box;
	white-space: nowrap;
	max-width: calc( 50% - 16px );
	overflow: hidden;
	text-overflow: ellipsis;
}

@media ( max-width: 1023px ) {
	body.cb-store ul.products {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	}
}
@media ( max-width: 767px ) {
	body.cb-store .cb-store-wrap {
		padding-top: 80px;
	}
	body.cb-store .cb-page-title,
	body.cb-store .woocommerce-products-header__title {
		font-size: 26px;
		line-height: 36px;
	}
	body.cb-store .cb-chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline: -16px;
		padding: 0 16px 4px;
	}
	body.cb-store ul.products {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
		gap: 24px 12px;
	}
	/* R-2 (ruling 17:14): up to 3 lines on mobile, reserved so a row's prices still align (2 on desktop). */
	body.cb-store ul.products li.product .woocommerce-loop-product__title {
		-webkit-line-clamp: 3;
		line-clamp: 3;
		min-height: 66px;
		font-size: 16px;
		line-height: 22px;
	}
	/* A range ("293.40 ₪ – 468 ₪") ran as inline text here: with its spaces it needed ~159px of a 153px line at 390,
	   wrapped, and lifted that card's price. As 16px flex items the spaces drop out (151px); a narrower phone still wraps. */
	body.cb-store ul.products li.product .price {
		display: flex;
		column-gap: 4px;
		font-size: 16px;
	}
	body.cb-store ul.products li.product .cb-card-cat,
	body.cb-store ul.products li.product .woocommerce-loop-product__title,
	body.cb-store ul.products li.product .cb-card-sub,
	body.cb-store ul.products li.product .price {
		padding: 0 10px;
	}
	body.cb-store ul.products li.product .button {
		margin: 14px 10px 0;
		padding: 0 10px;
		font-size: 14px;
	}
	body.cb-store .onsale.cb-badge {
		top: 8px;
		inset-inline-start: 8px;
		padding: 2px 8px;
		font-size: 12px;
		line-height: 18px;
		/* One line always, so the free badge's fixed offset below holds for any admin-edited text. */
		display: block;
		box-sizing: border-box;
		white-space: nowrap;
		max-width: calc( 100% - 16px );
		overflow: hidden;
		text-overflow: ellipsis;
	}
	body.cb-store ul.products li.product .cb-free-badge {
		/* Two-column cards are too narrow for both pills side by side: stack under the sale badge
		   (8px top + 22px sale height [2+18+2] + 4px gap), whatever the sale text length. */
		top: 34px;
		inset-inline-start: 8px;
		inset-inline-end: auto;
		white-space: nowrap;
		max-width: calc( 100% - 16px );
		padding: 2px 8px;
		font-size: 12px;
		line-height: 16px;
	}
}

/* ---- Single product (board Product): summary at the start (right), gallery at the end ---- */
body.cb-store div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1.1fr );
	grid-template-areas: "summary gallery" "tabs tabs" "related related";
	gap: 0 56px;
	align-items: start;
	margin-top: 24px;
}
body.cb-store div.product > .onsale.cb-badge {
	inset-inline-start: auto;
	left: 12px;
}
body.cb-store div.product .woocommerce-product-gallery {
	grid-area: gallery;
	position: relative;
	width: auto !important;
	float: none;
	margin: 0;
}
body.cb-store div.product .woocommerce-product-gallery img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var( --radius-sm );
}
body.cb-store div.product .summary {
	grid-area: summary;
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: auto;
	float: none;
	margin: 0;
}
body.cb-store div.product .woocommerce-tabs {
	grid-area: tabs;
	margin-top: 56px;
}
body.cb-store div.product .related {
	grid-area: related;
}
body.cb-store div.product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 12px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}
body.cb-store div.product .flex-control-thumbs img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 2px solid transparent;
	cursor: pointer;
	opacity: 1;
}
body.cb-store div.product .flex-control-thumbs img.flex-active {
	border-color: var( --brand );
}
body.cb-store div.product .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	font-size: 0;
}
body.cb-store div.product .product_title {
	margin: 0;
	font-size: 32px;
	line-height: 44px;
	font-weight: 500;
	color: var( --ink-heading );
}
body.cb-store div.product .summary > .price {
	margin: 0;
	font-size: 28px;
	line-height: 38px;
}
body.cb-store div.product .summary > .price del {
	font-size: 18px;
}
body.cb-store .cb-vat-note {
	margin: -12px 0 0;
	font-size: 14px;
	color: var( --ink-muted );
}
body.cb-store div.product .woocommerce-product-details__short-description {
	font-size: 18px;
	line-height: 28px;
}
body.cb-store div.product .product_meta {
	display: none; /* the board shows no SKU / category line */
}
body.cb-store table.variations,
body.cb-store table.variations tbody,
body.cb-store table.variations tr,
body.cb-store table.variations th,
body.cb-store table.variations td {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
	background: none;
	text-align: start;
}
body.cb-store table.variations tr {
	margin: 0 0 18px;
}
body.cb-store table.variations th label {
	display: block;
	margin: 0 0 10px;
	font-size: 16px;
	line-height: 24px;
	font-weight: 600;
	color: var( --ink-heading );
}
body.cb-store .cb-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
body.cb-store .cb-pill {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var( --line );
	border-radius: var( --radius-pill );
	background: #fff;
	color: var( --ink );
	font: 400 16px/1.3 Assistant, "Arial Hebrew", Arial, sans-serif;
	cursor: pointer;
}
body.cb-store .cb-pill:hover {
	border-color: var( --brand );
}
body.cb-store .cb-pill[aria-pressed="true"] {
	border-color: var( --brand );
	box-shadow: inset 0 0 0 1px var( --brand );
	color: var( --brand );
	background: var( --brand-tint );
}
body.cb-store .woocommerce-variation-price {
	display: none; /* js/store-product.js puts the chosen variation's price under the title */
}
body.cb-store .reset_variations {
	display: inline-block;
	margin-top: 4px;
	font-size: 14px;
	color: var( --ink-muted );
}
body.cb-store form.cart:not( .variations_form ),
body.cb-store .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin: 0;
}
body.cb-store form.cart .single_add_to_cart_button {
	flex: 1;
	min-width: 200px;
	height: 48px;
	border-radius: 24px;
	font-size: 18px;
}
body.cb-store .cb-qty {
	display: inline-flex;
	align-items: center;
	height: 48px;
	border: 1px solid var( --line );
	border-radius: 24px;
	background: #fff;
}
body.cb-store .cb-qty input.qty {
	width: 36px;
	height: 46px;
	padding: 0;
	border: 0;
	background: none;
	text-align: center;
	font-size: 16px;
	-moz-appearance: textfield;
}
body.cb-store .cb-qty input.qty::-webkit-inner-spin-button,
body.cb-store .cb-qty input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
body.cb-store .cb-qty__btn {
	width: 44px;
	height: 46px;
	padding: 0; /* S-5: the theme's 12px top / 8px bottom button padding sat the glyphs 2px low */
	border: 0;
	border-radius: 24px;
	background: none;
	font-size: 20px;
	color: var( --ink-heading );
	cursor: pointer;
}
body.cb-store .cb-delivery-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0;
	padding: 14px 16px;
	border-radius: var( --radius-sm );
	background: var( --surface-100 );
	font-size: 14px;
	line-height: 22px;
}
body.cb-store .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var( --line );
	list-style: none;
	overflow-x: auto;
}
body.cb-store .woocommerce-tabs ul.tabs li {
	margin: 0;
}
body.cb-store .woocommerce-tabs ul.tabs li a {
	position: relative;
	display: block;
	padding: 12px 16px;
	font-size: 18px;
	font-weight: 500;
	color: var( --ink-muted );
	text-decoration: none;
	white-space: nowrap;
}
body.cb-store .woocommerce-tabs ul.tabs li.active a {
	color: var( --brand );
	box-shadow: inset 0 -2px 0 var( --brand );
}
body.cb-store .woocommerce-tabs .panel {
	max-width: 760px;
	padding: 24px 0;
	font-size: 16px;
	line-height: 26px;
}
body.cb-store .woocommerce-tabs .panel > h2:first-child {
	display: none; /* the active tab already names the panel */
}
body.cb-store .woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}
body.cb-store .woocommerce-product-attributes th,
body.cb-store .woocommerce-product-attributes td {
	padding: 10px 8px;
	border-bottom: 1px solid var( --surface-200 );
	text-align: start;
}
body.cb-store .related > h2 {
	margin: 48px 0 24px;
	font-size: 24px;
	line-height: 36px;
	font-weight: 600;
	color: var( --ink-heading );
}
body.cb-store .related ul.products {
	border-top: 0;
	padding-top: 0;
}
@media ( max-width: 1023px ) {
	body.cb-store div.product {
		gap: 0 32px;
	}
}
@media ( max-width: 767px ) {
	body.cb-store div.product {
		grid-template-columns: minmax( 0, 1fr );
		grid-template-areas: "gallery" "summary" "tabs" "related";
		gap: 24px 0;
	}
	body.cb-store div.product .woocommerce-tabs {
		margin-top: 16px;
	}
}

/* Clip, never offset: an off-screen-left offset widens an RTL page by ~10,000px. */
.cb-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect( 0 0 0 0 ) !important;
	clip-path: inset( 50% ) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ---- Cart and checkout blocks (boards Cart, Checkout): cards, headings, buttons ---- */
body.cb-store .wc-block-cart__sidebar,
body.cb-store .wc-block-checkout__sidebar {
	align-self: flex-start;
	padding: 24px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 0 12px -5px rgba( 0, 0, 0, .75 );
}
body.cb-store .wc-block-cart__totals-title,
body.cb-store .wc-block-components-checkout-order-summary__title-text {
	font-size: 22px !important;
	font-weight: 600 !important;
	color: #4a4a4a;
	text-transform: none !important;
}
body.cb-store .wc-block-cart__submit-button,
body.cb-store .wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 48px;
	border: 1px solid transparent !important;
	border-radius: 24px !important;
	background: linear-gradient( 333deg, #088800, #31a801 ) !important;
	color: #fff !important;
	font: 600 18px/1 Assistant, "Arial Hebrew", Arial, sans-serif !important;
	text-decoration: none !important;
	transition: color .45s ease-out, background .45s ease-out, border-color .45s ease-out;
}
body.cb-store .wc-block-cart__submit-button:hover,
body.cb-store .wc-block-components-checkout-place-order-button:hover {
	background: transparent !important;
	border-color: #088800 !important;
	color: #088800 !important;
}
body.cb-store .wc-block-components-product-name {
	color: #404040 !important;
	font-size: 18px;
	text-decoration: none !important;
}
body.cb-store .wc-block-cart-items__header {
	font-size: 14px;
	font-weight: 600;
	color: #4a4a4a;
	text-transform: none;
}
body.cb-store .wc-block-components-quantity-selector {
	border-radius: 20px !important;
	overflow: hidden;
}
/* S-5: an inherited 8px bottom padding lifted the cart's number 4px above its - and +. */
body.cb-store .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	padding: 0;
}
body.cb-store .wc-block-components-product-price,
body.cb-store .wc-block-formatted-money-amount {
	color: inherit;
}
body.cb-store .wc-block-cart-item__total .wc-block-formatted-money-amount,
body.cb-store .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	font-weight: 600;
}
/* 1.7.5 item 4 (Sagi, 9 Nov): no "כולל X ₪" tax line under the total in the cart and checkout. WOO-VOLATILE: the
   class is Woo's; tools/check-page/vat-line.test.mjs fails if Woo renames it (the line would come back). */
body.cb-store .wc-block-components-totals-footer-item-tax {
	display: none;
}
body.cb-store .wc-block-components-totals-coupon-link,
body.cb-store .wc-block-components-panel__button {
	color: #088800 !important;
}
/* Checkout steps (board Checkout): green titles, quiet underline fields, radio cards. */
body.cb-store .wc-block-components-checkout-step__title {
	font-size: 24px !important;
	line-height: 36px !important;
	font-weight: 400 !important;
	color: #088800 !important;
}
body.cb-store .wc-block-components-checkout-step {
	padding-bottom: 28px;
	border-bottom: 1px solid #ebebeb;
}
body.cb-store .wc-block-components-text-input input,
body.cb-store .wc-block-components-text-input textarea,
body.cb-store .wc-blocks-components-select__select {
	border-radius: 0 !important;
	border-width: 0 0 1px !important;
	border-color: #000 !important;
	background: transparent !important;
	box-shadow: none !important;
}
body.cb-store .wc-block-components-text-input input:focus,
body.cb-store .wc-blocks-components-select__select:focus {
	border-bottom: 2px solid #088800 !important;
}
body.cb-store .wc-block-components-text-input.has-error input,
body.cb-store .wc-block-components-validation-error,
body.cb-store .wc-block-components-validation-error p {
	color: #dc3232 !important;
	border-color: #dc3232 !important;
}
/* Code fields (2026-10-31, Council (d)): both code fields carry a persistent label ABOVE the input, not Woo's
   floating one, so a placeholder can sit in the input; the helper and the example follow the field. The code is
   typed left-to-right (dir="ltr" from the script); the Hebrew placeholder still reads right-to-left. */
body.cb-store .wc-block-components-totals-coupon__input label,
body.cb-store .cb-code-field__input label {
	position: static !important;
	transform: none !important;
	display: block;
	margin: 0 0 4px;
	font-size: 14px;
	line-height: 1.4;
	color: #4a4a4a;
	white-space: normal;
}
/* Woo prints the coupon label AFTER its input; a label is not a tab stop and stays tied by `for`, so CSS order is
   safe here (the gift form prints its label first). */
body.cb-store .wc-block-components-totals-coupon__input {
	display: flex;
	flex-direction: column;
}
body.cb-store .wc-block-components-totals-coupon__input label {
	order: -1;
}
body.cb-store .wc-block-components-totals-coupon__input input,
body.cb-store .cb-code-field__input input {
	padding: 8px 0 !important;
	height: 44px !important;
	box-sizing: border-box;
}
/* Run B (T10 follow-up 1): the label sits ABOVE the input inside the same wrapper, so a stretched button grew to
   label + input (67px against a 43px input, measured). The button aligns to the row's end at the input's own 44px:
   same top, same height, and the 44px target at every width. */
body.cb-store .wc-block-components-totals-coupon__form,
body.cb-store .cb-code-field__form {
	align-items: flex-end;
}
body.cb-store .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button,
body.cb-store .cb-code-field__form .cb-code-field__button {
	height: 44px;
	min-height: 44px;
	align-self: flex-end;
}
body.cb-store .wc-block-components-totals-coupon__input input:placeholder-shown,
body.cb-store .cb-code-field__input input:placeholder-shown {
	direction: rtl;
	text-align: right;
}
body.cb-store .cb-code-field__help,
body.cb-store .cb-code-field__example {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: #4a4a4a;
}
body.cb-store .cb-code-field__example {
	unicode-bidi: plaintext;
}
/* One pattern for both fields (Council O2, (d)): the gift heading is sized like the coupon toggle; the gift form
   lays out like Woo's coupon form; both apply buttons are the theme's green with white text (4.6:1 for the text
   and against the page; the grey one read as disabled at 1.25:1) and keep a 44px target on mobile. */
body.cb-store .cb-code-field__title {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 400;
	color: #088800;
}
body.cb-store .cb-code-field__form {
	display: flex;
	gap: 16px;
	align-items: stretch;
}
body.cb-store .cb-code-field__form .cb-code-field__input {
	flex: 1 1 auto;
	margin: 0;
}
body.cb-store .wc-block-components-totals-coupon__button,
body.cb-store .cb-code-field__button {
	min-height: 32px;
	min-width: 32px;
	padding: 0 16px;
	background: #088800 !important;
	color: #fff !important;
	border: 0 !important;
	opacity: 1 !important;
}
@media (max-width: 767px) {
	body.cb-store .wc-block-components-totals-coupon__button,
	body.cb-store .cb-code-field__button {
		min-height: 44px;
		min-width: 44px;
	}
}
/* No-stacking: the two choices under the refusal (replace = primary, keep = outline), same green, same targets. */
body.cb-store .cb-stack-choice {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px 0 0;
}
body.cb-store .cb-stack-choice__button {
	min-height: 32px;
	padding: 0 16px;
	border: 2px solid #088800 !important;
	border-radius: 6px;
	font-size: 14px;
	opacity: 1 !important;
}
body.cb-store .cb-stack-choice__replace {
	background: #088800 !important;
	color: #fff !important;
}
body.cb-store .cb-stack-choice__keep {
	background: #fff !important;
	color: #088800 !important;
}
@media (max-width: 767px) {
	/* Woo's button rule set 42px (measured); the target needs 44. */
	body.cb-store .cb-stack-choice__button {
		min-height: 44px !important;
		height: auto !important;
	}
}
/* A long error squeezed Woo's alert icon to a sliver (8px wide, measured 2026-10-31); it keeps its 24px in both fields. */
body.cb-store .wc-block-components-validation-error svg {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
}
/* Run A (2026-10-31) item 4: a refused code in PW's gift-card form (a wp.components Notice) reads like the coupon
   field's error just above it. */
body.cb-store #pwgc-redeem-gift-card-container .components-notice.is-error .components-notice__content {
	color: var( --error );
}
body.cb-store .wc-block-components-radio-control__option,
body.cb-store .wc-block-components-radio-control-accordion-option {
	border: 1px solid #ccc !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}
body.cb-store .wc-block-components-radio-control__option-checked,
body.cb-store .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: #088800 !important;
	box-shadow: 0 0 16px -2px rgba( 8, 136, 0, .55 ) !important;
}
body.cb-store .wc-block-components-radio-control__input:checked,
body.cb-store .wc-block-components-checkbox__input:checked {
	border-color: #088800 !important;
	background-color: #088800 !important;
}
/* The city select's container once the combobox replaces it: label above, no chevron. */
body.cb-store .wc-blocks-components-select__container:has( .cb-city-combo ) {
	height: auto !important;
	border: 0 !important;
	background: none !important;
}
body.cb-store .wc-blocks-components-select__container:has( .cb-city-combo ) .wc-blocks-components-select__label {
	position: static !important;
	display: block;
	margin: 0 0 6px;
	transform: none !important;
	font-size: 16px !important;
	color: #404040 !important;
}
body.cb-store .wc-blocks-components-select__container:has( .cb-city-combo ) .wc-blocks-components-select__expand {
	display: none;
}
body.cb-store .wp-block-woocommerce-checkout-order-summary-block,
body.cb-store .wc-block-components-checkout-order-summary__content {
	border: 0 !important;
}
body.cb-store .cb-delivery-slot {
	margin-top: 16px;
	padding: 16px 18px;
	border-radius: 10px;
	background: #f4f4f4;
}
body.cb-store .cb-delivery-slot p {
	margin: 0;
}
body.cb-store .cb-delivery-slot__title {
	font-size: 14px;
	color: #6b6b6b;
}
body.cb-store .cb-delivery-slot__day {
	font-size: 18px;
	font-weight: 600;
	color: #4a4a4a;
}
body.cb-store .cb-delivery-slot__window {
	font-size: 16px;
	color: #404040;
	text-align: start;
	unicode-bidi: isolate;
}
body.cb-store .cb-consents {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 20px;
	padding: 14px 18px;
	border-radius: 12px;
	background: rgba( 8, 136, 0, .08 );
}
body.cb-store .cb-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 16px;
	line-height: 24px;
	color: #404040;
}
body.cb-store .cb-consent input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
	accent-color: #088800;
}
body.cb-store .cb-consent a {
	color: #088800;
}
body.cb-store .cb-consents__error {
	margin: 0;
	color: #dc3232;
	font-size: 14px;
}
body.cb-store .wc-block-components-notice-banner.is-error {
	border-color: #dc3232 !important;
	background: rgba( 220, 50, 50, .06 ) !important;
}
body.cb-store .wc-block-components-notice-banner.is-error > svg {
	background-color: #dc3232 !important;
}
body.cb-store .wc-block-checkout__terms {
	display: none; /* Woo's generic terms line; the two consents (S1) replace it */
}

body.cb-store .cb-empty-cart {
	text-align: center;
}
body.cb-store .cb-empty-cart__text {
	margin: 24px 0 16px;
	font-size: 20px;
	color: #4a4a4a;
}
body.cb-store .cb-empty-cart__title {
	margin: 48px 0 24px;
	font-size: 24px;
	font-weight: 600;
	color: #4a4a4a;
	text-align: start;
}
body.cb-store .cb-empty-cart ul.products {
	text-align: start;
}

/* ---- My account and order received (boards Account*, ThankYou) ---- */
body.cb-store .cb-card,
body.cb-store .cb-slot-card,
body.cb-store .woocommerce-Address,
body.cb-store form.woocommerce-form-login,
body.cb-store form.woocommerce-form-register {
	padding: 24px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 0 12px -5px rgba( 0, 0, 0, .75 );
}
body.cb-store .woocommerce-account .woocommerce,
body.cb-store.woocommerce-account .cb-store-wrap > .woocommerce {
	display: grid;
	grid-template-columns: 220px minmax( 0, 1fr );
	grid-template-areas: "nav content";
	gap: 48px;
	align-items: start;
}
body.cb-store .woocommerce-MyAccount-navigation {
	grid-area: nav;
	float: none;
	width: auto;
}
body.cb-store .woocommerce-MyAccount-content {
	grid-area: content;
	float: none;
	width: auto;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
body.cb-store .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.cb-store .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 18px;
	font-size: 18px;
	line-height: 34px;
	font-weight: 500;
	color: #088800;
	text-decoration: none;
}
body.cb-store .woocommerce-MyAccount-navigation-link.is-active a {
	border-color: #088800;
}
body.cb-store .woocommerce-MyAccount-content mark {
	background: none; /* the theme paints <mark> yellow */
	font-weight: 600;
	color: inherit;
}
body.cb-store .woocommerce-MyAccount-content mark.order-status {
	padding: 0 10px;
	border-radius: 16px;
	background: rgba( 8, 136, 0, .08 );
	font-weight: 400;
}
body.cb-store .cb-account-hello,
body.cb-store .cb-account-intro {
	margin: 0;
	font-size: 16px;
}
body.cb-store .cb-last-order {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
body.cb-store .cb-last-order__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	align-self: stretch;
	gap: 12px;
}
body.cb-store .cb-last-order h2 {
	margin: 0;
	font-size: 22px;
	font-weight: 500;
	color: #4a4a4a;
}
body.cb-store .cb-last-order__line {
	margin: 0;
}
body.cb-store .cb-last-order .cb-slot-card {
	padding: 0;
	box-shadow: none;
}
body.cb-store .cb-status {
	display: inline-block;
	padding: 0 10px;
	border-radius: 16px;
	background: #ebebeb;
	font-size: 14px;
	line-height: 24px;
	white-space: nowrap;
}
body.cb-store .cb-status--processing {
	background: rgba( 8, 136, 0, .08 );
}
body.cb-store .cb-btn-sm {
	min-height: 32px;
	border-radius: 16px;
}
body.cb-store .button.cb-btn-outline {
	background: transparent;
	border-color: #088800;
	color: #088800;
}
body.cb-store .cb-tiles {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 24px;
}
body.cb-store .cb-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	text-decoration: none;
}
body.cb-store .cb-tile__title {
	font-size: 20px;
	color: #088800;
}
body.cb-store .cb-tile__sub {
	font-size: 14px;
	color: #6b6b6b;
}
body.cb-store .cb-slot-card h3 {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 400;
	color: #6b6b6b;
}
body.cb-store .cb-slot-card__day {
	margin: 0;
	font-size: 18px;
	color: #4a4a4a;
}
body.cb-store .cb-slot-card__window {
	margin: 0;
	text-align: start;
	unicode-bidi: isolate;
}
body.cb-store .woocommerce-orders-table,
body.cb-store .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
}
body.cb-store .woocommerce-orders-table th,
body.cb-store .woocommerce-orders-table td,
body.cb-store .woocommerce-table--order-details th,
body.cb-store .woocommerce-table--order-details td {
	padding: 14px 8px;
	border-bottom: 1px solid #ebebeb;
	text-align: start;
	vertical-align: middle;
}
body.cb-store .woocommerce-orders-table thead th,
body.cb-store .woocommerce-table--order-details thead th {
	font-size: 14px;
	font-weight: 600;
	color: #4a4a4a;
	border-bottom-color: #bbb;
}
body.cb-store .woocommerce-orders-table .button {
	min-height: 32px;
	margin-inline-end: 6px;
	border-radius: 16px;
	font-size: 14px;
}
body.cb-store .woocommerce-order-details__title,
body.cb-store .woocommerce-column__title,
body.cb-store .woocommerce-Address-title h2 {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 500;
	color: #088800;
}
body.cb-store .woocommerce-customer-details .woocommerce-columns,
body.cb-store .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	gap: 24px;
}
body.cb-store .woocommerce-customer-details .woocommerce-column,
body.cb-store .woocommerce-Address {
	float: none;
	width: auto;
}
body.cb-store .woocommerce-customer-details .woocommerce-column {
	padding: 24px;
	border-radius: 10px;
	box-shadow: 0 0 12px -5px rgba( 0, 0, 0, .75 );
}
body.cb-store .woocommerce-customer-details address,
body.cb-store .woocommerce-Address address {
	font-style: normal;
	line-height: 24px;
	border: 0;
	padding: 0;
}
body.cb-store .woocommerce-Address-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
body.cb-store .woocommerce-Address-title a {
	color: #088800;
}
body.cb-store form.woocommerce-form-login {
	max-width: 480px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
body.cb-store .woocommerce-form-row label {
	display: block;
	margin: 0 0 4px;
}
body.cb-store .woocommerce-Input,
body.cb-store .woocommerce-form-row .input-text {
	width: 100%;
	padding: 0 0 8px;
	border: 0;
	border-bottom: 1px solid #000;
	border-radius: 0;
	background: transparent;
	font-size: 16px;
}
/* S-8 (ruling 2026-10-20 11:40): the account details form takes the My account address form's look. Its inputs
   at the address form's 20px (the rule above makes them 16px). */
body.cb-store form.woocommerce-EditAccountForm .input-text {
	font-size: 20px;
}
/* The address form's 12-column grid: first and last name half each, every other row full width. */
body.cb-store form.woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat( 12, minmax( 0, 1fr ) ); column-gap: 28px; }
body.cb-store form.woocommerce-EditAccountForm > *,
body.cb-store form.woocommerce-EditAccountForm fieldset > .form-row { grid-column: span 12; float: none; width: auto; min-width: 0; max-width: none; /* the theme caps these rows at 300px */ }
body.cb-store form.woocommerce-EditAccountForm .form-row { margin: 0 0 18px; }
body.cb-store form.woocommerce-EditAccountForm > .form-row-first,
body.cb-store form.woocommerce-EditAccountForm > .form-row-last { grid-column: span 6; }
body.cb-store form.woocommerce-EditAccountForm > .clear { display: none; }
@media ( max-width: 600px ) {
	body.cb-store form.woocommerce-EditAccountForm { column-gap: 16px; } /* as the address grid */
}
/* The password block: a titled section like the address form's "כתובת למשלוח", not a grey-bordered fieldset. */
body.cb-store form.woocommerce-EditAccountForm fieldset { min-width: 0; margin: 8px 0 0; padding: 0; border: 0; }
body.cb-store form.woocommerce-EditAccountForm legend { margin: 0 0 12px; padding: 0; font-size: 24px; font-weight: 700; line-height: 36px; color: #404040; }
/* S-9 (ruling 2026-10-20 11:40): Woo's show-password button (its script toggles the input type, the
   display-password class and the aria-label) drawn as an eye / eye-off inside the field at its end. Woo's own
   icon font lives in the stylesheet this theme drops on store pages, which left an empty grey box. */
body.cb-store .password-input { position: relative; display: block; }
body.cb-store .password-input .input-text { padding-inline-end: 40px; }
/* Centred on the field's text line, which sits above its 8px bottom padding. */
/* The eye is a mask on ::before, not on the button: a mask on the button clipped its own focus outline (review). */
body.cb-store .password-input .show-password-input { position: absolute; inset-inline-end: 0; top: 0; bottom: 8px; width: 28px; height: 24px; margin: auto 0; padding: 0; border: 0; background: none; cursor: pointer; }
body.cb-store .password-input .show-password-input::before { content: ""; position: absolute; inset: 0; background-color: var( --ink-muted );
	-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.8' stroke-linecap='round' stroke-linejoin='round'%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 / 22px 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.8' stroke-linecap='round' stroke-linejoin='round'%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 / 22px no-repeat; }
body.cb-store .password-input .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.8' stroke-linecap='round' stroke-linejoin='round'%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.8' stroke-linecap='round' stroke-linejoin='round'%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.cb-store .password-input .show-password-input:hover::before,
body.cb-store .password-input .show-password-input:focus-visible::before,
body.cb-store .password-input .show-password-input.display-password::before { background-color: var( --brand ); }
body.cb-store .password-input .show-password-input:focus-visible { outline: 2px solid var( --brand ); outline-offset: 2px; }
/* The save button at the start edge, as "שמירת כתובת" (it was centred). */
body.cb-store form.woocommerce-EditAccountForm > p:not( .form-row ) { margin: 8px 0 0; text-align: start; }
body.cb-store form.woocommerce-EditAccountForm .input-text { box-sizing: border-box; width: 100%; }
body.cb-store .woocommerce-Input:focus,
body.cb-store .woocommerce-form-row .input-text:focus {
	outline: none;
	border-bottom: 2px solid #088800;
}
body.cb-store .woocommerce-error,
body.cb-store .woocommerce-message,
body.cb-store .woocommerce-info {
	margin: 0 0 20px;
	padding: 14px 18px;
	border: 1px solid #088800;
	border-radius: 12px;
	background: rgba( 8, 136, 0, .08 );
	list-style: none;
}
/* 1.7.4 part 1: the add-to-cart notice - the count sentence, then the cart button at the row's end (left in RTL),
   below the sentence when the row is too narrow, never split. Scoped by :has() to the theme's own notice; without
   :has() the notice keeps today's inline layout. */
body.cb-store .woocommerce-message:has( .cb-atc-notice__text ) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}
body.cb-store .cb-atc-notice__text {
	flex: 1 1 12em;
}
body.cb-store .woocommerce-message .cb-atc-notice__cart {
	margin-inline-start: auto;
	flex-shrink: 0;
	white-space: nowrap;
}
/* Woo's woocommerce.js focuses every success notice (tabindex -1, +500 ms) so screen readers hear it: keep that,
   but draw the brand ring instead of the browser's auto ring (blue in Safari/Firefox). */
body.cb-store .woocommerce-message:focus {
	outline: 2px solid var( --brand );
	outline-offset: 2px;
}
body.cb-store .woocommerce-error {
	border-color: #dc3232;
	background: rgba( 220, 50, 50, .06 );
	color: #404040;
}
body.cb-store .woocommerce-error::before {
	content: "שגיאה: ";
	font-weight: 600;
	color: #dc3232;
}
body.cb-store .cb-orders-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}
body.cb-store .cb-orders-empty p {
	margin: 0;
	font-size: 18px;
}
body.cb-store .cb-ty-title {
	margin: 0;
	font-size: 28px;
	font-weight: 600;
	color: #4a4a4a;
}
body.cb-store .cb-ty-sent {
	margin: 4px 0 24px;
}
body.cb-store .woocommerce-order {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
body.cb-store .woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 16px;
	margin: 0;
	list-style: none;
}
body.cb-store .woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 14px;
	color: #6b6b6b;
}
body.cb-store .woocommerce-order-overview strong {
	font-size: 18px;
	color: #4a4a4a;
}
body.cb-store .cb-ty-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}
@media ( max-width: 767px ) {
	body.cb-store.woocommerce-account .cb-store-wrap > .woocommerce {
		grid-template-columns: minmax( 0, 1fr );
		grid-template-areas: "nav" "content";
		gap: 24px;
	}
	body.cb-store .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: wrap;
	}
	body.cb-store .woocommerce-MyAccount-navigation a {
		font-size: 16px;
	}
	body.cb-store .cb-tiles,
	body.cb-store .woocommerce-customer-details .woocommerce-columns,
	body.cb-store .woocommerce-Addresses {
		grid-template-columns: minmax( 0, 1fr );
	}
	body.cb-store .woocommerce-order-overview {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}
	body.cb-store .woocommerce-orders-table thead {
		display: none;
	}
	body.cb-store .woocommerce-orders-table tr {
		display: block;
		padding: 12px 0;
		border-bottom: 1px solid #ebebeb;
	}
	body.cb-store .woocommerce-orders-table td,
	body.cb-store .woocommerce-orders-table th {
		display: flex;
		justify-content: space-between;
		padding: 4px 0;
		border: 0;
	}
	body.cb-store .woocommerce-orders-table td::before,
	body.cb-store .woocommerce-orders-table th::before {
		content: attr( data-title );
		color: #6b6b6b;
	}
}

body.cb-store .cb-summary-cat {
	margin-bottom: -10px;
	font-size: 14px;
	color: var( --brand );
	text-decoration: none;
}

/* Grouped product rows: photo, name + subtitle, price, stepper. */
body.cb-store .woocommerce-grouped-product-list {
	width: 100%;
	border-collapse: collapse;
}
body.cb-store .woocommerce-grouped-product-list td {
	padding: 12px 4px;
	border-bottom: 1px solid #ebebeb;
	vertical-align: middle;
	text-align: start;
}
body.cb-store .woocommerce-grouped-product-list-item__cb_thumb {
	width: 76px;
}
body.cb-store .cb-grouped-thumb {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 10px;
}
body.cb-store .woocommerce-grouped-product-list-item__label a {
	display: block;
	color: #404040;
	font-size: 16px;
	text-decoration: none;
}
body.cb-store .woocommerce-grouped-product-list-item__price .price,
body.cb-store .woocommerce-grouped-product-list-item__price .amount {
	font-size: 16px;
	font-weight: 600;
	color: #088800;
}
body.cb-store .woocommerce-grouped-product-list-item__quantity {
	text-align: end;
}
body.cb-store .woocommerce-grouped-product-list-item__quantity .cb-qty {
	height: 40px;
}
body.cb-store .woocommerce-grouped-product-list-item__quantity .cb-qty__btn,
body.cb-store .woocommerce-grouped-product-list-item__quantity .cb-qty input.qty {
	height: 38px;
}
body.cb-store form.grouped_form .single_add_to_cart_button {
	width: 100%;
	margin-top: 20px;
}

/* A-3 (2026-10-20): the meal name opens the meal modal; it reads as the old name link did, underlined on hover/focus. */
body.cb-store .cb-meal-open {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	color: #404040;
	font: inherit;
	font-size: 16px;
	text-align: start;
	cursor: pointer;
}
body.cb-store .cb-meal-open:hover,
body.cb-store .cb-meal-open:focus-visible {
	color: var( --brand );
	text-decoration: underline;
}
body.cb-store .cb-meal-open:focus-visible {
	outline: 2px solid var( --brand );
	outline-offset: 2px;
}
/* A-3: a hidden meal's URL when several packages sell it (woocommerce-store/packages-list.php). */
body.cb-store .cb-packages-title {
	margin: 32px 0 24px;
	font-size: 26px;
	line-height: 36px;
	font-weight: 600;
	color: #4a4a4a;
}
body.cb-store dialog.cb-meal-modal {
	width: min( 880px, calc( 100vw - 32px ) );
	max-height: calc( 100vh - 32px );
	padding: 0;
	border: 0;
	border-radius: 10px;
	box-shadow: 0 10px 40px rgba( 0, 0, 0, .25 );
	overflow: auto;
}
body.cb-store dialog.cb-meal-modal::backdrop {
	background: rgba( 0, 0, 0, .45 );
}
body.cb-store .cb-meal-modal__inner {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1fr );
	gap: 28px;
	padding: 28px;
}
body.cb-store .cb-meal-images {
	display: grid;
	gap: 12px;
	align-content: start;
}
body.cb-store .cb-meal-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
}
body.cb-store .cb-meal-name {
	margin: 0 0 8px;
	font-size: 22px;
	line-height: 30px;
	font-weight: 600;
	color: #4a4a4a;
}
body.cb-store .cb-meal-price {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	color: var( --brand );
}
body.cb-store .cb-meal-desc {
	font-size: 15px;
	line-height: 24px;
}
/* Allergen line, option A (ruling d-d5c032-06): a warning triangle at the label's inline start, in --warn. On the
   label's own ::before, with the label kept on one line, so the icon can never wrap away from it (390). Decorative:
   empty content, nothing read aloud. Product page, package rows and the meal window all print the same markup. */
body.cb-store .cb-allergens {
	color: var( --ink );
}
/* 600, not the ruling's 500 (operator 2026-11-03): functions.php loads Assistant without a 500 face, so 500 renders as 400. */
body.cb-store .cb-allergens__label {
	font-weight: 600;
	white-space: nowrap;
}
body.cb-store .cb-allergens__label::before {
	content: "";
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-inline-end: .3em;
	vertical-align: -.2em;
	background-color: var( --warn );
	-webkit-mask: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 1 21h22L12 2zm1 16h-2v-2h2v2zm0-4h-2V9h2v5z'/%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'%3E%3Cpath d='M12 2 1 21h22L12 2zm1 16h-2v-2h2v2zm0-4h-2V9h2v5z'/%3E%3C/svg%3E" ) center / contain no-repeat;
}
body.cb-store .cb-meal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-top: 20px;
}
body.cb-store .cb-meal-actions .cb-qty {
	height: 46px;
}
body.cb-store .cb-meal-close {
	min-height: 46px;
	padding: 0 22px;
	border: 1px solid var( --brand );
	border-radius: 999px;
	background: #fff;
	color: var( --brand );
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
body.cb-store .cb-meal-close:focus-visible,
body.cb-store .cb-meal-add:focus-visible {
	outline: 2px solid var( --brand );
	outline-offset: 2px;
}
@media ( max-width: 767px ) {
	body.cb-store .cb-meal-modal__inner {
		grid-template-columns: minmax( 0, 1fr );
		gap: 16px;
		padding: 16px;
	}
	body.cb-store .cb-meal-name {
		font-size: 20px;
		line-height: 28px;
	}
}

/* Gift card: PW's fields in the board's underline style. */
body.cb-store .pwgc-field-container,
body.cb-store .cb-gift-city {
	margin: 0 0 18px;
}
body.cb-store .pwgc-label,
body.cb-store .cb-gift-city > label {
	display: block;
	margin: 0 0 6px;
	font-weight: 600;
	color: #4a4a4a;
}
body.cb-store .pwgc-input-text,
body.cb-store #pwgc-message {
	width: 100%;
	padding: 0 0 8px;
	border: 0;
	border-bottom: 1px solid #000;
	border-radius: 0;
	background: transparent;
	font-size: 16px;
}
body.cb-store .pwgc-input-text:focus,
body.cb-store #pwgc-message:focus {
	outline: none;
	border-bottom: 2px solid #088800;
}
body.cb-store .pwgc-subtitle,
body.cb-store .cb-field__help {
	margin: 4px 0 0;
	font-size: 14px;
	color: #6b6b6b;
}

/* City field: type-to-search combobox and the delivery-areas tooltip (js/store-city-combobox.js). */
.cb-city-combo {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
}
.cb-city-combo input[role="combobox"] {
	flex: 1;
	min-width: 0;
	height: 40px;
	padding: 0 14px;
	border: 1px solid #ccc;
	border-radius: 20px;
	background: #fff url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234a4a4a' stroke-width='1.5'/%3E%3C/svg%3E" ) no-repeat left 14px center;
	font-size: 16px;
	color: #404040;
}
.cb-city-combo input[role="combobox"]:focus {
	outline: none;
	border-color: #088800;
}
.cb-city-combo [role="listbox"] {
	position: absolute;
	z-index: 40;
	top: calc( 100% + 4px );
	inset-inline: 0;
	max-height: 260px;
	margin: 0;
	padding: 4px 0;
	overflow-y: auto;
	list-style: none;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 10px;
	box-shadow: 0 6px 20px rgba( 0, 0, 0, .12 );
}
.cb-city-combo [role="option"] {
	padding: 8px 14px;
	cursor: pointer;
}
.cb-city-combo [role="option"][aria-selected="true"],
.cb-city-combo [role="option"]:hover {
	background: rgba( 8, 136, 0, .08 );
	color: #088800;
}
.cb-city-combo [role="option"][aria-disabled="true"] {
	cursor: default;
	color: #6b6b6b;
	background: none;
}
.cb-city-info {
	flex: none;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 1px solid #6b6b6b;
	border-radius: 50%;
	background: #fff;
	color: #4a4a4a;
	font: 600 13px/22px Georgia, serif;
	cursor: pointer;
}
.cb-city-info:focus-visible {
	outline: 2px solid #088800;
	outline-offset: 2px;
}
.cb-city-tip {
	position: absolute;
	z-index: 30;
	inset-inline-end: 0;
	top: calc( 100% + 6px );
	max-width: 22rem;
	padding: 10px 12px;
	border-radius: 8px;
	background: #2b2d33;
	color: #fff;
	font-size: 13px;
	line-height: 1.5;
	box-shadow: 0 6px 20px rgba( 0, 0, 0, .18 );
}
.cb-city-tip[hidden],
.cb-city-combo [role="listbox"][hidden] {
	display: none !important;
}

/* ---- Part 1c product page ---- */
body.cb-store.single-product div.product { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; align-items: start; }
body.cb-store.single-product div.product > .summary { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 18px; }
body.cb-store.single-product div.product > .woocommerce-product-gallery { grid-column: 2; grid-row: 1; }
body.cb-store.single-product div.product > .cb-details,
body.cb-store.single-product div.product > .cb-after-tabs,
body.cb-store.single-product div.product > .related { grid-column: 1 / -1; }
body.cb-store .product_title { margin: 0; font-size: 36px; line-height: 44px; font-weight: 600; color: var( --ink-heading ); }
body.cb-store .woocommerce-product-details__short-description ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px 20px; }
body.cb-store .woocommerce-product-details__short-description li { position: relative; padding-inline-start: 26px; font-size: 15px; }
/* S-4 (2026-10-20): the tick is the PHYSICAL left + bottom stroke rotated -45deg. border-inline-start is the right
   border in RTL, which drew a sideways "<". A tick does not mirror with the text direction. */
body.cb-store .woocommerce-product-details__short-description li::before { content: ""; position: absolute; inset-inline-start: 0; top: 4px; width: 14px; height: 8px; border-left: 2px solid var( --brand ); border-bottom: 2px solid var( --brand ); transform: rotate(-45deg); }
body.cb-store .cb-details-link { font-size: 15px; font-weight: 600; color: var( --brand ); }
/* T44: the header "הזמינו" target on a package page (chefbari_store_package_anchor()). A flex item of .summary, so the
   negative margin cancels its own gap (the form keeps one gap above it). Lifted 24px so the legacy scroll (top - 60)
   leaves the form clear below the 64px fixed header; scroll-margin does the same for a no-JS jump. */
body.cb-store.single-product .summary > .cb-package-anchor { display: block; height: 0; margin-top: -18px; position: relative; top: -24px; scroll-margin-top: 80px; }
body.cb-store .cb-delivery-box { background: rgba(8,136,0,.08); border-radius: 12px; padding: 14px 18px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 22px; }
body.cb-store .cb-delivery-box p { margin: 0; }
body.cb-store .cb-delivery-box .cb-delivery-note { padding: 0; background: none; font-size: inherit; line-height: inherit; }
body.cb-store .cb-trust { display: flex; flex-wrap: wrap; gap: 22px; list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px solid #ebebeb; font-size: 14px; color: var( --ink-muted ); }
/* S-6 (ruling 2026-10-20 11:01-11:14): an icon before each statement, centred on it, and the text bold. */
body.cb-store .cb-trust li { display: flex; align-items: center; gap: 8px; }
body.cb-store .cb-trust svg { flex: none; width: auto; height: 34px; }
body.cb-store .cb-trust__text { font-weight: 700; }
@media ( max-width: 767px ) {
	body.cb-store .cb-trust svg { height: 28px; }
}
/* Run A (2026-10-31) item 3: AddToAny share kit, in flow under the trust line (never floating: the sticky bar owns
   the bottom at 390). AddToAny draws its icons only from static.addtoany.com/menu/page.js; while that script has not
   run (blocked before consent, an ad blocker) each link is EMPTY and would be 0x0. The plugin's own local SVGs on its
   brand tile stand in; once page.js fills the link, :empty stops matching and its own icon shows alone. */
body.cb-store .cb-share { margin-top: 16px; }
/* Any empty link (the "+" universal button, a service a host enables later) gets AddToAny's own "+" tile; the three
   services CLONE runs get their brand tile. The per-service selectors repeat `.a2a_kit a` to outrank the generic one.
   The url()s assume the default wp-content/plugins layout, true on CLONE, DEV and PROD. */
body.cb-store .cb-share .a2a_kit a:empty { display: inline-block; width: 32px; height: 32px; margin-inline-end: 6px; border-radius: 4px; background: #0166ff url( ../../../plugins/add-to-any/icons/a2a.svg ) center / 100% no-repeat; }
body.cb-store .cb-share .a2a_kit a.a2a_button_facebook:empty { background-color: #0866ff; background-image: url( ../../../plugins/add-to-any/icons/facebook.svg ); }
body.cb-store .cb-share .a2a_kit a.a2a_button_twitter:empty { background-color: #1d9bf0; background-image: url( ../../../plugins/add-to-any/icons/twitter.svg ); }
body.cb-store .cb-share .a2a_kit a.a2a_button_whatsapp:empty { background-color: #12af0a; background-image: url( ../../../plugins/add-to-any/icons/whatsapp.svg ); }
/* R-8 (ruling 17:22): the grey tab area is a rounded box padded the same on every side, so the white panel never
   touches its bottom edge. The after-tabs area is its sibling now (single-product/details.php). */
body.cb-store .cb-details { margin-top: 64px; background: #f4f4f4; border-radius: 10px; padding: 28px; }
body.cb-store .cb-tabs.is-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 0; box-sizing: border-box; }
body.cb-store .cb-tabs.is-tabs::before { content: ""; order: 1; flex: 0 0 100%; height: 16px; }
body.cb-store .cb-tabs.is-tabs .cb-tablist { order: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 100%; }
body.cb-store .cb-tabs.is-tabs .cb-tab-head { margin: 0; max-width: 100%; }
body.cb-store .cb-tabs.is-tabs .cb-tab-btn { max-width: 100%; }
body.cb-store .cb-details > .cb-description { width: min( 820px, 100% ); margin-top: 0; } /* the box's own padding spaces it now */
body.cb-store .cb-tabs + .cb-description { margin-top: 16px; }
body.cb-store .cb-tabs.is-tabs .cb-tab-panel, body.cb-store .cb-description { order: 2; width: min( 820px, 100% ); margin: 0 auto; background: #fff; border-radius: 10px; padding: 40px 48px; box-sizing: border-box; font-size: 17px; line-height: 28px; }
body.cb-store .cb-tabs.is-tabs .cb-tab-panel[hidden] { display: none; }
body.cb-store .cb-tab-head { margin: 0; font-size: inherit; }
body.cb-store .cb-tabs.is-tabs .cb-tab-btn { height: 44px; padding: 0 22px; border-radius: 22px; border: 1px solid #ccc; background: #fff; color: var( --ink-heading ); font-size: 16px; font-weight: 500; line-height: 1; font-family: inherit; cursor: pointer; }
body.cb-store .cb-tabs.is-tabs .cb-tab-btn[aria-selected="true"] { border-color: var( --brand ); background: var( --brand ); color: #fff; font-weight: 600; }
body.cb-store .cb-tabs.is-accordion { background: #fff; border-top: 1px solid #ebebeb; }
body.cb-store .cb-tabs.is-accordion .cb-tab-head { border-bottom: 1px solid #ebebeb; }
body.cb-store .cb-tabs.is-accordion .cb-tab-btn { width: 100%; min-height: 56px; padding: 0 16px; border: 0; background: #fff; display: flex; align-items: center; justify-content: space-between; font-size: 18px; font-weight: 600; line-height: 1.3; font-family: inherit; color: var( --ink-heading ); text-align: start; }
body.cb-store .cb-tabs.is-accordion .cb-tab-btn::after { content: "+"; color: var( --brand ); font-size: 22px; font-weight: 400; }
body.cb-store .cb-tabs.is-accordion .cb-tab-btn[aria-expanded="true"]::after { content: "\2212"; }
body.cb-store .cb-tabs.is-accordion .cb-tab-panel { padding: 0 16px 20px; font-size: 16px; line-height: 26px; border-bottom: 1px solid #ebebeb; }
/* S-7: the after-tabs area sits on white, outside the grey tab area (R-8 made it .cb-details' sibling), so the
   .cb-band text block is one grey box, not grey on grey. */
body.cb-store .cb-after-tabs { width: min( 1168px, 100% ); margin: 0 auto; padding: 56px 0 0; }
/* Below the tab area the product grid's row gap (56px; 18px under 768px) already spaces it: 56px in all (review). */
body.cb-store .cb-details + .cb-after-tabs { padding-top: 0; }
@media ( max-width: 767px ) {
	body.cb-store .cb-details + .cb-after-tabs { padding-top: 38px; }
}
body.cb-store .cb-steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; counter-reset: cb-step; }
body.cb-store .cb-steps li { background: #fff; border-radius: 10px; padding: 28px; counter-increment: cb-step; }
body.cb-store .cb-steps li::before { content: counter( cb-step ); display: flex; width: 40px; height: 40px; border-radius: 50%; background: var( --brand ); color: #fff; font-weight: 700; font-size: 18px; align-items: center; justify-content: center; margin-bottom: 10px; }
/* Maternity's steps band (migrated after-tabs), as the mockup's "התהליך פשוט ומהיר" section. */
body.cb-store .cb-steps-band { display: flex; flex-direction: column; gap: 28px; background: #fff; padding: 56px 0; }
body.cb-store .cb-steps-band > h2 { margin: 0; text-align: center; font-size: 26px; line-height: 36px; font-weight: 600; color: #4a4a4a; }
body.cb-store .cb-steps-band > p { margin: 0; text-align: center; font-size: 17px; }
body.cb-store .cb-steps-band .cb-steps li { background: #f4f4f4; font-size: 17px; line-height: 27px; }
body.cb-store .cb-steps-band .cb-steps li:nth-child(2) { background: #fff; box-shadow: 0 0 12px -5px rgba(0,0,0,.75); }
/* R-9 (ruling 17:22): one grey and one radius for the tab area, the grey step cards and this box (was #ebebeb). */
body.cb-store .cb-band { background: #f4f4f4; padding: 48px 24px; margin-top: 56px; border-radius: 10px; }
body.cb-store .cb-menu-card { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
body.cb-store .cb-sticky-cta { position: fixed; inset-inline: 0; bottom: 0; z-index: 50; display: flex; align-items: center; gap: 12px; padding: 10px 16px calc( 14px + env( safe-area-inset-bottom, 0px ) ); background: #fff; box-shadow: 0 -4px 16px rgba(0,0,0,.12); }
body.cb-store .cb-sticky-cta[hidden] { display: none; }
body.cb-store .cb-sticky-cta__name { font-size: 13px; color: var( --ink-muted ); }
body.cb-store .cb-sticky-cta__price { margin: 0; font-size: 20px; font-weight: 700; color: var( --brand ); } /* also .price: the main price's del/ins rules */
body.cb-store .cb-sticky-cta button { flex-grow: 1; height: 44px; border: 0; border-radius: 22px; background: linear-gradient( 333deg, #088800, #31a801 ); color: #fff; font-size: 17px; font-weight: 600; line-height: 1; font-family: inherit; }
@media ( min-width: 768px ) { body.cb-store .cb-sticky-cta { display: none !important; } }
/* S-3b back-to-shop (rulings 2026-10-20; the wide position is on trial). Round, white, green border, ">" icon;
   the label is collapsed, never display:none, so it stays the link's accessible name. */
body.cb-store .cb-back-shop { z-index: 45; display: inline-flex; align-items: center; box-sizing: border-box; height: 44px; min-width: 44px; padding: 0 10px; border: 2px solid var( --brand ); border-radius: 22px; background: #fff; color: var( --brand ); font-size: 16px; font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap; box-shadow: 0 2px 10px -4px rgba( 0, 0, 0, .35 ); }
body.cb-store .cb-back-shop svg { flex: none; }
body.cb-store .cb-back-shop__label { display: inline-block; max-width: 0; overflow: hidden; opacity: 0; transition: max-width .3s ease-out, opacity .3s ease-out, padding .3s ease-out; }
body.cb-store .cb-back-shop:focus-visible { outline: 2px solid var( --brand ); outline-offset: 2px; }
body.cb-store .cb-back-shop:focus-visible .cb-back-shop__label,
body.cb-store .cb-back-shop.is-peek .cb-back-shop__label { max-width: 160px; opacity: 1; padding-inline-start: 6px; }
/* >= 1300px: a rail just right of the content column, as tall as the product, so the link starts level with the
   column top and sticks under the header. RTL: inline-start is the right; a wider link overflows to the left.
   1300, not 1280: the rail reaches 64px past the column, and at 1280 a classic 17px scrollbar left it ~0px. */
@media ( min-width: 1300px ) {
	body.cb-store .cb-back-rail { position: absolute; top: 0; bottom: 0; inset-inline-start: -64px; width: 44px; }
	/* Under the 64px header with 24px to spare; the admin bar pushes the header down by its height (R-6). */
	body.cb-store .cb-back-shop { position: sticky; top: calc( 88px + var( --wp-admin--admin-bar--height, 0px ) ); }
}
@media ( min-width: 1300px ) and ( hover: hover ) {
	body.cb-store .cb-back-shop:hover .cb-back-shop__label { max-width: 160px; opacity: 1; padding-inline-start: 6px; }
}
/* Below 1300px: smaller, fixed at the right edge, low: 120px up from the bottom, below the main product photo
   (R-1, ruling 17:14: at mid-height it sat on the photo and read as a gallery arrow) and above the <768px sticky
   add-to-cart bar; icon only (the per-load peek aside). */
@media ( max-width: 1299px ) {
	/* No box for the rail here: as an in-flow item of the div.product grid it took a row of its own (review). */
	body.cb-store .cb-back-rail { display: contents; }
	body.cb-store .cb-back-shop { position: fixed; bottom: calc( 120px + env( safe-area-inset-bottom, 0px ) ); right: 8px; height: 36px; min-width: 36px; padding: 0 6px; border-radius: 18px; font-size: 14px; }
	body.cb-store .cb-back-shop svg { width: 18px; height: 18px; }
}
/* 1.7.5 item 6 (Sagi 9 Nov; the arrow stays, ruling 2026-11-09): on phones (<= 782px, the WhatsApp button's own
   phone breakpoint) it moves to the LEFT edge and shrinks to 32px, out of the WhatsApp button's right-hand column,
   so that button no longer rises for it; same height above the sticky add-to-cart bar. The label peek opens
   rightwards from there. Proof: tools/check-page/back-shop-phone.test.mjs. */
@media ( max-width: 782px ) {
	body.cb-store .cb-back-shop { right: auto; left: 8px; height: 32px; min-width: 32px; padding: 0 5px; border-radius: 16px; }
	body.cb-store .cb-back-shop svg { width: 16px; height: 16px; }
}
@media ( prefers-reduced-motion: reduce ) {
	body.cb-store .cb-back-shop__label { transition: none; }
}
/* R-7 (ruling 17:22): the second back-to-shop button, centred across the product grid before related products. */
/* Equal space above and below as seen: the grid row gap on both sides, plus 48px above to match the related
   heading's own 48px top margin below. */
body.cb-store div.product > .cb-back-shop-cta { grid-column: 1 / -1; margin: 48px 0 0; text-align: center; }
/* Related products were pinned to the named "related" grid row, which put this button after them; in DOM order now. */
body.cb-store.single-product div.product > .related { grid-row: auto; }
@media ( max-width: 767px ) {
	body.cb-store.single-product div.product { grid-template-columns: minmax(0,1fr); gap: 18px; }
	body.cb-store.single-product div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
	body.cb-store.single-product div.product > .summary { grid-row: 2; gap: 12px; }
	body.cb-store.single-product .summary > .cb-package-anchor { margin-top: -12px; }
	body.cb-store .product_title { font-size: 26px; line-height: 32px; }
	body.cb-store .woocommerce-product-details__short-description ul { grid-template-columns: minmax(0,1fr); }
	body.cb-store .cb-details { margin-top: 26px; background: none; padding: 0; }
	body.cb-store .cb-details > .cb-description, body.cb-store .cb-tabs + .cb-description { width: auto; margin: 0; border-radius: 0; padding: 20px 16px; font-size: 16px; line-height: 26px; }
	body.cb-store .cb-steps, body.cb-store .cb-menu-card { grid-template-columns: minmax(0,1fr); }
	/* Steps band as Product-Mobile: a grey band of white row cards, number beside the text. */
	body.cb-store .cb-steps-band { background: #f4f4f4; padding: 28px 16px; gap: 12px; }
	body.cb-store .cb-steps-band > h2 { font-size: 22px; line-height: 30px; }
	body.cb-store .cb-steps-band .cb-steps { gap: 12px; }
	body.cb-store .cb-steps-band .cb-steps li,
	body.cb-store .cb-steps-band .cb-steps li:nth-child(2) { display: flex; gap: 12px; align-items: flex-start; background: #fff; box-shadow: none; padding: 14px; font-size: 15px; line-height: 23px; }
	body.cb-store .cb-steps-band .cb-steps li::before { flex: none; width: 32px; height: 32px; font-size: 16px; margin: 0; }
	body.cb-store.single-product { padding-bottom: 80px; }
}

/* ---- Part 1c: checkout address (Checkout-Address mockup). Order is DOM order (Task 10); no CSS reordering. ---- */
/* Country: Woo forces it visible and required; Israel only, so it is hidden here (operator ruling).
   The select stays in the DOM holding IL for React and the Store API. */
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form__country { display: none !important; }
/* A-4 (2026-10-20): one IL locale serves both forms (inc/store/checkout.php), so each form hides the
   city field that is not its own: delivery = the listed select (state), billing = free text (city). */
body.cb-store #shipping-fields .wc-block-components-address-form__city,
body.cb-store #billing-fields .wc-block-components-address-form__state { display: none !important; }
/* A 12-column grid over Woo's flex rows; every field spans the full row unless listed. */
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form { display: grid; grid-template-columns: repeat( 12, minmax( 0, 1fr ) ); column-gap: 28px; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > * { grid-column: span 12; width: auto; min-width: 0; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__first_name,
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__last_name { grid-column: span 6; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-street { grid-column: span 9; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-house-number { grid-column: span 3; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-entrance,
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-floor,
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-apartment { grid-column: span 4; }
body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-building-code { grid-column: span 6; }
@media ( max-width: 600px ) {
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form { column-gap: 16px; }
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-street { grid-column: span 8; }
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-house-number { grid-column: span 4; }
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-building-code { grid-column: span 12; }
	/* Three across leaves ~108px at 390, and Woo's floating label cuts "כניסה (לא חובה)" short (ruling 2026-10-17). */
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-entrance,
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-floor,
	body.cb-store .wp-block-woocommerce-checkout .wc-block-components-address-form > .wc-block-components-address-form__chef-bari-apartment { grid-column: span 12; }
}
/* My account > addresses (classic rows): the same grid as the checkout, label above a full-width input. */
body.cb-store .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat( 12, minmax( 0, 1fr ) ); column-gap: 28px; }
body.cb-store .woocommerce-address-fields__field-wrapper > .form-row { grid-column: span 12; float: none; width: auto; min-width: 0; margin: 0 0 18px; }
body.cb-store .woocommerce-address-fields__field-wrapper > .form-row label { display: block; margin: 0 0 4px; }
body.cb-store .woocommerce-address-fields__field-wrapper > .form-row .woocommerce-input-wrapper { display: block; }
body.cb-store .woocommerce-address-fields__field-wrapper > .form-row .input-text { box-sizing: border-box; width: 100%; }
/* The city is the 1b combobox here too; Woo's select2 on the clipped state select is not shown. */
body.cb-store .woocommerce-address-fields__field-wrapper .cb-city-combo ~ .select2-container { display: none; }
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/street_field"] { grid-column: span 9; }
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/house-number_field"] { grid-column: span 3; }
body.cb-store .woocommerce-address-fields__field-wrapper > [id$="_first_name_field"],
body.cb-store .woocommerce-address-fields__field-wrapper > [id$="_last_name_field"],
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/building-code_field"] { grid-column: span 6; }
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/entrance_field"],
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/floor_field"],
body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/apartment_field"] { grid-column: span 4; }
@media ( max-width: 600px ) {
	body.cb-store .woocommerce-address-fields__field-wrapper { column-gap: 16px; }
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/street_field"] { grid-column: span 8; }
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/house-number_field"] { grid-column: span 4; }
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/building-code_field"],
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/entrance_field"],
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/floor_field"],
	body.cb-store .woocommerce-address-fields__field-wrapper > [id="chef-bari/apartment_field"] { grid-column: span 12; }
}
body.cb-store .cb-street-wrap { position: relative; }
body.cb-store span.cb-street-wrap { display: block; }
body.cb-store .cb-street-list { position: absolute; z-index: 40; top: calc( 100% + 4px ); inset-inline: 0; max-height: 320px; margin: 0; padding: 6px 0; overflow-y: auto; list-style: none; background: #fff; border-radius: 10px; box-shadow: 0 0 12px -5px rgba( 0, 0, 0, .75 ); text-align: start; }
body.cb-store .cb-street-list[hidden] { display: none !important; }
/* Block checkout's label floats inside the empty field: the placeholder shows only once focused. */
body.cb-store .wc-block-components-text-input input[role="combobox"]::placeholder { opacity: 0; }
body.cb-store .wc-block-components-text-input input[role="combobox"]:focus::placeholder { opacity: 1; }
body.cb-store .cb-street-list [role="option"] { margin: 0; padding: 10px 18px; font-size: 16px; line-height: 22px; color: #404040; cursor: pointer; }
body.cb-store .cb-street-list [role="option"][aria-selected="true"],
body.cb-store .cb-street-list [role="option"]:hover { background: rgba( 8, 136, 0, .08 ); }
body.cb-store .cb-street-list .cb-street-list__free { color: #6b6b6b; border-top: 1px solid #ebebeb; }
/* Phone helper (js/store-street-combobox.js): its own line under the phone input. */
body.cb-store .cb-phone-help { display: block; margin-top: 4px; font-size: 13px; line-height: 18px; color: #6b6b6b; }

/* ---- Part 1c: mobile header drawer (store pages, below the 1130px hamburger breakpoint) ---- */
body.cb-store .cb-drawer-item { display: none; }
body.cb-store .cb-menu-count { position: absolute; top: 6px; inset-inline-start: 34px; min-width: 17px; height: 17px; border-radius: 9px; background: var( --brand ); color: #fff; font-size: 11px; font-weight: 700; line-height: 17px; text-align: center; }
body.cb-store .cb-menu-count[hidden] { display: none; }
@media ( min-width: 1130px ) { body.cb-store .cb-menu-count { display: none; } }
@media ( max-width: 1129px ) {
	body.cb-store .cb-hdr-icons { display: none; }
	body.cb-store .cb-drawer-item { display: block; }
	body.cb-store .cb-drawer-item a { display: flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 600; border-bottom: 1px solid #ebebeb; }
	body.cb-store .cb-drawer-count { position: static; }
}

/* Run D2, T11: the cart-minimum bar (cart-minimum.php, js/store-cart-minimum.js). Shown only below
   the minimum; the met state keeps the status region mounted and takes no room. */
body.cb-store .cb-min {
	margin: 12px 0;
	padding: 12px 14px;
	border-radius: var( --radius-sm );
	background: var( --brand-tint );
}
body.cb-store .cb-min--met {
	margin: 0;
	padding: 0;
	background: none;
}
body.cb-store .cb-min__text {
	margin: 0;
	color: var( --ink-heading );
	font-weight: 600;
	font-size: 15px;
	line-height: 1.4;
}
body.cb-store .cb-min--met .cb-min__text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect( 0 0 0 0 );
	white-space: nowrap;
}
body.cb-store .cb-min__track {
	margin-top: 8px;
	height: 8px;
	border-radius: 4px;
	background: var( --surface-200 );
	overflow: hidden;
}
body.cb-store .cb-min__fill {
	display: block;
	height: 100%;
	background: var( --brand );
	transition: width .3s ease;
}

/* 1.7.4 part 2: the block cart below the minimum (cart-min-block.php, js/store-cart-min-block.js). The server sets
   cb-min-below on body from the first paint and the script keeps it in step, so Woo's proceed block (and its own
   sticky container inside it) is never drawn while ours stands in. WOO-VOLATILE selector: if it stops matching, both
   controls show (loud, not silent).
   NOT display:none (measured 2026-11-09): Woo's sticky observer watches a sentinel inside this block, and a hidden
   sentinel reads "not intersecting" with no position; after the block comes back the observer gets no new callback,
   so Woo's phone bar stayed off until the shopper scrolled past it. A zero-height, visibility:hidden block keeps the
   sentinel where it is (Woo's bar follows the scroll while hidden) and is still out of the accessibility tree and
   the tab order (visibility:hidden is inherited, the fixed sticky container included). */
body.cb-min-below .wp-block-woocommerce-cart .wc-block-cart__submit {
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	visibility: hidden !important;
}
body.cb-store .cb-min-cta__line {
	margin: 0;
	color: var( --ink );
	font-weight: 600;
	font-size: 15px;
	line-height: 1.4;
}
body.cb-store .cb-min-cta__add {
	display: inline-block;
	min-height: 24px;
	margin: 4px 0 8px;
	color: var( --brand );
	font-size: 15px;
	line-height: 24px;
	text-decoration: underline;
}
/* The phone sticky bar: Woo's own sticky container CSS (cart-rtl.css, WOO-VOLATILE geometry), at Woo's breakpoints.
   Outside them (desktop, or a short landscape screen) --sticky does nothing and the block stays in flow. */
@media ( max-width: 782px ) and ( min-height: 501px ) {
	body.cb-store .cb-min-cta--sticky {
		position: fixed;
		bottom: 0;
		right: 0;
		width: 100%;
		box-sizing: border-box;
		padding: 16px;
		background: var( --surface );
		z-index: 9999;
	}
	body.cb-store .cb-min-cta--sticky::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		height: 100%;
		box-shadow: 0 -10px 20px 10px currentColor;
		color: hsla( 0, 0%, 80%, .3 );
		z-index: -1;
	}
}
/* The inactive control: Woo's button classes for the shape, muted. Text #404040 on #ebebeb is 8.6:1 (>= 4.5:1); the
   line beside it says why, so the state is not carried by colour alone. No hover change, default cursor. */
body.cb-store .cb-min-cta .cb-min-cta__proceed,
body.cb-store .cb-min-cta .cb-min-cta__proceed:hover {
	background: var( --surface-200 ) !important;
	border-color: var( --surface-200 ) !important;
	color: var( --ink ) !important;
	cursor: default;
	transition: none;
	opacity: 1; /* Woo dims [aria-disabled] buttons to .5: that would halve the contrast */
}

/* Run D2, T17: the thank-you page by payment state (thankyou.php). */
body.cb-store .cb-ty-pending,
body.cb-store .cb-ty-refused {
	margin: 4px 0 0;
	font-size: 16px;
}
body.cb-store .cb-ty-title--refused {
	color: var( --ink-heading );
}
body.cb-store .cb-ty-steps__title {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 600;
	color: var( --ink-heading );
}
body.cb-store .cb-ty-steps__list {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.cb-store .cb-ty-step {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
body.cb-store .cb-ty-step__num {
	flex: 0 0 28px;
	height: 28px;
	border-radius: 50%;
	background: var( --brand );
	color: var( --on-brand );
	font-weight: 600;
	line-height: 28px;
	text-align: center;
}
body.cb-store .cb-ty-step__title {
	display: block;
	color: var( --ink-heading );
}
body.cb-store .cb-ty-step__body {
	margin: 4px 0 0;
	font-size: 14px;
	color: var( --ink-muted );
}
body.cb-store .cb-ty-help {
	margin: 0;
	font-size: 15px;
	color: var( --ink-muted );
}
@media ( max-width: 767px ) {
	body.cb-store .cb-ty-steps__list {
		grid-template-columns: minmax( 0, 1fr );
	}
}

/* Run D2: Woo's block cart/checkout scroll a new notice to the top of the viewport (scrollIntoView,
   block start), where the theme's fixed header covered it: a refused place-order showed only the red
   bottom edge (measured). Same clearance as the product page's sticky back rail. */
body.cb-store .wc-block-components-notices,
body.cb-store .wc-block-components-notice-banner {
	scroll-margin-top: calc( 88px + var( --wp-admin--admin-bar--height, 0px ) );
}
