.cw-app {
	--cw-bg: #ffffff;
	--cw-surface: #ffffff;
	--cw-surface-alt: #f7f8fa;
	--cw-text: #171717;
	--cw-text-muted: #68707d;
	--cw-border: #e5e7eb;
	--cw-link: var(--cw-primary);
	--cw-primary: #2563eb;
	--cw-primary-hover: #1d4ed8;
	--cw-primary-text: #ffffff;
	--cw-success: #15803d;
	--cw-warning: #b45309;
	--cw-danger: #b91c1c;
	--cw-font-family: inherit;
	--cw-font-size: 2.4rem;
	--cw-radius-sm: 0.7rem;
	--cw-radius: 1.1rem;
	--cw-radius-lg: 1.7rem;
	--cw-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
	--cw-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
	--cw-shadow-lg: 0 16px 40px rgba(15, 23, 42, 0.16);
	--cw-container-gap: 3.2rem;
	--cw-card-bg: var(--cw-surface);
	--cw-card-border: var(--cw-border);
	--cw-card-radius: var(--cw-radius-lg);
	--cw-modal-bg: var(--cw-surface);
	--cw-modal-border: var(--cw-border);
	--cw-modal-radius: var(--cw-radius-lg);
	--cw-modal-max-width: 64rem;
	--cw-input-bg: var(--cw-surface);
	--cw-input-border: var(--cw-border);
	--cw-input-text: var(--cw-text);
	--cw-button-radius: var(--cw-radius);
	--cw-overlay: rgba(15, 23, 42, 0.45);
	--cw-max-width: none;
	--cw-page-inset: 20px;
	--cw-category-image-height: 21rem;
	--cw-product-image-size: 11rem;
	--cwo-page-bg: var(--cw-bg);
	--cwo-text: var(--cw-text);
	--cwo-muted: var(--cw-text-muted);
	--cwo-border: var(--cw-border);
	--cwo-btn-bg: var(--cw-primary);
	--cwo-btn-text: var(--cw-primary-text);
	--cwo-popup-bg: var(--cw-modal-bg);
	--cwo-popup-text: var(--cw-text);
	--cwo-popup-border: var(--cw-modal-border);
	--cwo-popup-overlay: var(--cw-overlay);
	box-sizing: border-box;
	width: 100%;
	max-width: var(--cw-max-width);
	margin: 0 auto;
	padding: var(--cw-page-inset) var(--cw-page-inset) 2rem;
	background: var(--cw-bg);
	color: var(--cw-text);
	font-family: var(--cw-font-family);
	font-size: var(--cw-font-size);
	line-height: 1.45;
	font-stretch: normal;
	letter-spacing: normal;
	text-transform: none;
	font-kerning: auto;
	font-variant-ligatures: normal;
	word-spacing: normal;
	isolation: isolate;
}

.cw-app[data-cw-theme="dark"],
.cw-app[data-cw-theme-mode="dark"] {
	--cw-bg: #0d151d;
	--cw-surface: #121d27;
	--cw-surface-alt: #18232d;
	--cw-text: #f5f7fa;
	--cw-text-muted: #a9b1ba;
	--cw-border: #293642;
	--cw-primary: #2563eb;
	--cw-primary-hover: #3b82f6;
	--cw-primary-text: #ffffff;
	--cw-success: #4ade80;
	--cw-warning: #fbbf24;
	--cw-danger: #f87171;
	--cw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
	--cw-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
	--cw-shadow-lg: 0 18px 40px rgba(0, 0, 0, 0.45);
	--cw-overlay: rgba(2, 6, 12, 0.65);
}

@media (prefers-color-scheme: dark) {
	.cw-app[data-cw-theme-mode="auto"]:not([data-cw-theme="light"]) {
		--cw-bg: #0d151d;
		--cw-surface: #121d27;
		--cw-surface-alt: #18232d;
		--cw-text: #f5f7fa;
		--cw-text-muted: #a9b1ba;
		--cw-border: #293642;
		--cw-primary: #2563eb;
		--cw-primary-hover: #3b82f6;
		--cw-primary-text: #ffffff;
		--cw-success: #4ade80;
		--cw-warning: #fbbf24;
		--cw-danger: #f87171;
		--cw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
		--cw-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
		--cw-shadow-lg: 0 18px 40px rgba(0, 0, 0, 0.45);
		--cw-overlay: rgba(2, 6, 12, 0.65);
	}
}

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

