/* KSVMarket Design System — central foundations only. */
:root {
  --ksv-primary: #2563EB;
  --ksv-primary-hover: #1D4ED8;
  --ksv-primary-soft: #EFF6FF;
  --ksv-background: #FFFFFF;
  --ksv-surface: #F8FAFC;
  --ksv-text-primary: #0F172A;
  --ksv-text-secondary: #334155;
  --ksv-text-muted: #64748B;
  --ksv-border: #E2E8F0;
  --ksv-border-strong: #CBD5E1;
  --ksv-success: #16A34A;
  --ksv-success-soft: #F0FDF4;
  --ksv-error: #DC2626;
  --ksv-error-soft: #FEF2F2;
  --ksv-warning: #B45309;
  --ksv-warning-soft: #FFFBEB;
  --ksv-promotion: #DC2626;
  --ksv-promotion-soft: #FEF2F2;
  --ksv-bestseller: #B45309;
  --ksv-bestseller-soft: #FFFBEB;
  --ksv-font: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ksv-font-size-body: 16px;
  --ksv-line-height-body: 1.6;
  --ksv-space-1: 4px;
  --ksv-space-2: 8px;
  --ksv-space-3: 12px;
  --ksv-space-4: 16px;
  --ksv-space-5: 24px;
  --ksv-space-6: 32px;
  --ksv-space-7: 48px;
  --ksv-space-8: 64px;
  --ksv-radius-sm: 8px;
  --ksv-radius-md: 12px;
  --ksv-radius-lg: 16px;
  --ksv-shadow-card: 0 8px 24px rgba(15, 23, 42, 0.08);
  --ksv-shadow-modal: 0 20px 48px rgba(15, 23, 42, 0.18);
  --ksv-transition: 180ms ease;

  /* Backward-compatible aliases for existing storefront components. */
  --ksv-brand: var(--ksv-primary);
  --ksv-brand-dark: var(--ksv-primary-hover);
  --ksv-brand-soft: var(--ksv-primary-soft);
  --ksv-ink: var(--ksv-text-primary);
  --ksv-muted: var(--ksv-text-secondary);
  --ksv-subtle: var(--ksv-text-muted);
  --ksv-line: var(--ksv-border);
  --ksv-line-strong: var(--ksv-border-strong);
  --ksv-canvas: var(--ksv-surface);
  --ksv-danger: var(--ksv-error);
  --ksv-success-soft: var(--ksv-success-soft);
  --ksv-r-sm: var(--ksv-radius-sm);
  --ksv-r-md: var(--ksv-radius-md);
  --ksv-r-lg: var(--ksv-radius-lg);
  --ksv-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --ksv-shadow-md: var(--ksv-shadow-card);
  --b: var(--ksv-primary);
  --d: var(--ksv-text-primary);
  --m: var(--ksv-text-muted);
  --l: var(--ksv-border);
  --bg: var(--ksv-surface);
  --s: var(--ksv-shadow-card);
}

html { color: var(--ksv-text-secondary); font-family: var(--ksv-font); font-size: var(--ksv-font-size-body); line-height: var(--ksv-line-height-body); }
body, button, input, select, textarea { font-family: var(--ksv-font); }
body { color: var(--ksv-text-secondary); background: var(--ksv-background); }
h1, h2, h3, h4, h5, h6 { color: var(--ksv-text-primary); font-family: var(--ksv-font); letter-spacing: -0.02em; }
h1 { font-size: clamp(28px, 3vw, 42px); line-height: 1.15; font-weight: 700; }
h2 { font-size: clamp(28px, 2.5vw, 32px); line-height: 1.2; font-weight: 700; }
h3 { font-size: clamp(20px, 1.8vw, 24px); line-height: 1.3; font-weight: 600; }
p, li, dd { color: var(--ksv-text-secondary); }
small, .ksv-small, .product_meta, .sku, .woocommerce-breadcrumb { color: var(--ksv-text-muted); font-size: 14px; }
a { color: var(--ksv-primary); text-underline-offset: 0.16em; transition: color var(--ksv-transition), background-color var(--ksv-transition), border-color var(--ksv-transition); }
a:hover { color: var(--ksv-primary-hover); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid rgba(37, 99, 235, 0.30); outline-offset: 2px; }
:where(button, input, select, textarea, .button, .wp-element-button, .wc-block-components-button) { transition: color var(--ksv-transition), background-color var(--ksv-transition), border-color var(--ksv-transition), box-shadow var(--ksv-transition), transform var(--ksv-transition); }

