@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/dm-sans/dm-sans-variable.woff2?v=1') format('woff2');}
/* Customer typography: readable text, restrained weights, native CJK fallbacks. */
html body.nx-customer {
  --pfamily: 'DM Sans', 'Segoe UI', 'Microsoft YaHei', 'PingFang SC', 'Noto Sans CJK SC', Arial, sans-serif;
  --mn-font: var(--pfamily);
  font-family: var(--pfamily) !important;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.nx-customer :is(h1, h2, h3, h4, h5, h6, input, select, textarea, button) {
  font-family: var(--pfamily);
}
body.nx-customer :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 600;
  text-wrap: balance;
}
body.nx-customer :is(input, select, textarea) { font-size: 14px; }
body.nx-customer :is(button, .btn, .form-btn) { font-weight: 600; }

/* Header and navigation retain their existing proportions. */
body.nx-customer .header-top-list a,
body.nx-customer .header-top-select .nice-select { font-size: 13px; font-weight: 500; }
body.nx-customer .header-form input { font-size: 14px; }
body.nx-customer .header-widget span { font-size: 14px; font-weight: 600; }
body.nx-customer .header-widget sup { font-size: 11px; font-weight: 600; }
body.nx-customer .navbar-link { font-size: 14px; font-weight: 600; letter-spacing: 0; }
body.nx-customer .navbar-info small { font-size: 11px; font-weight: 500; letter-spacing: .15px; }
body.nx-customer .navbar-info span { font-size: 13px; font-weight: 600; }
body.nx-customer :is(.dropdown-link, .megamenu-list a, .category-link) { font-size: 14px; font-weight: 500; }
body.nx-customer :is(.nx-menu-link, .nx-menu-login, .nx-menu-signup, .nx-menu-logout) { font-size: 14px; font-weight: 600; }
body.nx-customer :is(.nx-drawer-eyebrow, .nx-menu-subheading, .nx-mobilebar-label) { font-size: 11px; font-weight: 600; }

/* Hero, announcements and product discovery. */
body.nx-customer :is(.skp-promotion h1, .skp-promotion h2, .storefront-hero h1) {
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.16;
}
body.nx-customer :is(.skp-promotion-copy > span, .storefront-eyebrow) {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
}
body.nx-customer :is(.storefront-hero-copy > p, .storefront-slide-primary .storefront-hero-copy > p) {
  font-size: 15px;
  line-height: 1.8;
  font-weight: 400;
}
body.nx-customer :is(.skp-promotion-copy > a, .storefront-cta, .storefront-hero-search button) { font-size: 14px; font-weight: 600; }
body.nx-customer :is(.skp-promotion-copy small, .storefront-hero-links, .storefront-assurance) { font-size: 12px; line-height: 1.65; }
body.nx-customer .storefront-hero-search input { font-size: 14px; }
body.nx-customer .skp-mini-banner small { font-size: 11px; font-weight: 500; letter-spacing: .04em; opacity: .85; }
body.nx-customer .skp-mini-banner strong { font-size: 19px; font-weight: 600; line-height: 1.4; }
body.nx-customer .skp-mini-banner b { font-size: 12px; font-weight: 500; line-height: 1.5; }
body.nx-customer .skp-mini-banner > span { display: flex; flex: 1; flex-direction: column; min-width: 0; align-self: stretch; }
body.nx-customer .skp-mini-banner small { min-height: 2.8em; line-height: 1.4; }
body.nx-customer .skp-mini-banner b { margin-top: auto; padding-top: 3px; }
body.nx-customer .skp-mini-banner > img, body.nx-customer .skp-mini-symbol { flex-shrink: 0; align-self: center; }
body.nx-customer .skp-announcement p { font-size: 14px; line-height: 1.75; }
body.nx-customer .skp-announcement strong { font-weight: 600; }
body.nx-customer .skp-category-tabs button { font-size: 13px; font-weight: 500; }
body.nx-customer .skp-category-tabs button.is-active { font-weight: 600; }
body.nx-customer :is(.skp-category span, .store-category-card strong) { font-size: 13px; font-weight: 600; line-height: 1.5; }
body.nx-customer :is(.skp-section-heading h2, .home-heading h3) { font-size: 23px; font-weight: 600; letter-spacing: -.025em; }
body.nx-customer :is(.skp-section-heading p, .skp-empty p, .skp-recent-grid a) { font-size: 14px; line-height: 1.7; }
body.nx-customer :is(.skp-section-heading > a, .skp-empty a) { font-size: 13px; font-weight: 600; }
body.nx-customer .skp-product-name { font-size: 14px; font-weight: 600; line-height: 1.6; }
body.nx-customer .skp-price { font-size: 17px; font-weight: 700; letter-spacing: -.02em; }
body.nx-customer .skp-product-meta { font-size: 12px; line-height: 1.6; }
body.nx-customer .skp-sale { font-size: 11px; font-weight: 600; }
body.nx-customer .store-product-title { font-size: 14px; font-weight: 600; line-height: 1.6; }
body.nx-customer .store-product-content p { font-size: 13px; line-height: 1.7; }
body.nx-customer :is(.store-catalog-sidebar h2, .store-catalog-category) { font-size: 14px; font-weight: 600; }
body.nx-customer :is(.store-catalog-search input, .store-catalog-sort select) { font-size: 14px; }
body.nx-customer :is(.store-catalog-sort, .store-catalog-count) { font-size: 13px; }
body.nx-customer :is(.store-catalog-toolbar button, .store-catalog-reset) { font-size: 13px; font-weight: 600; }
body.nx-customer .details-content .details-name { font-weight: 600; letter-spacing: -.025em; }
body.nx-customer .details-desc { font-size: 14px; line-height: 1.85; }
body.nx-customer :is(.details-add-group .btn, .btn-buy) { font-size: 14px; font-weight: 600; }
body.nx-customer .details-meta .label-text { font-size: 11px; }

