/*
Theme Name: DigiStore
Theme URI: https://digistore.example.com
Author: DigiStore
Author URI: https://digistore.example.com
Description: Dark, modern WooCommerce theme for digital product stores — software, license keys, game codes, ebooks and subscriptions. Instant delivery focused, with PayPal / USDT (NowPayments) / Payoneer friendly checkout styling, full RTL support and Arabic translation.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: digistore
Tags: e-commerce, dark, custom-colors, custom-logo, custom-menu, translation-ready, rtl-language-support
WC requires at least: 6.0
WC tested up to: 9.9
*/

/* =============================================================
   DigiStore design system
   ============================================================= */

:root {
	--ds-bg: #0a0e1a;
	--ds-bg-alt: #0d1324;
	--ds-surface: #131b2f;
	--ds-surface-2: #182238;
	--ds-border: #22304d;
	--ds-text: #e8edf8;
	--ds-text-muted: #93a0ba;
	--ds-accent-1: #7c3aed;
	--ds-accent-2: #06b6d4;
	--ds-accent-text: #ffffff;
	--ds-success: #26a17b;
	--ds-danger: #ef4444;
	--ds-warning: #f59e0b;
	--ds-radius: 14px;
	--ds-radius-sm: 9px;
	--ds-shadow: 0 10px 32px -12px rgba(0, 0, 0, .55);
	--ds-gradient: linear-gradient(120deg, var(--ds-accent-1), var(--ds-accent-2));
	--ds-font: "Inter", "Segoe UI", Tahoma, system-ui, -apple-system, sans-serif;
	--ds-max: 1240px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--ds-font);
	font-size: 16px;
	line-height: 1.65;
	color: var(--ds-text);
	background:
		radial-gradient(1100px 480px at 85% -10%, rgba(124, 58, 237, .16), transparent 60%),
		radial-gradient(900px 420px at -10% 12%, rgba(6, 182, 212, .12), transparent 55%),
		var(--ds-bg);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

a { color: var(--ds-accent-2); text-decoration: none; }
a:hover { color: #22d3ee; }

img { max-width: 100%; height: auto; }

h1, h2, h3, h4, h5 {
	line-height: 1.25;
	color: var(--ds-text);
	margin: 0 0 .55em;
	font-weight: 800;
	letter-spacing: -.01em;
}

h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1em; }

::selection { background: var(--ds-accent-1); color: #fff; }

.ds-container {
	max-width: var(--ds-max);
	margin: 0 auto;
	padding: 0 22px;
}

.ds-section { padding: 60px 0; }

/* Text meant for screen readers */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute !important; word-wrap: normal !important;
}

.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto;
	position: fixed !important; left: 10px; top: 10px; z-index: 100000;
	background: var(--ds-surface); padding: 10px 18px; border-radius: 8px;
}

/* =============================================================
   Buttons & forms
   ============================================================= */

button,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
input[type="submit"],
.wp-block-button__link {
	display: inline-block;
	padding: 12px 22px;
	border: 0;
	border-radius: var(--ds-radius-sm);
	background: var(--ds-gradient);
	color: var(--ds-accent-text);
	font-family: var(--ds-font);
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
	box-shadow: 0 6px 18px -6px rgba(124, 58, 237, .5);
	white-space: nowrap;
}

button:hover, .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
input[type="submit"]:hover {
	color: #fff;
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { color: var(--ds-accent-text) !important; }

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: .5; cursor: not-allowed; }

/* Secondary / ghost button */
.button.ds-btn-ghost,
.woocommerce a.button.ds-btn-ghost {
	background: transparent;
	border: 1px solid var(--ds-border);
	color: var(--ds-text);
	box-shadow: none;
}
.button.ds-btn-ghost:hover { border-color: var(--ds-accent-2); color: var(--ds-accent-2); }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
select,
textarea,
.woocommerce .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single {
	background: var(--ds-bg-alt) !important;
	border: 1px solid var(--ds-border) !important;
	border-radius: var(--ds-radius-sm) !important;
	color: var(--ds-text) !important;
	padding: 11px 14px !important;
	font-family: var(--ds-font);
	font-size: .95rem;
	transition: border-color .15s ease, box-shadow .15s ease;
	width: 100%;
}

