/* ==========================================================================
   Cafe Bloom — Mobile App Shell
   All brand colors come from CSS variables (Customizer → Global Colors).
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body.cafe-bloom-app {
	margin: 0;
	font-family: var(--cb-font);
	font-size: 15px;
	line-height: 1.45;
	color: var(--cb-text);
	background:
		radial-gradient(1200px 600px at 10% -10%, rgba(var(--cb-primary-rgb), 0.10), transparent 55%),
		radial-gradient(900px 500px at 100% 0%, rgba(196, 92, 38, 0.08), transparent 50%),
		var(--cb-bg);
	min-height: 100dvh;
	overflow-x: hidden;
}

/* Admin bar already adds html margin-top — do not pad .cb-app again. */
body.cafe-bloom-app.admin-bar .cb-promo-bar {
	top: 32px;
}

body.cafe-bloom-app.admin-bar .cb-header {
	top: calc(32px + var(--cb-promo-h));
}

body.cafe-bloom-app.admin-bar .cb-tabs {
	top: calc(32px + var(--cb-promo-h) + var(--cb-header-h));
}

@media (max-width: 782px) {
	body.cafe-bloom-app.admin-bar .cb-promo-bar {
		top: 46px;
	}

	body.cafe-bloom-app.admin-bar .cb-header {
		top: calc(46px + var(--cb-promo-h));
	}

	body.cafe-bloom-app.admin-bar .cb-tabs {
		top: calc(46px + var(--cb-promo-h) + var(--cb-header-h));
	}
}

a {
	color: var(--cb-primary);
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

.cb-app {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
	min-height: 100dvh;
	background: var(--cb-surface);
	position: relative;
	box-shadow: 0 0 0 1px var(--cb-border), var(--cb-shadow);
}

/* Desktop-only chrome — shown from desktop.css ≥900px */
.cb-desktop-nav,
.cb-desktop-signin,
.cb-header-actions .cb-desktop-signin {
	display: none;
}

/* Compact store footer — mobile only */
@media (max-width: 899px) {
	.cb-store-footer {
		position: relative;
		display: block;
		margin-top: 28px;
		overflow: hidden;
		color: rgba(255, 255, 255, 0.88);
		background:
			radial-gradient(700px 280px at 10% 0%, rgba(255, 255, 255, 0.08), transparent 55%),
			linear-gradient(165deg, color-mix(in srgb, var(--cb-primary) 88%, #061410) 0%, color-mix(in srgb, var(--cb-primary) 70%, #020807) 100%);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}

	.cb-store-footer__glow {
		display: none;
	}

	.cb-store-footer__inner {
		position: relative;
		z-index: 1;
		padding: 28px 18px 20px;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 18px;
	}

	.cb-store-footer__logo {
		margin: 0 0 8px;
	}

	.cb-store-footer__logo .cb-brand-logo img {
		height: var(--cb-logo-h, 44px);
		width: var(--cb-logo-width, auto);
		max-width: var(--cb-logo-mw, 190px);
		max-height: var(--cb-logo-h, 44px);
	}

	.cb-store-footer__tag {
		display: block;
		font-size: 10px;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.55);
	}

	.cb-store-footer__about,
	.cb-store-footer__col + .cb-store-footer__col {
		display: none;
	}

	.cb-store-footer__social {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 10px;
		margin-top: 14px;
	}

	.cb-store-footer__social-link {
		display: grid;
		place-items: center;
		width: 40px;
		height: 40px;
		border-radius: 12px;
		color: #fff;
		background: rgba(255, 255, 255, 0.08);
		border: 1px solid rgba(255, 255, 255, 0.12);
	}

	.cb-store-footer__social-link svg {
		width: 18px;
		height: 18px;
	}

	.cb-store-footer__heading {
		display: none;
	}

	.cb-store-footer__nav {
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
		gap: 0.35rem 0.55rem;
		width: 100%;
		max-width: 100%;
	}

	.cb-store-footer__nav a {
		color: rgba(255, 255, 255, 0.88);
		font-weight: 600;
		font-size: clamp(10.5px, 2.85vw, 13px);
		line-height: 1.2;
		padding: 6px 0;
		white-space: nowrap;
		flex: 0 0 auto;
	}

	.cb-store-footer__bar {
		border-top: 1px solid rgba(255, 255, 255, 0.1);
		padding: 14px 18px calc(16px + var(--cb-safe-bottom, 0px));
	}

	.cb-store-footer__bar-inner {
		text-align: center;
	}

	.cb-store-footer__copy {
		margin: 0;
		font-size: 12px;
		color: rgba(255, 255, 255, 0.55);
		line-height: 1.45;
	}
}

.cb-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

.cb-profile-chip {
	position: relative;
	overflow: hidden;
	padding: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--cb-border);
	background: var(--cb-surface, #fff);
	color: var(--cb-primary);
	flex: 0 0 auto;
}

.cb-profile-chip--guest {
	display: grid;
	place-items: center;
}

.cb-profile-chip--guest svg {
	width: 20px;
	height: 20px;
}

.cb-profile-chip__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
}

.cb-profile-chip:hover {
	border-color: color-mix(in srgb, var(--cb-primary) 40%, var(--cb-border));
}

/* Promo bar */
.cb-promo-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: var(--cb-promo-h);
	padding: 8px 14px;
	background: var(--cb-action);
	color: #fff;
	font-size: 12.5px;
	font-weight: 500;
	position: sticky;
	top: 0;
	z-index: 40;
	text-decoration: none;
	border: 0;
	width: 100%;
	box-sizing: border-box;
}

.cb-promo-bar--guest,
.cb-promo-bar--member {
	padding: 0;
}

.cb-promo-bar__cta {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 14px;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: start;
	cursor: pointer;
	justify-content: flex-start;
}

.cb-promo-bar__text {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cb-promo-bar__trail {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	padding-inline-end: 12px;
}

.cb-promo-bar a.cb-promo-bar,
a.cb-promo-bar,
.cb-promo-bar a.cb-promo-bar__cta {
	color: #fff;
	text-decoration: none;
}

.cb-promo-bar__icon {
	width: 22px;
	height: 22px;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	border: 0;
	background: transparent;
	color: #fff;
	padding: 0;
	cursor: pointer;
	border-radius: 8px;
}

.cb-promo-bar__icon svg {
	width: 16px;
	height: 16px;
}

/* Language switcher on green promo — light outline */
.cb-promo-bar .cb-lang-switch {
	position: static;
	border-color: rgba(255, 255, 255, 0.35);
	background: rgba(0, 0, 0, 0.12);
}

.cb-promo-bar .cb-lang-switch__link {
	color: rgba(255, 255, 255, 0.82);
	min-width: 34px;
	padding: 5px 9px;
}

.cb-promo-bar .cb-lang-switch__link.is-active,
.cb-promo-bar .cb-lang-switch__link[aria-current="true"] {
	background: #fff;
	color: var(--cb-action, #1d6152);
}

/* Header — mobile app bar */
.cb-header {
	display: grid;
	grid-template-columns: 44px 1fr auto;
	align-items: center;
	gap: 10px;
	height: var(--cb-header-h);
	min-height: var(--cb-header-h);
	padding: 0 14px;
	background: var(--cb-surface);
	border-bottom: 1px solid var(--cb-border);
	position: sticky;
	top: var(--cb-promo-h);
	z-index: 35;
}

.cb-icon-btn {
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	display: grid;
	place-items: center;
	border-radius: 12px;
	cursor: pointer;
	color: var(--cb-text);
	position: relative;
	padding: 0;
}

.cb-icon-btn svg {
	width: 22px;
	height: 22px;
}

.cb-brand {
	display: flex;
	justify-content: var(--cb-logo-justify, center);
	align-items: center;
	width: 100%;
	min-width: 0;
	text-align: var(--cb-logo-align, center);
}

.cb-brand-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	max-width: 100%;
	flex: 0 1 auto;
}

.cb-brand-logo img {
	display: block;
	height: var(--cb-logo-h, 44px);
	width: var(--cb-logo-width, auto);
	max-width: var(--cb-logo-mw, 190px);
	max-height: var(--cb-logo-h, 44px);
	object-fit: contain;
}

/* Mobile: true viewport-centered logo + slightly larger mark */
@media (max-width: 899px) {
	.cb-header {
		min-height: max(72px, var(--cb-header-h, 64px));
		height: max(72px, var(--cb-header-h, 64px));
		grid-template-columns: 44px 1fr auto;
		grid-template-rows: 1fr;
	}

	/* Span full header so the mark is optically centered (not between uneven side icons). */
	.cb-header .cb-brand {
		grid-column: 1 / -1;
		grid-row: 1;
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		width: 100%;
		max-width: none;
		justify-content: center;
		text-align: center;
		z-index: 1;
		/* Let clicks hit side controls; re-enable on the logo link itself. */
		pointer-events: none;
	}

	.cb-header .cb-brand-logo {
		pointer-events: auto;
		position: relative;
		z-index: 2;
		max-width: min(58vw, 240px);
		cursor: pointer;
	}

	.cb-header .cb-brand-logo img {
		height: max(58px, var(--cb-logo-h, 58px));
		max-height: max(58px, var(--cb-logo-h, 58px));
		width: var(--cb-logo-width, auto);
		max-width: min(100%, var(--cb-logo-mw, 220px));
		pointer-events: none;
	}

	.cb-header > .cb-icon-btn,
	.cb-header > .cb-header-actions {
		grid-row: 1;
		position: relative;
		z-index: 3;
	}

	.cb-header > .cb-icon-btn#cb-open-sidebar,
	.cb-header > .cb-icon-btn.cb-mobile-only {
		grid-column: 1;
		justify-self: start;
	}

	.cb-header > .cb-header-actions {
		grid-column: 3;
		justify-self: end;
	}
}

.cb-brand .custom-logo-link img {
	max-height: 46px;
	width: auto;
	margin: 0 auto;
}

.cb-brand__text {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: inherit;
	min-width: 0;
}

.cb-brand__name {
	font-family: var(--cb-font-display);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--cb-text);
}

.cb-brand__tag {
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cb-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 180px;
}

.cb-cart-badge {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--cb-primary);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	display: grid;
	place-items: center;
}

