/**
 * EWA Smart Cart — Премиум Изолирана CSS Дизайн Система v1.2.0
 *
 * Всички селектори са строго изолирани под .ewa-sc-*
 */

:root {
	--ewa-sc-primary: #0f172a;
	--ewa-sc-primary-hover: #1e293b;
	--ewa-sc-accent: #10b981;
	--ewa-sc-accent-hover: #059669;
	--ewa-sc-bg: #ffffff;
	--ewa-sc-surface: #f8fafc;
	--ewa-sc-surface-alt: #f1f5f9;
	--ewa-sc-border: #e2e8f0;
	--ewa-sc-text: #0f172a;
	--ewa-sc-text-muted: #64748b;
	--ewa-sc-radius: 12px;
	--ewa-sc-drawer-width: 440px;
	--ewa-sc-modal-width: 480px;
	--ewa-sc-transition-duration: 320ms;
	--ewa-sc-transition: var(--ewa-sc-transition-duration, 320ms) cubic-bezier(0.16, 1, 0.3, 1);
	--ewa-sc-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	--ewa-sc-backdrop-color: #0f172a;
	--ewa-sc-backdrop-opacity: 0.32;
	--ewa-sc-backdrop-blur: 2px;
	--ewa-sc-zindex: 9999999;
}

/* 1. Главна обвивка и Backdrop */
.ewa-sc-root {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: var(--ewa-sc-zindex);
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: visibility 0s var(--ewa-sc-transition-duration, 0.32s), opacity var(--ewa-sc-transition);
	box-sizing: border-box;
	font-family: var(--ewa-sc-font-family, inherit);
	-webkit-font-smoothing: antialiased;
}

.ewa-sc-root *,
.ewa-sc-root *::before,
.ewa-sc-root *::after {
	box-sizing: border-box;
}

.ewa-sc-root :focus-visible {
	outline: 3px solid color-mix(in srgb, var(--ewa-sc-accent) 75%, #000);
	outline-offset: 2px;
}

.ewa-sc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	line-height: 1;
}

.ewa-sc-icon svg,
.ewa-sc-icon img {
	display: block;
	width: 100%;
	height: 100%;
}

.ewa-sc-icon img {
	object-fit: contain;
}

.ewa-sc-root.is-active {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition: opacity var(--ewa-sc-transition);
}

.ewa-sc-backdrop {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--ewa-sc-backdrop-color);
	backdrop-filter: blur(var(--ewa-sc-backdrop-blur));
	-webkit-backdrop-filter: blur(var(--ewa-sc-backdrop-blur));
	opacity: 0;
	transition: opacity var(--ewa-sc-transition);
	cursor: pointer;
}

.ewa-sc-root.is-active .ewa-sc-backdrop {
	opacity: var(--ewa-sc-backdrop-opacity);
}

/* 2. Контейнер на количката */
.ewa-sc-container {
	position: relative;
	background: var(--ewa-sc-bg);
	color: var(--ewa-sc-text);
	display: flex;
	flex-direction: column;
	max-height: 100vh;
	height: 100%;
	overflow: hidden;
	box-shadow: var(--ewa-sc-shadow);
	transition: transform var(--ewa-sc-transition), opacity var(--ewa-sc-transition);
	outline: none;
	will-change: transform;
}

.ewa-sc-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: thin;
	scrollbar-color: #cbd5e1 transparent;
}

.ewa-sc-inner::-webkit-scrollbar {
	width: 5px;
}
.ewa-sc-inner::-webkit-scrollbar-thumb {
	background: #cbd5e1;
	border-radius: 4px;
}


/* Flow Component Contract 1.2 — adjacent desktop recommendations region. */
.ewa-sc-secondary-panel[hidden] {
	display: none !important;
}

.ewa-sc-secondary-panel {
	display: none;
	min-width: 0;
	height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	background: var(--ewa-sc-surface, var(--ewa-sc-bg));
	scrollbar-width: thin;
	scrollbar-color: #cbd5e1 transparent;
}

.ewa-sc-secondary-panel::-webkit-scrollbar { width: 5px; }
.ewa-sc-secondary-panel::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

