/* Shared frontend design tokens. Keep page-specific styles semantic and small. */
:root {
    --ms-font-family-frontend: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    --ms-font-size-page-title-mobile: 1.375rem;
    --ms-font-size-page-title-desktop: 1.625rem;
    --ms-font-size-subtitle-mobile: 0.75rem;
    --ms-font-size-subtitle-desktop: 0.8125rem;
    --ms-font-size-body: 0.875rem;
    --ms-font-size-label: 0.8125rem;
    --ms-font-size-caption: 0.75rem;
    --ms-font-size-price-mobile: 1.375rem;
    --ms-font-size-price-desktop: 1.625rem;
    --ms-font-weight-regular: 400;
    --ms-font-weight-medium: 500;
    --ms-font-weight-semibold: 600;
    --ms-font-weight-bold: 700;
    /* Ordinary UI roles. Product lettering and icon faces retain their owners. */
    --ms-weight-body: var(--ms-font-weight-regular);
    --ms-weight-label: var(--ms-font-weight-medium);
    --ms-weight-action: var(--ms-font-weight-semibold);
    --ms-weight-section: var(--ms-font-weight-semibold);
    --ms-weight-heading: var(--ms-font-weight-bold);
    --ms-weight-price: var(--ms-font-weight-semibold);
    --ms-weight-total: var(--ms-font-weight-bold);
    --ms-line-title: 1.3;
    --ms-line-body: 1.55;
    --ms-line-label: 1.4;
    --ms-line-action: 1.25;
    --ms-line-money: 1.2;
    --ms-letter-spacing-ui: normal;
    --ms-frontend-header-height-mobile: 56px;
    --ms-frontend-header-height-mobile-large: 64px;
    --ms-frontend-header-height-desktop: 64px;
    --ms-frontend-header-hit-area: 44px;
    --ms-frontend-header-icon-size: 22px;
    --ms-frontend-page-gap-mobile: 16px;
    --ms-frontend-page-gap-desktop: 24px;
    --ms-space-1: .25rem;
    --ms-space-2: .5rem;
    --ms-space-3: .75rem;
    --ms-space-4: 1rem;
    --ms-space-6: 1.5rem;
    --ms-space-8: 2rem;
    --ms-container-form: 40rem;
    --ms-container-commerce: 80rem;
    --ms-container-collection: 90rem;
    --ms-control-target: 2.75rem;
    --ms-control-compact-width: 2rem;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body,
h1, h2, h3, h4, h5, h6 {
    font-family: var(--ms-font-family-frontend) !important;
}

button,
input,
select,
textarea {
    font: inherit;
    font-family: var(--ms-font-family-frontend) !important;
}

/* Elementor globals and ordinary text widgets share the same UI family.
   No universal descendant override: engraving samples/previews and icon glyphs retain their fonts. */
body {
    --e-global-typography-primary-font-family: var(--ms-font-family-frontend) !important;
    --e-global-typography-secondary-font-family: var(--ms-font-family-frontend) !important;
    --e-global-typography-text-font-family: var(--ms-font-family-frontend) !important;
    --e-global-typography-accent-font-family: var(--ms-font-family-frontend) !important;
}
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-button .elementor-button,
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-description,
.elementor-widget-image-box .elementor-image-box-title,
.elementor-widget-image-box .elementor-image-box-description {
    font-family: var(--ms-font-family-frontend) !important;
}
