.wsc-shop .wsc-empty,
.wsc-cart .wsc-empty {
	padding: 24px 0;
}

.wsc-product-grid {
	display: grid;
	grid-template-columns: repeat(var(--wsc-columns, 3), 1fr);
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 24px 0;
}

@media (max-width: 640px) {
	.wsc-product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wsc-product-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.wsc-product-card-link {
	text-decoration: none;
	color: inherit;
}

.wsc-product-thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	background: #f5f5f5;
	overflow: hidden;
	border-radius: 4px;
}

.wsc-product-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wsc-no-image {
	display: block;
	width: 100%;
	height: 100%;
	background: #eee;
}

.wsc-no-image-large {
	aspect-ratio: 1 / 1;
}

.wsc-sold-out-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: #d63638;
	color: #fff;
	font-size: 12px;
	padding: 2px 8px;
	border-radius: 2px;
}

.wsc-product-name {
	font-size: 15px;
	margin: 4px 0 0;
}

.wsc-product-price {
	font-weight: 600;
	margin: 0;
}

.wsc-add-to-cart {
	margin-top: auto;
	cursor: pointer;
}

.wsc-shop-toolbar {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 8px;
}

.wsc-view-cart-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px 10px 14px;
	border: 1px solid #1a1a1a;
	border-radius: 999px;
	background: #fff;
	color: #1a1a1a;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: 0 1px 0 rgba(26, 26, 26, 0.04);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wsc-view-cart-btn:hover,
.wsc-view-cart-btn:focus {
	background: #1a1a1a;
	border-color: #1a1a1a;
	color: #fff;
	text-decoration: none;
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(26, 26, 26, 0.16);
}

.wsc-view-cart-btn:focus-visible {
	outline: 2px solid #1a1a1a;
	outline-offset: 3px;
}

.wsc-view-cart-btn-icon {
	display: inline-flex;
	flex-shrink: 0;
}

.wsc-view-cart-btn-icon svg {
	display: block;
}

.wsc-sold-out-inline {
	margin: 0;
	font-weight: 600;
	color: #d63638;
}

.wsc-cart-fab {
	position: fixed;
	right: 20px;
	bottom: 24px;
	z-index: 10000;
	padding: 14px 22px 14px 18px;
	border: none;
	background: #1a1a1a;
	color: #f7f4ef;
	box-shadow: 0 14px 36px rgba(26, 26, 26, 0.28);
}

.wsc-cart-fab:hover,
.wsc-cart-fab:focus {
	background: #2b2b2b;
	border-color: transparent;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 18px 40px rgba(26, 26, 26, 0.34);
}

.wsc-cart-fab:focus-visible {
	outline-color: #c4a574;
}

.wsc-btn-filled {
	border-color: #1a1a1a;
	background: #1a1a1a;
	color: #f7f4ef;
	box-shadow: 0 8px 22px rgba(26, 26, 26, 0.18);
}

.wsc-view-cart-btn.wsc-btn-filled:hover,
.wsc-view-cart-btn.wsc-btn-filled:focus {
	background: #2b2b2b;
	border-color: #2b2b2b;
	color: #fff;
}

.wsc-cart-fab-count {
	min-width: 1.45em;
	height: 1.45em;
	padding: 0 6px;
	border-radius: 999px;
	background: #c4a574;
	color: #1a1a1a;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.45em;
	text-align: center;
	box-sizing: border-box;
}

.wsc-cart-fab-pulse {
	animation: wsc-cart-fab-pulse 0.45s ease;
}

@keyframes wsc-cart-fab-pulse {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wsc-view-cart-btn,
	.wsc-cart-fab {
		transition: none;
	}

	.wsc-view-cart-btn:hover,
	.wsc-view-cart-btn:focus,
	.wsc-cart-fab:hover,
	.wsc-cart-fab:focus,
	.wsc-cart-fab-pulse {
		transform: none;
		animation: none;
	}
}

.wsc-product-single {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
}

