.swo-shop-shell,
.swo-shop-shell * {
	box-sizing: border-box;
}

.swo-shop-shell {
	--swo-panel: #ffffff;
	--swo-panel-soft: #fbfaf8;
	--swo-ink: #181818;
	--swo-muted: #6f6b66;
	--swo-line: #e8e0d4;
	--swo-accent: #2552e8;
	--swo-accent-soft: #edf2ff;
	--swo-success: #18885a;
	--swo-danger: #d5493d;
	--swo-shadow: 0 24px 50px rgba(32, 26, 20, 0.08);
	display: block !important;
	width: 100% !important;
	max-width: 1360px !important;
	margin: 0 auto !important;
	padding: 28px !important;
	border-radius: 28px !important;
	background: linear-gradient(180deg, #fdfbf8 0%, #f4efe7 100%) !important;
	color: var(--swo-ink) !important;
	font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
	box-shadow: var(--swo-shadow);
}

.swo-shop-shell img {
	display: block;
	max-width: 100%;
}

.swo-shop-shell button,
.swo-shop-shell input,
.swo-shop-shell select {
	font: inherit;
}

.swo-shop-shell p,
.swo-shop-shell h3 {
	margin: 0;
}

.swo-shop-topbar {
	display: block;
	margin-bottom: 26px;
}

.swo-products-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--swo-line);
}

.swo-products-heading h3 {
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--swo-ink) !important;
}

.swo-sort-controls {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

.swo-sort-control {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.swo-sort-control span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--swo-muted);
}

.swo-sort-control select,
.swo-quantity-select {
	min-width: 180px;
	padding: 11px 13px;
	border: 1px solid #ddd4c8;
	border-radius: 14px;
	background: #fff;
	color: var(--swo-ink);
	box-shadow: none;
}

.swo-shop-layout {
	display: block !important;
}

.swo-products-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 24px !important;
	width: 100% !important;
	padding-top: 24px;
}

.swo-product-card {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-width: 0 !important;
	background: var(--swo-panel) !important;
	border: 1px solid #eee7de !important;
	border-radius: 22px !important;
	box-shadow: 0 10px 24px rgba(24, 24, 24, 0.05) !important;
	overflow: hidden !important;
}

.swo-card-media {
	position: relative;
	background: var(--swo-panel-soft);
	border-bottom: 1px solid #f0ebe5;
}

.swo-card-gallery {
	width: 100%;
	overflow: hidden;
}

.swo-gallery-track {
	display: flex;
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.swo-gallery-slide {
	min-width: 100%;
	height: 290px;
	padding: 18px;
}

.swo-gallery-slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.swo-card-body {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 18px 18px 20px;
}

.swo-card-meta,
.swo-modal-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.swo-category-pill,
.swo-stock-pill,
.swo-filter-badge,
.swo-offer-pill,
.swo-modal-offer-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 13px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.swo-category-pill {
	background: #f4ede4;
	color: #8b5a29;
}

.swo-stock-pill.is-in {
	background: #eaf7f0;
	color: var(--swo-success);
}

.swo-stock-pill.is-out {
	background: #fff0ee;
	color: var(--swo-danger);
}

.swo-filter-badge {
	background: var(--swo-accent-soft);
	color: var(--swo-accent);
}

.swo-offer-pill,
.swo-modal-offer-tag {
	background: #ffe7b8;
	color: #8e5a00;
}

.swo-product-card h3 {
	font-size: 19px !important;
	line-height: 1.35 !important;
}

.swo-title-button {
	display: inline-block;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	color: var(--swo-ink);
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.swo-title-button:hover {
	color: var(--swo-accent);
}

.swo-card-dots {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	z-index: 2;
	padding: 8px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 8px 18px rgba(24, 24, 24, 0.1);
}

.swo-card-dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(24, 24, 24, 0.18);
	cursor: pointer;
}

.swo-card-dot.is-active {
	background: var(--swo-accent);
}

.swo-card-price,
.swo-modal-price {
	font-size: 28px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	color: var(--swo-ink) !important;
}

.swo-option-row {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.swo-option-row label {
	font-size: 13px;
	font-weight: 600;
	color: var(--swo-muted);
}

.swo-card-actions,
.swo-modal-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 2px;
}

.swo-qty-controls {
	display: inline-flex;
	align-items: center;
	padding: 4px;
	border: 1px solid var(--swo-line);
	border-radius: 999px;
	background: #fff;
}

.swo-qty-btn {
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--swo-ink);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.swo-qty-input {
	width: 34px !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center !important;
	font-weight: 700 !important;
	box-shadow: none !important;
}

.swo-add-cart-button,
.swo-whatsapp-button,
.swo-cart-fab,
.swo-offer-apply {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 48px !important;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: var(--swo-accent) !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	cursor: pointer !important;
	text-align: center !important;
	box-shadow: 0 14px 25px rgba(37, 82, 232, 0.18) !important;
}

.swo-add-cart-button {
	flex: 1 1 auto;
	min-width: 132px;
}

.swo-add-cart-button[disabled] {
	background: #c8c4bd !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
}

.swo-cart-fab {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 9997;
	gap: 10px;
	padding: 12px 16px !important;
	border-radius: 999px !important;
}

.swo-cart-fab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	padding: 0 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.22);
}