.cw-app button,
.cw-app input,
.cw-app select,
.cw-app textarea,
.cw-app h1,
.cw-app h2,
.cw-app h3,
.cw-app h4,
.cw-app h5,
.cw-app h6,
.cw-app p,
.cw-app span,
.cw-app label,
.cw-app li,
.cw-app a {
	font-family: inherit;
	font-stretch: normal;
	letter-spacing: normal;
	text-transform: none;
	word-spacing: normal;
}

.cw-app a {
	color: var(--cw-link);
}

.cw-app [hidden] {
	display: none;
}

.cw-app .cw-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cw-app .cw-shell {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.cw-app .cw-page-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--cw-container-gap);
	align-items: end;
}

.cw-app .cw-page-head__intro {
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35em;
}

.cw-app .cw-page-head__intro .cw-back {
	margin: 0 0 0.35em;
}

.cw-app .cw-page-head__intro .cw-breadcrumb,
.cw-app .cw-page-head__intro .cw-heading,
.cw-app .cw-page-head__intro .cw-lede {
	margin: 0;
}

.cw-app .cw-page-head__aside {
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	gap: 1rem;
}

.cw-app .cw-page-head__aside .cw-search {
	width: 100%;
	max-width: 36rem;
	margin: 0;
}

.cw-app .cw-search {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
}

.cw-app .cw-search-input,
.cw-app input[type="search"].cw-search-input,
.cw-app input[type="text"],
.cw-app input[type="email"],
.cw-app input[type="password"],
.cw-app input[type="tel"],
.cw-app input[type="number"],
.cw-app input[type="datetime-local"],
.cw-app textarea,
.cw-app select {
	width: 100%;
	text-align: left;
	font: inherit;
	color: var(--cw-input-text);
	background: var(--cw-input-bg);
	border: 1px solid var(--cw-input-border);
	border-radius: var(--cw-button-radius);
	padding: 1.9rem 2.2rem;
}

.cw-app .cw-search-input::placeholder,
.cw-app input[type="search"].cw-search-input::placeholder,
.cw-app input[type="text"]::placeholder,
.cw-app input[type="email"]::placeholder,
.cw-app input[type="password"]::placeholder,
.cw-app input[type="tel"]::placeholder,
.cw-app input[type="number"]::placeholder,
.cw-app textarea::placeholder {
	color: var(--cw-text-muted);
	opacity: 1;
}

.cw-app[data-cw-theme="dark"] .cw-search-input::placeholder,
.cw-app[data-cw-theme-mode="dark"] .cw-search-input::placeholder,
.cw-app[data-cw-theme="dark"] input[type="search"].cw-search-input::placeholder,
.cw-app[data-cw-theme-mode="dark"] input[type="search"].cw-search-input::placeholder {
	color: #a9b1ba;
	opacity: 1;
}

.cw-app .cw-search-input:focus,
.cw-app button:focus-visible,
.cw-app input:focus-visible,
.cw-app textarea:focus-visible {
	outline: 4px solid var(--cw-primary);
	outline-offset: 4px;
}

.cw-app .cw-cart-chip,
.cw-app .cw-btn,
.cw-app .cwo-btn,
.cw-app .cwo-item__add {
	appearance: none;
	font: inherit;
	cursor: pointer;
	border-radius: var(--cw-button-radius);
	border: 1px solid transparent;
	padding: 1.7rem 2.2rem;
	min-height: 6.4rem;
	background: var(--cw-primary);
	color: var(--cw-primary-text);
	transition: background-color 160ms ease, border-color 160ms ease, opacity 160ms ease;
}

.cw-app .cw-btn--ghost,
.cw-app .cw-cart-chip {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}