input:focus, select:focus, textarea:focus,
.woocommerce form .form-row input.input-text:focus {
	border-color: var(--ds-accent-1) !important;
	box-shadow: 0 0 0 3px rgba(124, 58, 237, .22);
	outline: none;
}

::placeholder { color: #5d6b87; }

.select2-container .select2-selection--single,
.select2-container--default .select2-selection--single {
	height: 44px;
	line-height: 42px;
}

.select2-dropdown {
	background: var(--ds-surface) !important;
	border: 1px solid var(--ds-border) !important;
	color: var(--ds-text) !important;
}
.select2-container--default .select2-results__option[aria-selected="true"] { background: var(--ds-surface-2) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ds-accent-1) !important; color: #fff !important; }

label { color: var(--ds-text-muted); font-size: .9rem; font-weight: 600; }
.required { color: var(--ds-danger); }

/* =============================================================
   Header
   ============================================================= */

.ds-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: rgba(10, 14, 26, .82);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--ds-border);
	transition: box-shadow .2s ease;
}
.ds-header.is-scrolled { box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .8); }

.ds-header__inner {
	display: flex;
	align-items: center;
	gap: 26px;
	min-height: 70px;
}

.ds-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 1.3rem;
	font-weight: 900;
	color: var(--ds-text) !important;
	letter-spacing: -.02em;
}
.ds-logo img { max-height: 42px; width: auto; }
.ds-logo__mark {
	width: 36px; height: 36px;
	display: inline-grid; place-items: center;
	border-radius: 10px;
	background: var(--ds-gradient);
	font-size: 1.05rem;
	color: #fff;
	box-shadow: 0 6px 16px -6px rgba(124, 58, 237, .6);
}

.ds-nav { margin-inline-end: auto; }
.ds-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.ds-nav a {
	display: block;
	padding: 9px 14px;
	border-radius: 8px;
	color: var(--ds-text-muted);
	font-weight: 600;
	font-size: .93rem;
	transition: color .15s ease, background .15s ease;
}
.ds-nav a:hover,
.ds-nav .current-menu-item > a,
.ds-nav .current_page_item > a {
	color: var(--ds-text);
	background: rgba(124, 58, 237, .14);
}

.ds-header__actions { display: flex; align-items: center; gap: 6px; }

.ds-icon-btn {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 42px; height: 42px;
	border-radius: 10px;
	color: var(--ds-text-muted);
	background: transparent;
	border: 0;
	cursor: pointer;
	box-shadow: none;
	transition: color .15s ease, background .15s ease;
}
.ds-icon-btn:hover { color: var(--ds-text); background: var(--ds-surface-2); }
.ds-icon-btn svg { width: 21px; height: 21px; }

.ds-cart-count {
	position: absolute;
	top: 2px; inset-inline-end: 0;
	min-width: 18px; height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--ds-gradient);
	color: #fff;
	font-size: .68rem;
	font-weight: 800;
	display: grid;
	place-items: center;
	line-height: 1;
}

.ds-header__search {
	display: none;
	padding: 12px 0 16px;
	border-top: 1px solid var(--ds-border);
}
.ds-header__search.is-open { display: block; }
.ds-header__search .search-form { display: flex; gap: 10px; max-width: 640px; margin: 0 auto; }
.ds-header__search input[type="search"] { flex: 1; }
.ds-header__search button { flex-shrink: 0; }

.ds-burger { display: none; }

@media (max-width: 920px) {
	.ds-nav {
		display: none;
		position: fixed;
		inset: 70px 0 auto 0;
		background: var(--ds-bg-alt);
		border-bottom: 1px solid var(--ds-border);
		padding: 14px 22px 22px;
		z-index: 899;
	}
	.ds-nav.is-open { display: block; }
	.ds-nav ul { flex-direction: column; gap: 2px; }
	.ds-burger { display: inline-grid; }
}

/* =============================================================
   Hero (front page)
   ============================================================= */