.ksv-button, .ksvu-btn, .ksvu-add, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce button[type="submit"], .wp-element-button, .wc-block-components-button, .ksv-ds-button--primary {
  min-height: 46px;
  border: 1px solid var(--ksv-primary) !important;
  border-radius: var(--ksv-radius-sm) !important;
  background: var(--ksv-primary) !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  line-height: 1.2;
}
.ksv-button:hover, .ksvu-btn:hover, .ksvu-add:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce button[type="submit"]:hover, .wp-element-button:hover, .wc-block-components-button:hover, .ksv-ds-button--primary:hover { background: var(--ksv-primary-hover) !important; border-color: var(--ksv-primary-hover) !important; color: #FFFFFF !important; }
.ksv-button--secondary, .ksvu-btn--ghost, .ksv-ds-button--secondary, .woocommerce a.button.alt.ksv-button--secondary {
  background: #FFFFFF !important;
  border-color: var(--ksv-primary) !important;
  color: var(--ksv-primary) !important;
}
.ksv-button--secondary:hover, .ksvu-btn--ghost:hover, .ksv-ds-button--secondary:hover { background: var(--ksv-primary-soft) !important; color: var(--ksv-primary-hover) !important; }
.ksv-ds-button--tertiary, .ksv-text-link, .ksvh-text { border: 0; background: transparent; color: var(--ksv-primary); font-weight: 600; padding: 0; }
.ksv-ds-button--tertiary:hover, .ksv-text-link:hover, .ksvh-text:hover { color: var(--ksv-primary-hover); background: var(--ksv-primary-soft); }

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, .select2-selection) {
  min-height: 46px;
  border: 1px solid var(--ksv-border) !important;
  border-radius: var(--ksv-radius-sm) !important;
  background: #FFFFFF !important;
  color: var(--ksv-text-secondary) !important;
  box-shadow: none !important;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus, .select2-container--default.select2-container--focus .select2-selection { border-color: var(--ksv-primary) !important; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14) !important; }
textarea { min-height: 120px; padding: var(--ksv-space-3); resize: vertical; }
input[aria-invalid="true"], .woocommerce-invalid input, .woocommerce-invalid select, .woocommerce-invalid textarea { border-color: var(--ksv-error) !important; }
.woocommerce-invalid-required-field .woocommerce-input-wrapper::after, .woocommerce-error, .wc-block-components-notice-banner.is-error { color: var(--ksv-error); }

input[type="checkbox"], input[type="radio"] { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0 8px 0 0; vertical-align: -3px; border: 1px solid var(--ksv-border-strong); background: #FFFFFF; cursor: pointer; }
input[type="checkbox"] { border-radius: 4px; }
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]:checked { border-color: var(--ksv-primary); background: var(--ksv-primary) center / 12px 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m3 8 3 3 7-7'/%3E%3C/svg%3E"); }
input[type="radio"]:checked { border: 5px solid var(--ksv-primary); }
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.30); outline-offset: 2px; }

.ksv-card, .ksvu-product, .ksvu-cat, .ksvu-archive, .ksvu-sections section, .woocommerce ul.products li.product, .wc-block-components-product, .wp-block-woocommerce-cart-order-summary-block, .wp-block-woocommerce-checkout-order-summary-block {
  background: #FFFFFF;
  border: 1px solid var(--ksv-border);
  border-radius: var(--ksv-radius-md);
  box-shadow: none;
}
.ksv-card:hover, .ksvu-product:hover, .ksvu-cat:hover, .woocommerce ul.products li.product:hover { box-shadow: var(--ksv-shadow-card); transform: translateY(-1px); }

