/* ==========================================================================
   mingda · design tokens
   Single source of truth for colour / type / layout values.
   No component CSS may hard-code a hex or a free px value — see design-spec §0.1.
   Brand anchors (locked, extracted from the logos, never edited):
     Mingda green  #3E8E37
     HAILIDUN red  #E8012C   (protective line only)
   ========================================================================== */

:root{
  /* ===== colour ramp (§1) ===== */
  --md-color-green-50:#F1F9F1;  --md-color-green-100:#E0F2DE; --md-color-green-200:#C0E5BD;
  --md-color-green-300:#96D491; --md-color-green-400:#62BF5A;
  --md-color-green-500:#3E8E37;  /* brand primary · logo original, do not change */
  --md-color-green-600:#33762D; --md-color-green-700:#296124; --md-color-green-800:#1E4B1B;
  --md-color-green-900:#153612;
  --md-color-red-50:#FDECEF; --md-color-red-100:#FBD5DC;
  --md-color-red-500:#E8012C;    /* HAILIDUN brand red · protective line only */
  --md-color-red-600:#C50125; --md-color-red-700:#9C001D;
  --md-color-grey-900:#151517; --md-color-grey-800:#2C2C2F; --md-color-grey-700:#3C3C3F;
  --md-color-grey-600:#636468; --md-color-grey-500:#8A8D93; --md-color-grey-400:#ADB4BC;
  --md-color-grey-300:#D9DCE0; --md-color-grey-200:#E9ECF0; --md-color-grey-100:#F2F4F7;
  --md-color-grey-50:#FAFBFC;  --md-color-white:#FFFFFF;

  /* semantic map */
  --md-color-primary:var(--md-color-green-500);
  --md-color-primary-hover:var(--md-color-green-600);
  --md-color-primary-active:var(--md-color-green-800);
  --md-color-primary-soft:var(--md-color-green-50);
  --md-color-hailidun:var(--md-color-red-500);
  --md-color-bg-page:var(--md-color-white);
  --md-color-bg-subtle:var(--md-color-grey-100);
  --md-color-bg-muted:var(--md-color-grey-200);
  --md-color-bg-dark:var(--md-color-grey-900);
  --md-color-bg-brand-soft:var(--md-color-green-50);
  --md-color-bg-hailidun-soft:var(--md-color-red-50);
  --md-color-text-primary:var(--md-color-grey-900);
  --md-color-text-secondary:var(--md-color-grey-600);
  --md-color-text-muted:var(--md-color-grey-500);
  --md-color-text-inverse:var(--md-color-white);
  --md-color-text-inverse-secondary:var(--md-color-grey-300);
  --md-color-text-link:var(--md-color-green-700);
  --md-color-text-link-hover:var(--md-color-green-800);
  --md-color-text-on-primary:var(--md-color-white);
  --md-color-border:var(--md-color-grey-300);
  --md-color-border-subtle:var(--md-color-grey-200);
  --md-color-border-strong:var(--md-color-grey-400);
  --md-color-border-brand:var(--md-color-green-500);
  --md-color-focus:rgba(62,142,55,.35);
  --md-color-focus-red:rgba(232,1,44,.30);
  --md-color-success:#268E4E; --md-color-success-bg:#E6F4EC; --md-color-success-border:#A8D8BC;
  --md-color-success-text:#1B6B3A;
  --md-color-warning:#F2A33C; --md-color-warning-bg:#FFF4E5; --md-color-warning-border:#FFD9A0;
  --md-color-warning-text:#B26A00;
  --md-color-error:#B3261E;   --md-color-error-bg:#FDECEA;
  --md-color-overlay:rgba(21,21,23,.55);

  /* ===== fonts (§2) ===== */
  --md-font-heading:'Barlow Condensed','Oswald','Noto Sans SC','Arial Narrow',sans-serif;
  --md-font-body:'Barlow','Noto Sans SC','Segoe UI',system-ui,sans-serif;
  --md-font-heading-zh:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;

  /* ===== type scale, desktop EN (§2.2) ===== */
  --md-text-h1:3.5rem; --md-text-h2:2.5rem; --md-text-h3:1.75rem; --md-text-h4:1.375rem;
  --md-text-h5:1.125rem; --md-text-h6:1rem; --md-text-eyebrow:0.75rem;
  --md-text-body-lg:1.125rem; --md-text-body:1rem; --md-text-small:0.875rem;
  --md-text-caption:0.75rem; --md-text-button:0.9375rem; --md-text-stat:3rem;
  --md-lh-h1:1.05; --md-lh-h2:1.10; --md-lh-h3:1.20; --md-lh-h4:1.30; --md-lh-h5:1.40;
  --md-lh-body:1.65; --md-lh-body-lg:1.65; --md-lh-small:1.55; --md-lh-h6:1.40;
  --md-tracking-h1:-0.01em; --md-tracking-h2:-0.005em;
  --md-tracking-eyebrow:0.08em; --md-tracking-button:0.01em; --md-tracking-caption:0.02em;

  /* ===== layout (§3) ===== */
  --md-container-max:1280px; --md-container-wide:1440px; --md-container-narrow:780px;
  --md-container-gutter:24px; --md-section-y:6rem;
  --md-space-1:.25rem; --md-space-2:.5rem;  --md-space-3:.75rem; --md-space-4:1rem;
  --md-space-5:1.5rem; --md-space-6:2rem;   --md-space-7:2.5rem; --md-space-8:3rem;
  --md-space-9:4rem;   --md-space-10:5rem;  --md-space-11:6rem;  --md-space-12:7.5rem;
  --md-radius-none:0; --md-radius-xs:2px; --md-radius-sm:4px; --md-radius-md:6px;
  --md-radius-pill:999px;
  --md-shadow-0:none;
  --md-shadow-1:0 1px 2px rgba(21,21,23,.06),0 1px 1px rgba(21,21,23,.04);
  --md-shadow-2:0 4px 12px rgba(21,21,23,.08);
  --md-shadow-3:0 12px 28px rgba(21,21,23,.12);
  --md-shadow-sticky:0 2px 8px rgba(21,21,23,.10);
  --md-size-utility-bar:36px; --md-size-header:72px;
  --md-size-header-total:calc(var(--md-size-utility-bar) + var(--md-size-header));
  --md-size-btn-h:48px; --md-size-btn-h-sm:40px; --md-size-btn-h-lg:56px;
  --md-size-input-h:48px;

  /* breakpoints, documented for parity with the spec (used via media queries) */
  --bp-sm:576px; --bp-md:768px; --bp-lg:1024px; --bp-xl:1280px; --bp-2xl:1440px;
}