.cb-cart-badge[hidden] {
	display: none !important;
}

.cb-progress-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
}

.cb-progress-dots span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cb-border);
}

.cb-progress-dots span.is-active {
	background: var(--cb-primary);
	transform: scale(1.15);
}

.cb-order-type-chip {
	border: 1px solid var(--cb-border);
	background: var(--cb-surface);
	border-radius: 999px;
	padding: 6px 10px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}

/* Main */
.cb-main {
	padding-bottom: calc(var(--cb-bottom-h) + var(--cb-safe-bottom) + 16px);
	min-height: 50vh;
	min-width: 0;
	max-width: 100%;
}

.cb-home {
	min-width: 0;
	max-width: 100%;
}

.cb-page,
.cb-woo-page {
	width: 100%;
	box-sizing: border-box;
}

.cb-checkout-flow .cb-main {
	padding-bottom: calc(24px + var(--cb-safe-bottom));
}

/* Cart page needs room for the fixed Confirm bar */
.woocommerce-cart.cb-checkout-flow .cb-main {
	padding-bottom: calc(96px + var(--cb-safe-bottom));
}

/* Keep horizontal breathing room on cart / checkout pages */
.cb-checkout-flow .cb-page,
.cb-checkout-flow .cb-woo-page,
body.woocommerce-checkout .cb-page,
body.woocommerce-checkout .cb-woo-page {
	padding-left: 16px;
	padding-right: 16px;
	box-sizing: border-box;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .cb-page,
body.woocommerce-checkout:not(.woocommerce-order-received) .cb-woo-page {
	padding-top: 8px;
	padding-bottom: calc(28px + var(--cb-safe-bottom));
}

/* Tabs */
.cb-tabs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 1px solid var(--cb-border);
	background: var(--cb-surface);
	position: sticky;
	top: calc(var(--cb-promo-h) + var(--cb-header-h));
	z-index: 30;
}

.cb-tabs__item {
	text-align: center;
	padding: 15px 10px;
	color: var(--cb-muted);
	font-weight: 600;
	position: relative;
	min-height: var(--cb-tabs-h);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.cb-tabs__item.is-active {
	color: var(--cb-primary);
}

.cb-tabs__item.is-active::after {
	content: "";
	position: absolute;
	left: 18%;
	right: 18%;
	bottom: 0;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: var(--cb-primary);
}

/* Loyalty bar */
.cb-loyalty-bar {
	padding: 12px 16px 10px;
	background: linear-gradient(180deg, var(--cb-highlight), var(--cb-surface));
	border-radius: 0;
}

.cb-loyalty-bar__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.cb-loyalty-bar__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-muted);
}