.ds-hero { padding: 84px 0 66px; text-align: center; position: relative; overflow: hidden; }

.ds-hero h1 {
	font-size: clamp(2.2rem, 5.4vw, 3.7rem);
	font-weight: 900;
	letter-spacing: -.03em;
	margin-bottom: .35em;
}

.ds-hero h1 .ds-grad {
	background: var(--ds-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ds-hero__tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 16px;
	border: 1px solid var(--ds-border);
	border-radius: 999px;
	background: var(--ds-surface);
	color: var(--ds-text-muted);
	font-size: .85rem;
	font-weight: 600;
	margin-bottom: 22px;
}
.ds-hero__tag .dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--ds-success);
	box-shadow: 0 0 12px var(--ds-success);
	animation: ds-pulse 2s infinite;
}
@keyframes ds-pulse { 0%,100% { opacity: .5; } 50% { opacity: 1; } }

.ds-hero p.ds-hero__sub {
	max-width: 640px;
	margin: 0 auto 30px;
	color: var(--ds-text-muted);
	font-size: 1.08rem;
}

.ds-hero__search { max-width: 620px; margin: 0 auto 26px; }
.ds-hero__search .search-form { display: flex; gap: 10px; }
.ds-hero__search input[type="search"] { flex: 1; padding: 15px 18px !important; font-size: 1rem; }
.ds-hero__search .button { padding: 15px 26px; }

.ds-hero__actions { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }

/* =============================================================
   Sections: USP, categories, payment strip
   ============================================================= */

.ds-usp {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 18px;
}
.ds-usp__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 22px;
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	transition: transform .18s ease, border-color .18s ease;
}
.ds-usp__item:hover { transform: translateY(-3px); border-color: var(--ds-accent-1); }
.ds-usp__icon {
	flex-shrink: 0;
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border-radius: 12px;
	background: var(--ds-gradient);
	color: #fff;
}
.ds-usp__icon svg { width: 22px; height: 22px; }
.ds-usp__item h3 { font-size: 1.02rem; margin-bottom: .2em; }
.ds-usp__item p { margin: 0; color: var(--ds-text-muted); font-size: .88rem; }

.ds-section__head { text-align: center; margin-bottom: 36px; }
.ds-section__head p { color: var(--ds-text-muted); margin: 0; }

.ds-cats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 16px;
}
.ds-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 130px;
	padding: 18px;
	border-radius: var(--ds-radius);
	border: 1px solid var(--ds-border);
	background: linear-gradient(160deg, var(--ds-surface-2), var(--ds-surface));
	overflow: hidden;
	color: var(--ds-text);
	font-weight: 700;
	transition: transform .18s ease, border-color .18s ease;
}
.ds-cat:hover { transform: translateY(-3px); border-color: var(--ds-accent-2); color: var(--ds-text); }
.ds-cat__count {
	font-size: .8rem;
	font-weight: 600;
	color: var(--ds-text-muted);
}