/* Authentication and customer forms. */
body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .user-form-title h2 { font-weight: 600; letter-spacing: -.025em; }
body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .user-form-title p { font-size: 14px; line-height: 1.75; }
body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .user-form label { font-size: 13px; font-weight: 500; }
body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .user-form .form-control { font-size: 14px; }
body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .form-button button { font-size: 14px; font-weight: 600; }
body.nx-customer :is(.user-form-remind, .user-form-remind p, .user-form-footer, .agree-terms-copy) { font-size: 13px; line-height: 1.75; }
body.nx-customer :is(.form-label, .nx-field-label, .nx-field > label, .nx-setting-copy label) { font-size: 13px; font-weight: 500; }
body.nx-customer :is(.profile-part, .contact-part, .nx-settings-form, .nx-tax-fields) :is(.form-control, .form-select) { font-size: 14px; }
body.nx-customer :is(.profile-part, .contact-part) :is(.form-btn, .shop-widget-btn) { font-size: 14px; font-weight: 600; }

/* Account summaries and dense record tables. */
body.nx-customer :is(.ac-page-heading h1, .oh-heading h1, .single-banner h2) { font-weight: 600; letter-spacing: -.025em; }
body.nx-customer :is(.ac-page-heading p, .oh-heading p, .ac-empty p, .oh-empty p, .nx-setting-copy p) { font-size: 14px; line-height: 1.75; }
body.nx-customer .ac-card-heading h2 { font-size: 18px; font-weight: 600; }
body.nx-customer .ac-card-heading p { font-size: 13px; line-height: 1.7; }
body.nx-customer :is(.ac-button, .ac-topup, .oh-button, .oh-bulk-actions .oh-button, .nx-tax-tabs .nav-link) { font-size: 13px; font-weight: 600; }
body.nx-customer .ac-sidebar .ac-nav-link { font-size: 14px; font-weight: 500; }
body.nx-customer :is(.ac-eyebrow, .ac-sidebar .ac-nav-label, .ac-balance-label, .ac-profile-fields dt, .ac-filter label, .oh-filter label) { font-size: 12px; font-weight: 500; }
body.nx-customer :is(.ac-profile-fields dd, .ac-filter input, .oh-filter input) { font-size: 14px; }
body.nx-customer :is(.ac-ledger-table, .oh-table, .profile-part .table) { font-variant-numeric: tabular-nums; }
body.nx-customer :is(.ac-ledger-table, .oh-table, .profile-part .table) th { font-size: 12px; font-weight: 600; line-height: 1.6; }
body.nx-customer :is(.ac-ledger-table, .oh-table, .profile-part .table) td { font-size: 13px; line-height: 1.65; }
body.nx-customer :is(.ac-transaction-description strong, .oh-product-name, .nx-log-action strong) { font-size: 13px; font-weight: 600; }
body.nx-customer :is(.ac-transaction-description div > span, .oh-order-ref, .oh-product-quantity, .oh-time-cell time, .oh-payment-cell > span, .oh-expiry, .oh-note-status, .oh-refunded) { font-size: 11px; line-height: 1.6; }
body.nx-customer :is(.oh-note, .ac-filter-bottom label, .ac-filter-bottom select, .oh-select-controls label, .oh-select-controls select) { font-size: 12px; }
body.nx-customer :is(.ac-record-count, .ac-pagination p, .ac-pagination nav > *, .oh-pagination p, .oh-pagination nav > *, .page-info, .single-banner .breadcrumb) { font-size: 12px; }
body.nx-customer :is(.ac-wallet-stats > div > div > span, .nx-field-help, .nx-security-note p, .nx-card-actions > span, .nx-card-notice, .ac-device p) { font-size: 12px; line-height: 1.75; }
body.nx-customer :is(.oh-retention strong, .oh-summary span) { font-size: 13px; font-weight: 500; }
body.nx-customer :is(.oh-retention p, .oh-summary p, .oh-bulk-actions > span) { font-size: 12px; line-height: 1.7; }