.cb-loyalty-bar__points {
	font-size: 15px;
	font-weight: 700;
	color: var(--cb-action);
	font-variant-numeric: tabular-nums;
}

.cb-loyalty-bar__points-sep {
	margin: 0 3px;
	color: var(--cb-muted);
	font-weight: 500;
}

.cb-loyalty-bar__track-wrap {
	position: relative;
	padding: 10px 10px 26px;
}

.cb-loyalty-bar__track {
	position: relative;
	height: 8px;
	border-radius: 999px;
	background: var(--cb-border);
	overflow: hidden;
}

.cb-loyalty-bar__fill {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 0;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--cb-action), color-mix(in srgb, var(--cb-action) 75%, #2a8a74));
	transition: width 0.45s ease;
	min-width: 0;
	animation: cb-loyalty-fill-pulse 2.4s ease-in-out infinite;
}

.cb-loyalty-bar__marks {
	list-style: none;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 10px;
	right: 10px;
	top: 2px;
	height: 0;
	pointer-events: none;
}

.cb-loyalty-bar__mark {
	position: absolute;
	top: 0;
	inset-inline-start: var(--cb-mark-pos, 0%);
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	width: 36px;
	margin: 0;
	color: var(--cb-muted);
}

.cb-loyalty-bar__star {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--cb-surface);
	border: 2px solid var(--cb-border);
	display: grid;
	place-items: center;
	box-shadow: var(--cb-shadow-sm);
	flex-shrink: 0;
}

.cb-loyalty-bar__star svg {
	width: 12px;
	height: 12px;
}

.cb-loyalty-bar__mark.is-reached {
	color: var(--cb-action);
}

.cb-loyalty-bar__mark.is-reached .cb-loyalty-bar__star {
	border-color: var(--cb-action);
	background: var(--cb-action);
	color: #fff;
}

.cb-loyalty-bar__val {
	display: block;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	color: inherit;
	font-variant-numeric: tabular-nums;
}

.cb-loyalty-bar__caption {
	margin: 4px 0 0;
	text-align: center;
	font-size: 12px;
	color: var(--cb-muted);
}

.cb-loyalty-bar__caption b {
	color: var(--cb-text);
	font-weight: 700;
}

@keyframes cb-loyalty-fill-pulse {
	0%,
	100% {
		filter: brightness(1);
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--cb-action) 0%, transparent);
	}
	50% {
		filter: brightness(1.12);
		box-shadow: 0 0 10px 1px color-mix(in srgb, var(--cb-action) 45%, transparent);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cb-loyalty-bar__fill {
		animation: none;
	}
}

/* Toolbar */
.cb-toolbar {
	display: flex;
	gap: 10px;
	padding: 14px 16px 12px;
	align-items: center;
}

.cb-search {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--cb-bg);
	border: 1px solid var(--cb-border);
	border-radius: 999px;
	padding: 12px 16px;
	min-height: 48px;
	box-sizing: border-box;
}

.cb-search__icon {
	width: 18px;
	height: 18px;
	color: var(--cb-muted);
	display: grid;
	place-items: center;
}

.cb-search__icon svg,
.cb-view-btn svg {
	width: 18px;
	height: 18px;
}

.cb-search input {
	border: 0;
	outline: 0;
	background: transparent;
	width: 100%;
}

.cb-view-toggle {
	display: flex;
	gap: 4px;
	background: var(--cb-bg);
	border: 1px solid var(--cb-border);
	border-radius: 14px;
	padding: 4px;
	flex: 0 0 auto;
}

.cb-view-btn {
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	border-radius: 10px;
	display: grid;
	place-items: center;
	color: var(--cb-muted);
	cursor: pointer;
}

.cb-view-btn.is-active {
	background: var(--cb-primary);
	color: #fff;
}

/* Categories — dedicated scroll rail on mobile */
.cb-cats-wrap {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	position: sticky;
	top: calc(var(--cb-promo-h) + var(--cb-header-h) + var(--cb-tabs-h));
	z-index: 28;
	background: var(--cb-surface);
	border-bottom: 1px solid var(--cb-border);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
	overflow: hidden;
	margin: 0;
}

body.cafe-bloom-app.admin-bar .cb-cats-wrap {
	top: calc(32px + var(--cb-promo-h) + var(--cb-header-h) + var(--cb-tabs-h));
}

@media (max-width: 782px) {
	body.cafe-bloom-app.admin-bar .cb-cats-wrap {
		top: calc(46px + var(--cb-promo-h) + var(--cb-header-h) + var(--cb-tabs-h));
	}
}

.cb-cats {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 10px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 10px 16px 14px;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	touch-action: pan-x;
	cursor: grab;
}

.cb-cats.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	user-select: none;
}

.cb-cats::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
	background: transparent;
}

