.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;
	/* ~16px baseline — Toast/DoorDash-like density; scale a site up via Appearance CSS */
	--cw-font-size: 1rem;
	--cw-radius-sm: 0.375rem;
	--cw-radius: 0.5rem;
	--cw-radius-lg: 0.75rem;
	--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: 1.5rem;
	--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: 36rem;
	--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-control-height: 2.75rem;
	--cw-qty-size: 2.5rem;
	--cw-overlay: rgba(15, 23, 42, 0.45);
	--cw-max-width: none;
	--cw-page-inset: 16px;
	--cw-category-image-height: 10rem;
	--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) 1.5rem;
	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;
}

/* While Collect.js / Stripe hosts are live — isolation on .cw-app breaks iframe typing. */
.cw-app.cw-app--pay-hosts {
	isolation: auto;
}

/* Portaled modals also get .cw-app for theme tokens — isolation breaks Collect.js/Stripe iframes. */
.cw-modal-overlay.cw-app,
.cwo-overlay.cw-app,
.cw-modal-dialog.cw-app,
.cwo-popup.cw-app {
	isolation: auto;
}

.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 !important;
}

.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: 1rem;
}

.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: 0.65rem;
}

.cw-app .cw-page-head__aside .cw-search {
	width: 100%;
	max-width: 22rem;
	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: 0.55rem 0.75rem;
	min-height: var(--cw-control-height);
}

.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: 2px solid var(--cw-primary);
	outline-offset: 2px;
}

.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: 0.55rem 1rem;
	min-height: var(--cw-control-height);
	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(17rem, 20rem);
	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.35rem;
	font-family: var(--cw-font-family);
	font-size: 1.35em;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: normal;
	text-transform: none;
	font-stretch: normal;
	word-spacing: normal;
	color: var(--cw-text);
}

.cw-app .cwo-review-intro {
	text-align: center;
	margin: 0.35rem 0 1.25rem;
}

.cw-app .cwo-review-intro .cw-heading {
	margin: 0 0 0.25rem;
}

.cw-app .cwo-review-intro .cwo-review-sub,
.cw-app .cwo-review-intro .cwo-muted {
	margin: 0;
	text-align: center;
}

.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 1rem;
	color: var(--cw-text-muted);
	font-size: 0.9375em;
}

.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.35rem 0.5rem;
	margin: 0 0 0.85rem;
	font-size: 0.875em;
	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 0.65rem;
	min-height: var(--cw-control-height);
	padding: 0.4rem 0.85rem;
}

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

.cw-app .cw-category-grid + .cw-product-list,
.cw-app .cw-category-grid + .cw-merch-grid,
.cw-app .cwo-grid + .cw-product-list {
	margin-top: 10px;
}

.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: 3rem;
	height: 3rem;
	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: 0.5rem;
	padding: 0.75rem 0.85rem 0.35rem;
	margin: 0;
	font-weight: 650;
}

.cw-app .cw-category-title {
	margin: 0;
	font-size: 0.95em;
	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 0.85rem 0.85rem;
	color: var(--cw-text-muted);
	font-size: 0.8125em;
}

.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: 0.85rem 1rem;
	align-items: center;
	padding: 0.85rem 1rem;
	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.2rem 0 0;
	padding: 0;
	color: var(--cw-text-muted);
	font-size: 0.875em;
	line-height: 1.35;
}

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

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

.cw-app .cw-quantity-minus,
.cw-app .cw-quantity-plus,
.cw-app .cwo-count button {
	min-width: var(--cw-qty-size);
	min-height: var(--cw-qty-size);
	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: 1.5rem;
	text-align: center;
	font-weight: 650;
	font-size: 0.95em;
}

.cw-app .cw-cart {
	position: sticky;
	top: 1rem;
	padding: 1rem 1.1rem;
	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: 0.75rem;
}

.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: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--cw-border);
}

.cw-app .cw-cart-item__main {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.cw-app .cw-cart-item__top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.85rem;
	min-width: 0;
}