.swo-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 9998;
}

.swo-cart-drawer-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 18, 26, 0.48);
}

.swo-cart-panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(100%, 360px);
	height: 100%;
}

.swo-cart-panel-inner {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	gap: 10px;
	height: 100%;
	padding: 58px 12px 12px;
	background: #fff;
	border-left: 1px solid #eee7de;
	box-shadow: -8px 0 30px rgba(24, 24, 24, 0.08);
	overflow: hidden;
}

.swo-cart-scroll {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 0;
	overflow-y: auto;
	padding-right: 2px;
}

.swo-cart-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.swo-cart-head-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.swo-cart-close,
.swo-modal-close {
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: #f1f3f8;
	color: var(--swo-ink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.swo-cart-head h3 {
	font-size: 22px !important;
	line-height: 1.2 !important;
}

.swo-cart-head p {
	font-size: 14px !important;
	line-height: 1.7 !important;
	color: var(--swo-muted) !important;
}

.swo-cart-items {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: auto;
}

.swo-cart-item {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 10px;
	padding: 8px;
	border: 1px solid #f0ebe5;
	border-radius: 14px;
	background: #fcfbf9;
}

.swo-cart-item img {
	width: 52px;
	height: 52px;
	border-radius: 12px;
	object-fit: cover;
	background: #f5f2ed;
}

.swo-cart-item-body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.swo-cart-item-top,
.swo-cart-item-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.swo-cart-item-body strong {
	font-size: 13px !important;
	line-height: 1.25 !important;
	color: var(--swo-ink) !important;
}

.swo-cart-item-body small {
	font-size: 11px;
	color: var(--swo-muted);
}

.swo-cart-item-body span,
.swo-empty-products,
.swo-empty-cart,
.swo-modal-description {
	font-size: 12px !important;
	line-height: 1.4 !important;
	color: var(--swo-muted) !important;
}

.swo-cart-qty-controls {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px;
	border: 1px solid var(--swo-line);
	border-radius: 999px;
	background: #fff;
}

.swo-cart-qty-btn,
.swo-cart-remove {
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--swo-ink);
}

.swo-cart-qty-btn {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	font-size: 15px;
	line-height: 1;
}

.swo-cart-remove {
	width: 20px;
	height: 20px;
	font-size: 16px;
	line-height: 1;
}

.swo-cart-line-price {
	font-weight: 700;
	color: var(--swo-ink) !important;
}

.swo-cart-summary {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--swo-line);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, #ffffff 26%);
	backdrop-filter: blur(10px);
}

.swo-customer-fields {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 10px;
	border: 1px solid #f0ebe5;
	border-radius: 14px;
	background: linear-gradient(180deg, #fff 0%, #fcfaf7 100%);
}

.swo-customer-field {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.swo-cart-offer {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 10px;
	border: 1px solid #f0ebe5;
	border-radius: 14px;
	background: linear-gradient(180deg, #fff 0%, #fcfaf7 100%);
}

.swo-customer-field label,
.swo-cart-offer label {
	display: none;
}

.swo-cart-offer-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.swo-customer-field input,
.swo-customer-field textarea,
.swo-cart-offer-row input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ddd4c8;
	border-radius: 12px;
	background: #fff;
	font-size: 14px;
	color: var(--swo-ink);
	resize: vertical;
}

.swo-customer-field input:focus,
.swo-customer-field textarea:focus,
.swo-cart-offer-row input:focus {
	outline: none;
	border-color: rgba(37, 82, 232, 0.45);
	box-shadow: 0 0 0 4px rgba(37, 82, 232, 0.08);
}

.swo-offer-apply {
	min-width: 108px;
	min-height: 42px !important;
	padding: 10px 14px !important;
	border-radius: 12px !important;
	font-size: 14px !important;
}

.swo-cart-discount {
	font-size: 13px;
	font-weight: 700;
	color: var(--swo-success);
}

.swo-cart-discount.is-error {
	color: var(--swo-danger);
}

.swo-cart-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 14px !important;
}

.swo-cart-total strong {
	font-size: 18px !important;
	line-height: 1 !important;
	color: var(--swo-ink) !important;
}

.swo-checkout-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
}