.cw-app .cw-btn:hover,
.cw-app .cwo-btn:hover,
.cw-app .cwo-item__add:hover {
	background: var(--cw-primary-hover);
}

.cw-app .cw-btn--ghost:hover,
.cw-app .cw-cart-chip:hover {
	background: var(--cw-surface-alt);
}

.cw-app .cw-btn[disabled],
.cw-app .cwo-btn[disabled],
.cw-app .cw-btn.is-disabled,
.cw-app .cwo-btn.is-disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.cw-app .cw-btn.is-on {
	font-weight: 700;
	border-color: var(--cw-primary);
}

.cw-app .cw-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(33rem, 41rem);
	gap: var(--cw-container-gap);
	align-items: start;
}

.cw-app.cw-app--checkout .cw-cart,
.cw-app.cw-app--checkout .cw-mobile-cart-bar,
.cw-app.cw-app--checkout .cw-cart-chip,
.cw-app.cw-app--checkout .cw-page-head,
.cw-app.cw-app--checkout .cw-search {
	display: none;
}

.cw-app.cw-app--checkout .cw-body {
	grid-template-columns: minmax(0, 1fr);
}

.cw-app.cw-app--path .cw-cart,
.cw-app.cw-app--path .cw-cart-chip,
.cw-app.cw-app--path .cw-mobile-cart-bar,
.cw-app.cw-app--path .cw-search {
	display: none;
}

.cw-app.cw-app--path .cw-page-head,
.cw-app.cw-app--path .cw-body {
	grid-template-columns: minmax(0, 1fr);
}

.cw-app .cw-content {
	min-width: 0;
}

.cw-app .cw-heading {
	margin: 0 0 0.7rem;
	font-family: var(--cw-font-family);
	font-size: 1.7em;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	font-stretch: normal;
	word-spacing: normal;
	color: var(--cw-text);
}

.cw-app[data-cw-theme="dark"] .cw-heading,
.cw-app[data-cw-theme-mode="dark"] .cw-heading {
	color: #ffffff;
}

.cw-app .cw-lede,
.cw-app .cw-muted,
.cw-app .cwo-muted {
	margin: 0 0 2rem;
	color: var(--cw-text-muted);
	font-size: 1em;
}

.cw-app .cw-category-title,
.cw-app .cw-category-count,
.cw-app .cw-product-title,
.cw-app .cw-product-desc,
.cw-app .cw-product-price,
.cw-app .cw-breadcrumb,
.cw-app .cw-cart-head h2,
.cw-app .cw-cart-head span,
.cw-app .cw-totals-row,
.cw-app .cw-message,
.cw-app .cw-error,
.cw-app .cw-search-input,
.cw-app .cw-btn,
.cw-app .cw-cart-chip,
.cw-app .cw-mobile-cart-btn {
	font-family: var(--cw-font-family);
	font-stretch: normal;
	letter-spacing: normal;
	text-transform: none;
	word-spacing: normal;
}

.cw-app .cw-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.7rem 0.9rem;
	margin: 0 0 1.7rem;
	font-size: 0.95em;
	color: var(--cw-text-muted);
}

.cw-app .cw-breadcrumb button {
	appearance: none;
	background: none;
	border: 0;
	padding: 0.3rem 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cw-app .cw-back {
	margin: 0 0 1.5rem;
	min-height: 5.5rem;
}

.cw-app .cw-category-grid,
.cw-app .cwo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
	gap: 2rem;
}

.cw-app .cw-category-card,
.cw-app .cwo-category,
.cw-app .cwo-tile {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 0;
	text-align: left;
	border: 1px solid var(--cw-card-border);
	border-radius: var(--cw-card-radius);
	background: var(--cw-card-bg);
	color: var(--cw-text);
	font: inherit;
	cursor: pointer;
	overflow: hidden;
	box-shadow: var(--cw-shadow-sm);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.cw-app .cw-category-card:hover,
.cw-app .cwo-category:hover,
.cw-app .cwo-tile:hover {
	transform: translateY(-4px);
	box-shadow: var(--cw-shadow);
}

.cw-app .cw-category-image,
.cw-app .cwo-category__image,
.cw-app .cwo-tile__image {
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--cw-category-image-height);
	background: var(--cw-surface-alt);
	overflow: hidden;
}

