/**
 * САНДПРОФ — Design Tokens (единый источник правды)
 * Меняйте значения только здесь — все CSS-файлы темы ссылаются на эти переменные.
 *
 * @package Sandprof
 */

:root {
  /* ——— shadcn/ui tokens (HSL) ——— */
  --background: 150 10% 98%;
  --foreground: 160 8% 12%;
  --card: 0 0% 100%;
  --card-foreground: 160 8% 12%;
  --primary: 162 48% 20%;
  --primary-foreground: 0 0% 98%;
  --secondary: 150 8% 95%;
  --secondary-foreground: 162 48% 20%;
  --muted: 150 8% 95%;
  --muted-foreground: 160 5% 42%;
  --accent: 150 8% 95%;
  --accent-foreground: 162 48% 20%;
  --destructive: 0 24% 39%;
  --destructive-foreground: 0 0% 98%;
  --border: 150 8% 90%;
  --input: 150 8% 90%;
  --ring: 156 38% 45%;
  --radius: 0.5rem;

  /* ——— Цвета: палитра (legacy aliases → shadcn) ——— */
  --forest-800: hsl(var(--primary));
  --forest-700: hsl(162 48% 26%);
  --forest-600: hsl(162 40% 30%);
  --moss-500: hsl(var(--ring));
  --moss-400: hsl(156 38% 45%);
  --burgundy-500: hsl(var(--destructive));
  --burgundy-600: hsl(0 24% 32%);
  --charcoal-900: hsl(var(--foreground));
  --steel-600: hsl(var(--muted-foreground));
  --steel-500: hsl(var(--muted-foreground));
  --steel-400: hsl(160 5% 55%);
  --sand-100: hsl(var(--muted));
  --sand-50: hsl(var(--background));
  --white: hsl(var(--card));
  --forest-950: #0a1814;
  --forest-900: #0f2e26;
  --border-subtle: hsl(var(--border) / 0.8);

  /* ——— Цвета: семантика (shadcn) ——— */
  --bg: hsl(var(--background));
  --muted-fg: hsl(var(--muted-foreground));
  --copper-500: hsl(var(--destructive));
  --sp-color-text: hsl(var(--foreground));
  --sp-color-text-muted: hsl(var(--muted-foreground));
  --sp-color-text-inverse: hsl(var(--primary-foreground));
  --sp-color-primary: hsl(var(--primary));
  --sp-color-primary-hover: hsl(162 48% 26%);
  --sp-color-accent: hsl(var(--destructive));
  --sp-color-accent-hover: hsl(0 24% 32%);
  --sp-color-surface: hsl(var(--card));
  --sp-color-surface-muted: hsl(var(--muted));
  --sp-color-border: hsl(var(--border));
  --sp-color-focus-ring: hsl(var(--ring) / 0.45);

  /* ——— Типографика (ровно 2 роли: display + body) ——— */
  --sp-font-display: "Montserrat", sans-serif;
  --sp-font-body: "Noto Sans", sans-serif;
  --display: var(--sp-font-display);
  --body: var(--sp-font-body);
  --sp-text-xs: 0.75rem;
  --sp-text-sm: 0.875rem;
  --sp-text-base: 1rem;
  --sp-text-lg: 1.125rem;
  --sp-text-xl: 1.25rem;
  --sp-text-2xl: clamp(1.75rem, 3vw, 2.25rem);
  --sp-text-3xl: clamp(1.875rem, 3vw, 2.75rem);
  --sp-text-hero: clamp(2.25rem, 5vw, 3.75rem);
  --sp-leading-tight: 1.1;
  --sp-leading-normal: 1.6;
  --sp-leading-relaxed: 1.75;
  /* Чем крупнее display-заголовок — тем плотнее трекинг */
  --sp-tracking-display-xl: -0.04em;
  --sp-tracking-display-lg: -0.035em;
  --sp-tracking-display-md: -0.03em;
  --sp-tracking-display-sm: -0.02em;
  --sp-tracking-tight: var(--sp-tracking-display-sm);
  --sp-tracking-eyebrow: 0.12em;

  /* ——— Отступы (шкала 4px) ——— */
  --sp-space-2xs: 0.25rem;
  --sp-space-xs: 0.5rem;
  --sp-space-sm: 1rem;
  --sp-space-md: 1.5rem;
  --sp-space-lg: 2rem;
  --sp-space-xl: 3rem;
  --sp-space-2xl: 4rem;
  --sp-space-3xl: 5rem;
  --sp-space-section-y: clamp(3.5rem, 6vw, 5rem);
  --sp-space-stack: var(--sp-space-lg);
  --sp-space-inline: var(--sp-space-md);

  /* ——— Сетка ——— */
  --sp-grid-columns: 12;
  --sp-grid-gap: var(--sp-space-md);
  --sp-grid-max: 1280px;
  --sp-grid-margin: var(--sp-space-sm);

  /* ——— Скругления ——— */
  --sp-radius-sm: var(--radius);
  --sp-radius-md: var(--radius);
  --sp-radius-lg: calc(var(--radius) + 2px);
  --sp-radius-xl: calc(var(--radius) + 4px);
  --sp-radius-2xl: calc(var(--radius) + 8px);
  --sp-radius-full: 999px;
  --sp-btn-radius: var(--radius);
  --sp-card-radius: var(--radius);

  /* ——— Границы ——— */
  --sp-border-width: 1px;
  --sp-border-width-thick: 2px;
  --sp-border-color: hsl(var(--border));
  --sp-border-color-strong: rgba(27, 77, 62, 0.2);

  /* ——— Тени ——— */
  --shadow-soft: 0 4px 24px -4px rgba(27, 77, 62, 0.1);
  --shadow-card: 0 1px 3px rgba(15, 46, 38, 0.04), 0 8px 24px -8px rgba(15, 46, 38, 0.08);
  --shadow-glow: 0 0 40px -8px rgba(61, 138, 110, 0.35);
  --sp-shadow-sm: 0 1px 2px rgba(27, 77, 62, 0.05);
  --sp-shadow-md: var(--shadow-card);
  --sp-shadow-lg: 0 8px 32px rgba(27, 77, 62, 0.15);

  /* ——— Анимация ——— */
  --ease-premium: cubic-bezier(0.22, 1, 0.36, 1);
  --sp-duration-fast: 0.2s;
  --sp-duration-normal: 0.3s;

  /* ——— Chrome (шапка + промо) ——— */
  --sp-chrome-offset: clamp(5.5rem, 11vw, 7rem);

  /* ——— Hero (cinema) ——— */
  --sp-hero-min-height: min(80svh, 800px);
  --sp-hero-content-padding-block: calc(1.5 * var(--sp-space-xl));
  --sp-hero-content-padding-inline: 0;
  --sp-hero-inner-gap: var(--sp-space-lg);
  --sp-hero-content-gap: var(--sp-space-sm);

  /* ——— Кнопки ——— */
  --sp-btn-padding-y: 0.75rem;
  --sp-btn-padding-x: 1.5rem;
  --sp-btn-padding-y-lg: 1rem;
  --sp-btn-padding-x-lg: 2rem;
  --sp-btn-radius: var(--radius);
  --sp-btn-font-size: var(--sp-text-sm);
  --sp-btn-font-size-lg: var(--sp-text-base);

  /* ——— Карточки ——— */
  --sp-card-padding: var(--sp-space-md);
  --sp-card-radius: var(--radius);
  --sp-card-border: var(--sp-border-width) solid var(--sp-border-color);

  /* ——— Секции ——— */
  --sp-section-header-gap: var(--sp-space-lg);
  --sp-section-eyebrow-gap: var(--sp-space-xs);
}

/* Китайская локаль: та же роль body, глифы CJK через Noto Sans SC */
html:lang(zh) {
  --sp-font-body: "Noto Sans SC", sans-serif;
  --body: var(--sp-font-body);
}