/* Purchase dialogs, product previews and policy content. */
body.nx-customer :is(.modal-title, .pv-title, .nx-checkout-header h2) { font-weight: 600; letter-spacing: -.02em; }
body.nx-customer :is(.nx-product-description, .policy-intro, .policy-document section > p, .blog-desc) { font-size: 14px; line-height: 1.85; }
body.nx-customer :is(.nx-checkout label, .nx-section-label, .nx-coupon-label, .nx-volume-deals, .nx-stock-line, .nx-sold, .nx-wallet div span) { font-size: 12px; line-height: 1.7; }
body.nx-customer :is(.nx-checkout-kicker, .pv-badge, .pv-selected-badge, .policy-modal-header span, .policy-effective, .blog-meta) { font-size: 11px; font-weight: 500; }
body.nx-customer :is(.nx-primary, .nx-secondary, .pv-btn-login, .pv-btn-pay, .policy-modal-actions button) { font-size: 14px; font-weight: 600; }
body.nx-customer :is(.nx-payment-note, .nx-coupon-hint, .nx-field-error, .nx-checkout-error, .nx-receipt-note, .nx-receipt-id, .policy-payment p, .nx-linkedin-rules li) { font-size: 13px; line-height: 1.75; }
body.nx-customer :is(.nx-unit-price, .nx-totals, .pv-payment-title, .policy-section-nav a, .policy-support-link) { font-size: 13px; }
body.nx-customer :is(.pv-coupon-input, .nx-coupon input) { font-size: 14px; }
body.nx-customer :is(.support-community-card p, .telegram-contact-intro, .support-admins > p) { font-size: 14px; line-height: 1.75; }
body.nx-customer :is(.support-community-card > div > span, .telegram-support-card span) { font-size: 12px; }
body.nx-customer :is(.support-community-card > a, .telegram-support-card > a) { font-size: 13px; font-weight: 600; }

@media (max-width: 767px) {
  body.nx-customer .skp-mini-banner strong { font-size: 17px; }
  body.nx-customer :is(.skp-mini-banner small, .skp-mini-banner b) { font-size: 11px; }
  body.nx-customer :is(.skp-section-heading h2, .home-heading h3) { font-size: 21px; }
  body.nx-customer .skp-section-heading > a { font-size: 12px; }
  body.nx-customer .skp-product-meta { font-size: 11px; }
  body.nx-customer .skp-price { font-size: 16px; }
  body.nx-customer :is(.store-auth-main, .nx-standalone-auth) .user-form .form-control,
  body.nx-customer :is(.profile-part, .contact-part, .nx-settings-form, .nx-tax-fields) :is(.form-control, .form-select) { font-size: 16px; }
}