.cw-app .cw-category-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.cw-app .cw-category-fallback {
	width: 6rem;
	height: 6rem;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cw-bg);
	border: 1px solid var(--cw-border);
	font-weight: 700;
	color: var(--cw-text-muted);
}

.cw-app .cw-category-meta,
.cw-app .cwo-category__name,
.cw-app .cwo-tile__name {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.5rem 1.7rem 0.7rem;
	margin: 0;
	font-weight: 650;
}

.cw-app .cw-category-title {
	margin: 0;
	font-size: 1.1em;
	line-height: 1.25;
	font-weight: 600;
}

.cw-app .cw-category-chevron {
	color: var(--cw-text-muted);
}

.cw-app .cw-category-count,
.cw-app .cwo-tile__desc {
	margin: 0;
	padding: 0 1.7rem 1.7rem;
	color: var(--cw-text-muted);
	font-size: 0.95em;
}

.cw-app .cw-product-list {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius-lg);
	overflow: hidden;
	background: var(--cw-surface);
}

.cw-app .cw-product-row,
.cw-app .cwo-item {
	display: grid;
	grid-template-columns: var(--cw-product-image-size) minmax(0, 1fr) auto auto;
	gap: 1.7rem;
	align-items: center;
	padding: 2.2rem 2.3rem;
	border-bottom: 1px solid var(--cw-border);
	background: var(--cw-surface);
}

.cw-app .cw-product-row:last-child,
.cw-app .cwo-item:last-child {
	border-bottom: 0;
}

.cw-app .cw-product-image,
.cw-app .cwo-item__image,
.cw-app .cwo-food-image {
	width: var(--cw-product-image-size);
	height: var(--cw-product-image-size);
	padding: 0;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	background: var(--cw-surface-alt) center / contain no-repeat;
	cursor: pointer;
	overflow: hidden;
}

.cw-app .cw-product-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.cw-app .cw-product-info {
	min-width: 0;
}

.cw-app .cw-product-title,
.cw-app .cwo-item__name {
	margin: 0;
	padding: 0;
	font-weight: 600;
	line-height: 1.25;
	color: var(--cw-text);
}

.cw-app button.cw-product-title {
	appearance: none;
	background: none;
	border: 0;
	font: inherit;
	font-weight: 600;
	color: inherit;
	cursor: pointer;
	text-align: left;
}

.cw-app .cw-product-desc,
.cw-app .cwo-item__sub {
	margin: 0.4rem 0 0;
	padding: 0;
	color: var(--cw-text-muted);
	font-size: 1em;
}

.cw-app .cw-product-price,
.cw-app .cwo-item__price {
	margin: 0;
	font-weight: 650;
	white-space: nowrap;
	font-size: 1.02em;
	color: var(--cw-text);
}

.cw-app .cw-quantity {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.cw-app .cw-quantity-minus,
.cw-app .cw-quantity-plus,
.cw-app .cwo-count button {
	min-width: 6.5rem;
	min-height: 6.5rem;
	padding: 0;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius-sm);
	background: var(--cw-surface-alt);
	color: var(--cw-text);
	font: inherit;
	cursor: pointer;
}

.cw-app .cw-quantity-value {
	min-width: 4.5rem;
	text-align: center;
	font-weight: 650;
	font-size: 1.02em;
}

.cw-app .cw-cart {
	position: sticky;
	top: 2rem;
	padding: 2.5rem;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius-lg);
	background: var(--cw-surface);
	box-shadow: var(--cw-shadow-sm);
}

.cw-app .cw-cart-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.cw-app .cw-cart-head h2 {
	margin: 0;
	font-size: 1.05em;
	color: var(--cw-text);
}

.cw-app[data-cw-theme="dark"] .cw-cart-head h2,
.cw-app[data-cw-theme-mode="dark"] .cw-cart-head h2 {
	color: #ffffff;
}