/* Chinese scope — Polylang renders <html lang="zh-CN"> */
html[lang="zh-CN"]{
  --md-font-body:'Noto Sans SC','Barlow','PingFang SC','Microsoft YaHei',sans-serif;
  --md-font-heading:'Noto Sans SC','Barlow Condensed','PingFang SC','Microsoft YaHei',sans-serif;
  --md-text-h1:2.75rem; --md-text-h2:2rem; --md-text-h3:1.5rem; --md-text-h4:1.25rem;
  --md-text-h5:1.0625rem; --md-text-h6:0.9375rem; --md-text-eyebrow:0.75rem;
  --md-text-body:0.9375rem; --md-text-body-lg:1.0625rem; --md-text-small:0.8125rem;
  --md-text-caption:0.75rem; --md-text-button:0.9375rem; --md-text-stat:2.5rem;
  --md-lh-h1:1.25; --md-lh-h2:1.35; --md-lh-h3:1.45; --md-lh-h4:1.5; --md-lh-h5:1.6;
  --md-lh-body:1.85; --md-lh-body-lg:1.85; --md-lh-small:1.75; --md-lh-h6:1.6;
  --md-tracking-h1:0.02em; --md-tracking-h2:0.02em; --md-tracking-eyebrow:0.1em;
  --md-tracking-button:0.06em; --md-tracking-caption:0.01em;
}

/* tablet 768–1023 */
@media (max-width:1023px){
  :root{--md-container-gutter:20px; --md-section-y:5rem; --md-size-header:64px;
        --md-text-h1:2.75rem; --md-text-h2:2rem; --md-text-h3:1.5rem; --md-text-h4:1.25rem;
        --md-text-stat:2.5rem; --md-lh-h1:1.1;}
}
/* mobile ≤767 */
@media (max-width:767px){
  :root{--md-container-gutter:16px; --md-section-y:4rem; --md-size-header:56px;
        --md-text-h1:2rem; --md-text-h2:1.625rem; --md-text-h3:1.3125rem; --md-text-h4:1.125rem;
        --md-text-h5:1rem; --md-text-h6:.875rem; --md-text-eyebrow:.6875rem;
        --md-text-body-lg:1.0625rem; --md-text-small:.8125rem; --md-text-stat:2.125rem;
        --md-lh-h1:1.15; --md-lh-h2:1.20; --md-lh-h3:1.30; --md-lh-h4:1.35; --md-lh-h5:1.40;
        --md-tracking-eyebrow:0.06em;}
}