@media (min-width: 1025px) {
	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-right-drawer .ewa-sc-container,
	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-left-drawer .ewa-sc-container {
		width: calc(var(--ewa-sc-drawer-width) + var(--ewa-sc-secondary-width, 360px));
		max-width: 100vw;
		flex-direction: row;
	}

	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-right-drawer .ewa-sc-inner,
	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-left-drawer .ewa-sc-inner {
		flex: 0 0 var(--ewa-sc-drawer-width);
		width: var(--ewa-sc-drawer-width);
		max-width: 100%;
		min-width: 0;
	}

	.ewa-sc-root.has-secondary-recommendations .ewa-sc-secondary-panel {
		display: block;
		flex: 1 1 var(--ewa-sc-secondary-width, 360px);
		width: var(--ewa-sc-secondary-width, 360px);
		max-width: var(--ewa-sc-secondary-width, 360px);
	}

	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-right-drawer .ewa-sc-secondary-panel {
		order: 1;
		border-right: 1px solid var(--ewa-sc-border);
	}
	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-right-drawer .ewa-sc-inner { order: 2; }

	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-left-drawer .ewa-sc-inner { order: 1; }
	.ewa-sc-root.has-secondary-recommendations.ewa-sc-mode-left-drawer .ewa-sc-secondary-panel {
		order: 2;
		border-left: 1px solid var(--ewa-sc-border);
	}

	.ewa-sc-secondary-panel .ewa-sc-component--recommendations {
		height: auto;
		min-height: 100%;
	}
}

/* Режими на представяне */

/* Right Drawer */
.ewa-sc-mode-right-drawer .ewa-sc-container {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	max-width: var(--ewa-sc-drawer-width);
	transform: translateX(100%);
}
.ewa-sc-root.is-active.ewa-sc-mode-right-drawer .ewa-sc-container {
	transform: translateX(0);
}

/* Left Drawer */
.ewa-sc-mode-left-drawer .ewa-sc-container {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 100%;
	max-width: var(--ewa-sc-drawer-width);
	transform: translateX(-100%);
}
.ewa-sc-root.is-active.ewa-sc-mode-left-drawer .ewa-sc-container {
	transform: translateX(0);
}

/* Center Modal */
.ewa-sc-mode-modal {
	display: flex;
	align-items: center;
	justify-content: center;
}
.ewa-sc-mode-modal .ewa-sc-container {
	width: 92%;
	max-width: var(--ewa-sc-modal-width);
	height: auto;
	max-height: 88vh;
	border-radius: var(--ewa-sc-radius);
	transform: scale(0.95) translateY(10px);
	opacity: 0;
}
.ewa-sc-root.is-active.ewa-sc-mode-modal .ewa-sc-container {
	transform: scale(1) translateY(0);
	opacity: 1;
}

/* Mobile Bottom Sheet */
.ewa-sc-mode-bottom-sheet .ewa-sc-container {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: auto;
	max-height: 85vh;
	border-radius: var(--ewa-sc-radius) var(--ewa-sc-radius) 0 0;
	transform: translateY(100%);
}
.ewa-sc-root.is-active.ewa-sc-mode-bottom-sheet .ewa-sc-container {
	transform: translateY(0);
}

/* Fullscreen */
.ewa-sc-mode-fullscreen .ewa-sc-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	transform: scale(0.98);
	opacity: 0;
}
.ewa-sc-root.is-active.ewa-sc-mode-fullscreen .ewa-sc-container {
	transform: scale(1);
	opacity: 1;
}

/* 3. Header Component */
.ewa-sc-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--ewa-sc-border);
	background: var(--ewa-sc-bg);
	position: relative;
}

.ewa-sc-header.is-sticky {
	position: sticky;
	top: 0;
	z-index: 10;
}

.ewa-sc-header-left {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ewa-sc-header-icon {
	color: var(--ewa-sc-primary);
}

.ewa-sc-header-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--ewa-sc-text);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ewa-sc-count-badge {
	background: var(--ewa-sc-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 7px;
	border-radius: 999px;
	min-width: 20px;
	text-align: center;
	line-height: 1.3;
}

.ewa-sc-close-btn {
	background: rgba(0, 0, 0, 0.05) !important;
	border: 1px solid rgba(0, 0, 0, 0.08) !important;
	color: #475569 !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
	outline: none !important;
	transition: all 0.2s ease !important;
	box-shadow: none !important;
}

.ewa-sc-close-btn svg {
	width: 18px !important;
	height: 18px !important;
	display: block !important;
	stroke: #475569 !important;
	stroke-width: 2.5px !important;
	fill: none !important;
	pointer-events: none !important;
}

.ewa-sc-close-btn:hover {
	background: #fee2e2 !important;
	border-color: #fca5a5 !important;
	color: #dc2626 !important;
	transform: rotate(90deg) !important;
}

.ewa-sc-close-btn:hover svg {
	stroke: #dc2626 !important;
}

/* 4. Rating Bar */
.ewa-sc-rating-bar {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	background: #fffdf5;
	border-bottom: 1px solid #fef3c7;
	font-size: 12px;
	font-weight: 600;
	color: #78350f;
}

.ewa-sc-rating-bar.align-center { justify-content: center; }
.ewa-sc-rating-bar.align-left   { justify-content: flex-start; }
.ewa-sc-rating-bar.align-right  { justify-content: flex-end; }

.ewa-sc-stars {
	color: #f59e0b;
	letter-spacing: 1px;
	font-size: 13px;
}

/* 5. Countdown Urgency Bar */
.ewa-sc-countdown-bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 16px;
	font-size: 13px;
	font-weight: 600;
	border-bottom: 1px solid rgba(0,0,0,0.05);
}