.cw-app .cw-cart-item,
.cw-app .cwo-cart-line {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.8rem 1.5rem;
	padding: 1.4rem 0;
	border-bottom: 1px solid var(--cw-border);
	align-items: start;
}

.cw-app .cw-cart-item__info {
	min-width: 0;
}

.cw-app .cw-cart-item__actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: stretch;
}

.cw-app .cw-cart-item__actions .cw-btn {
	min-height: 2.75rem;
	padding: 0.55rem 0.9rem;
	white-space: nowrap;
}

.cw-app .cw-cart-item.is-incomplete,
.cw-app .cwo-cart-line.is-incomplete {
	outline: 4px solid var(--cw-warning);
	outline-offset: 4px;
}

.cw-app .cw-cart-summary,
.cw-app .cwo-totals {
	margin: 1.7rem 0;
}

.cw-app .cw-totals-row,
.cw-app .cwo-totals__row {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	padding: 0.4rem 0;
}

.cw-app .cw-totals-row.is-total,
.cw-app .cwo-totals__row.is-total {
	font-weight: 700;
	border-top: 1px solid var(--cw-border);
	margin-top: 0.8rem;
	padding-top: 1.1rem;
}

.cw-app .cw-cart-actions,
.cw-app .cwo-cart-actions {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}

.cw-app .cwo-cart-actions--end {
	align-items: flex-end;
}

.cw-app .cwo-to-options {
	padding: 0.55rem 15px;
	min-height: 0;
	width: fit-content;
}

.cw-app .cw-mobile-cart-bar {
	position: sticky;
	bottom: 0;
	z-index: 5;
}

.cw-app .cw-mobile-cart-btn {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 2rem 2.2rem;
	background: var(--cw-surface);
	color: var(--cw-text);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius-lg);
	box-shadow: var(--cw-shadow);
	font: inherit;
	cursor: pointer;
	min-height: 6.6rem;
}

.cw-app .cw-message,
.cw-app .cwo-message,
.cw-app .cwo-loading {
	margin: 2rem 0;
	color: var(--cw-text-muted);
}

.cw-app .cw-error,
.cw-app .cwo-popup__error {
	color: var(--cw-danger);
	margin: 1rem 0;
}

.cw-app .cw-skeleton-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
	gap: 2rem;
}

.cw-app .cw-skeleton {
	height: 22rem;
	border-radius: var(--cw-card-radius);
	background: linear-gradient(90deg, var(--cw-surface-alt), var(--cw-border), var(--cw-surface-alt));
	background-size: 200% 100%;
	animation: cw-shimmer 1.2s ease-in-out infinite;
}

.cw-app .cw-modal-overlay,
.cw-app .cwo-overlay,
.cw-modal-overlay.cw-app,
.cwo-overlay.cw-app {
	position: fixed;
	inset: 0;
	z-index: 1000000000;
	background: var(--cw-overlay);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4rem 2rem;
	overflow: auto;
}

.cw-app .cw-modal-dialog,
.cw-app .cwo-popup,
.cw-modal-dialog.cw-app,
.cwo-popup.cw-app {
	z-index: 1000000001;
	width: min(100%, var(--cw-modal-max-width));
	background: var(--cw-modal-bg);
	color: var(--cw-text);
	border: 1px solid var(--cw-modal-border);
	border-radius: var(--cw-modal-radius);
	box-shadow: var(--cw-shadow-lg);
	padding: 2.3rem 2.4rem 2.6rem;
	max-height: calc(100vh - 8rem);
	overflow: auto;
	animation: cw-modal-in 160ms ease;
	margin: auto;
}

.cw-app .cw-modal-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

.cw-app .cw-modal-head h2,
.cw-app .cwo-popup__title {
	margin: 0;
	font-size: 1.2em;
	font-weight: 650;
	line-height: 1.25;
	color: var(--cw-text);
}

.cw-app .cwo-popup__body p {
	margin: 0 0 1.5rem;
	color: var(--cw-text);
	font-size: 1em;
	line-height: 1.5;
}