.ds-pay-strip { text-align: center; }
.ds-pay-strip__badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}
.ds-pay-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 16px;
	border: 1px solid var(--ds-border);
	border-radius: 999px;
	background: var(--ds-surface);
	font-size: .85rem;
	font-weight: 700;
	color: var(--ds-text-muted);
}
.ds-pay-badge svg { width: 16px; height: 16px; }
.ds-pay-badge.is-usdt { color: #26a17b; border-color: #26a17b55; }
.ds-pay-badge.is-paypal { color: #7db8ff; }
.ds-pay-badge.is-payoneer { color: #ff9d6f; }
.ds-pay-badge.is-btc { color: #f7931a; }
.ds-pay-badge.is-eth { color: #8e9bd0; }
.ds-pay-badge.is-visa { color: #d6d9e6; }

/* =============================================================
   Product cards (WooCommerce loop)
   ============================================================= */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
@media (max-width: 1080px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 800px)  { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 460px)  { .woocommerce ul.products { grid-template-columns: 1fr !important; } }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	float: none !important;
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	overflow: hidden;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
	display: flex;
	flex-direction: column;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	border-color: rgba(124, 58, 237, .55);
	box-shadow: 0 18px 40px -18px rgba(124, 58, 237, .35);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; }

.woocommerce ul.products li.product img {
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	background: var(--ds-bg-alt);
	transition: transform .25s ease;
}
.woocommerce ul.products li.product:hover img { transform: scale(1.04); }

.woocommerce ul.products li.product .ds-card__body { padding: 16px 16px 18px; display: flex; flex-direction: column; flex: 1; gap: 8px; }

.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3.woocommerce-loop-product__title {
	font-size: .99rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--ds-text);
	padding: 0 !important;
	margin: 0 !important;
}
.woocommerce ul.products li.product h2.woocommerce-loop-product__title a,
.woocommerce ul.products li.product h3.woocommerce-loop-product__title a { color: inherit; }

.ds-card__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .78rem; color: var(--ds-text-muted); }

.ds-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 9px;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.ds-badge--instant { background: rgba(38, 161, 123, .16); color: #3ddba3; border: 1px solid #26a17b55; }
.ds-badge--new { background: rgba(6, 182, 212, .14); color: #4fd8ec; border: 1px solid #06b6d455; }
.ds-badge--sale {
	position: absolute !important;
	top: 12px; inset-inline-start: 12px;
	z-index: 5;
	background: var(--ds-gradient);
	color: #fff !important;
	border: 0;
}

.woocommerce span.onsale {
	position: absolute;
	top: 12px; inset-inline-start: 12px;
	z-index: 5;
	min-width: 0; min-height: 0;
	padding: 4px 12px;
	margin: 0 !important;
	border-radius: 999px;
	background: var(--ds-gradient);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	line-height: 1.6;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.woocommerce ul.products li.product .price {
	color: var(--ds-accent-2) !important;
	font-size: 1.18rem;
	font-weight: 800;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce ul.products li.product .price del {
	color: var(--ds-text-muted) !important;
	font-size: .85rem;
	font-weight: 500;
	opacity: .8;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; background: none; }

.woocommerce ul.products li.product .star-rating { font-size: .75rem; margin: 0 !important; }
.woocommerce .star-rating span::before { color: var(--ds-warning); }
.woocommerce p.stars a { color: var(--ds-warning); }

.woocommerce ul.products li.product .button {
	margin: auto 16px 16px !important;
	text-align: center;
	width: calc(100% - 32px);
}

.ds-licenses code { cursor: copy; }

/* =============================================================
   Shop archive
   ============================================================= */

.ds-shop-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 26px 0 20px;
}
.ds-shop-head h1 { margin: 0; font-size: 1.7rem; }
.woocommerce .woocommerce-result-count { color: var(--ds-text-muted); margin: 0; }

.woocommerce .woocommerce-ordering select { width: auto; min-width: 190px; }

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-message, .woocommerce-info, .woocommerce-error li,
.woocommerce div.woocommerce-message, .woocommerce div.woocommerce-info, .woocommerce div.woocommerce-error {
	background: var(--ds-surface) !important;
	color: var(--ds-text) !important;
	border-top-color: var(--ds-accent-1) !important;
	border-radius: var(--ds-radius-sm);
	box-shadow: var(--ds-shadow);
}
.woocommerce-message::before { color: var(--ds-accent-1) !important; }
.woocommerce-info::before { color: var(--ds-accent-2) !important; }
.woocommerce-error { border-top-color: var(--ds-danger) !important; }
.woocommerce-error::before { color: var(--ds-danger) !important; }

.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { background: var(--ds-surface-2); box-shadow: none; }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin-top: 40px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
	border: 0 !important;
	display: inline-flex;
	gap: 6px;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-grid;
	place-items: center;
	min-width: 42px; height: 42px;
	padding: 0 6px;
	border: 1px solid var(--ds-border) !important;
	border-radius: 10px !important;
	background: var(--ds-surface);
	color: var(--ds-text) !important;
	font-weight: 700;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ds-gradient);
	border-color: transparent !important;
	color: #fff !important;
}

/* Sidebar widgets */
.ds-shop-layout { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
@media (max-width: 920px) { .ds-shop-layout { grid-template-columns: 1fr; } }

.widget {
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	padding: 20px;
	margin-bottom: 20px;
}
.widget .widget-title { font-size: 1rem; margin-bottom: 14px; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget ul li { padding: 7px 0; border-bottom: 1px dashed var(--ds-border); font-size: .92rem; }
.widget ul li:last-child { border-bottom: 0; }
.widget ul li a { color: var(--ds-text-muted); }
.widget ul li a:hover { color: var(--ds-accent-2); }

/* Price filter slider */
.woocommerce .widget_price_filter .ui-slider { background: var(--ds-surface-2); border-radius: 999px; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { background: var(--ds-gradient); }
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { border-radius: 999px; background: var(--ds-surface-2); }

/* =============================================================
   Single product
   ============================================================= */

.woocommerce div.product {
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	padding: 26px;
	position: relative;
}
.woocommerce div.product div.images { margin-bottom: 24px; }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img {
	width: 72px; height: 54px; object-fit: cover;
	border-radius: 8px; border: 2px solid var(--ds-border); opacity: .6;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--ds-accent-1); }

.woocommerce div.product .product_title { font-size: clamp(1.5rem, 3vw, 2.1rem); }

.woocommerce div.product p.price {
	color: var(--ds-accent-2) !important;
	font-size: 1.7rem;
	font-weight: 800;
}
.woocommerce div.product p.price del { color: var(--ds-text-muted) !important; font-size: 1.05rem; }

.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ds-text-muted); }

.woocommerce div.product form.cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; margin: 22px 0; }
.woocommerce div.product form.cart div.quantity { margin: 0 !important; display: flex; }
.woocommerce .quantity .qty {
	height: 100%;
	min-height: 46px;
	width: 70px;
	text-align: center;
	border-radius: var(--ds-radius-sm);
	border: 1px solid var(--ds-border);
	background: var(--ds-bg-alt);
	color: var(--ds-text);
	font-weight: 700;
}
.woocommerce div.product form.cart .button { flex: 1; padding: 14px 28px; font-size: 1rem; }

.woocommerce div.product .product_meta { color: var(--ds-text-muted); font-size: .9rem; border-top: 1px solid var(--ds-border); padding-top: 16px; }
.woocommerce div.product .product_meta > span { display: block; margin: 4px 0; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 26px 0 0 !important;
	border-bottom: 1px solid var(--ds-border);
	display: flex;
	gap: 6px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px !important;
	color: var(--ds-text-muted) !important;
	font-weight: 700;
	border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--ds-text) !important;
	border-bottom-color: var(--ds-accent-1);
}

.woocommerce div.product .woocommerce-tabs .panel { padding: 22px 0 0; }
.woocommerce #reviews #comments ol.commentlist li { background: var(--ds-surface-2); border-radius: var(--ds-radius-sm); padding: 18px; border: 0 !important; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border-radius: 50%; border: 0 !important; background: var(--ds-bg-alt) !important; width: 54px !important; }

/* Related products */
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: 40px; clear: both; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-size: 1.3rem; }

/* =============================================================
   Cart & checkout
   ============================================================= */

.woocommerce table.shop_table {
	width: 100%;
	border: 1px solid var(--ds-border) !important;
	border-radius: var(--ds-radius) !important;
	border-collapse: separate !important;
	border-spacing: 0;
	background: var(--ds-surface);
	overflow: hidden;
}
.woocommerce table.shop_table th {
	background: var(--ds-surface-2);
	color: var(--ds-text-muted);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	padding: 14px 16px !important;
	border-bottom: 1px solid var(--ds-border) !important;
}
.woocommerce table.shop_table td {
	padding: 16px !important;
	border-top: 1px solid var(--ds-border) !important;
	background: transparent;
}
.woocommerce table.shop_table img { width: 64px; border-radius: 8px; }
.woocommerce table.shop_table a.remove {
	color: var(--ds-danger) !important;
	background: var(--ds-surface-2);
	border-radius: 8px;
	width: 28px; height: 28px;
	line-height: 28px;
	font-size: 18px;
}
.woocommerce table.shop_table a.remove:hover { background: var(--ds-danger); color: #fff !important; }

.woocommerce .cart_totals, .woocommerce-checkout-review-order { border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-surface); padding: 24px; }
.woocommerce .cart_totals h2, .woocommerce-checkout-review-order h3 { font-size: 1.2rem; }

.cart-collaterals .cart_totals table.shop_table { border: 0 !important; }

/* Coupon */
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
	border: 1px solid var(--ds-border) !important;
	border-radius: var(--ds-radius) !important;
	background: var(--ds-surface) !important;
	padding: 24px !important;
}
.woocommerce form.checkout_coupon .form-row-first, .woocommerce form.checkout_coupon .form-row-last { float: none; width: 100%; }