.cw-app .cw-cart-item__main .cw-product-title,
.cw-app .cw-cart-item__top .cw-product-title {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

.cw-app .cw-cart-item__main .cw-product-price,
.cw-app .cw-cart-item__top .cw-product-price {
	flex: 0 0 auto;
	margin: 0;
}

.cw-app .cw-cart-item__opts,
.cw-cart-dialog .cw-cart-item__opts {
	margin: 0;
	font-size: 0.82em;
	line-height: 1.35;
	color: var(--cw-text-muted, #667085);
}

.cw-app .cw-cart-item__opts--summary,
.cw-cart-dialog .cw-cart-item__opts--summary {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.cw-app .cw-cart-item__opts--needed,
.cw-cart-dialog .cw-cart-item__opts--needed {
	color: var(--cw-warning, #b54708);
	font-weight: 600;
}

.cw-app .cw-cart-item__opt-list,
.cw-cart-dialog .cw-cart-item__opt-list {
	margin: 0;
	padding: 0 0 0 1.1rem;
	font-size: 0.85em;
	line-height: 1.4;
	color: var(--cw-text-muted, #667085);
}

.cw-app .cw-cart-item__opt-list li,
.cw-cart-dialog .cw-cart-item__opt-list li {
	margin: 0.1rem 0;
}

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

.cw-app .cw-cart-item__actions {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.cw-app .cw-cart-item__actions .cw-btn {
	min-height: 2.75rem;
	padding: 0.45rem 0.85rem;
	white-space: nowrap;
	font-size: 0.88em;
}

.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: 0.85rem 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;
	padding-top: 0.75rem;
}

.cw-app .cw-mobile-cart-btn {
	display: flex;
	flex-direction: column;
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.75rem 1rem;
	background: var(--cw-primary);
	color: var(--cw-primary-text);
	border: 1px solid var(--cw-primary);
	border-radius: var(--cw-radius-lg);
	box-shadow: var(--cw-shadow-lg);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	min-height: 0;
	text-align: center;
	transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.cw-app .cw-mobile-cart-btn:hover,
.cw-app .cw-mobile-cart-btn:focus-visible {
	background: var(--cw-primary-hover);
	border-color: var(--cw-primary-hover);
}

.cw-app .cw-mobile-cart-btn__summary {
	display: block;
	width: 100%;
	font-weight: 650;
	line-height: 1.25;
	letter-spacing: 0.01em;
	text-align: center;
}

.cw-app .cw-mobile-cart-btn__action {
	display: block;
	width: 100%;
	padding: 0.4rem 0.85rem;
	border-radius: var(--cw-radius);
	background: rgba(255, 255, 255, 0.18);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	font-size: 0.9375em;
}

.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(11rem, 1fr));
	gap: 0.85rem;
}

.cw-app .cw-skeleton {
	height: 11rem;
	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: 1.5rem 1rem;
	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: 1.15rem 1.25rem 1.35rem;
	max-height: calc(100vh - 3rem);
	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: 0.75rem;
	margin-bottom: 0.85rem;
}

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

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

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

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

.cw-app .cw-detail-image,
.cw-app .cwo-detail-image {
	height: 12rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cw-surface-alt);
	border-radius: var(--cw-radius);
	margin-bottom: 0.85rem;
	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;
	justify-content: flex-end;
	align-items: center;
	gap: 0.65rem;
	margin: 1rem 0 0;
}

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

.cw-app .cwo-option-group__head {
	display: flex;
	justify-content: space-between;
	gap: 0.65rem;
	margin-bottom: 0.55rem;
	font-weight: 650;
	font-size: 0.9375em;
}

.cw-app .cwo-option-product {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	margin: 0 0 0.85rem;
}

.cw-app .cwo-option-product img {
	width: 4.5rem;
	height: 4.5rem;
	object-fit: cover;
	border-radius: var(--cw-radius);
	background: var(--cw-surface-alt);
	flex: 0 0 auto;
}

.cw-app .cwo-option-product__name {
	margin: 0 0 0.25rem;
	font-weight: 650;
}

.cw-app .cwo-option-product__desc {
	margin: 0;
	font-size: 0.9em;
	color: var(--cw-text-muted);
}

.cw-app .cwo-option-si textarea,
.cw-app #si_value {
	width: 100%;
	min-height: 4.5rem;
	border: 1px solid var(--cw-input-border);
	border-radius: var(--cw-radius);
	padding: 0.65rem 0.75rem;
	background: var(--cw-input-bg);
	color: var(--cw-input-text);
	font: inherit;
}

.cw-app .cwo-option-row {
	padding: 0.5rem 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: 8rem;
	border: 1px dashed var(--cw-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	margin-top: 0.65rem;
}

.cw-app .cw-panel,
.cw-app .cwo-panel {
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	padding: 0.85rem 1rem;
	margin: 0.85rem 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: none;
	padding: 1rem 1.1rem 1.25rem;
	max-width: 40rem;
}

.cw-app .cw-path-card.cwo-event-shell,
.cw-app .cw-path-card.cwo-donation-shell {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: 42rem;
}

/* Multi-connection event search shell */
.cw-app .cwo-search-shell {
	width: 100%;
	max-width: 48rem;
	margin: 0 auto;
}

.cw-app .cwo-search-label {
	display: block;
	margin: 0 0 0.75rem;
}

.cw-app .cwo-search-input {
	width: 100%;
	min-height: var(--cw-control-height, 2.75rem);
	box-sizing: border-box;
	border: 1px solid var(--cw-input-border);
	border-radius: var(--cw-radius);
	padding: 0.65rem 0.85rem;
	font: inherit;
	background: var(--cw-input-bg);
	color: var(--cw-input-text);
}

.cw-app .cwo-search-meta {
	margin: 0 0 0.85rem;
	font-size: 0.9em;
	color: var(--cw-text-muted);
}

.cw-app .cwo-search-source {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.82em;
	color: var(--cw-text-muted);
	font-weight: 500;
}

.cw-app .cwo-search-results {
	margin-top: 0.5rem;
}

.cw-app .cwo-event-hero {
	display: none;
}

.cw-app .cwo-ei {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.cw-app .cwo-ei-bar {
	display: grid;
	grid-template-columns: minmax(5.5rem, 7rem) minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 0.65rem 1.25rem;
	align-items: center;
	padding: 0.35rem 0 0.85rem;
	margin-bottom: 1.1rem;
	border-bottom: 1.35rem solid var(--cw-text);
}

.cw-app .cwo-ei-bar__logo {
	display: flex;
	justify-content: flex-end;
	padding-right: 0.75rem;
	border-right: 1px solid var(--cw-text);
}

.cw-app .cwo-ei-bar__logo img {
	display: block;
	width: 100%;
	max-width: 6.25rem;
	height: auto;
	object-fit: contain;
}

.cw-app .cwo-ei-bar__name {
	display: block;
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 0.2rem;
	line-height: 1.25;
}

.cw-app .cwo-ei-bar__dates {
	font-size: 0.82em;
	color: var(--cw-text);
	line-height: 1.35;
}

.cw-app .cwo-ei-bar__venue {
	font-size: 0.82em;
	color: var(--cw-text);
	line-height: 1.4;
	text-align: left;
}

.cw-app.cw-app--path .cw-page-head .cw-heading {
	margin-top: 0.25rem;
}

.cw-app .cwo-ei-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem 1.5rem;
	align-items: start;
	width: 100%;
}

.cw-app .cwo-ei-body--no-diagram {
	display: flex;
	flex-direction: column;
	align-items: center;
	grid-template-columns: none;
}

.cw-app .cwo-ei-body--no-diagram .cwo-ei-diagram {
	display: none;
}

.cw-app .cwo-ei-body--no-diagram .cwo-ei-panel {
	width: 100%;
	max-width: 36rem;
	margin: 0 auto;
}

.cw-app .cwo-ei-diagram {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	background: transparent;
	border-radius: 0;
	min-height: 0;
	padding: 0;
	width: 100%;
}

.cw-app .cwo-ei-diagram img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	max-height: min(70vh, 36rem);
	object-fit: contain;
	margin: 0 auto;
}

.cw-app .cwo-ei-panel {
	width: 100%;
	min-width: 0;
}

.cw-app .cwo-ei-panel__heading {
	margin: 0 0 0.65rem;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	min-height: 2.5rem;
}

.cw-app .cwo-ei-buybar {
	background: #e6e6e6;
	border: 0;
	border-radius: 0;
	padding: 0.45rem 0.55rem;
	margin-bottom: 0.65rem;
	text-align: center;
}

.cw-app .cwo-ei-buybar .cw-btn,
.cw-app .cwo-ei-buybar .cwo-btn {
	min-width: 7rem;
}

.cw-app .cwo-ei-desc,
.cw-app .cwo-ei-desc-body {
	margin-top: 1rem;
	font-size: 0.95em;
	color: var(--cw-text-muted);
	line-height: 1.45;
}

.cw-app .cwo-option-for {
	text-align: center;
	margin: 0 0 0.85rem;
	font-size: 1.05em;
	line-height: 1.35;
}

.cw-app .cwo-option-actions {
	justify-content: stretch;
}

.cw-app .cwo-option-actions .cwo-btn,
.cw-app .cwo-option-actions .cw-btn {
	flex: 1;
}

@media (max-width: 900px) {
	.cw-app .cwo-ei {
		width: 100%;
		max-width: none;
	}

	.cw-app .cwo-ei-bar {
		grid-template-columns: 4.25rem minmax(0, 1fr);
		gap: 0.45rem 0.75rem;
		border-bottom-width: 0.4rem;
		border: 1px solid var(--cw-text);
		padding: 0.55rem 0.65rem;
		margin-bottom: 0.85rem;
	}

	.cw-app .cwo-ei-bar__logo {
		justify-content: center;
		align-self: center;
		border-right: 0;
		padding-right: 0;
	}

	.cw-app .cwo-ei-bar__logo img {
		max-width: 4.5rem;
	}

	.cw-app .cwo-ei-bar__name {
		font-size: 0.98rem;
	}

	.cw-app .cwo-ei-bar__dates {
		font-size: 0.78em;
	}

	.cw-app .cwo-ei-bar__venue {
		grid-column: 1 / -1;
		text-align: left;
		padding-top: 0.15rem;
		border-top: 1px solid var(--cw-border);
	}

	/* Stack: marketing image on top, tickets/form below (EI mobile). */
	.cw-app .cwo-ei-body {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
	}

	.cw-app .cwo-ei-diagram {
		order: 1;
		width: 100%;
	}

	.cw-app .cwo-ei-panel {
		order: 2;
		width: 100%;
		min-width: 0;
	}

	.cw-app .cwo-ei-body--no-diagram {
		align-items: center;
	}

	.cw-app .cwo-ei-body--no-diagram .cwo-ei-panel {
		width: 100%;
		max-width: 28rem;
		margin: 0 auto;
	}

	.cw-app .cwo-ei-diagram img {
		width: 100%;
		max-width: 100%;
		max-height: min(55vh, 28rem);
	}

	.cw-app .cwo-ei-panel__heading {
		font-size: 1.1rem;
		min-height: 0;
		margin-bottom: 0.5rem;
	}

	.cw-app .cwo-ei-buybar {
		position: sticky;
		top: 0;
		z-index: 2;
	}

	.cw-app .cwo-ga-tickets .cw-product-row,
	.cw-app .cwo-ga-ticket {
		flex-wrap: wrap;
		gap: 0.45rem 0.75rem;
	}

	.cw-app .cwo-qty-stepper {
		margin-left: auto;
	}

	.cw-app .cwo-reg-fields {
		display: grid;
		gap: 0.75rem;
	}

	.cw-app .cwo-reg-input:not([type="checkbox"]):not([type="radio"]),
	.cw-app .cwo-reg-field input:not([type="checkbox"]):not([type="radio"]),
	.cw-app .cwo-reg-field select,
	.cw-app .cwo-reg-field textarea {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.cw-app .cwo-reg-field input[type="checkbox"],
	.cw-app .cwo-reg-field input[type="radio"] {
		width: auto;
		max-width: none;
		flex: 0 0 auto;
		margin: 0;
	}

	.cw-app .cwo-reg-choice {
		display: flex;
		align-items: flex-start;
		gap: 0.65rem;
		width: 100%;
		line-height: 1.35;
	}

	.cw-app .cwo-reg-choice .cwo-reg-input {
		margin-top: 0.15rem;
	}
}

@media (max-width: 720px) {
	.cw-app .cwo-event-hero {
		grid-template-columns: 1fr;
	}

	.cw-app .cwo-event-hero__media {
		min-height: 8rem;
	}
}

.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.55rem;
}

.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: 0.85rem 1rem;
	font: inherit;
	cursor: pointer;
	transition: background 120ms ease, border-color 120ms ease;
}

.cw-app .cw-path-row:hover {
	background: var(--cw-surface-alt);
	border-color: color-mix(in srgb, var(--cw-border) 70%, var(--cw-primary));
}

.cw-app .cw-event-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.cw-app .cw-event-row__main {
	display: grid;
	grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr);
	gap: 0.75rem 1.25rem;
	align-items: baseline;
	flex: 1;
	min-width: 0;
	text-align: left;
}