.cw-app .cwo-popup__body p:last-child {
	margin-bottom: 0;
}

.cw-app .cw-modal-close {
	min-width: 5.5rem;
	min-height: 5.5rem;
	padding: 0;
	background: transparent;
	border: 0;
	color: inherit;
	font-size: 1.2em;
	cursor: pointer;
}

.cw-app .cw-detail-image,
.cw-app .cwo-detail-image {
	height: 24rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cw-surface-alt);
	border-radius: var(--cw-radius);
	margin-bottom: 1.5rem;
	overflow: hidden;
}

.cw-app .cw-detail-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.cw-app .cwo-popup__actions,
.cw-app .cw-modal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 1.7rem 0 0;
}

.cw-app .cwo-option-group {
	border: 1px solid var(--cw-border);
	padding: 1.5rem;
	margin: 1.5rem 0;
	border-radius: var(--cw-radius);
}

.cw-app .cwo-option-group__head {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
	font-weight: 600;
}

.cw-app .cwo-option-row {
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--cw-border);
}

.cw-app .cwo-option-row label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
	color: var(--cw-text);
}

.cw-app .cwo-option-row input[type="checkbox"],
.cw-app .cwo-option-row input[type="radio"],
.cw-app .cwo-amounts input[type="radio"],
.cw-app .cwo-choice input[type="checkbox"],
.cw-app .cwo-choice input[type="radio"] {
	width: 1.25em;
	height: 1.25em;
	min-width: 1.25em;
	min-height: 1.25em;
	margin: 0.15em 0 0;
	flex: 0 0 auto;
	accent-color: var(--cw-primary);
	cursor: pointer;
}

.cw-app[data-cw-theme="dark"] .cwo-option-row label,
.cw-app[data-cw-theme-mode="dark"] .cwo-option-row label {
	color: #ffffff;
}

.cw-app .cwo-option-row:last-child {
	border-bottom: 0;
}

.cw-app .cwo-split,
.cw-app .cwo-amounts {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-top: 0.7rem;
	font-size: 0.85em;
}

.cw-app .cwo-split button {
	background: none;
	border: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	opacity: 0.45;
}

.cw-app .cwo-split button.is-on {
	opacity: 1;
	font-weight: 700;
}

.cw-app .cwo-upload-preview {
	min-height: 16rem;
	border: 1px dashed var(--cw-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	margin-top: 1rem;
}

.cw-app .cw-panel,
.cw-app .cwo-panel {
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	padding: 1.5rem;
	margin: 1.5rem 0;
	background: var(--cw-surface);
}

.cw-app .cw-path-card {
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius-lg);
	background: var(--cw-surface);
	box-shadow: var(--cw-shadow-sm);
	padding: 2.4rem;
	max-width: 72rem;
}

.cw-app .cw-path-form label,
.cw-app .cw-path-card label {
	display: block;
	margin: 1.2rem 0;
}

.cw-app .cw-path-list {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.cw-app .cw-path-row {
	width: 100%;
	text-align: left;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	background: var(--cw-surface);
	color: var(--cw-text);
	padding: 1.5rem;
	font: inherit;
	cursor: pointer;
}

.cw-app .cw-path-row:hover {
	background: var(--cw-surface-alt);
}

.cw-app .cw-path-row--disabled {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}

.cw-app .cw-path-amount {
	font-size: 1.8em;
	font-weight: 700;
	color: var(--cw-text);
}

.cw-app .cw-tip-row,
.cw-app .cwo-tip-row,
.cw-app .cw-pay-tabs,
.cw-app .cwo-pay-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 1rem 0 2rem;
}

.cw-app .cwo-pay-menu {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 1.5rem 0;
	align-items: stretch;
}

.cw-app .cwo-pay-menu .cwo-btn,
.cw-app .cwo-pay-section-actions .cwo-btn {
	padding: 0.55rem 15px;
	min-height: 0;
}

.cw-app .cwo-pay-section-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.5rem;
}

.cw-app .cwo-pay-section label:not(.cwo-choice) {
	display: block;
	margin: 1.2rem 0;
}