.swo-checkout-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 18, 26, 0.62);
}

.swo-checkout-dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 460px);
	margin: min(8vh, 56px) auto;
	padding: 24px;
	border-radius: 26px;
	background: linear-gradient(180deg, #ffffff 0%, #fbf8f3 100%);
	box-shadow: 0 28px 60px rgba(16, 18, 26, 0.22);
}

.swo-checkout-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: #eef2fb;
	color: var(--swo-ink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.swo-checkout-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 999px;
	background: var(--swo-accent-soft);
	color: var(--swo-accent);
	font-size: 12px;
	font-weight: 700;
}

.swo-checkout-dialog h3 {
	margin-top: 14px;
	font-size: 28px !important;
	line-height: 1.12 !important;
	color: var(--swo-ink) !important;
}

.swo-checkout-note {
	margin-top: 10px !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: var(--swo-muted) !important;
}

.swo-checkout-fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 18px;
}

.swo-checkout-fields input,
.swo-checkout-fields textarea {
	width: 100%;
	padding: 14px 15px;
	border: 1px solid #ddd4c8;
	border-radius: 16px;
	background: #fff;
	font-size: 15px;
	color: var(--swo-ink);
	resize: vertical;
}

.swo-checkout-fields input:focus,
.swo-checkout-fields textarea:focus {
	outline: none;
	border-color: rgba(37, 82, 232, 0.45);
	box-shadow: 0 0 0 4px rgba(37, 82, 232, 0.08);
}

.swo-checkout-error {
	min-height: 20px;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--swo-danger);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.swo-checkout-error.is-visible {
	opacity: 1;
}

.swo-checkout-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	margin-top: 8px;
	padding: 12px 16px;
	border: 0;
	border-radius: 16px;
	background: linear-gradient(135deg, #2552e8 0%, #3f68ef 100%);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	box-shadow: 0 16px 28px rgba(37, 82, 232, 0.22);
	cursor: pointer;
}

.swo-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
}

.swo-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 18, 26, 0.6);
}

.swo-modal-dialog {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	gap: 24px;
	width: min(1040px, calc(100% - 32px));
	max-height: calc(100vh - 48px);
	margin: 24px auto;
	padding: 22px;
	background: #fff;
	border-radius: 26px;
	overflow: auto;
}

.swo-modal-gallery {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.swo-modal-gallery-main {
	height: 430px;
	padding: 18px;
	border-radius: 22px;
	background: #faf7f2;
}

.swo-modal-gallery-main img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.swo-modal-gallery-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.swo-thumb-button {
	width: 76px;
	height: 76px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 18px;
	background: #faf7f2;
	overflow: hidden;
	cursor: pointer;
}

.swo-thumb-button.is-active {
	border-color: var(--swo-accent);
}

.swo-thumb-button img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.swo-modal-content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 8px 6px 8px 0;
}

.swo-modal-content h3 {
	font-size: 30px !important;
	line-height: 1.15 !important;
	color: var(--swo-ink) !important;
}

.swo-modal-close {
	position: absolute;
	top: 16px;
	right: 16px;
}

.swo-modal-open,
.swo-cart-open {
	overflow: hidden;
}