.ewa-sc-countdown-text {
	letter-spacing: 0.3px;
}

.ewa-sc-countdown-extend,
.ewa-sc-link-button {
	border: 0;
	background: transparent;
	color: currentColor;
	text-decoration: underline;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.ewa-sc-inline-notice {
	margin: 10px 16px 0;
	padding: 10px 12px;
	border-radius: 6px;
	font-size: 13px;
	background: #eff6ff;
	color: #1e40af;
}

.ewa-sc-inline-notice.is-success {
	background: #ecfdf5;
	color: #065f46;
}

.ewa-sc-inline-notice.is-error {
	background: #fef2f2;
	color: #991b1b;
}

.ewa-sc-applied-coupons {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

.ewa-sc-applied-coupon {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 8px;
	border-radius: 999px;
	background: #ecfdf5;
	color: #065f46;
	font-size: 12px;
}

.ewa-sc-applied-coupon button {
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
}

/* 6. Free Shipping Bar */
.ewa-sc-shipping-bar {
	padding: 12px 20px;
	background: var(--ewa-sc-surface);
	border-bottom: 1px solid var(--ewa-sc-border);
}

.ewa-sc-shipping-message {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 13px;
	color: var(--ewa-sc-text);
	margin-bottom: 8px;
	text-align: center;
}

.ewa-sc-shipping-progress-track {
	height: 7px;
	background: #e2e8f0;
	border-radius: 999px;
	overflow: hidden;
	position: relative;
}

.ewa-sc-shipping-progress-fill {
	height: 100%;
	border-radius: 999px;
	transition: width 0.4s ease;
}

/* 7. Product List & Items */
.ewa-sc-products-list {
	padding: 16px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
}

.ewa-sc-products-list.layout-compact {
	padding-top: 10px;
	padding-bottom: 10px;
	gap: 8px;
}

.ewa-sc-product-item {
	display: flex;
	gap: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ewa-sc-border);
	align-items: center;
	transition: opacity 0.2s ease;
}

.ewa-sc-product-item.is-pending-remove {
	opacity: 0.4;
	pointer-events: none;
}

.ewa-sc-product-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.ewa-sc-product-img-wrap {
	width: var(--ewa-sc-product-image-size, 64px);
	height: var(--ewa-sc-product-image-size, 64px);
	flex-shrink: 0;
	border-radius: var(--ewa-sc-radius);
	overflow: hidden;
	border: 1px solid var(--ewa-sc-border);
	background: #fff;
}

.ewa-sc-products-list.layout-compact .ewa-sc-product-item {
	gap: 10px;
	padding-bottom: 8px;
}

.ewa-sc-product-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ewa-sc-product-details {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ewa-sc-product-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
}

.ewa-sc-product-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--ewa-sc-text);
	text-decoration: none;
	line-height: 1.3;
}

.ewa-sc-product-name:hover {
	color: var(--ewa-sc-accent);
}

.ewa-sc-product-variation {
	font-size: 11px;
	color: var(--ewa-sc-text-muted);
}

.ewa-sc-product-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 4px;
}

.ewa-sc-product-price {
	font-size: 14px;
	font-weight: 700;
	color: var(--ewa-sc-text);
}

.ewa-sc-qty-control {
	display: inline-flex;
	align-items: center;
	background: var(--ewa-sc-surface-alt);
	border: 1px solid var(--ewa-sc-border);
	border-radius: 20px;
	padding: 2px 6px;
	gap: 8px;
}

.ewa-sc-qty-static {
	font-size: 13px;
	font-weight: 700;
	color: var(--ewa-sc-text-muted);
	padding: 2px 8px;
}

.ewa-sc-qty-btn {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	color: var(--ewa-sc-text);
	width: 28px;
	height: 28px;
	min-width: 28px;
	min-height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background 0.15s ease;
	padding: 0;
}

.ewa-sc-qty-btn:hover:not(:disabled) {
	background: #e2e8f0;
}

.ewa-sc-qty-btn:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

.ewa-sc-qty-value {
	font-size: 13px;
	font-weight: 700;
	min-width: 16px;
	text-align: center;
}

.ewa-sc-remove-btn {
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	color: #94a3b8 !important;
	padding: 6px !important;
	min-width: 28px !important;
	min-height: 28px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 4px !important;
	transition: all 0.15s ease !important;
	box-shadow: none !important;
}