.cw-checkout-modal .cw-checkout-dialog,
.cw-modal-dialog.cw-checkout-dialog {
	width: min(100%, 52rem);
	max-height: min(92vh, 56rem);
}

.cw-app .cw-choice,
.cw-app .cwo-choice {
	display: block;
	margin: 0.7rem 0;
}

.cw-app .cw-pay-body label,
.cw-app .cwo-pay-body label,
.cw-app .cwo-delivery-fields label,
.cw-app .cwo-panel label:not(.cwo-choice) {
	display: block;
	margin: 1.2rem 0;
}

.cw-app .cw-stripe,
.cw-app .cwo-stripe {
	min-height: 8rem;
	margin: 1.5rem 0;
}

.cw-app .cw-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	color: var(--cw-text-muted);
	font-size: 0.95em;
}

.cw-app .cw-steps li.is-on {
	color: var(--cw-text);
	font-weight: 700;
}

.cw-app .cw-success {
	text-align: center;
	padding: 4rem 2rem;
}

.cw-app .cw-success__icon {
	width: 7rem;
	height: 7rem;
	margin: 0 auto 2rem;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cw-success);
	color: #fff;
	font-size: 1.35em;
}

.cw-app .cw-review-list,
.cw-app .cwo-review-list {
	margin: 2rem 0;
}

.cw-app .cw-review-item,
.cw-app .cwo-review-item {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--cw-border);
}

.cw-app .cwo-review-item__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2rem;
}

.cw-app .cwo-review-item__main {
	min-width: 0;
	flex: 1 1 auto;
}

.cw-app .cwo-review-item .cwo-item__name {
	font-size: 1.2em;
	line-height: 1.25;
}

.cw-app .cwo-review-item .cwo-item__price {
	flex: 0 0 auto;
	margin: 0;
	text-align: right;
	font-size: 1.2em;
	font-variant-numeric: tabular-nums;
}

.cw-app .cwo-review-group,
.cw-app .cwo-review-notes {
	margin: 0.7rem 0 0.2rem;
	font-size: 0.85em;
}

.cw-app .cwo-review-options {
	margin: 0 0 0.4rem;
	padding: 0 0 0 1.2em;
	color: var(--cw-text-muted);
	font-size: 0.85em;
}

.cw-app .cwo-review-options li {
	margin: 0.15em 0;
}

.cw-app .cwo-review-notes {
	margin: 0.7rem 0 0;
}

.cw-app .cw-search-group {
	margin: 2.5rem 0;
}

.cw-app .cw-search-group h3 {
	margin: 0 0 1rem;
	font-size: 0.95em;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--cw-text-muted);
}

.cw-app .cw-search-hit {
	display: block;
	width: 100%;
	text-align: left;
	padding: 1.5rem 0;
	border: 0;
	border-bottom: 1px solid var(--cw-border);
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

@keyframes cw-modal-in {
	from { opacity: 0; transform: scale(0.98); }
	to { opacity: 1; transform: none; }
}

@keyframes cw-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
	.cw-app *,
	.cw-app *::before,
	.cw-app *::after,
	.cw-app .cw-modal-dialog {
		animation: none !important;
		transition: none !important;
	}
}

@media (max-width: 1023px) {
	.cw-app .cw-body {
		grid-template-columns: minmax(0, 1fr);
	}

	.cw-app .cw-cart {
		display: none;
	}

	.cw-app .cw-page-head {
		grid-template-columns: minmax(0, 1fr);
		align-items: stretch;
	}

	.cw-app .cw-page-head__aside {
		align-items: stretch;
	}

	.cw-app .cw-page-head__aside .cw-search {
		max-width: none;
	}

	.cw-app .cw-page-head__aside .cw-cart-chip {
		align-self: flex-end;
	}
}

@media (min-width: 1024px) {
	.cw-app .cw-mobile-cart-bar {
		display: none;
	}
	/* Desktop: wider checkout/options dialogs */
	.cw-app {
		--cw-modal-max-width: 88rem;
	}
}