/* Checkout */
.woocommerce-checkout .ds-checkout-grid { display: grid; grid-template-columns: 1fr 420px; gap: 28px; align-items: start; }
@media (max-width: 960px) { .woocommerce-checkout .ds-checkout-grid { grid-template-columns: 1fr; } }

#customer_details .col2-set { width: auto; float: none; }
#customer_details .col-1, #customer_details .col-2 { width: 100%; float: none; }

.woocommerce form .form-row { margin-bottom: 14px; }
.woocommerce form .form-row label { margin-bottom: 6px; }

.woocommerce-checkout #payment {
	background: var(--ds-surface) !important;
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
}
.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--ds-border) !important;
	padding: 18px !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
	background: var(--ds-bg-alt);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius-sm);
	padding: 14px 16px !important;
	margin-bottom: 10px !important;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box {
	background: var(--ds-surface-2) !important;
	border-radius: 8px;
	margin: 10px 0 0 !important;
	padding: 12px 14px !important;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box p { font-size: .88rem; color: var(--ds-text-muted); }
.woocommerce-checkout #payment ul.payment_methods li .payment_box::before { display: none; }
.woocommerce-checkout #payment ul.payment_methods li label { display: inline-flex; align-items: center; gap: 8px; color: var(--ds-text); font-weight: 700; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { accent-color: var(--ds-accent-1); width: 17px; height: 17px; }
.woocommerce-checkout #payment div.payment_box { background: var(--ds-surface-2) !important; }

.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order {
	width: 100%;
	padding: 16px 24px !important;
	font-size: 1.05rem !important;
	border-radius: 12px !important;
	float: none !important;
}

/* Thank you */
.woocommerce-order .woocommerce-thankyou-order-received {
	display: inline-block;
	padding: 14px 24px;
	border-radius: 12px;
	background: rgba(38, 161, 123, .14);
	border: 1px solid #26a17b66;
	color: #3ddba3;
	font-weight: 800;
	font-size: 1.05rem;
}
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	padding: 24px;
	margin-top: 24px;
}