.wsc-product-single-gallery {
	flex: 1 1 360px;
	min-width: 280px;
}

.wsc-product-single-main-image img {
	width: 100%;
	height: auto;
	border-radius: 4px;
}

.wsc-product-single-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}

.wsc-product-single-thumbs img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 2px;
}

.wsc-product-single-info {
	flex: 1 1 320px;
	min-width: 280px;
}

.wsc-product-single-price {
	font-size: 22px;
	font-weight: 700;
}

.wsc-product-single-add {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.wsc-qty-input {
	width: 4em;
}

.wsc-table-wrap {
	overflow-x: auto;
	margin: 16px 0;
	border: 1px solid #d8d0c4;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 1px 0 rgba(26, 26, 26, 0.04);
}

.wsc-cart .wsc-cart-table,
.wsc-checkout .wsc-cart-table,
.wsc-checkout .wsc-totals-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	background: #fff;
}

.wsc-cart .wsc-cart-table th,
.wsc-cart .wsc-cart-table td,
.wsc-checkout .wsc-cart-table th,
.wsc-checkout .wsc-cart-table td,
.wsc-checkout .wsc-totals-table th,
.wsc-checkout .wsc-totals-table td {
	padding: 12px 14px;
	border: none;
	border-bottom: 1px solid #e8e2d8;
	text-align: left;
	vertical-align: middle;
}

.wsc-cart .wsc-cart-table thead th,
.wsc-checkout .wsc-cart-table thead th {
	background: #2b2b2b;
	color: #f7f4ef;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	border-bottom: 1px solid #1a1a1a;
}

.wsc-cart .wsc-cart-table tbody tr:nth-child(even) td,
.wsc-checkout .wsc-cart-table tbody tr:nth-child(even) td {
	background: #f7f4ef;
}

.wsc-cart .wsc-cart-table tbody tr:last-child td,
.wsc-checkout .wsc-cart-table tbody tr:last-child td,
.wsc-checkout .wsc-totals-table tr:last-child th,
.wsc-checkout .wsc-totals-table tr:last-child td {
	border-bottom: none;
}

.wsc-cart .wsc-cart-table .wsc-cart-col-qty,
.wsc-cart .wsc-cart-table .wsc-cart-col-amount,
.wsc-checkout .wsc-cart-table .wsc-cart-col-qty,
.wsc-checkout .wsc-cart-table .wsc-cart-col-amount {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.wsc-cart .wsc-cart-table .wsc-cart-col-qty,
.wsc-checkout .wsc-cart-table .wsc-cart-col-qty {
	width: 4.5em;
}

.wsc-cart .wsc-cart-table .wsc-cart-col-amount,
.wsc-checkout .wsc-cart-table .wsc-cart-col-amount {
	width: 7em;
}

.wsc-checkout .wsc-totals-table {
	width: 100%;
	max-width: none;
	margin: 0 0 8px;
	border: 1px solid #d8d0c4;
	border-radius: 8px;
	overflow: hidden;
}

.wsc-checkout .wsc-totals-table th {
	width: 40%;
	background: #f7f4ef;
	color: #1a1a1a;
	font-weight: 600;
	border-right: 1px solid #e8e2d8;
}

.wsc-checkout .wsc-totals-table td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.wsc-checkout .wsc-totals-table .wsc-totals-grand th,
.wsc-checkout .wsc-totals-table .wsc-totals-grand td {
	background: #1a1a1a;
	color: #f7f4ef;
	border-color: #1a1a1a;
	font-size: 16px;
}

.wsc-cart-thumb img {
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: 2px;
}

.wsc-cart-qty {
	width: 4em;
}

.wsc-cart-remove {
	background: none;
	border: none;
	color: #d63638;
	font-size: 18px;
	cursor: pointer;
}

.wsc-cart-summary {
	text-align: right;
	font-size: 16px;
}

.wsc-cart-errors {
	background: #fcf0f1;
	border-left: 4px solid #d63638;
	padding: 8px 16px;
	margin-bottom: 16px;
}

.wsc-cart-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	text-align: right;
}