@media (max-width: 767px) {
	.cw-app {
		--cw-font-size: 2.5rem;
	}

	.cw-app .cw-category-grid,
	.cw-app .cwo-grid {
		grid-template-columns: 1fr;
	}

	.cw-app .cw-product-row,
	.cw-app .cwo-item {
		grid-template-columns: var(--cw-product-image-size) minmax(0, 1fr);
	}

	.cw-app .cw-product-price,
	.cw-app .cw-quantity {
		grid-column: 2;
	}
}

@media (min-width: 480px) and (max-width: 767px) {
	.cw-app .cw-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Multi-provider payment UI (NMI / Authorize.Net) */
.cw-app .cw-pay-ui {
	margin: 1.25rem 0 0.5rem;
}

.cw-app .cw-pay-shell {
	position: relative;
	min-height: 4.5rem;
}

.cw-app .cw-pay-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 1.75rem 1rem;
	text-align: center;
	color: var(--cw-text-muted, #667085);
}

.cw-app .cw-pay-loading__spinner {
	width: 1.75rem;
	height: 1.75rem;
	border: 2px solid var(--cw-border, #d8dee8);
	border-top-color: var(--cw-text, #101828);
	border-radius: 50%;
	animation: cwo-pay-spin 0.75s linear infinite;
}

.cw-app .cw-pay-loading__text {
	margin: 0;
	font-size: 0.95em;
}

@keyframes cwo-pay-spin {
	to { transform: rotate(360deg); }
}

.cw-app .cw-pay-fields[hidden] {
	display: none !important;
}

.cw-app .cw-pay-method-tabs {
	display: flex;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.cw-app .cw-pay-method-tab,
.cw-app .cw-ach-type {
	appearance: none;
	border: 1px solid var(--cw-border);
	background: var(--cw-surface, transparent);
	color: var(--cw-text);
	border-radius: 0.4rem;
	padding: 0.55rem 0.9rem;
	cursor: pointer;
	font: inherit;
}

.cw-app .cw-pay-method-tab.is-on,
.cw-app .cw-ach-type.is-on {
	border-color: var(--cw-text);
	font-weight: 600;
}

.cw-app .cw-pay-panel {
	position: relative;
	padding: 0.25rem 0 0.5rem;
}

.cw-app .cw-pay-card-badge {
	display: none;
}

.cw-app .cw-pay-field {
	margin: 0 0 0.9rem;
}

.cw-app .cw-pay-label {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.92em;
}

.cw-app .cw-pay-input,
.cw-app .cw-pay-host {
	display: block;
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--cw-border, #d8dee8);
	border-radius: 9px;
	background: var(--cw-input-bg, #fff);
	padding: 0.55rem 0.75rem;
	box-sizing: border-box;
	font: inherit;
	color: inherit;
}

/* Collect.js iframes: outer host keeps the border; iframe content has border:0 via customCss */
.cw-app .cw-pay-host {
	padding: 0;
	overflow: hidden;
}

.cw-app .cw-pay-host iframe {
	width: 100% !important;
	min-height: 48px !important;
	border: 0 !important;
	display: block;
}

.cw-app .cw-pay-input-icon {
	position: relative;
}

.cw-app .cw-pay-input-icon .cw-pay-input,
.cw-app .cw-pay-input-icon .cw-pay-host {
	padding-right: 3.6rem;
}

.cw-app .cw-pay-input-icon .cw-pay-host {
	padding-right: 0;
}

.cw-app .cw-pay-badge {
	position: absolute;
	top: 50%;
	right: 0.65rem;
	transform: translateY(-50%);
	padding: 0.15rem 0.4rem;
	border: 1px solid var(--cw-border, #d8dee8);
	border-radius: 5px;
	color: #1434cb;
	background: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	pointer-events: none;
	z-index: 2;
}

.cw-app .cw-pay-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.cw-app .cw-ach-type-row {
	display: flex;
	gap: 0.5rem;
	margin: 0.35rem 0 0.75rem;
}

.cw-app .cw-pay-secure {
	margin: 0.75rem 0 0;
	font-size: 0.85em;
}