@media (max-width: 1180px) {
	.swo-products-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.swo-shop-shell {
		padding: 12px !important;
		border-radius: 14px !important;
	}

	.swo-products-heading,
	.swo-sort-controls,
	.swo-card-actions,
	.swo-modal-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.swo-products-heading {
		gap: 10px;
		padding-bottom: 12px;
	}

	.swo-products-heading h3 {
		font-size: 18px !important;
	}

	.swo-sort-control span {
		font-size: 11px;
	}

	.swo-sort-control select,
	.swo-quantity-select {
		min-width: 100%;
		padding: 10px 12px;
		border-radius: 12px;
	}

	.swo-products-grid,
	.swo-modal-dialog {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}

	.swo-product-card {
		border-radius: 18px !important;
	}

	.swo-gallery-slide {
		height: 210px;
		padding: 12px;
	}

	.swo-card-dots {
		bottom: 12px;
		gap: 7px;
		padding: 7px 9px;
	}

	.swo-card-dot {
		width: 9px;
		height: 9px;
	}

	.swo-cart-fab {
		right: 14px;
		left: 14px;
		bottom: 14px;
		min-height: 46px !important;
		font-size: 14px !important;
		padding: 11px 14px !important;
	}

	.swo-cart-panel {
		width: 100%;
		height: 100%;
	}

	.swo-cart-panel-inner {
		padding: 50px 9px 9px;
		gap: 8px;
	}

	.swo-cart-scroll {
		gap: 8px;
	}

	.swo-cart-item {
		grid-template-columns: 48px minmax(0, 1fr);
		padding: 6px;
		border-radius: 12px;
	}

	.swo-cart-item img {
		width: 48px;
		height: 48px;
		border-radius: 10px;
	}

	.swo-cart-item-body {
		gap: 5px;
	}

	.swo-cart-item-body strong {
		font-size: 12px !important;
	}

	.swo-cart-item-body span {
		font-size: 11px !important;
	}

	.swo-cart-qty-controls {
		gap: 4px;
		padding: 2px;
	}

	.swo-cart-qty-btn {
		width: 22px;
		height: 22px;
		font-size: 14px;
	}

	.swo-cart-remove {
		width: 18px;
		height: 18px;
		font-size: 15px;
	}

	.swo-cart-offer-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.swo-cart-offer {
		gap: 5px;
		padding: 8px;
		border-radius: 12px;
	}

	.swo-customer-fields {
		gap: 7px;
		padding: 8px;
		border-radius: 12px;
	}

	.swo-customer-field {
		gap: 0;
	}

	.swo-customer-field input,
	.swo-customer-field textarea,
	.swo-cart-offer-row input {
		padding: 9px 11px;
		font-size: 13px;
		border-radius: 10px;
	}

	.swo-offer-apply,
	.swo-whatsapp-button {
		width: 100%;
	}

	.swo-offer-apply {
		min-height: 40px !important;
		padding: 9px 12px !important;
		font-size: 13px !important;
	}

	.swo-cart-total {
		font-size: 13px !important;
	}

	.swo-cart-total strong {
		font-size: 17px !important;
	}

	.swo-checkout-dialog {
		width: min(100% - 20px, 460px);
		margin: 18px auto;
		padding: 18px;
		border-radius: 20px;
	}

	.swo-checkout-dialog h3 {
		font-size: 22px !important;
	}

	.swo-checkout-note {
		font-size: 13px !important;
	}

	.swo-checkout-fields {
		margin-top: 14px;
		gap: 8px;
	}

	.swo-checkout-fields input,
	.swo-checkout-fields textarea {
		padding: 12px 13px;
		font-size: 14px;
		border-radius: 12px;
	}

	.swo-checkout-submit {
		min-height: 46px;
		border-radius: 12px;
		font-size: 14px;
	}

	.swo-modal-dialog {
		margin: 16px auto;
		max-height: calc(100vh - 32px);
		padding: 14px;
		gap: 14px;
		border-radius: 20px;
	}

	.swo-modal-gallery-main {
		height: 220px;
		padding: 12px;
	}

	.swo-modal-content {
		padding: 0;
		gap: 10px;
	}

	.swo-modal-content h3 {
		font-size: 22px !important;
	}

	.swo-card-body {
		padding: 12px 12px 14px;
		gap: 10px;
	}

	.swo-card-price,
	.swo-modal-price {
		font-size: 22px !important;
	}

	.swo-qty-btn {
		width: 34px;
		height: 34px;
		font-size: 18px;
	}

	.swo-add-cart-button,
	.swo-whatsapp-button {
		min-height: 44px !important;
		padding: 10px 13px !important;
		font-size: 14px !important;
		border-radius: 12px !important;
	}
}