.cb-cat {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	border: 1.5px solid var(--cb-primary);
	background: var(--cb-surface);
	color: var(--cb-primary);
	border-radius: 999px;
	padding: 9px 16px;
	font-weight: 600;
	font-size: 13.5px;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.cb-cats__spacer {
	flex: 0 0 8px;
	width: 8px;
	height: 1px;
}

.cb-cat:active {
	transform: scale(0.97);
}

.cb-cat.is-active {
	background: var(--cb-primary);
	color: #fff;
}

/* Welcome strip — compact toast, clear gap from loyalty */
html.cb-hello-gone .cb-hello {
	display: none !important;
}

.cb-hello {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 6px 16px 14px;
	padding: 7px 6px 7px 12px;
	border-radius: 12px;
	background: var(--cb-surface);
	border: 1px solid var(--cb-border);
	box-shadow: var(--cb-shadow-sm);
	overflow: hidden;
	max-height: 52px;
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.3s ease, transform 0.3s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease, border-width 0.35s ease;
}

.cb-hello.is-leaving {
	opacity: 0;
	transform: translateY(-6px);
	max-height: 0;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
	border-width: 0;
	box-shadow: none;
	pointer-events: none;
}

.cb-hello__accent {
	display: none;
}

.cb-hello__text {
	min-width: 0;
	flex: 1;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 6px;
}

.cb-hello__greet {
	margin: 0;
	flex: 0 1 auto;
	font-size: 12px;
	font-weight: 600;
	color: var(--cb-muted);
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 46%;
}

.cb-hello__title {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--cb-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
	color: var(--cb-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cb-hello__title::before {
	content: "·";
	margin-inline-end: 6px;
	color: var(--cb-border);
	font-weight: 500;
}

.cb-hello__close {
	flex: 0 0 auto;
	align-self: center;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--cb-muted);
	display: grid;
	place-items: center;
	cursor: pointer;
	padding: 0;
}

.cb-hello__close svg {
	width: 16px;
	height: 16px;
}

.cb-hello__close:active {
	background: var(--cb-bg);
	color: var(--cb-text);
}

/* Keep loyalty visually separate from hello */
.cb-home .cb-loyalty-bar {
	margin-top: 0;
	padding-top: 14px;
	border-top: 1px solid var(--cb-border);
	background: var(--cb-surface);
}

.cb-menu-list {
	padding: 4px 16px 28px;
}

.cb-cat-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 22px 0 14px;
}

.cb-cat-block:first-child .cb-cat-head {
	margin-top: 10px;
}

.cb-cat-title {
	font-size: 1.2rem;
	margin: 0;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.cb-cat-count {
	min-width: 26px;
	height: 26px;
	padding: 0 8px;
	border-radius: 999px;
	background: var(--cb-highlight);
	color: var(--cb-primary);
	font-size: 12px;
	font-weight: 700;
	display: grid;
	place-items: center;
}

.cb-products--list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.cb-products--grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

/* Prefer parent data-view so toggle always wins */
#cb-products[data-view="list"] .cb-products {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

#cb-products[data-view="grid"] .cb-products {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.cb-product {
	display: grid;
	grid-template-columns: 112px 1fr;
	gap: 14px;
	align-items: stretch;
	padding: 14px;
	border: 1px solid var(--cb-border);
	border-radius: var(--cb-radius);
	background: var(--cb-surface);
	box-shadow: var(--cb-shadow-sm);
	animation: cbFadeUp 0.35s ease both;
}

.cb-products--grid .cb-product,
#cb-products[data-view="grid"] .cb-product {
	grid-template-columns: 1fr;
	padding: 10px;
}

#cb-products[data-view="list"] .cb-product {
	grid-template-columns: 112px 1fr;
	padding: 14px;
}

.cb-product__media {
	position: relative;
	border-radius: var(--cb-radius-sm);
	overflow: hidden;
	aspect-ratio: 1;
	background: linear-gradient(145deg, var(--cb-bg), var(--cb-highlight));
}

.cb-product__media-link {
	display: block;
	height: 100%;
}

.cb-product__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.cb-product:hover .cb-product__img {
	transform: scale(1.04);
}

.cb-product__qty-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--cb-action);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 7px;
	border-radius: 8px;
	z-index: 1;
}

.cb-product__add {
	position: absolute;
	right: 8px;
	bottom: 8px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 14px;
	background: var(--cb-action);
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(var(--cb-action-rgb), 0.4);
	transition: transform 0.15s ease;
	z-index: 1;
}

.cb-product__add:active {
	transform: scale(0.92);
}

.cb-product__add.is-loading {
	pointer-events: none;
	opacity: 0.85;
}

.cb-product__add svg {
	width: 20px;
	height: 20px;
}

.cb-product__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 2px 0;
	gap: 2px;
}

.cb-product__title {
	display: block;
	font-weight: 700;
	font-size: 1.02rem;
	color: var(--cb-text);
	margin-bottom: 6px;
	line-height: 1.3;
}

.cb-product__desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--cb-muted);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.cb-product__foot {
	margin-top: auto;
	padding-top: 12px;
}

.cb-product__price {
	font-weight: 700;
	color: var(--cb-primary);
	font-size: 1.05rem;
}

.cb-product__price del {
	color: var(--cb-muted);
	font-weight: 500;
	margin-inline-end: 6px;
}

.cb-products--grid .cb-product__price {
	text-align: left;
}

/* Bottom cart */
.cb-bottom-cart {
	position: fixed;
	left: 50%;
	transform: translateX(-50%) translateY(0);
	bottom: calc(12px + var(--cb-safe-bottom));
	width: min(448px, calc(100% - 24px));
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	background: var(--cb-action);
	color: #fff;
	padding: 16px 18px;
	border-radius: var(--cb-radius);
	font-weight: 700;
	box-shadow: 0 12px 30px rgba(var(--cb-action-rgb), 0.35);
	z-index: 45;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.cb-bottom-cart.is-hidden {
	transform: translateX(-50%) translateY(120%);
	opacity: 0;
	pointer-events: none;
}

/* Back to top — mobile-friendly arrow only */
.cb-back-top {
	position: fixed;
	right: 14px;
	bottom: calc(88px + var(--cb-safe-bottom));
	z-index: 46;
	width: 46px;
	height: 46px;
	border: 0;
	border-radius: 999px;
	background: var(--cb-action);
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(var(--cb-action-rgb), 0.35);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(10px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	padding: 0;
}

.cb-back-top svg {
	width: 22px;
	height: 22px;
	display: block;
}

.cb-back-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.cb-back-top:active {
	transform: scale(0.94);
}

body.cb-cart-drawer-open .cb-back-top {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

@media (min-width: 900px) {
	.cb-back-top {
		right: 24px;
		bottom: calc(28px + var(--cb-safe-bottom));
	}
}

button.cb-bottom-cart {
	border: 0;
	cursor: pointer;
	font: inherit;
	text-align: left;
	appearance: none;
	-webkit-appearance: none;
}

.cb-bottom-cta {
	/* Kept for legacy; cart uses the rule in woocommerce.css */
	position: sticky;
	bottom: calc(12px + var(--cb-safe-bottom));
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--cb-action);
	color: #fff !important;
	padding: 16px 18px;
	border-radius: var(--cb-radius);
	font-weight: 700;
	margin: 16px;
	box-shadow: 0 12px 30px rgba(var(--cb-action-rgb), 0.35);
}

/* Sidebar */
.cb-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 50;
}

.cb-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	width: min(320px, 84vw);
	height: 100dvh;
	background: var(--cb-surface);
	z-index: 55;
	transform: translateX(-105%);
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
	display: flex;
	flex-direction: column;
	box-shadow: var(--cb-shadow);
}

.cb-sidebar.is-open {
	transform: translateX(0);
}

.cb-sidebar__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 12px 12px 18px;
	color: var(--cb-primary);
	font-size: 1.25rem;
}

.cb-sidebar__nav {
	flex: 1;
	overflow: auto;
	padding: 8px 0;
}