.wsc-cart-actions-start {
	justify-content: flex-start;
}

.wsc-checkout-layout,
.wsc-checkout-main,
.wsc-cart {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.wsc-checkout label {
	display: block;
	margin-bottom: 12px;
}

.wsc-checkout input[type="text"],
.wsc-checkout input[type="email"],
.wsc-checkout input[type="tel"],
.wsc-checkout select,
.wsc-checkout textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 4px;
}

@media (min-width: 720px) {
	.wsc-checkout #wsc-checkout-form {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 24px;
	}

	.wsc-checkout #wsc-checkout-form > h2,
	.wsc-checkout #wsc-checkout-form > .description,
	.wsc-checkout #wsc-checkout-form > .wsc-notice-card,
	.wsc-checkout #wsc-checkout-form > .wsc-card-container,
	.wsc-checkout #wsc-checkout-form > .wsc-error,
	.wsc-checkout #wsc-checkout-form > p:has(textarea),
	.wsc-checkout #wsc-checkout-form > p:has([name="address1"]),
	.wsc-checkout #wsc-checkout-form > p:has([name="address2"]),
	.wsc-checkout #wsc-checkout-form > p:has(button),
	.wsc-checkout #wsc-checkout-form > .wsc-checkout-submit-wrap,
	.wsc-checkout #wsc-checkout-form > .wsc-payment-section {
		grid-column: 1 / -1;
	}
}

.wsc-payment-methods {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 8px 0 20px;
}