.cw-app .cw-event-row__name {
	font-weight: 700;
}

.cw-app .cw-event-row__desc {
	color: var(--cw-muted, #667085);
	overflow: hidden;
	text-overflow: ellipsis;
}

.cw-app .cw-event-row__chevron {
	flex: 0 0 auto;
	font-weight: 700;
	opacity: 0.55;
}

.cw-app .cw-event-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: 1rem;
}

.cw-app .cw-event-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	text-align: left;
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	background: var(--cw-surface);
	color: var(--cw-text);
	padding: 0;
	overflow: hidden;
	font: inherit;
	cursor: pointer;
}

.cw-app .cw-event-card:hover {
	background: var(--cw-surface-alt);
}

.cw-app .cw-event-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--cw-surface-alt) center / cover no-repeat;
}

.cw-app .cw-event-card__media--empty {
	background: linear-gradient(135deg, var(--cw-surface-alt), var(--cw-border));
}

.cw-app .cw-event-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.85rem 0.95rem 1rem;
}

.cw-app .cw-event-card__desc {
	color: var(--cw-muted, #667085);
	font-size: 0.95em;
}

@media (max-width: 640px) {
	.cw-app .cw-event-row__main {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}
}

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

.cw-app .cw-path-amount {
	font-size: 1.5em;
	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: 0.5rem;
	margin: 0.75rem 0 1.15rem;
}

.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;
	justify-content: flex-end;
	align-items: center;
	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);
	/* Safari + Collect.js: transform/overflow on ancestors kills iframe typing mid-keystroke. */
	animation: none;
	transform: none;
	overflow: visible;
	max-height: none;
}

.cw-checkout-modal.cw-modal-overlay,
.cw-modal-overlay.cw-checkout-modal {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.cw-checkout-dialog .cw-modal-body,
.cw-checkout-dialog .cwo-popup__body {
	overflow: visible;
	max-height: none;
}

.cw-checkout-dialog .cw-pay-host,
.cw-checkout-dialog .cw-pay-host iframe {
	transform: none !important;
	filter: none !important;
}

.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: 2rem 1rem;
}

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

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

.cw-app .cw-review-item,
.cw-app .cwo-review-item {
	padding: 0.85rem 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: 1rem;
}

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

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