.ewa-sc-remove-btn svg {
	width: 16px !important;
	height: 16px !important;
	display: block !important;
	stroke: currentColor !important;
	stroke-width: 2px !important;
	fill: none !important;
	pointer-events: none !important;
}

.ewa-sc-remove-btn:hover:not(:disabled) {
	color: #ef4444 !important;
	background: #fee2e2 !important;
}

.ewa-sc-remove-btn:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

/* Undo Bar */
.ewa-sc-undo-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 600;
}

.ewa-sc-undo-btn {
	background: var(--ewa-sc-accent, #10b981);
	color: #fff;
	border: none;
	padding: 4px 10px;
	border-radius: 6px;
	font-weight: 700;
	cursor: pointer;
	font-size: 11px;
}

.ewa-sc-undo-btn:hover {
	background: var(--ewa-sc-accent-hover, #059669);
}

/* 8. Recommendations Component */
.ewa-sc-recommendations {
	background: var(--ewa-sc-surface, #f8fafc);
	border-top: 1px solid var(--ewa-sc-border, #e2e8f0);
	padding: 14px 18px;
}

.ewa-sc-rec-heading {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ewa-sc-text, #0f172a);
	margin: 0 0 10px;
}

.ewa-sc-rec-items {
	display: flex;
	flex-direction: column;
	gap: var(--ewa-sc-rec-gap, 8px);
}

/* List Layout */
.ewa-sc-rec-items.layout-list,
.ewa-sc-rec-items.layout-horizontal {
	flex-direction: column;
}

.ewa-sc-rec-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--ewa-sc-border, #e2e8f0);
	border-radius: var(--ewa-sc-radius, 8px);
	padding: 8px 10px;
	transition: all 0.15s ease;
}

.ewa-sc-rec-item:hover {
	border-color: #cbd5e1;
	box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.ewa-sc-rec-item.is-upsell {
	border-color: #fef08a;
	background: #fefce8;
}

.ewa-sc-rec-img-wrap {
	width: var(--ewa-sc-rec-image-size, 40px);
	height: var(--ewa-sc-rec-image-size, 40px);
	flex-shrink: 0;
	border-radius: 6px;
	overflow: hidden;
	border: 1px solid var(--ewa-sc-border, #e2e8f0);
	background: #fff;
}

.ewa-sc-rec-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ewa-sc-rec-details {
	flex: 1;
	min-width: 0;
}

.ewa-sc-rec-title {
	font-size: 12px;
	font-weight: 600;
	color: var(--ewa-sc-text, #0f172a);
	margin: 0 0 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ewa-sc-rec-price {
	font-size: 11px;
	font-weight: 700;
	color: var(--ewa-sc-primary, #0f172a);
}

.ewa-sc-badge-rec {
	font-size: 9px;
	font-weight: 700;
	color: #065f46;
	background: #d1fae5;
	padding: 1px 5px;
	border-radius: 4px;
	display: inline-block;
	margin-bottom: 2px;
}

.ewa-sc-badge-rec.is-upsell {
	color: #854d0e;
	background: #fef9c3;
}

/* Compact Layout */
.ewa-sc-rec-items.layout-compact {
	flex-direction: column;
	gap: 6px;
}

.ewa-sc-rec-item.is-compact {
	padding: 6px 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	border-radius: 6px;
}

.ewa-sc-rec-compact-left {
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ewa-sc-rec-compact-title {
	font-size: 11px;
	font-weight: 600;
	color: var(--ewa-sc-text, #0f172a);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ewa-sc-rec-compact-price {
	font-size: 11px;
	font-weight: 700;
	color: var(--ewa-sc-primary, #0f172a);
	flex-shrink: 0;
}

/* Grid Layout */
.ewa-sc-rec-items.layout-grid,
.ewa-sc-rec-items.layout-card {
	display: grid;
	grid-template-columns: repeat(var(--ewa-sc-rec-columns, 1), minmax(0, 1fr));
	gap: var(--ewa-sc-rec-gap, 8px);
}

.ewa-sc-rec-items.layout-horizontal_scroll {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(220px, calc((100% - (var(--ewa-sc-rec-columns, 1) - 1) * var(--ewa-sc-rec-gap, 8px)) / var(--ewa-sc-rec-columns, 1)));
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: inline mandatory;
	padding-bottom: 4px;
}

.ewa-sc-rec-items.layout-horizontal_scroll .ewa-sc-rec-item {
	scroll-snap-align: start;
}

.ewa-sc-rec-item.is-card {
	flex-direction: column;
	text-align: center;
	align-items: center;
	padding: 12px 10px;
	gap: 8px;
}

.ewa-sc-rec-img-wrap.is-card-img {
	width: 52px;
	height: 52px;
}

.ewa-sc-rec-details.is-card-details {
	width: 100%;
}

.ewa-sc-btn-offer {
	background: var(--ewa-sc-primary, #0f172a) !important;
	color: #fff !important;
	border: none !important;
	padding: 6px 12px !important;
	border-radius: 6px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
	line-height: 1.2 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
	transition: opacity 0.15s ease, transform 0.1s ease !important;
}

.ewa-sc-btn-offer:hover:not(:disabled) {
	opacity: 0.9 !important;
}

.ewa-sc-btn-offer.is-compact-btn {
	padding: 4px 8px !important;
	font-size: 10px !important;
}

.ewa-sc-btn-offer.is-card-btn {
	width: 100% !important;
	padding: 7px 10px !important;
}

.ewa-sc-btn-offer:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}

/* 8.1 Coupon Component */
.ewa-sc-coupon-box {
	padding: 10px 18px;
	border-top: 1px solid var(--ewa-sc-border, #e2e8f0);
}

.ewa-sc-coupon-summary {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	background: transparent !important;
	border: none !important;
	padding: 6px 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--ewa-sc-text-muted, #64748b) !important;
	cursor: pointer !important;
	text-align: left !important;
	box-shadow: none !important;
	transition: color 0.15s ease !important;
}

.ewa-sc-coupon-summary:hover {
	color: var(--ewa-sc-primary, #0f172a) !important;
}

.ewa-sc-coupon-arrow {
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.ewa-sc-coupon-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ewa-sc-coupon-form {
	display: flex;
	gap: 8px;
	align-items: center;
	margin-top: 6px;
}

.ewa-sc-coupon-box:not(.is-collapsible) .ewa-sc-coupon-form {
	margin-top: 0;
}

.ewa-sc-coupon-input {
	flex: 1 !important;
	min-width: 0 !important;
	padding: 7px 12px !important;
	border: 1px solid var(--ewa-sc-border, #cbd5e1) !important;
	border-radius: var(--ewa-sc-radius, 8px) !important;
	font-size: 12px !important;
	background: #fff !important;
	color: var(--ewa-sc-text, #0f172a) !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.15s ease !important;
}

.ewa-sc-coupon-input:focus {
	border-color: var(--ewa-sc-primary, #0f172a) !important;
}

.ewa-sc-coupon-btn {
	background: var(--ewa-sc-primary, #0f172a) !important;
	color: #fff !important;
	border: none !important;
	padding: 7px 14px !important;
	border-radius: var(--ewa-sc-radius, 8px) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
	line-height: 1.2 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: opacity 0.15s ease !important;
}

.ewa-sc-coupon-btn:hover:not(:disabled) {
	opacity: 0.9 !important;
}

.ewa-sc-coupon-btn:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}

/* 9. Totals & Checkout Footer */
.ewa-sc-totals-container {
	padding: 14px 20px;
	border-top: 1px solid var(--ewa-sc-border);
	background: var(--ewa-sc-bg);
}

.ewa-sc-totals-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
	color: var(--ewa-sc-text-muted);
	margin-bottom: 6px;
}

.ewa-sc-totals-row.is-total {
	font-size: 16px;
	font-weight: 800;
	color: var(--ewa-sc-text);
	margin-top: 8px;
	margin-bottom: 0;
	padding-top: 8px;
	border-top: 1px dashed var(--ewa-sc-border);
}

.ewa-sc-total-amount {
	color: var(--ewa-sc-primary);
	font-size: 18px;
}

.ewa-sc-coupon-box {
	padding: 0 20px 12px;
	background: var(--ewa-sc-bg);
}

.ewa-sc-coupon-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	font-size: 12px;
	font-weight: 600;
	color: var(--ewa-sc-text-muted);
	cursor: pointer;
	user-select: none;
	background: none;
	border: none;
	padding: 4px 0;
	text-align: left;
	gap: 6px;
	transition: color 0.15s ease;
}

.ewa-sc-coupon-summary:hover {
	color: var(--ewa-sc-text);
}

.ewa-sc-coupon-arrow {
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.ewa-sc-coupon-form {
	display: flex;
	gap: 6px;
	margin-top: 8px;
}

.ewa-sc-coupon-input {
	flex: 1;
	padding: 6px 10px;
	border: 1px solid var(--ewa-sc-border);
	border-radius: 6px;
	font-size: 13px;
	background: var(--ewa-sc-bg);
	color: var(--ewa-sc-text);
	transition: border-color 0.2s ease;
}

.ewa-sc-coupon-input.ewa-sc-input-error {
	border-color: #ef4444;
	box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.15);
}

.ewa-sc-coupon-btn {
	background: var(--ewa-sc-surface-alt);
	border: 1px solid var(--ewa-sc-border);
	padding: 6px 12px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	color: var(--ewa-sc-text);
	transition: background 0.15s ease;
}

.ewa-sc-coupon-btn:hover:not(:disabled) {
	background: var(--ewa-sc-border);
}

.ewa-sc-coupon-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.ewa-sc-trust-box {
	padding: 0 20px 10px;
	display: flex;
	flex-direction: column;
	gap: var(--ewa-sc-trust-gap, 8px);
	background: var(--ewa-sc-bg);
}

.ewa-sc-trust-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	color: inherit;
}

.ewa-sc-trust-box.layout-row,
.ewa-sc-trust-box.layout-inline {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

.ewa-sc-trust-box.layout-row .ewa-sc-trust-item,
.ewa-sc-trust-box.layout-inline .ewa-sc-trust-item {
	width: auto;
}

.ewa-sc-trust-box.layout-grid {
	display: grid;
	grid-template-columns: repeat(var(--ewa-sc-trust-columns, 2), minmax(0, 1fr));
}

.ewa-sc-checkout-section:not(.is-full-width) .ewa-sc-checkout-btn {
	width: auto;
	align-self: center;
}

/* Sticky Conversion Footer */
.ewa-sc-sticky-footer {
	position: sticky;
	bottom: 0;
	z-index: 10;
	background: var(--ewa-sc-bg);
	border-top: 1px solid var(--ewa-sc-border);
	box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05);
}

.ewa-sc-checkout-section {
	padding: 12px 20px 16px;
	background: var(--ewa-sc-bg);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ewa-sc-checkout-btn,
.ewa-sc-btn-primary {
	background: var(--ewa-sc-primary, #0f172a);
	color: #fff;
	text-decoration: none;
	padding: 14px 20px;
	border-radius: var(--ewa-sc-radius);
	font-size: 15px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
	transition: all 0.2s ease;
	border: none;
}

.ewa-sc-checkout-btn:hover,
.ewa-sc-btn-primary:hover {
	opacity: 0.92;
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.3);
	color: #fff;
}

.ewa-sc-continue-btn {
	background: none;
	border: none;
	color: var(--ewa-sc-text-muted);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	padding: 6px;
	display: block;
	transition: color 0.15s ease;
}

.ewa-sc-continue-btn:hover {
	color: var(--ewa-sc-text);
}

/* 10. Payment & Delivery Badges */
.ewa-sc-payment-badges {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0 20px 14px;
	background: var(--ewa-sc-bg);
}

.ewa-sc-payment-badges.align-center { justify-content: center; }
.ewa-sc-payment-badges.align-left   { justify-content: flex-start; }
.ewa-sc-payment-badges.align-right  { justify-content: flex-end; }

@media (max-width: 782px) {
	.ewa-sc-product-img-wrap {
		width: var(--ewa-sc-product-image-size-mobile, 52px);
		height: var(--ewa-sc-product-image-size-mobile, 52px);
	}

	.ewa-sc-rec-items.layout-grid,
	.ewa-sc-rec-items.layout-card {
		grid-template-columns: repeat(var(--ewa-sc-rec-mobile-columns, 1), minmax(0, 1fr));
	}

	.ewa-sc-rec-items.layout-horizontal_scroll {
		grid-auto-columns: minmax(200px, calc((100% - (var(--ewa-sc-rec-mobile-columns, 1) - 1) * var(--ewa-sc-rec-gap, 8px)) / var(--ewa-sc-rec-mobile-columns, 1)));
	}

	.ewa-sc-trust-box.mobile-stack {
		display: flex;
		flex-direction: column;
	}

	.ewa-sc-trust-box.mobile-inline {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.ewa-sc-payment-badges.mobile-align-left { justify-content: flex-start; }
	.ewa-sc-payment-badges.mobile-align-center { justify-content: center; }
	.ewa-sc-payment-badges.mobile-align-right { justify-content: flex-end; }
}

.ewa-sc-pay-pill {
	font-size: 10px;
	font-weight: 700;
	color: #475569;
	background: var(--ewa-sc-surface-alt);
	border: 1px solid var(--ewa-sc-border);
	padding: 2px 8px;
	border-radius: 4px;
	letter-spacing: 0.2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.ewa-sc-pay-pill.has-svg {
	padding: 1px 2px;
	background: #fff;
	line-height: 0;
}

.ewa-sc-pay-pill.has-svg svg {
	display: block;
	border-radius: 3px;
}

.ewa-sc-payment-badges.is-grayscale .ewa-sc-pay-pill svg,
.ewa-sc-payment-badges.is-grayscale .ewa-sc-pay-pill img {
	filter: grayscale(100%);
	opacity: 0.75;
}

/* 11. Empty State */
.ewa-sc-empty-state {
	padding: 40px 20px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
}

.ewa-sc-status-state {
	min-height: 320px;
	padding: 48px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
}

.ewa-sc-status-state h2,
.ewa-sc-status-state p {
	margin: 0;
}

.ewa-sc-status-state.is-error h2 {
	color: #b91c1c;
}

.ewa-sc-status-spinner {
	width: 28px;
	height: 28px;
	border: 3px solid var(--ewa-sc-border);
	border-top-color: var(--ewa-sc-primary);
	border-radius: 50%;
	animation: ewa-sc-spin 0.8s linear infinite;
}

@keyframes ewa-sc-spin {
	to { transform: rotate(360deg); }
}

.ewa-sc-shipping-bar.is-pending {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	color: var(--ewa-sc-text-muted);
	font-size: 13px;
}

.ewa-sc-empty-icon {
	margin-bottom: 12px;
}

.ewa-sc-empty-title {
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--ewa-sc-text);
}

.ewa-sc-empty-desc {
	font-size: 13px;
	color: var(--ewa-sc-text-muted);
	margin: 0 0 16px;
}

/* 12. Shortcode Trigger Buttons */
.ewa-sc-trigger,
.ewa-sc-theme-trigger-styled {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: var(--ewa-sc-primary);
	color: #fff;
	text-decoration: none;
	border-radius: var(--ewa-sc-radius);
	font-size: 14px;
	font-weight: 600;
	transition: background 0.15s ease;
	cursor: pointer;
}

.ewa-sc-trigger:hover,
.ewa-sc-theme-trigger-styled:hover {
	background: var(--ewa-sc-primary-hover);
	color: #fff;
}

.ewa-sc-trigger-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.ewa-sc-trigger-icon svg,
.ewa-sc-trigger-icon img {
	display: block;
	width: 18px;
	height: 18px;
	max-width: none;
	object-fit: contain;
}

.ewa-sc-trigger-text,
.ewa-sc-trigger-total {
	display: inline-block;
	white-space: nowrap;
}

.ewa-sc-cart-count {
	background: var(--ewa-sc-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 1px 6px;
	border-radius: 999px;
}

/* 13. Accessibility Utilities & Reduced Motion */
.ewa-sc-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
	.ewa-sc-root,
	.ewa-sc-container,
	.ewa-sc-backdrop,
	.ewa-sc-shipping-progress-fill,
	.ewa-sc-close-btn,
	.ewa-sc-btn-offer,
	.ewa-sc-checkout-btn,
	.ewa-sc-btn-primary,
	.ewa-sc-coupon-arrow {
		transition: none !important;
		animation: none !important;
		transform: none !important;
	}
}

/* BGCS Flow Component Contract 1.1 --------------------------------------- */
.ewa-sc-component{display:contents}

/* Essential: quiet, utility-first, clear hierarchy. */
.ewa-sc-component--shipping.ewa-sc-variant--essential .ewa-sc-shipping-bar{padding:14px 18px;background:var(--ewa-sc-surface-alt)}
.ewa-sc-component--recommendations.ewa-sc-variant--essential .ewa-sc-recommendations{padding:16px 18px;background:var(--ewa-sc-bg)}
.ewa-sc-component--checkout.ewa-sc-variant--essential .ewa-sc-checkout-btn{font-weight:750;letter-spacing:.01em}

/* Conversion: stronger progress, merchandising and CTA emphasis. */
.ewa-sc-component--shipping.ewa-sc-variant--conversion .ewa-sc-shipping-bar{margin:10px 14px 0;padding:14px;border:1px solid color-mix(in srgb,var(--ewa-sc-primary) 18%,var(--ewa-sc-border));border-radius:var(--ewa-sc-radius);background:color-mix(in srgb,var(--ewa-sc-primary) 7%,var(--ewa-sc-surface))}
.ewa-sc-component--shipping.ewa-sc-variant--conversion .ewa-sc-shipping-progress-track{height:7px}
.ewa-sc-component--recommendations.ewa-sc-variant--conversion .ewa-sc-recommendations{padding:18px;background:var(--ewa-sc-surface-alt)}
.ewa-sc-component--recommendations.ewa-sc-variant--conversion .ewa-sc-rec-heading{font-size:15px;font-weight:800}
.ewa-sc-component--totals.ewa-sc-variant--conversion .ewa-sc-totals-row.is-total{font-size:18px}
.ewa-sc-component--checkout.ewa-sc-variant--conversion .ewa-sc-checkout-btn{min-height:56px;font-size:15px;font-weight:800;box-shadow:0 10px 24px color-mix(in srgb,var(--ewa-sc-primary) 20%,transparent)}
.ewa-sc-component--trust.ewa-sc-variant--conversion .ewa-sc-trust-box{background:var(--ewa-sc-surface-alt)}

/* Atelier: editorial spacing, restrained surfaces and larger imagery. */
.ewa-sc-component--header.ewa-sc-variant--atelier .ewa-sc-header{padding-top:22px;padding-bottom:18px;border-bottom:0}
.ewa-sc-component--header.ewa-sc-variant--atelier .ewa-sc-header-title{font-size:18px;font-weight:600;letter-spacing:.025em}
.ewa-sc-component--products.ewa-sc-variant--atelier .ewa-sc-product-item{padding-top:18px;padding-bottom:18px}
.ewa-sc-component--products.ewa-sc-variant--atelier .ewa-sc-product-img-wrap{border-radius:2px}
.ewa-sc-component--shipping.ewa-sc-variant--atelier .ewa-sc-shipping-bar{padding:16px 20px;background:transparent;border-top:1px solid var(--ewa-sc-border);border-bottom:1px solid var(--ewa-sc-border)}
.ewa-sc-component--recommendations.ewa-sc-variant--atelier .ewa-sc-recommendations{padding:20px;background:transparent}
.ewa-sc-component--recommendations.ewa-sc-variant--atelier .ewa-sc-rec-item{border-radius:2px;box-shadow:none}
.ewa-sc-component--coupon.ewa-sc-variant--atelier .ewa-sc-coupon-summary{text-transform:uppercase;letter-spacing:.08em;font-size:11px}
.ewa-sc-component--totals.ewa-sc-variant--atelier .ewa-sc-totals-container{padding-top:20px;padding-bottom:16px}
.ewa-sc-component--checkout.ewa-sc-variant--atelier .ewa-sc-checkout-btn{min-height:56px;border-radius:2px;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.ewa-sc-component--payment_badges.ewa-sc-variant--atelier .ewa-sc-pay-pill{border-radius:2px;background:transparent}

/* Contract 1.3: Cart Timer + Campaign Banner. Structural defaults only; templates own presentation. */
.ewa-sc-component--cart_timer {
  --ewa-sc-timer-bg: var(--ewa-sc-surface-alt, #f6f7f8);
  --ewa-sc-timer-color: var(--ewa-sc-text, #111);
  --ewa-sc-timer-border: var(--ewa-sc-border, rgba(17,17,17,.12));
}
.ewa-sc-cart-timer { display:flex;align-items:center;gap:.55rem;padding:.75rem .9rem;border:1px solid var(--ewa-sc-timer-border);border-radius:var(--ewa-sc-radius,12px);background:var(--ewa-sc-timer-bg);color:var(--ewa-sc-timer-color); }
.ewa-sc-cart-timer__icon { display:inline-flex;flex:0 0 auto; }
.ewa-sc-cart-timer__value { margin-inline-start:auto;font-variant-numeric:tabular-nums;white-space:nowrap; }
.ewa-sc-cart-timer.is-expired .ewa-sc-cart-timer__expired { display:inline; }
.ewa-sc-component--campaign_banner {
  --ewa-sc-campaign-bg: var(--ewa-sc-surface-alt, #f6f7f8);
  --ewa-sc-campaign-border: var(--ewa-sc-border, rgba(17,17,17,.12));
  --ewa-sc-campaign-gap: 12px;
}
.ewa-sc-campaign { display:grid;gap:var(--ewa-sc-campaign-gap);padding:14px;border:1px solid var(--ewa-sc-campaign-border);border-radius:var(--ewa-sc-radius,12px);background:var(--ewa-sc-campaign-bg); }
.ewa-sc-campaign__visual img { display:block;max-width:100%;height:auto;border-radius:inherit; }
.ewa-sc-campaign__header,.ewa-sc-campaign__content,.ewa-sc-campaign__product-content { display:grid;gap:6px; }
.ewa-sc-campaign__badge { width:max-content;max-width:100%;font-size:.75rem;font-weight:700; }
.ewa-sc-campaign__title,.ewa-sc-campaign__product-title,.ewa-sc-campaign__text,.ewa-sc-campaign__promotional-text { margin:0; }
.ewa-sc-campaign__product { display:grid;grid-template-columns:minmax(64px,84px) minmax(0,1fr);gap:12px;align-items:center; }
.ewa-sc-campaign__product-image img { display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover; }
.ewa-sc-campaign__price del { opacity:.62; }
.ewa-sc-campaign__cta,.ewa-sc-campaign__link { width:max-content;max-width:100%; }
@media (max-width: 520px) { .ewa-sc-campaign__product { grid-template-columns:64px minmax(0,1fr); } }