/* Downloads & My Account */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
	margin-bottom: 24px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	border: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid var(--ds-border);
	background: var(--ds-surface);
	color: var(--ds-text-muted) !important;
	font-weight: 600;
	font-size: .9rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ds-gradient);
	color: #fff !important;
	border-color: transparent;
}
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
@media (min-width: 960px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { width: 260px; float: inline-start; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { border-radius: 10px; }
	.woocommerce-account .woocommerce-MyAccount-content { width: calc(100% - 290px); float: inline-end; }
}

.woocommerce-account .digital-downloads { margin-top: 24px; }

/* Notices / misc Woo */
.woocommerce div.product form.cart .variations { border: 0; }
.woocommerce div.product form.cart .variations td.label { color: var(--ds-text-muted); }
.woocommerce-variation-price { margin-bottom: 10px; }

.woocommerce .woocommerce-breadcrumb { color: var(--ds-text-muted) !important; font-size: .88rem; margin: 18px 0 0; }
.woocommerce .woocommerce-breadcrumb a { color: var(--ds-text-muted); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ds-accent-2); }

.woocommerce ul.products li.product a img { margin: 0 !important; }
.woocommerce-result-count { font-size: .9rem; }

/* =============================================================
   Footer
   ============================================================= */

.ds-footer {
	margin-top: 70px;
	border-top: 1px solid var(--ds-border);
	background: rgba(13, 19, 36, .7);
}