.cb-sidebar__link {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border: 0;
	background: transparent;
	color: var(--cb-text);
	text-align: left;
	cursor: pointer;
	font-weight: 500;
}

.cb-sidebar__icon {
	width: 22px;
	height: 22px;
	color: var(--cb-muted);
	display: grid;
	place-items: center;
}

.cb-sidebar__icon svg {
	width: 20px;
	height: 20px;
}

.cb-sidebar__foot {
	border-top: 1px solid var(--cb-border);
	padding: 8px 0 calc(16px + var(--cb-safe-bottom));
}

.cb-sidebar__wp {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cb-sidebar__wp a {
	display: block;
	padding: 12px 18px;
	color: var(--cb-text);
}

/* Cart drawer (right sidebar) */
.cb-cart-drawer-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 100060;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.28s ease;
}

.cb-cart-drawer-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.cb-cart-drawer {
	--cb-drawer-h: var(--cb-vvh, 100svh);
	position: fixed;
	top: 0;
	right: 0;
	bottom: auto;
	left: auto;
	width: min(400px, 100%);
	height: var(--cb-drawer-h);
	max-height: var(--cb-drawer-h);
	background: var(--cb-surface);
	z-index: 100065;
	transform: translate3d(105%, 0, 0);
	transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	box-shadow: -12px 0 40px rgba(0, 0, 0, 0.14);
	overflow: hidden;
	box-sizing: border-box;
}

.cb-cart-drawer.is-open {
	transform: translate3d(0, 0, 0);
}

.cb-cart-drawer__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 16px 12px;
	border-bottom: 1px solid var(--cb-border);
	min-height: 0;
}

.cb-cart-drawer__head strong {
	display: block;
	font-family: var(--cb-font-display);
	font-size: 1.35rem;
	color: var(--cb-primary);
	line-height: 1.2;
}

.cb-cart-drawer__count {
	display: block;
	margin-top: 4px;
	font-size: 0.85rem;
	color: var(--cb-muted);
	font-weight: 500;
}

.cb-cart-drawer__body {
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 12px 14px 8px;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
}

.cb-cart-drawer__empty {
	display: grid;
	place-items: center;
	text-align: center;
	gap: 6px;
	min-height: min(220px, 100%);
	height: 100%;
	padding: 24px 16px;
	color: var(--cb-text);
	box-sizing: border-box;
}

.cb-cart-drawer__empty-icon {
	width: 52px;
	height: 52px;
	border-radius: 16px;
	background: color-mix(in srgb, var(--cb-primary) 10%, #fff);
	color: var(--cb-primary);
	display: grid;
	place-items: center;
	margin-bottom: 8px;
}

.cb-cart-drawer__empty-icon svg {
	width: 26px;
	height: 26px;
}

.cb-cart-drawer__empty .cb-muted {
	color: var(--cb-muted);
	font-size: 0.9rem;
	margin: 0;
}

.cb-cart-drawer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cb-cart-drawer__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 12px;
	align-items: start;
	padding: 12px;
	border: 1px solid var(--cb-border);
	border-radius: 16px;
	background: #fff;
}

.cb-cart-drawer__media {
	width: 72px;
	height: 72px;
	border-radius: 12px;
	overflow: hidden;
	background: color-mix(in srgb, var(--cb-primary) 8%, #fff);
}

.cb-cart-drawer__media img,
.cb-cart-drawer__thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cb-cart-drawer__info {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cb-cart-drawer__name {
	font-weight: 700;
	color: var(--cb-text);
	text-decoration: none;
	line-height: 1.25;
	font-size: 0.98rem;
}

.cb-cart-drawer__price {
	font-size: 0.9rem;
	color: var(--cb-primary);
	font-weight: 600;
}

.cb-cart-drawer__qty {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--cb-border);
	border-radius: 999px;
	overflow: hidden;
	width: fit-content;
	background: #fff;
}

.cb-qty-btn {
	width: 34px;
	height: 32px;
	border: 0;
	background: transparent;
	color: var(--cb-action);
	font-size: 1.15rem;
	font-weight: 700;
	cursor: pointer;
	line-height: 1;
}

.cb-qty-btn:hover {
	background: color-mix(in srgb, var(--cb-action) 10%, #fff);
}

.cb-cart-drawer__qty-val {
	min-width: 28px;
	text-align: center;
	font-weight: 700;
	font-size: 0.92rem;
}

.cb-cart-drawer__remove {
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--cb-muted);
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
}

.cb-cart-drawer__remove:hover {
	background: rgba(0, 0, 0, 0.05);
	color: var(--cb-text);
}

.cb-cart-drawer__remove svg {
	width: 16px;
	height: 16px;
}

.cb-cart-drawer__foot {
	border-top: 1px solid var(--cb-border);
	padding: 12px 16px calc(12px + var(--cb-safe-bottom));
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--cb-surface);
	min-height: 0;
}

.cb-cart-drawer__subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: 600;
	margin-bottom: 2px;
}

.cb-cart-drawer__subtotal strong {
	color: var(--cb-primary);
	font-size: 1.1rem;
}

.cb-cart-drawer__foot .cb-btn--block {
	width: 100%;
	justify-content: center;
	text-align: center;
	min-height: 46px;
}

body.cb-cart-drawer-open {
	overflow: hidden;
	touch-action: none;
}

body.cb-cart-drawer-open .cb-cart-drawer {
	touch-action: pan-y;
}

/* Modal overlay */
.cb-modal-root {
	position: fixed !important;
	inset: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	z-index: 100050;
	display: none;
	box-sizing: border-box;
	overscroll-behavior: contain;
	pointer-events: none;
	background: transparent;
}

.cb-modal-root.is-open {
	display: block;
	pointer-events: auto;
}

.cb-modal-root[hidden] {
	display: none !important;
}

.cb-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 14, 0.5);
	backdrop-filter: blur(2px);
}

/* Position: top/bottom + margin auto (bottom offset centers on mobile browsers) */
.cb-modal {
	position: fixed !important;
	z-index: 100051;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 200px !important;
	width: min(400px, calc(100vw - 32px)) !important;
	height: fit-content !important;
	max-height: min(70dvh, calc(100svh - 220px));
	margin: auto !important;
	transform: none !important;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
	background: var(--cb-surface);
	border-radius: var(--cb-radius-lg);
	padding: 18px 16px 16px;
	box-shadow: var(--cb-shadow);
	animation: none !important;
}