.cw-app .cwo-review-item .cwo-item__price {
	flex: 0 0 auto;
	margin: 0;
	text-align: right;
	font-size: 1em;
	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 {
		display: flex;
		align-items: center;
		justify-content: center;
		align-self: stretch;
		width: 100%;
		text-align: center;
	}
}

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

@media (max-width: 767px) {
	.cw-app {
		--cw-font-size: 1rem;
		--cw-product-image-size: 5.6rem;
		--cw-category-image-height: 8.5rem;
		--cw-page-inset: 12px;
		--cw-control-height: 2.75rem;
		--cw-qty-size: 2.75rem;
	}

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

	.cw-app .cw-product-list {
		border-radius: var(--cw-radius);
	}

	/*
	 * Mobile item row (single band):
	 *   [image]  name / subtitle / price   [-] count [+]
	 */
	.cw-app .cw-product-row,
	.cw-app .cwo-item {
		grid-template-columns: var(--cw-product-image-size) minmax(0, 1fr) auto;
		grid-template-areas:
			"image info qty"
			"image price qty";
		gap: 0.25rem 0.65rem;
		align-items: center;
		padding: 0.75rem 0.85rem;
	}

	.cw-app .cw-product-image,
	.cw-app .cwo-item__image,
	.cw-app .cwo-food-image {
		grid-area: image;
		grid-row: 1 / span 2;
		align-self: center;
		border-radius: var(--cw-radius-sm);
	}

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

	.cw-app .cw-product-title,
	.cw-app .cwo-item__name {
		font-size: 0.95em;
		line-height: 1.2;
	}

	.cw-app .cw-product-desc,
	.cw-app .cwo-item__sub {
		margin-top: 0.2rem;
		font-size: 0.8em;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		overflow: hidden;
	}

	.cw-app .cw-product-price,
	.cw-app .cwo-item__price {
		grid-area: price;
		grid-column: auto;
		justify-self: start;
		align-self: start;
		margin: 0.1rem 0 0;
		font-size: 0.9em;
		line-height: 1.2;
	}

	.cw-app .cw-quantity {
		grid-area: qty;
		grid-row: 1 / span 2;
		grid-column: auto;
		justify-self: end;
		align-self: center;
		justify-content: center;
		gap: 0.3rem;
		margin-top: 0;
	}

	.cw-app .cw-quantity-minus,
	.cw-app .cw-quantity-plus,
	.cw-app .cwo-count button {
		min-width: 2.4rem;
		min-height: 2.4rem;
		border-radius: var(--cw-radius-sm);
	}

	.cw-app .cw-quantity-value {
		min-width: 1.25rem;
		font-size: 0.9em;
	}

	/* No image: text + qty on one band */
	.cw-app .cw-product-row:not(:has(.cw-product-image)),
	.cw-app .cwo-item:not(:has(.cwo-item__image)) {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"info qty"
			"price qty";
	}

	/* View Cart modal — compact sheet */
	.cw-cart-overlay.cw-modal-overlay,
	.cw-modal-overlay.cw-cart-overlay {
		align-items: flex-end;
		padding: 0;
	}

	.cw-cart-dialog.cw-modal-dialog,
	.cw-modal-dialog.cw-cart-dialog {
		width: 100%;
		max-width: none;
		max-height: min(88vh, 100%);
		margin: 0;
		border-radius: var(--cw-radius-lg) var(--cw-radius-lg) 0 0;
		padding: 1rem 1.1rem 1.25rem;
		box-shadow: var(--cw-shadow-lg);
	}

	.cw-cart-dialog .cw-modal-head {
		margin-bottom: 0.75rem;
		gap: 0.75rem;
		align-items: center;
	}

	.cw-cart-dialog .cw-modal-head h2,
	.cw-cart-dialog .cwo-popup__title {
		font-size: 1.05em;
	}

	.cw-cart-dialog .cw-modal-close {
		min-width: 2.75rem;
		min-height: 2.75rem;
		font-size: 1.35em;
		line-height: 1;
	}

	/* Popup actions: right-aligned for right-thumb reach */
	.cw-app .cwo-popup__actions,
	.cw-app .cw-modal-actions,
	.cw-modal-dialog.cw-app .cwo-popup__actions,
	.cw-modal-dialog.cw-app .cw-modal-actions {
		justify-content: flex-end;
		flex-wrap: wrap;
	}

	.cw-app .cwo-popup__actions .cw-btn,
	.cw-app .cwo-popup__actions .cwo-btn,
	.cw-app .cw-modal-actions .cw-btn,
	.cw-app .cw-modal-actions .cwo-btn {
		flex: 0 0 auto;
		width: auto;
		min-width: 5.5rem;
	}

	.cw-cart-dialog .cw-cart-item,
	.cw-cart-dialog .cwo-cart-line,
	.cw-app .cw-cart .cw-cart-item,
	.cw-app .cw-cart .cwo-cart-line {
		gap: 0.5rem;
		padding: 0.85rem 0;
	}

	.cw-cart-dialog .cw-cart-item__main .cw-product-title,
	.cw-app .cw-cart .cw-cart-item__main .cw-product-title {
		font-size: 0.92em;
	}

	.cw-cart-dialog .cw-cart-item__main .cw-product-price,
	.cw-app .cw-cart .cw-cart-item__main .cw-product-price {
		font-size: 0.9em;
	}

	.cw-cart-dialog .cw-cart-item__actions .cw-btn,
	.cw-app .cw-cart .cw-cart-item__actions .cw-btn {
		flex: 1 1 calc(50% - 0.25rem);
		min-height: 2.6rem;
		padding: 0.4rem 0.65rem;
		font-size: 0.82em;
	}

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

	.cw-cart-dialog .cw-totals-row,
	.cw-cart-dialog .cwo-totals__row {
		padding: 0.3rem 0;
		font-size: 0.92em;
	}

	.cw-cart-dialog .cw-totals-row.is-total,
	.cw-cart-dialog .cwo-totals__row.is-total {
		margin-top: 0.45rem;
		padding-top: 0.7rem;
	}

	.cw-cart-dialog .cw-cart-actions,
	.cw-cart-dialog .cwo-cart-actions {
		gap: 0.65rem;
		margin-top: 0.85rem;
	}

	.cw-cart-dialog .cw-cart-actions .cw-btn,
	.cw-cart-dialog .cwo-cart-actions .cw-btn {
		width: 100%;
		min-height: 3.1rem;
		justify-content: center;
	}

	.cw-cart-dialog .cw-cart-item.is-incomplete,
	.cw-cart-dialog .cwo-cart-line.is-incomplete {
		outline-width: 2px;
		outline-offset: 2px;
		border-radius: var(--cw-radius-sm);
		padding-left: 0.35rem;
		padding-right: 0.35rem;
	}
}