.ds-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
	gap: 34px;
	padding: 50px 0 34px;
}
@media (max-width: 920px) { .ds-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ds-footer__grid { grid-template-columns: 1fr; } }

.ds-footer h4 { font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ds-text-muted); margin-bottom: 16px; }
.ds-footer ul { list-style: none; margin: 0; padding: 0; }
.ds-footer ul li { margin: 8px 0; }
.ds-footer ul li a { color: var(--ds-text-muted); font-size: .92rem; }
.ds-footer ul li a:hover { color: var(--ds-accent-2); }
.ds-footer .ds-footer__about p { color: var(--ds-text-muted); font-size: .92rem; max-width: 320px; }

.ds-footer__social { display: flex; gap: 10px; margin-top: 16px; }
.ds-footer__social a {
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 1px solid var(--ds-border);
	border-radius: 10px;
	color: var(--ds-text-muted);
}
.ds-footer__social a:hover { color: #fff; border-color: var(--ds-accent-1); background: rgba(124, 58, 237, .14); }
.ds-footer__social svg { width: 17px; height: 17px; }

.ds-footer__bottom {
	border-top: 1px solid var(--ds-border);
	padding: 20px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	color: var(--ds-text-muted);
	font-size: .84rem;
}

/* =============================================================
   Blog / pages / misc
   ============================================================= */

.ds-page { padding: 44px 0 70px; }
.ds-page .entry-header h1 { margin-bottom: .4em; }
.ds-page .entry-content { color: #c6cfe0; }
.ds-page .entry-content a { text-decoration: underline; }

.ds-article {
	background: var(--ds-surface);
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius);
	padding: 26px;
	margin-bottom: 24px;
}
.ds-article .entry-title a { color: var(--ds-text); }
.ds-article .entry-title a:hover { color: var(--ds-accent-2); }
.ds-article .entry-meta { color: var(--ds-text-muted); font-size: .84rem; margin-bottom: 12px; }

.ds-archive-head { padding: 40px 0 10px; }
.ds-archive-head h1 { margin: 0; }

/* Pagination (blog) */
.nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 30px; }
.nav-links a, .nav-links .current {
	display: inline-grid; place-items: center;
	min-width: 40px; height: 40px;
	padding: 0 10px;
	border: 1px solid var(--ds-border);
	border-radius: 9px;
	color: var(--ds-text) !important;
	font-weight: 700;
	background: var(--ds-surface);
}
.nav-links .current { background: var(--ds-gradient); border-color: transparent; }

/* 404 */
.ds-404 { text-align: center; padding: 90px 0 110px; }
.ds-404 .code {
	font-size: clamp(5rem, 16vw, 9rem);
	font-weight: 900;
	line-height: 1;
	background: var(--ds-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* Back to top */
.ds-to-top {
	position: fixed;
	inset-inline-end: 22px;
	bottom: 22px;
	z-index: 800;
	width: 46px; height: 46px;
	display: grid; place-items: center;
	border: 1px solid var(--ds-border);
	border-radius: 12px;
	background: var(--ds-surface);
	color: var(--ds-text);
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease;
	box-shadow: var(--ds-shadow);
}
.ds-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }

/* Sticky payment badges row on mobile product page */
@media (max-width: 600px) {
	.ds-section { padding: 44px 0; }
	.ds-hero { padding: 56px 0 44px; }
	.woocommerce div.product { padding: 16px; }
}

/* Block editor / block content minimal styling */
.entry-content > * { max-width: 100%; }
.wp-block-image img { border-radius: var(--ds-radius-sm); }
blockquote {
	border-inline-start: 3px solid var(--ds-accent-1);
	margin: 1.4em 0;
	padding: .4em 1.2em;
	color: var(--ds-text-muted);
	background: var(--ds-surface);
	border-radius: 0 var(--ds-radius-sm) var(--ds-radius-sm) 0;
}
table.wp-block-table, .entry-content table { border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); overflow: hidden; }
.entry-content table td, .entry-content table th { border-color: var(--ds-border) !important; padding: 10px 14px; }