#cb-branch-error {
	color: var(--cb-danger);
	margin: 0 0 10px;
}

.cb-modal h2 {
	margin: 4px 0 14px;
	padding-top: 22px;
	font-size: 1.15rem;
	line-height: 1.3;
}

.cb-branch-modal .cb-field {
	margin-bottom: 12px;
}

.cb-branch-modal .cb-modal__actions {
	margin-top: 4px;
	padding-top: 8px;
	background: var(--cb-surface);
}

.cb-lang-switch {
	position: absolute;
	top: 14px;
	inset-inline-end: 14px;
	inset-inline-start: auto;
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--cb-border);
	border-radius: 999px;
	overflow: hidden;
	font-size: 12px;
	font-weight: 700;
	z-index: 2;
	background: var(--cb-surface, #fff);
}

.cb-lang-switch__link,
.cb-lang-switch span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	padding: 6px 10px;
	color: var(--cb-muted);
	text-decoration: none;
	line-height: 1;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.cb-lang-switch__link:hover {
	color: var(--cb-text);
}

.cb-lang-switch__link.is-active,
.cb-lang-switch__link[aria-current="true"],
.cb-lang-switch .is-active {
	background: var(--cb-primary);
	color: #fff;
}

.cb-lang-switch__sep {
	display: none;
}

.cb-header-actions .cb-lang-switch {
	display: none;
	position: static;
	margin: 0;
	flex: 0 0 auto;
	align-self: center;
	box-shadow: none;
}

.cb-header-actions .cb-lang-switch__link {
	min-width: 32px;
	padding: 6px 8px;
	font-size: 11px;
}

@media (min-width: 900px) {
	.cb-header-actions .cb-lang-switch {
		display: inline-flex;
	}
}

.cb-sidebar__lang .cb-lang-switch {
	position: static;
}

.cb-branch-modal {
	position: relative;
}

.cb-branch-modal .cb-lang-switch-wrap {
	min-height: 28px;
	margin: 0 0 4px;
}

.cb-branch-modal .cb-lang-switch {
	position: absolute;
	top: 14px;
	inset-inline-end: 14px;
}

.cb-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 14px;
	font-weight: 600;
	font-size: 13px;
}

.cb-input-icon,
.cb-select-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--cb-border);
	border-radius: 12px;
	padding: 0 12px;
	background: var(--cb-surface);
	min-height: 48px;
}

.cb-input-icon svg {
	width: 18px;
	height: 18px;
	color: var(--cb-primary);
	flex-shrink: 0;
}

.cb-input-icon select,
.cb-select-wrap select {
	border: 0;
	outline: 0;
	width: 100%;
	background: transparent;
	min-height: 46px;
}

.cb-modal__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 8px;
}

.cb-redeem-modal .cb-modal {
	position: relative;
}

.cb-redeem-modal__text {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--cb-muted);
}

.cb-redeem-modal__actions {
	grid-template-columns: 1fr 1.25fr;
}

@media (max-width: 420px) {
	.cb-redeem-modal__actions {
		grid-template-columns: 1fr;
	}
}

/* Buttons */
.cb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 16px;
	border-radius: 12px;
	border: 1.5px solid transparent;
	font-weight: 700;
	cursor: pointer;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.cb-btn:active {
	transform: scale(0.98);
}

.cb-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.cb-btn--primary {
	background: var(--cb-action);
	color: #fff;
	box-shadow: 0 8px 20px rgba(var(--cb-action-rgb), 0.28);
}

.cb-btn--ghost {
	background: var(--cb-surface);
	border-color: var(--cb-action);
	color: var(--cb-action);
}

.cb-btn--block {
	width: 100%;
}

/* Rewards / orders */
.cb-rewards,
.cb-orders,
.cb-page {
	padding: 16px;
}

.cb-rewards-card,
.cb-order-item {
	background: var(--cb-surface);
	border: 1px solid var(--cb-border);
	border-radius: var(--cb-radius);
	padding: 18px;
	box-shadow: var(--cb-shadow-sm);
}

.cb-eyebrow {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cb-accent);
}

.cb-lead {
	color: var(--cb-muted);
}

/* Legal / Privacy Policy */
.cb-page .cb-legal {
	max-width: 720px;
	color: var(--cb-text);
	font-size: 15px;
	line-height: 1.65;
}

.cb-page .cb-legal__lead {
	margin: 0 0 10px;
	font-size: 1.02rem;
}

.cb-page .cb-legal__meta {
	margin: 0 0 22px;
	font-size: 13px;
	color: var(--cb-muted);
}

.cb-page .cb-legal h2 {
	margin: 28px 0 10px;
	font-size: 1.15rem;
	line-height: 1.3;
	color: var(--cb-primary);
}

.cb-page .cb-legal p {
	margin: 0 0 12px;
}

.cb-page .cb-legal ul {
	margin: 0 0 14px;
	padding-left: 1.2em;
}

.cb-page .cb-legal li {
	margin: 0 0 8px;
}

.cb-page .cb-legal__contact {
	list-style: none;
	padding: 14px 16px;
	margin: 0 0 18px;
	border: 1px solid var(--cb-border);
	border-radius: var(--cb-radius);
	background: var(--cb-surface);
	box-shadow: var(--cb-shadow-sm);
}

.cb-page .cb-legal__contact li {
	margin: 0 0 8px;
}

.cb-page .cb-legal__contact li:last-child {
	margin-bottom: 0;
}