@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;
}

/* Status sits ABOVE fields — never cover hosts. Collect.js will not inject into
   overlay-covered / pointer-events:none targets. */
.cw-app .cw-pay-shell.is-loading .cw-pay-loading {
	position: static;
	margin: 0 0 0.75rem;
	padding: 0.85rem 0.5rem;
	background: transparent;
}

.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-shell:not(.is-loading) .cw-pay-fields {
	pointer-events: auto;
}

.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-hint {
	display: block;
	margin: 0.25rem 0 0;
	font-size: 0.8em;
}

.cw-app .cw-pay-host.is-invalid {
	border-color: var(--cw-danger, #b42318);
}

.cw-app .cw-pay-input {
	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 hosts — match web-orders. Do not force iframe height (clips placeholders / tap targets). */
.cw-app .cw-pay-host {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--cw-border, #d8dee8);
	border-radius: 9px;
	background: var(--cw-input-bg, #fff);
	overflow: hidden;
	position: relative;
	box-sizing: border-box;
	pointer-events: auto;
	-webkit-user-select: text;
	user-select: text;
}

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

.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: 0;
	bottom: 0;
	right: 0.65rem;
	height: fit-content;
	margin: auto 0;
	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;
}

.cw-app .cw-pay-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 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;
}

/* Checkout options: tip / rewards / delivery map (FI parity) */
.cw-app .cwo-slider-label {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 1rem 0;
	font-size: 0.85em;
	color: var(--cw-text-muted, #5b6573);
}

.cw-app .cwo-tip-slider,
.cw-app .cwo-reward-slider {
	width: 100%;
	accent-color: var(--cw-primary, #22407f);
}

.cw-app .cwo-tip-summary {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.75rem;
	font-weight: 600;
}

.cw-app .cwo-delivery-map {
	width: 100%;
	height: 280px;
	margin-top: 1rem;
	border: 1px solid var(--cw-border, #d8dee8);
	border-radius: var(--cw-radius, 10px);
	overflow: hidden;
	background: var(--cw-surface-alt, #f4f6f9);
}

.cw-app .cwo-delivery-1.is-error {
	border-color: var(--cw-danger, #c0392b) !important;
}

.cw-app .cwo-address-status {
	color: var(--cw-danger, #c0392b);
	min-height: 1.2em;
}

.cw-app .cwo-to-pay.is-disabled,
.cw-app .cwo-btn.is-disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.cw-app .cwo-opt-panel .cwo-item__name .cwo-tip-pct-label,
.cw-app .cwo-opt-panel .cwo-item__name .cwo-reward-amount-label,
.cw-app .cwo-opt-panel .cwo-item__name .cwo-fulfill-label,
.cw-app .cwo-opt-panel .cwo-item__name .cwo-pickup-label {
	color: var(--cw-primary, #22407f);
}

/* Scheduling calendar (FI parity) */
.cw-app .cwo-sched-cal {
	margin: 0.75rem 0 1rem;
	padding: 0.65rem;
	border: 1px solid var(--cw-border, #d8dee8);
	border-radius: var(--cw-radius, 10px);
	background: var(--cw-surface-alt, #f4f6f9);
}

.cw-app .cwo-sched-cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	font-weight: 700;
}

.cw-app .cwo-sched-cal-dow {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.3rem;
	margin-bottom: 0.35rem;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--cw-text-muted, #5b6573);
	text-align: center;
}

.cw-app .cwo-sched-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.3rem;
}

.cw-app .cwo-sched-cal-day {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	min-height: 3.4rem;
	padding: 0.3rem 0.1rem;
	border: 1px solid transparent;
	border-radius: 8px;
	background: var(--cw-surface, #fff);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.1;
	cursor: pointer;
	overflow: hidden;
}

.cw-app .cwo-sched-cal-day .cwo-day-num {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.1;
}

.cw-app .cwo-sched-cal-day .cwo-day-left {
	display: block;
	max-width: 100%;
	padding: 0 0.1rem;
	font-size: 0.62rem;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--cw-text-muted, #5b6573);
	white-space: normal;
	text-align: center;
	word-break: break-word;
}

.cw-app .cwo-sched-cal-day .cwo-day-left__n,
.cw-app .cwo-sched-cal-day .cwo-day-left__lbl {
	display: inline;
}

.cw-app .cwo-sched-cal-day.is-selected .cwo-day-left {
	color: rgba(255, 255, 255, 0.9);
}

.cw-app .cwo-sched-cal-day.is-empty {
	visibility: hidden;
	pointer-events: none;
}

.cw-app .cwo-sched-cal-day.is-disabled,
.cw-app .cwo-sched-cal-day:disabled {
	opacity: 0.35;
	cursor: not-allowed;
	background: transparent;
}

.cw-app .cwo-sched-cal-day.is-selected {
	border-color: var(--cw-primary, #22407f);
	background: var(--cw-primary, #22407f);
	color: #fff;
}

.cw-app .cwo-sched-cal-day.is-available:not(.is-selected):hover {
	border-color: var(--cw-primary, #22407f);
}

.cw-app .cwo-sched-time-wrap {
	margin-top: 0.75rem;
}

.cw-app .cwo-sched-time-wrap select.cwo-pickup-slot {
	width: 100%;
	margin-top: 0.35rem;
}

@media (max-width: 430px) {
	.cw-app .cwo-sched-cal {
		padding: 0.5rem;
	}

	.cw-app .cwo-sched-cal-grid,
	.cw-app .cwo-sched-cal-dow {
		gap: 0.2rem;
	}

	.cw-app .cwo-sched-cal-day {
		min-height: 3.75rem;
		padding: 0.35rem 0.05rem;
	}

	.cw-app .cwo-sched-cal-day .cwo-day-num {
		font-size: 1.05rem;
	}

	.cw-app .cwo-sched-cal-day .cwo-day-left {
		font-size: 0.58rem;
	}
}

/* Registration form (ei_registration) */
.cw-app .cwo-reg-form .cwo-reg-fields {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 1rem 0 1.25rem;
}

.cw-app .cwo-reg-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.cw-app .cwo-reg-label {
	font-weight: 600;
}

.cw-app .cwo-reg-choice {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	font-weight: 400;
	line-height: 1.35;
	width: 100%;
}

.cw-app .cwo-reg-choice input[type="checkbox"],
.cw-app .cwo-reg-choice input[type="radio"] {
	width: auto;
	max-width: none;
	flex: 0 0 auto;
	margin: 0.15rem 0 0;
	accent-color: var(--cw-text);
}

.cw-app .cwo-reg-field[data-type="1"],
.cw-app .cwo-reg-field[data-type="2"] {
	gap: 0.55rem;
}

.cw-app .cwo-reg-input.is-error {
	border-color: #c0392b !important;
	background: #fff5f5;
}

.cw-app .cwo-reg-thanks {
	text-align: center;
	padding: 1.5rem 0;
}

.cw-app .cwo-reg-date-wrap {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.cw-app .cwo-reg-date-wrap .cwo-reg-date {
	flex: 1;
	cursor: pointer;
	min-height: var(--cw-control-height, 2.75rem);
}

.cw-app .cwo-reg-date-btn {
	flex: 0 0 auto;
	min-width: 2.75rem;
	padding-left: 0.65rem;
	padding-right: 0.65rem;
}

.cw-modal-dialog .cwo-reg-cal,
.cw-app .cwo-reg-cal {
	margin: 0.25rem 0 0.5rem;
}

.cw-modal-dialog .cwo-reg-cal-grid .cwo-sched-cal-day.is-available {
	cursor: pointer;
}

.cw-app .cwo-donation-levels .cw-path-row {
	justify-content: space-between;
	align-items: center;
}

.cw-app .cwo-donation-heading {
	text-align: center;
	margin: 0 0 1rem;
	font-size: 1.1rem;
	font-weight: 650;
}

.cw-app .cwo-donate-custom-row {
	display: grid;
	grid-template-columns: 1fr minmax(5.5rem, 7rem) auto;
	gap: 0.55rem;
	align-items: center;
	padding: 0.85rem 1rem;
	margin-bottom: 0.65rem;
	background: var(--cw-surface-alt);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
}

.cw-app .cwo-donate-custom-label {
	font-weight: 600;
}

.cw-app .cwo-donate-custom-input {
	width: 100%;
	text-align: center;
}

.cw-app .cwo-donate-level-meta {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
}

.cw-app .cwo-donate-level-action {
	font-weight: 650;
	color: var(--cw-primary);
}

.cw-app .cwo-dci-filter-wrap {
	margin-bottom: 0.75rem;
}

.cw-app .cwo-dci-filter {
	width: 100%;
	min-height: var(--cw-control-height);
	border: 1px solid var(--cw-input-border);
	border-radius: var(--cw-radius);
	padding: 0.55rem 0.75rem;
	background: var(--cw-input-bg);
	color: var(--cw-input-text);
	font: inherit;
}

.cw-app .cwo-raffle-actions {
	margin-bottom: 0.75rem;
	text-align: center;
}

.cw-app .cwo-ga-tickets .cw-product-row,
.cw-app .cwo-ga-ticket {
	align-items: center;
	border: 0;
	border-radius: 0;
	border-bottom: 1px solid #d8d8d8;
	padding: 0.65rem 0.75rem;
	margin: 0;
	background: #f5f5f6;
}

.cw-app .cwo-ga-tickets .cw-product-row:nth-child(even),
.cw-app .cwo-ga-ticket:nth-child(even) {
	background: #ebebec;
}

.cw-app .cwo-ga-ea {
	font-size: 0.85em;
	opacity: 0.8;
}

.cw-app .cwo-qty-stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	border: 1px solid var(--cw-text);
	border-radius: 0.45rem;
	padding: 0.15rem;
	background: var(--cw-surface);
}

.cw-app .cwo-qty-stepper .cwo-ticket-qty {
	width: 2.5rem;
	text-align: center;
	border: 0;
	border-radius: 0;
	min-height: 2.1rem;
	background: transparent;
	-moz-appearance: textfield;
}

.cw-app .cwo-qty-stepper .cwo-ticket-qty::-webkit-outer-spin-button,
.cw-app .cwo-qty-stepper .cwo-ticket-qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.cw-app .cwo-qty-stepper .cw-btn {
	min-width: 2.25rem;
	padding-left: 0.4rem;
	padding-right: 0.4rem;
	border-radius: 0.35rem;
}

.cw-app.cw-app--customer-area .cw-page-head__intro {
	text-align: center;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
}

.cw-app.cw-app--customer-area .cw-body {
	display: flex;
	justify-content: center;
}

.cw-app .cwo-customer-area {
	width: 100%;
	max-width: 36rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cw-app .cwo-customer-area--login {
	max-width: 28rem;
}

.cw-app .cwo-customer-area--login .cwo-pay-section label {
	margin: 0.75rem 0;
	text-align: left;
}

.cw-app .cwo-ca-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	justify-content: center;
	border-bottom: 1px solid var(--cw-border, #ddd);
	padding-bottom: 0.35rem;
}

.cw-app .cwo-ca-tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	color: var(--cw-text-muted, #666);
	cursor: pointer;
	font: inherit;
	font-size: 0.92em;
	font-weight: 600;
	margin: 0;
	padding: 0.45rem 0.7rem;
}

.cw-app .cwo-ca-tab.is-active {
	border-bottom-color: var(--cw-accent, #1a5fb4);
	color: var(--cw-text, #111);
}

.cw-app .cwo-ca-tab-body {
	min-height: 8rem;
}

.cw-app .cwo-ca-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	gap: 1.25rem;
	margin-top: 1rem;
}

.cw-app .cwo-ca-link {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	color: var(--cw-accent, #1a5fb4);
	font: inherit;
	font-size: 0.95em;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cw-app .cwo-ca-link:hover,
.cw-app .cwo-ca-link:focus-visible {
	opacity: 0.85;
}

.cw-app .cwo-ca-panel {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: 0.25rem 0 1rem;
	border-top: 0;
}

.cw-app .cwo-customer-area label {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: 0.92em;
}

.cw-app .cwo-ca-order-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cw-app .cwo-ca-order-row {
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	text-align: left;
	padding: 0.75rem 0.85rem;
	border: 1px solid var(--cw-border, #ddd);
	border-radius: var(--cw-radius, 0.4rem);
	background: var(--cw-surface, #fff);
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.cw-app .cwo-ca-order-row__main {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.cw-app .cwo-ca-order-row__title {
	font-weight: 600;
}

.cw-app .cwo-ca-order-row__meta {
	font-size: 0.85em;
	color: var(--cw-text-muted, #666);
}

.cw-app .cwo-ca-order-row__total {
	font-weight: 600;
	white-space: nowrap;
}

.cw-app .cwo-ca-order-detail .cwo-ca-order-back {
	align-self: flex-start;
	margin-bottom: 0.35rem;
}

.cw-app .cwo-ca-order-items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.cw-app .cwo-ca-order-items li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.15rem 0.75rem;
	padding: 0.45rem 0;
	border-bottom: 1px solid var(--cw-border, #eee);
}

.cw-app .cwo-ca-order-item__opts {
	grid-column: 1 / -1;
	font-size: 0.85em;
	color: var(--cw-text-muted, #666);
}

.cw-app .cwo-ca-order-totals {
	margin: 0.75rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.cw-app .cwo-ca-order-totals > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.cw-app .cwo-ca-order-totals dt,
.cw-app .cwo-ca-order-totals dd {
	margin: 0;
}

.cw-app .cwo-ca-order-totals__grand {
	font-weight: 700;
	padding-top: 0.35rem;
	border-top: 1px solid var(--cw-border, #ddd);
}

.cw-app .cwo-ca-rewards {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.cw-app .cwo-ca-reward {
	border: 1px solid var(--cw-border, #ddd);
	border-radius: var(--cw-radius, 0.4rem);
	padding: 0.75rem 0.85rem;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.cw-app .cwo-ca-reward__head {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	align-items: baseline;
}

.cw-app .cwo-ca-reward__name {
	font-weight: 600;
}

.cw-app .cwo-ca-reward__points {
	font-weight: 700;
	white-space: nowrap;
}

.cw-app .cwo-ca-reward-breakdown {
	list-style: none;
	margin: 0;
	padding: 0.35rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	font-size: 0.9em;
}

.cw-app .cwo-ca-reward-breakdown li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.35rem 0.75rem;
}

.cw-app .cwo-ca-reward-exp {
	width: 100%;
	color: var(--cw-text-muted, #666);
	font-size: 0.92em;
}

.cw-app .cwo-ca-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--cw-border, #eee);
}

.cw-app .cwo-ca-card__default {
	font-size: 0.85em;
	color: var(--cw-text-muted, #666);
}

.cw-app .cwo-ca-success {
	color: #008a20;
	margin: 0;
}


/* —— Merchandise cards + product details (FI parity, company types 3/8) —— */
.cw-app .cw-merch-grid:not(.cw-merch-featured),
.cw-app .cw-product-list.cw-merch-grid:not(.cw-merch-featured) {
	display: grid;
	/* One full-width card on narrow phones; auto columns once ~16rem fits. */
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
	gap: 1rem;
	align-items: stretch;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
}

.cw-app .cw-product-list.cw-merch-featured,
.cw-app .cw-merch-grid.cw-merch-featured,
.cw-app .cw-category-grid.cw-merch-featured {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 0.35rem;
	scrollbar-width: thin;
	gap: 1rem;
	align-items: stretch;
	grid-template-columns: none;
}

.cw-app .cw-merch-featured .cw-merch-card,
.cw-app .cw-merch-featured .cw-catalog-card,
.cw-app .cw-merch-featured .cw-category-card {
	flex: 0 0 clamp(10.5rem, 42vw, 14rem);
	max-width: clamp(10.5rem, 42vw, 14rem);
	width: clamp(10.5rem, 42vw, 14rem);
	scroll-snap-align: start;
}

/* Phones: one full card in view; swipe/scroll for the next (same snap strip). */
@media (max-width: 680px) {
	.cw-app .cw-merch-featured .cw-merch-card,
	.cw-app .cw-merch-featured .cw-catalog-card,
	.cw-app .cw-merch-featured .cw-category-card {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
	}
}

.cw-app .cw-merch-grid:not(.cw-merch-featured) .cw-merch-card,
.cw-app .cw-merch-grid:not(.cw-merch-featured) .cw-catalog-card {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	min-width: 0;
	width: auto;
	max-width: none;
	flex: none;
}

.cw-app .cw-merch-card {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	min-width: 0;
}

.cw-app .cw-merch-card__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--cw-border, #e2e5ea);
	border-radius: var(--cw-radius, 12px);
	overflow: hidden;
	background: var(--cw-surface, #fff);
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.cw-app .cw-merch-card:hover .cw-merch-card__inner {
	border-color: var(--cw-text, #12151a);
	box-shadow: var(--cw-shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.06));
}

.cw-app .cw-merch-card__img {
	display: block;
	width: auto;
	height: 250px;
	border: 0;
	padding: 0;
	cursor: pointer;
	background-color: var(--cw-surface-alt, #f4f5f7);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

.cw-app .cw-merch-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.75rem;
	flex: 1;
}

.cw-app .cw-merch-card__name {
	font-weight: 600;
	font-size: 0.98em;
	line-height: 1.3;
	color: var(--cw-text, #12151a);
}

.cw-app .cw-merch-card__sub {
	font-size: 0.85em;
	color: var(--cw-text-muted, #5c6570);
	line-height: 1.35;
}

.cw-app .cw-merch-card__price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-top: auto;
}

.cw-app .cw-merch-card__price {
	font-weight: 700;
	white-space: nowrap;
}

.cw-app .cw-merch-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--cw-border, #e2e5ea);
	border-radius: 999px;
	overflow: hidden;
	min-height: 34px;
}

.cw-app .cw-merch-qty-btn {
	width: 2rem;
	height: 34px;
	border: 0;
	background: transparent;
	font-size: 1.1rem;
	cursor: pointer;
	color: var(--cw-text, #12151a);
}

.cw-app .cw-merch-qty-btn:hover {
	background: var(--cw-surface-alt, #e2e7ec);
}

.cw-app .cw-merch-count {
	min-width: 1.75rem;
	text-align: center;
	font-weight: 700;
	font-size: 0.9em;
}

.cw-app .cw-merch-card__actions {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-top: 0.35rem;
}

.cw-app .cw-merch-card__actions .cw-btn {
	width: 100%;
	justify-content: center;
	font-size: 0.88em;
	min-height: 2.25rem;
	padding: 0.4rem 0.6rem;
}

.cw-app .cw-pdp {
	padding: 0.25rem 0 1.5rem;
}

.cw-app .cw-pdp-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 1.5rem 2rem;
	align-items: start;
}

.cw-app .cw-pdp-gallery {
	min-width: 0;
}

.cw-app .cw-pdp-stage {
	border-radius: var(--cw-radius-lg, 16px);
	overflow: hidden;
	background: var(--cw-surface-alt, #f4f5f7);
	aspect-ratio: 1 / 1;
}

.cw-app .cw-pdp-main-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: opacity 0.15s ease;
}

.cw-app .cw-pdp-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.cw-app .cw-pdp-thumb {
	width: 64px;
	height: 64px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--cw-radius-sm, 8px);
	overflow: hidden;
	cursor: pointer;
	background: var(--cw-surface-alt, #f4f5f7);
}

.cw-app .cw-pdp-thumb.is-active,
.cw-app .cw-pdp-thumb:hover {
	border-color: var(--cw-text, #12151a);
}

.cw-app .cw-pdp-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.cw-app .cw-pdp-eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.9em;
	color: var(--cw-text-muted, #5c6570);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.cw-app .cw-pdp-title {
	margin: 0 0 0.5rem;
	font-size: 1.65rem;
	line-height: 1.2;
	font-weight: 700;
}

.cw-app .cw-pdp-price {
	font-size: 1.35rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.cw-app .cw-pdp-meta {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	font-size: 0.88em;
	color: var(--cw-text-muted, #5c6570);
}

.cw-app .cw-pdp-desc {
	font-size: 0.98em;
	line-height: 1.55;
	color: var(--cw-text, #12151a);
	margin-bottom: 1rem;
}

.cw-app .cw-pdp-desc-empty {
	color: var(--cw-text-muted, #5c6570);
	font-style: italic;
}

.cw-app .cw-pdp-options-hint {
	font-size: 0.9em;
	color: var(--cw-text-muted, #5c6570);
	margin: 0 0 1rem;
}

.cw-app .cw-pdp-options {
	margin: 0 0 1.25rem;
	padding-top: 0.25rem;
}

.cw-app .cw-pdp-options-title {
	margin: 0 0 0.65rem;
	font-size: 1.05rem;
	font-weight: 700;
}

.cw-app .cw-pdp-options-error {
	margin: 0 0 0.75rem;
	color: #b00020;
	font-size: 0.9em;
}

.cw-app .cw-pdp-options-error[hidden] {
	display: none !important;
}

.cw-app .cw-pdp-options .cwo-option-group {
	background: var(--cw-surface-alt, #f4f5f7);
}

.cw-app .cw-pdp-options .cwo-option-si {
	margin-top: 0.85rem;
}

.cw-app .cw-pdp-options .cwo-option-si textarea,
.cw-app .cw-pdp-options .cwo-option-dropdown,
.cw-app .cw-pdp-options .input_option {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.cw-app .cw-pdp-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.cw-app .cw-pdp-qty {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--cw-border, #e2e5ea);
	border-radius: var(--cw-button-radius, 999px);
	overflow: hidden;
	min-height: var(--cw-control-height, 44px);
}

.cw-app .cw-pdp-qty-btn {
	width: 2.5rem;
	height: var(--cw-control-height, 44px);
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	cursor: pointer;
	color: var(--cw-text, #12151a);
}

.cw-app .cw-pdp-count {
	min-width: 2rem;
	text-align: center;
	font-weight: 600;
}

.cw-app .cw-pdp-add {
	min-height: var(--cw-control-height, 44px);
	padding: 0 1.25rem;
}

.cw-app .cw-pdp-remove-wrap {
	text-align: left;
}

.cw-app .cw-pdp-remove-intro {
	margin: 0 0 0.75rem;
	font-size: 0.95em;
}

.cw-app .cw-pdp-remove-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cw-app .cw-pdp-remove-line {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	width: 100%;
	text-align: left;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--cw-border, #e2e5ea);
	border-radius: var(--cw-radius, 10px);
	background: var(--cw-surface, #fff);
	cursor: pointer;
	color: var(--cw-text, #12151a);
}

.cw-app .cw-pdp-remove-line:hover {
	border-color: var(--cw-text, #12151a);
}

.cw-app .cw-pdp-remove-slot {
	font-weight: 700;
	min-width: 1.75rem;
}

.cw-app .cw-pdp-remove-label {
	font-size: 0.9em;
	line-height: 1.35;
	color: var(--cw-text-muted, #5c6570);
}

.cw-app .cw-qty-prompt {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cw-app .cwo-option-dropdown-wrap select.cwo-option-dropdown {
	width: 100%;
	min-height: var(--cw-control-height, 44px);
	padding: 0.45rem 0.65rem;
	border: 1px solid var(--cw-input-border, #cfd5dd);
	border-radius: var(--cw-radius-sm, 8px);
	background: var(--cw-input-bg, #fff);
	color: var(--cw-input-text, #12151a);
}

@media (max-width: 720px) {
	.cw-app .cw-pdp-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

/* Showcase / catalog mode (no cart) */
.cw-app.cw-app--catalog .cw-cart,
.cw-app.cw-app--no-cart .cw-cart,
.cw-app.cw-app--catalog .cw-mobile-cart-bar,
.cw-app.cw-app--no-cart .cw-mobile-cart-bar,
.cw-app.cw-app--catalog .cw-cart-chip,
.cw-app.cw-app--no-cart .cw-cart-chip {
	display: none !important;
}

.cw-app.cw-app--catalog .cw-body {
	grid-template-columns: 1fr;
}

.cw-app .cw-catalog-hint {
	font-size: 0.92em;
	color: var(--cw-text-muted, #5c6570);
}

/* Standalone [cwo_search_box] — TSG-style pill search (works outside .cw-app) */
.cwo-search-box {
	height: 42px;
	border: 1px solid #c7d3e2;
	border-radius: 25px;
	display: flex;
	align-items: center;
	background: #fafbfc;
	max-width: 810px;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.cwo-search-box .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;
}

.cwo-search-box button {
	background: none;
	border: 0;
	padding: 0 12px 0 15px;
	color: #102640;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.cwo-search-box svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cwo-search-box input[type="search"] {
	width: 100%;
	height: 100%;
	border: 0;
	background: transparent;
	outline: 0;
	font-size: 13px;
	color: #183a5c;
	padding-right: 16px;
	min-width: 0;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.cwo-search-box input[type="search"]::-webkit-search-decoration,
.cwo-search-box input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

.cwo-search-box:focus-within {
	outline: 2px solid #3d81bd;
}

.cwo-search-box input::placeholder {
	color: #53677e;
	opacity: 1;
}

.cwo-search-box-error {
	color: #b00020;
	margin: 0.5rem 0;
}

@media (max-width: 680px) {
	.cwo-search-box {
		height: 39px;
	}

	.cwo-search-box input[type="search"] {
		font-size: 12px;
	}

	.cwo-search-box button {
		padding-left: 11px;
		padding-right: 6px;
	}

	.cwo-search-box svg {
		width: 19px;
		height: 19px;
	}
}