.wsc-checkout .wsc-payment-choice,
.wsc-payment-choice {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 188px;
	min-height: 64px;
	margin: 0;
	padding: 16px 22px;
	border: 2px solid #d8d0c4;
	border-radius: 14px;
	background: #fff;
	color: #1a1a1a;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(26, 26, 26, 0.05);
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.wsc-payment-choice input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.wsc-payment-choice-label {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.wsc-payment-choice:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(26, 26, 26, 0.1);
}

.wsc-payment-choice-square:has(input:checked) {
	border-color: #1e3a5f;
	background: #1e3a5f;
	color: #fff;
	box-shadow: 0 10px 24px rgba(30, 58, 95, 0.28);
}

.wsc-payment-choice-paypay:has(input:checked) {
	border-color: #e6002d;
	background: #e6002d;
	color: #fff;
	box-shadow: 0 10px 24px rgba(230, 0, 45, 0.26);
}

.wsc-payment-choice-bank:has(input:checked) {
	border-color: #1a6b5c;
	background: #1a6b5c;
	color: #fff;
	box-shadow: 0 10px 24px rgba(26, 107, 92, 0.26);
}

.wsc-checkout-submit-wrap {
	margin: 24px 0 0;
}

.wsc-checkout .wsc-pay-btn,
.entry-content .wsc-checkout .wsc-pay-btn,
.article .wsc-checkout .wsc-pay-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 420px;
	min-height: 62px;
	margin: 0;
	padding: 18px 32px;
	border: none;
	border-radius: 14px;
	background: #1e3a5f;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 12px 28px rgba(30, 58, 95, 0.28);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.wsc-checkout .wsc-pay-btn:hover,
.wsc-checkout .wsc-pay-btn:focus,
.entry-content .wsc-checkout .wsc-pay-btn:hover,
.entry-content .wsc-checkout .wsc-pay-btn:focus,
.article .wsc-checkout .wsc-pay-btn:hover,
.article .wsc-checkout .wsc-pay-btn:focus {
	background: #2c547f;
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 16px 34px rgba(30, 58, 95, 0.34);
}

.wsc-checkout .wsc-pay-btn-paypay,
.entry-content .wsc-checkout .wsc-pay-btn-paypay,
.article .wsc-checkout .wsc-pay-btn-paypay {
	background: #e6002d;
	box-shadow: 0 12px 28px rgba(230, 0, 45, 0.28);
}

.wsc-checkout .wsc-pay-btn-paypay:hover,
.wsc-checkout .wsc-pay-btn-paypay:focus,
.entry-content .wsc-checkout .wsc-pay-btn-paypay:hover,
.entry-content .wsc-checkout .wsc-pay-btn-paypay:focus,
.article .wsc-checkout .wsc-pay-btn-paypay:hover,
.article .wsc-checkout .wsc-pay-btn-paypay:focus {
	background: #ff1a44;
	box-shadow: 0 16px 34px rgba(230, 0, 45, 0.36);
}

.wsc-checkout .wsc-pay-btn-bank,
.entry-content .wsc-checkout .wsc-pay-btn-bank,
.article .wsc-checkout .wsc-pay-btn-bank {
	background: #1a6b5c;
	box-shadow: 0 12px 28px rgba(26, 107, 92, 0.28);
}

.wsc-checkout .wsc-pay-btn-bank:hover,
.wsc-checkout .wsc-pay-btn-bank:focus,
.entry-content .wsc-checkout .wsc-pay-btn-bank:hover,
.entry-content .wsc-checkout .wsc-pay-btn-bank:focus,
.article .wsc-checkout .wsc-pay-btn-bank:hover,
.article .wsc-checkout .wsc-pay-btn-bank:focus {
	background: #228574;
	box-shadow: 0 16px 34px rgba(26, 107, 92, 0.36);
}

.wsc-checkout .wsc-pay-btn:disabled,
.entry-content .wsc-checkout .wsc-pay-btn:disabled,
.article .wsc-checkout .wsc-pay-btn:disabled {
	opacity: 0.62;
	transform: none;
	cursor: wait;
}

.wsc-checkout .wsc-pay-btn:focus-visible {
	outline: 3px solid #c4a574;
	outline-offset: 3px;
}

.wsc-required {
	color: #d63638;
	font-size: 12px;
}

.wsc-error {
	color: #d63638;
	margin: 12px 0;
}

.wsc-checkout-done {
	padding: 24px;
	background: #f6f7f7;
	border-radius: 4px;
	color: #1a1a1a;
}

.wsc-bank-details {
	margin: 20px 0;
	padding: 16px;
	border: 1px solid #d8d0c4;
	border-radius: 8px;
	background: #fff;
}

.wsc-bank-card {
	margin: 0 0 16px;
	padding: 12px 14px;
	border: 1px solid #e8e2d8;
	border-radius: 6px;
	background: #f7f4ef;
}

.wsc-bank-card p {
	margin: 0 0 4px;
}

.wsc-downloads {
	margin: 20px 0;
	padding: 16px;
	border: 1px solid #d8d0c4;
	border-radius: 8px;
	background: #fff;
}

.wsc-downloads ul {
	margin: 8px 0 0;
	padding-left: 1.2em;
}

.wsc-downloads li {
	margin: 0 0 12px;
}

.wsc-cart h2,
.wsc-checkout h2,
.wsc-checkout-done h2,
.entry-content .wsc-cart h2,
.entry-content .wsc-checkout h2,
.article .wsc-cart h2,
.article .wsc-checkout h2 {
	color: #1a1a1a !important;
	background: none !important;
	background-color: transparent !important;
	text-shadow: none !important;
}

.wsc-card-container {
	max-width: none;
	min-height: 90px;
	margin: 12px 0 20px;
}

body.wsc-wide #sidebar,
body.wsc-wide .sidebar,
body.wsc-wide #sidebar-widget,
body.wsc-wide .widget-area,
body.wsc-wide #sidebar-left {
	display: none !important;
}

body.wsc-wide #main,
body.wsc-wide main#main,
body.wsc-wide .content-area,
body.wsc-wide #primary {
	width: 100% !important;
	max-width: none !important;
	flex: 1 1 100% !important;
	float: none !important;
}

body.wsc-wide #content,
body.wsc-wide .content,
body.wsc-wide .content-in {
	display: block;
	width: 100%;
	max-width: none;
}