.cb-page .cb-legal a {
	color: var(--cb-action, #1d6152);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cb-points-hero {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 18px 0;
}

.cb-points-num {
	font-family: var(--cb-font-display);
	font-size: 3rem;
	font-weight: 700;
	color: var(--cb-primary);
	line-height: 1;
}

.cb-points-label {
	color: var(--cb-muted);
	font-weight: 600;
}

.cb-rewards-how {
	margin-top: 28px;
}

.cb-rewards-how__head {
	margin-bottom: 14px;
}

.cb-rewards-how__head h2 {
	margin: 0 0 6px;
	font-family: var(--cb-font-display);
	font-size: 1.45rem;
	font-weight: 700;
	color: var(--cb-text);
	line-height: 1.2;
}

.cb-rewards-how__head p {
	margin: 0;
	color: var(--cb-muted);
	font-size: 0.95rem;
}

.cb-rewards-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.cb-rewards-step {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas:
		"icon title"
		"icon text";
	column-gap: 14px;
	row-gap: 4px;
	align-items: start;
	padding: 16px 16px 16px 18px;
	background: var(--cb-surface);
	border: 1px solid var(--cb-border);
	border-radius: var(--cb-radius);
	box-shadow: var(--cb-shadow-sm);
	overflow: hidden;
}

.cb-rewards-step__num {
	position: absolute;
	top: 10px;
	right: 12px;
	font-family: var(--cb-font-display);
	font-size: 0.85rem;
	font-weight: 700;
	color: color-mix(in srgb, var(--cb-primary) 55%, var(--cb-muted));
	letter-spacing: 0.04em;
}

.cb-rewards-step__icon {
	grid-area: icon;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: color-mix(in srgb, var(--cb-primary) 12%, #fff);
	color: var(--cb-primary);
	flex-shrink: 0;
}

.cb-rewards-step__icon svg {
	width: 22px;
	height: 22px;
}

.cb-rewards-step__title {
	grid-area: title;
	padding-right: 28px;
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--cb-text);
	line-height: 1.25;
	align-self: end;
}

.cb-rewards-step__text {
	grid-area: text;
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--cb-muted);
}

.cb-order-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cb-order-item__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 8px;
}

.cb-status {
	font-size: 12px;
	font-weight: 700;
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--cb-highlight);
	color: var(--cb-primary);
}

.cb-status--completed,
.cb-status--processing {
	background: color-mix(in srgb, var(--cb-primary) 14%, #fff);
	color: var(--cb-primary);
}

.cb-status--pending,
.cb-status--on-hold {
	background: #fff4df;
	color: #9a6b00;
}

.cb-status--cancelled,
.cb-status--failed,
.cb-status--refunded {
	background: #fde8e8;
	color: var(--cb-danger, #c0392b);
}

/* Profile page */
.cb-profile {
	padding: 12px 16px 32px;
	max-width: 720px;
	margin: 0 auto;
}

.cb-profile__hero {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 8px 0 20px;
}

.cb-profile__avatar-wrap {
	position: relative;
	flex: 0 0 auto;
}

.cb-profile__avatar {
	width: 112px;
	height: 112px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	background: var(--cb-bg);
	border: 3px solid color-mix(in srgb, var(--cb-primary) 20%, #fff);
	box-shadow: var(--cb-shadow-sm);
}

.cb-profile__avatar-btn {
	position: absolute;
	right: 0;
	bottom: 0;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--cb-action);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(var(--cb-action-rgb), 0.28);
}

.cb-profile__avatar-btn svg {
	width: 12px;
	height: 12px;
}

.cb-profile__avatar-wrap.is-uploading {
	opacity: 0.65;
	pointer-events: none;
}

.cb-profile__identity h1 {
	margin: 0 0 4px;
	font-family: var(--cb-font-display);
	font-size: 1.75rem;
	color: var(--cb-text);
	line-height: 1.15;
}

.cb-profile__identity .cb-muted {
	margin: 0;
	word-break: break-word;
}

.cb-profile__stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 14px;
}

.cb-profile__stat {
	padding: 16px;
	border-radius: 16px;
	background: var(--cb-surface, #fff);
	border: 1px solid var(--cb-border);
	box-shadow: var(--cb-shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cb-profile__stat-label {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--cb-muted);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.cb-profile__stat-value {
	font-size: 1.85rem;
	font-family: var(--cb-font-display);
	color: var(--cb-primary);
	line-height: 1.1;
}

.cb-profile__stat-link {
	margin-top: 4px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--cb-primary);
	text-decoration: none;
}

.cb-profile__card {
	margin-bottom: 14px;
	padding: 16px;
	border-radius: 16px;
	background: var(--cb-surface, #fff);
	border: 1px solid var(--cb-border);
	box-shadow: var(--cb-shadow-sm);
}

.cb-profile__card h2 {
	margin: 0 0 12px;
	font-family: var(--cb-font-display);
	font-size: 1.2rem;
	color: var(--cb-text);
}

.cb-profile__card-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.cb-profile__card-head h2 {
	margin: 0;
}

.cb-profile__card-head a {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--cb-primary);
	text-decoration: none;
}

.cb-profile__form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cb-profile__form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--cb-muted);
}

.cb-profile__form input {
	min-height: 48px;
	border: 1px solid var(--cb-border);
	border-radius: 12px;
	padding: 0 14px;
	background: var(--cb-bg);
	color: var(--cb-text);
	font: inherit;
	font-weight: 500;
}

.cb-profile__form-msg {
	margin: 0;
	font-size: 0.88rem;
	font-weight: 600;
}

.cb-profile__form-msg.is-ok {
	color: var(--cb-primary);
}

.cb-profile__form-msg.is-err {
	color: var(--cb-danger, #c0392b);
}

.cb-empty--compact {
	padding: 20px 8px;
}

.cb-profile__actions {
	margin-top: 8px;
}

.cb-order-list--profile {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cb-order-list--profile .cb-order-item {
	padding: 14px 16px;
	margin: 0;
	border: 1px solid var(--cb-border);
	border-radius: 14px;
	border-bottom: 1px solid var(--cb-border);
	background: var(--cb-bg);
	box-shadow: none;
}

.cb-order-list--profile .cb-order-item:last-child {
	border-bottom: 1px solid var(--cb-border);
	padding-bottom: 14px;
}

.cb-order-list--profile .cb-order-item > div:first-child {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cb-empty {
	text-align: center;
	padding: 40px 16px;
	color: var(--cb-muted);
}

.cb-hint,
.cb-muted {
	color: var(--cb-muted);
	font-size: 13px;
}

.cb-from-branch {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	font-size: 13px;
}

.cb-from-branch span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-weight: 700;
	color: var(--cb-primary);
}

.cb-from-branch svg {
	width: 14px;
	height: 14px;
}

/* Auth modal */
.cb-promo-bar {
	width: 100%;
	border: 0;
	cursor: pointer;
	font: inherit;
	text-align: inherit;
}

.cb-auth-modal {
	padding-top: 18px;
}

/*
 * Auth modal scroll fix (mobile):
 * The white card is the scroll container (not the overlay).
 * Avoid flex "center" clipping — that blocks scrolling to bottom fields.
 */
#cb-auth-modal.is-open {
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: max(12px, env(safe-area-inset-top, 0px)) 16px max(16px, env(safe-area-inset-bottom, 0px));
	overflow: hidden;
	pointer-events: auto;
	touch-action: none;
}

#cb-auth-modal .cb-modal-backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
}

#cb-auth-modal .cb-modal.cb-auth-modal {
	position: relative !important;
	z-index: 1;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	width: min(400px, calc(100vw - 32px)) !important;
	height: auto !important;
	max-height: calc(100dvh - 24px) !important;
	max-height: calc(100svh - 24px) !important;
	margin: 0 !important;
	transform: none !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	pointer-events: auto;
	flex-shrink: 1;
}