.ksv-badge, .ksv-ds-badge { display: inline-flex; align-items: center; min-height: 24px; border-radius: var(--ksv-radius-sm); padding: 3px 8px; font-size: 12px; font-weight: 600; line-height: 1.2; }
.ksv-badge--promotion, .onsale, .ksv-ds-badge--promotion { background: var(--ksv-promotion-soft) !important; color: var(--ksv-promotion) !important; border: 1px solid #FECACA; }
.ksv-badge--new, .ksv-ds-badge--new { background: var(--ksv-primary-soft); color: var(--ksv-primary); border: 1px solid #BFDBFE; }
.ksv-badge--available, .stock.in-stock, .ksv-ds-badge--available { color: var(--ksv-success); }
.ksv-badge--bestseller, .ksv-ds-badge--bestseller { background: var(--ksv-bestseller-soft); color: var(--ksv-bestseller); border: 1px solid #FDE68A; }
.price, .woocommerce-Price-amount, .wc-block-components-product-price__value { color: var(--ksv-text-primary); font-size: clamp(20px, 1.8vw, 24px); font-weight: 700; }
del .woocommerce-Price-amount { color: var(--ksv-text-muted); font-size: 14px; font-weight: 400; }
ins .woocommerce-Price-amount { color: var(--ksv-promotion); }

.woocommerce-breadcrumb { margin: var(--ksv-space-4) 0 var(--ksv-space-5); line-height: 1.4; }
.woocommerce-breadcrumb a { color: var(--ksv-text-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--ksv-primary); }
.woocommerce-breadcrumb span[aria-hidden="true"] { margin: 0 var(--ksv-space-2); color: var(--ksv-border-strong); }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner, .ksv-toast {
  position: relative;
  margin: var(--ksv-space-4) 0;
  border: 1px solid var(--ksv-border);
  border-left-width: 4px;
  border-radius: var(--ksv-radius-sm);
  background: #FFFFFF;
  box-shadow: none;
  color: var(--ksv-text-secondary);
  padding: var(--ksv-space-3) var(--ksv-space-4);
}
.woocommerce-message, .ksv-toast--success { border-left-color: var(--ksv-success); background: var(--ksv-success-soft); }
.woocommerce-info, .ksv-toast--info { border-left-color: var(--ksv-primary); background: var(--ksv-primary-soft); }
.woocommerce-error, .ksv-toast--error, .wc-block-components-notice-banner.is-error { border-left-color: var(--ksv-error); background: var(--ksv-error-soft); }
.ksv-toast--warning { border-left-color: var(--ksv-warning); background: var(--ksv-warning-soft); }
.ksv-toast__close { position: absolute; top: var(--ksv-space-2); right: var(--ksv-space-2); width: 32px; height: 32px; border: 0; border-radius: var(--ksv-radius-sm); background: transparent; color: inherit; }

select { appearance: none; padding-right: 40px !important; background-image: linear-gradient(45deg, transparent 50%, var(--ksv-text-muted) 50%), linear-gradient(135deg, var(--ksv-text-muted) 50%, transparent 50%) !important; background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50% !important; background-size: 5px 5px, 5px 5px !important; background-repeat: no-repeat !important; }
.select2-dropdown, .wc-block-components-combobox .components-popover__content { border: 1px solid var(--ksv-border); border-radius: var(--ksv-radius-sm); box-shadow: var(--ksv-shadow-card); }
.select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ksv-primary-soft) !important; color: var(--ksv-primary-hover) !important; }

[role="dialog"], dialog, .components-modal__frame, .wc-block-components-modal__content { border: 0; border-radius: var(--ksv-radius-lg); background: #FFFFFF; box-shadow: var(--ksv-shadow-modal); }
dialog::backdrop { background: rgba(15, 23, 42, 0.56); }

@media (max-width: 640px) {
  :where(button, .button, .wp-element-button, .wc-block-components-button) { min-height: 46px; }
  input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
}