.cb-auth-close {
	position: absolute;
	top: 8px;
	inset-inline-end: 8px;
}

.cb-auth-brand {
	text-align: center;
	margin: 8px 0 18px;
}

.cb-auth-brand .cb-brand-logo,
.cb-auth-brand__logo {
	margin: 0 auto 8px;
}

.cb-auth-brand .cb-brand-logo img {
	height: var(--cb-logo-h, 44px);
	width: var(--cb-logo-width, auto);
	max-width: var(--cb-logo-mw, 190px);
	max-height: var(--cb-logo-h, 44px);
}

.cb-auth-brand .cb-brand__name {
	display: block;
	margin-bottom: 6px;
}

.cb-auth-brand p {
	margin: 0;
	color: var(--cb-muted);
	font-size: 13px;
}

.cb-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 4px;
	background: var(--cb-bg);
	border-radius: 12px;
	margin-bottom: 16px;
}

.cb-auth-tab {
	border: 0;
	background: transparent;
	min-height: 40px;
	border-radius: 10px;
	font-weight: 700;
	color: var(--cb-muted);
	cursor: pointer;
}

.cb-auth-tab.is-active {
	background: var(--cb-surface);
	color: var(--cb-primary);
	box-shadow: var(--cb-shadow-sm);
}

.cb-auth-form .cb-field input {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--cb-border);
	border-radius: 12px;
	padding: 0 12px;
	background: var(--cb-surface);
}

.cb-auth-form .cb-field span em {
	font-style: normal;
	color: var(--cb-muted);
	font-weight: 500;
}

.cb-check {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--cb-muted);
	font-weight: 500;
}

.cb-link-btn {
	display: block;
	width: 100%;
	margin-top: 12px;
	border: 0;
	background: transparent;
	color: var(--cb-primary);
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
	text-align: center;
	padding: 8px;
}

.cb-auth-msg {
	margin: 0 0 12px;
	padding: 10px 12px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
}

.cb-auth-msg.is-error {
	background: #fff1f1;
	color: var(--cb-danger);
}

.cb-auth-msg.is-ok {
	background: var(--cb-highlight);
	color: var(--cb-primary);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cb-hello__title {
	unicode-bidi: isolate;
}

@keyframes cbFadeUp {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes cbPop {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes cbPopIn {
	from {
		opacity: 0;
		transform: translate(-50%, calc(-50% + 10px)) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}

@keyframes cbModalFade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* —— Guest reviews slider (above footer) —— */
.cb-reviews {
	padding: 36px 18px 32px;
	border-top: 1px solid var(--cb-border);
	background:
		radial-gradient(600px 220px at 90% 0%, rgba(var(--cb-primary-rgb), 0.07), transparent 60%),
		var(--cb-bg);
	overflow: hidden;
}

.cb-reviews__inner {
	max-width: 1080px;
	margin: 0 auto;
}

.cb-reviews__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}

.cb-reviews__eyebrow {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cb-muted);
}

.cb-reviews__title {
	margin: 0;
	font-family: var(--cb-font-display);
	font-size: clamp(1.45rem, 4vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--cb-text);
	line-height: 1.2;
}

.cb-reviews__score {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 12px 0 0;
	font-size: 14px;
	color: var(--cb-muted);
}

.cb-reviews__score strong {
	color: var(--cb-text);
	font-size: 1.15em;
}

.cb-reviews__score-stars,
.cb-reviews__stars {
	display: inline-flex;
	gap: 2px;
	color: rgba(var(--cb-primary-rgb), 0.25);
}

.cb-reviews__score-stars .is-on,
.cb-reviews__stars .is-on {
	color: #e6a23c;
}

.cb-reviews__score-stars svg,
.cb-reviews__stars svg {
	width: 14px;
	height: 14px;
	display: block;
}

.cb-reviews__nav {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}

.cb-reviews__btn {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	border: 1px solid var(--cb-border);
	background: var(--cb-surface, #fff);
	color: var(--cb-text);
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.cb-reviews__btn svg {
	width: 18px;
	height: 18px;
}

.cb-reviews__btn--next svg {
	transform: scaleX(-1);
}

.cb-reviews__btn:hover {
	border-color: color-mix(in srgb, var(--cb-primary) 40%, var(--cb-border));
	color: var(--cb-primary);
}

.cb-reviews__btn:active {
	transform: scale(0.96);
}

.cb-reviews__viewport {
	overflow: hidden;
	margin: 0 -4px;
	padding: 4px;
}

.cb-reviews__track {
	display: flex;
	gap: 14px;
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.cb-reviews__slide {
	margin: 0;
	flex: 0 0 100%;
	max-width: 100%;
	padding: 18px 18px 20px;
	border-radius: 16px;
	border: 1px solid var(--cb-border);
	background: var(--cb-surface, #fff);
	box-sizing: border-box;
	opacity: 0.55;
	transform: scale(0.98);
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.cb-reviews__slide.is-active {
	opacity: 1;
	transform: none;
}

.cb-reviews__slide-top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.cb-reviews__avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(145deg, color-mix(in srgb, var(--cb-primary) 85%, #0d1412), var(--cb-primary));
	flex-shrink: 0;
}

.cb-reviews__meta {
	min-width: 0;
}

.cb-reviews__name {
	margin-top: 4px;
	font-size: 14px;
	font-weight: 700;
	color: var(--cb-text);
}

.cb-reviews__quote {
	margin: 0;
}

.cb-reviews__quote p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--cb-text);
}

.cb-reviews__dots {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 18px;
}

.cb-reviews__dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--cb-primary) 22%, transparent);
	cursor: pointer;
	transition: width 0.25s ease, background 0.25s ease;
}

.cb-reviews__dot.is-active {
	width: 22px;
	background: var(--cb-primary);
}

.cb-reviews__pager {
	margin: 16px 0 0;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--cb-muted);
}

.cb-reviews__pager-sep {
	margin: 0 4px;
	opacity: 0.6;
}

