/* ParfumMarket - дизайн-токены (единственный source of truth для :root).
 * Светлая витрина в стиле Крайт. Critical CSS инлайнит этот файл через inc/perf.php -
 * не дублировать :root в critical.css.
 *
 * Слои: foundation (сырьё) → semantic (роли) → component defaults (runtime).
 * Старые имена --pm-pink и т.п. сохранены как алиасы, store.css не ломаем.
 */

:root {
	/* ========== Foundation: color ==========
	 * Soft hex-shift 0.26.53 (Крайт, теплее/мягче; без ребренда).
	 * Старое: pink-500 #cf5e8a, gold #c6a15b, text #212529.
	 */
	--pm-color-pink-300: #f4c9d9; /* soft fill / ghost hover */
	--pm-color-pink-400: #e89bb8; /* только на тёмных панелях, на светлом текстом не ставить */
	/* 19.08: шкала опущена по светлоте, тон и насыщенность сохранены (hue 337, sat 52%).
	   Повод: белый на pink-500 давал 3.39 при норме 4.5 - это кнопка «В корзину». Значения
	   подобраны против ВСЕХ светлых подложек темы, а не только против белого: правка 14.08
	   считала по белому и потому пропустила pink-wash и bg-alt. */
	--pm-color-pink-500: #b63a6a; /* было #d06b92; текст и заливка кнопок, 5.52 к белому */
	--pm-color-pink-600: #a5446a; /* было #b54d76; текст на pink-wash, 4.80 */
	--pm-color-pink-700: #923a5f; /* было #9a3d64; pressed / active, 7.02 к белому */
	--pm-color-pink-glow: #ffc4d8; /* highlight on dark (email / thank-you theater) */
	--pm-color-pink-wash: #f8e5ee;
	--pm-color-pink-wash-2: #f4e9ef;

	--pm-color-ink-900: #1c1c1c;
	--pm-color-ink-800: #2c2c2c;

	--pm-color-neutral-900: #1c181a; /* тёплый body text */
	--pm-color-neutral-600: #5c555a;
	/* 19.08: было #7b7479 (правка 14.08 от #8a8288). На белом та давала 4.55, но этим же
	   токеном покрашены подписи на розовой и серой подложке, а там было 3.78 и 4.17.
	   Новое значение держит норму на всех светлых фонах темы: минимум 4.63. */
	--pm-color-neutral-400: #6d666b;
	--pm-color-border: #ececec;
	--pm-color-border-soft: #f0f0f0;

	--pm-color-white: #ffffff;
	--pm-color-bg-alt: #f8f4f5;
	--pm-color-bg-muted: #f5f5f5;
	/* Пудровые оттенки hero / секций (Крайт-градиенты) */
	--pm-color-powder-1: #f6f1f3;
	--pm-color-powder-2: #faf6f8;
	--pm-color-powder-3: #f3eef1;
	--pm-color-powder-4: #faf4f7;
	--pm-color-powder-5: #f4ebf0;
	--pm-color-powder-6: #faf7f9;
	--pm-color-promo-pink: #f9dfe9;
	--pm-color-promo-cool-1: #eef1f4;
	--pm-color-promo-cool-2: #e7ebf1;
	--pm-color-ink-deep: #2a1c24;
	--pm-color-ink-mid: #2c2430;
	--pm-color-note-ink: #8a4a64;

	/* 12 ольфакторных семей (dot / ink) */
	--pm-fam-citrus-dot: #d0b23a;
	--pm-fam-citrus-ink: #6a5410;
	--pm-fam-fruit-dot: #d0588a;
	--pm-fam-fruit-ink: #7a2a48;
	--pm-fam-white-floral-dot: #d09ab0;
	--pm-fam-white-floral-ink: #6e4658;
	--pm-fam-floral-dot: #c46ea8;
	--pm-fam-floral-ink: #6a2e56;
	--pm-fam-green-dot: #6aaa54;
	--pm-fam-green-ink: #345a28;
	--pm-fam-spice-dot: #d07038;
	--pm-fam-spice-ink: #743414;
	--pm-fam-wood-dot: #a08462;
	--pm-fam-wood-ink: #4e3c28;
	--pm-fam-amber-dot: #cfa24e;
	--pm-fam-amber-ink: #6e4e18;
	--pm-fam-sweet-dot: #b98a64;
	--pm-fam-sweet-ink: #5e3e28;
	--pm-fam-musk-dot: #9a90a6;
	--pm-fam-musk-ink: #45404e;
	--pm-fam-moss-dot: #7a8a4a;
	--pm-fam-moss-ink: #3c4620;
	--pm-fam-aqua-dot: #4aa6c0;
	--pm-fam-aqua-ink: #1e5464;
	--pm-fam-neutral-dot: #b8b2c0;
	--pm-fam-neutral-ink: #55505e;
	--pm-color-cool-1: #8fb6d6;
	--pm-color-cool-2: #a88bc0;
	/* UI residual (cards, dark panels, soft pink borders) */
	--pm-color-soft-border: #e2d2da;
	--pm-color-soft-ring: #ecd9e2;
	--pm-color-soft-glow: #efe6ea;
	--pm-color-soft-pink-mid: #f5b9d1;
	--pm-color-soft-pink-edge: #e8a0bc;
	--pm-color-soft-lilac: #f0eaee;
	--pm-color-soft-rose: #f0d8e4;
	--pm-color-muted-bg: #f0eeef;
	--pm-color-panel-ink: #120e12;
	--pm-color-panel-ink-2: #1a1622;
	--pm-color-panel-ink-3: #2a2430;
	--pm-color-panel-ink-4: #332637;
	--pm-color-panel-ink-5: #241a28;
	--pm-color-panel-wine: #5a3a48;
	--pm-color-panel-rose: #7d5566;
	--pm-color-cond-gold: #8a6d2f;
	--pm-color-cond-gold-2: #c9a24a;
	--pm-color-success-bright: #3f9d63;
	--pm-color-stock-ok: #0c8039; /* 19.08: было #0fa64a, на белом давало 3.19 */
	--pm-color-stock-ok-2: #16a44a;
	--pm-color-quiz-lilac: #f7f4f8;
	--pm-color-quiz-lilac-2: #fdfbfd;
	--pm-color-quiz-lilac-3: #f2eef4;
	--pm-color-gold-wash: #efe7d2;
	--pm-color-gold-wash-2: #fff8e8;
	--pm-color-gold-wash-3: #ffe9b0;
	--pm-color-violet-deep: #3a2a48;
	--pm-color-violet-deep-2: #2a2038;
	--pm-color-violet-soft: #f8e4ed;
	--pm-color-violet-soft-2: #ebe0f4;
	--pm-color-gray-chip: #6a6a76; /* 19.08: было #9a9aa4, на muted-bg давало 2.41 */
	--pm-color-gray-border: #c9bcc4;
	--pm-color-gray-border-2: #d7c9d1;
	--pm-color-gray-border-3: #d8d4dc;
	--pm-color-silver: #b8b8b8;
	--pm-color-neutral-bg: #f7f4f6;

	--pm-color-success: #4a9d5b;
	--pm-color-sale: #e23b5a;
	--pm-color-gold: #c9a86c;
	/* Золото как ТЕКСТ. Сам --pm-color-gold остаётся светлым: он на 16 из 29 случаев
	   волосяная линия и заливка, темнить их незачем. Проваливались только кикеры. */
	--pm-color-gold-ink: #7e612e;
	--pm-color-rosegold: #d4a8a0;

	/* ========== Foundation: space (4px grid, base 8) ========== */
	--pm-space-base: 8px;
	--pm-space-1: 4px;
	--pm-space-2: 8px;
	--pm-space-3: 12px;
	--pm-space-4: 16px;
	--pm-space-5: 20px;
	--pm-space-6: 24px;
	--pm-space-8: 32px;
	--pm-space-10: 40px;
	--pm-space-12: 48px;
	--pm-space-16: 64px;

	/* ========== Foundation: type size ========== */
	--pm-fs-2xs: 10px;
	--pm-fs-xs: 11px;
	--pm-fs-sm: 12px;
	--pm-fs-sm-plus: 12.5px; /* nav / meta (не на шкале 1px) */
	--pm-fs-md: 13px;
	--pm-fs-body: 14px;
	--pm-fs-body-plus: 15px;
	--pm-fs-lg: 16px;
	--pm-fs-xl: 18px;
	--pm-fs-2xl: 22px;
	--pm-fs-3xl: 24px;
	--pm-fs-4xl: 30px;
	--pm-fs-display: clamp(2rem, 5vw, 3rem);

	/* Line-height / tracking */
	--pm-lh-tight: 1.1;
	--pm-lh-snug: 1.25;
	--pm-lh-body: 1.55;
	--pm-lh-loose: 1.65;
	--pm-track-wide: 0.06em;
	--pm-track-hero: 0.14em;

	/* ========== Foundation: radius / shadow / layout ========== */
	--pm-radius-sm: 4px;
	--pm-radius-md: 10px;
	--pm-radius-xl: 16px; /* modals / sheets (новое) */
	--pm-radius-pill: 999px;
	/* Многослойные тени; lg с лёгким pink tint */
	--pm-shadow-sm: 0 1px 2px rgba(28, 24, 26, 0.04), 0 2px 8px rgba(28, 24, 26, 0.05);
	--pm-shadow-md: 0 4px 12px rgba(28, 24, 26, 0.06), 0 8px 28px rgba(28, 24, 26, 0.07);
	--pm-shadow-lg: 0 8px 24px rgba(28, 24, 26, 0.08), 0 20px 48px color-mix(in srgb, var(--pm-color-pink-500) 12%, transparent);
	--pm-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--pm-color-pink-500) 35%, transparent);
	--pm-maxw: 1200px;
	--pm-container-pad: var(--pm-space-6);
	--pm-container-pad-sm: var(--pm-space-4);
	--pm-touch-min: 44px;

	/* Motion */
	--pm-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--pm-ease-std: cubic-bezier(0.4, 0, 0.2, 1);
	--pm-dur-fast: 150ms;
	--pm-dur-mid: 220ms;
	--pm-dur-slow: 360ms;

	/* ========== Breakpoints (канон; @media - литералами, var() в query нет) ==========
	 *
	 * Имя        min-width   max-width (пара)   Когда
	 * sm         480         479                мелкий мобайл
	 * md         640         639                мобайл wide / фасеты
	 * lg         860         859                основной mobile↔desktop
	 * xl         1100        1099               широкий / burger-зона
	 * search     1330        1329               пилюля поиска в шапке
	 *
	 * Новые @media (min|max)-width - ТОЛЬКО из этих px.
	 * Исключения (не расширять без решения):
	 *   782     - WP admin bar
	 *   560/561 - announce: один пункт на телефоне и планшетный диапазон 561-1024 у той же
 *             полосы (на 640 промежуток 561-639 остался бы без правила)
	 *   760/761 - promos 2-col (промежуток lg)
	 * Facets sidebar/sheet с 0.26.52: 861 / 860 (канон lg), legacy 980/981 снят.
	 * Проверка: python tools/qa/check-breakpoints.py
	 */

	/* ========== Semantic (роли) ========== */
	--pm-bg: var(--pm-color-white);
	--pm-bg-2: var(--pm-color-bg-alt);
	--pm-bg-3: var(--pm-color-bg-muted);
	--pm-surface: var(--pm-color-white);
	--pm-border: var(--pm-color-border);
	--pm-border-soft: var(--pm-color-border-soft);

	--pm-text: var(--pm-color-neutral-900);
	--pm-text-muted: var(--pm-color-neutral-600);
	--pm-text-faint: var(--pm-color-neutral-400);

	--pm-pink: var(--pm-color-pink-500);
	--pm-pink-deep: var(--pm-color-pink-600);
	--pm-pink-soft: var(--pm-color-pink-400);
	--pm-pink-subtle: var(--pm-color-pink-300);
	--pm-pink-hover: var(--pm-color-pink-600);
	--pm-pink-active: var(--pm-color-pink-700);
	--pm-pink-glow: var(--pm-color-pink-glow);
	--pm-pink-wash: var(--pm-color-pink-wash);
	--pm-pink-wash-2: var(--pm-color-pink-wash-2);

	--pm-panel-ink: var(--pm-color-panel-ink);
	--pm-panel-ink-2: var(--pm-color-panel-ink-2);

	--pm-cta-ink: var(--pm-color-ink-900);
	--pm-cta-ink-hov: var(--pm-color-ink-800);
	--pm-on-ink: var(--pm-color-white);

	--pm-success: var(--pm-color-success);
	--pm-sale: var(--pm-color-sale);
	--pm-on-pink: var(--pm-color-white);
	--pm-text-save: var(--pm-color-cond-gold);

	--pm-gold: var(--pm-color-gold);
	--pm-gold-ink: var(--pm-color-gold-ink);
	--pm-rosegold: var(--pm-color-rosegold);
	--pm-gold-line: linear-gradient(90deg, transparent, var(--pm-color-gold), var(--pm-color-rosegold), transparent);

	/* R3 0.26.56: Onest UI + Fraunces display (читаемые title, без Playfair/Cormorant) */
	--pm-font-head: "Onest", "Helvetica Neue", Arial, sans-serif;
	--pm-font-body: "Onest", "Helvetica Neue", Arial, sans-serif;
	--pm-font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
	--pm-fs-h1: var(--pm-fs-4xl);
	--pm-fs-h2: var(--pm-fs-3xl);
	--pm-fs-h3: var(--pm-fs-2xl);

	/* Selection / interactive state (volpill, facets, chips) */
	--pm-border-active: var(--pm-pink);
	--pm-bg-selected: var(--pm-pink-wash);
	--pm-bg-selected-hover: var(--pm-pink-wash-2);
	--pm-text-selected: var(--pm-text);
	--pm-text-selected-accent: var(--pm-pink-deep);
	--pm-focus-border: var(--pm-pink);
	--pm-focus-ink: var(--pm-color-pink-700);
	--pm-focus-ring: var(--pm-shadow-focus);
	--pm-disabled-opacity: 0.45;

	/* Form fields (cart / checkout / facet search) */
	--pm-field-bg: var(--pm-surface);
	--pm-field-bg-muted: var(--pm-bg-2);
	--pm-field-border: var(--pm-border);
	--pm-field-border-focus: var(--pm-focus-border);
	--pm-field-placeholder: var(--pm-text-faint);
	--pm-field-radius: var(--pm-radius-sm);
	--pm-field-pad-y: var(--pm-space-3);
	--pm-field-pad-x: var(--pm-space-3);
	--pm-field-fs: var(--pm-fs-body);

	/* Section rhythm */
	--pm-section-gap: var(--pm-space-6);
	--pm-subsection-gap: var(--pm-space-4);
	--pm-stack-gap: var(--pm-space-3);

	/* Chip language (notes / fam / card) */
	--pm-chip-radius: var(--pm-radius-pill);
	--pm-chip-pad-y: var(--pm-space-1);
	--pm-chip-pad-x: 10px;
	--pm-chip-fs: var(--pm-fs-sm);
	--pm-chip-dot-size: 8px;

	/* Legacy radius/shadow names (store.css): lg = md, как до 0.26.50 */
	--pm-radius: var(--pm-radius-sm);
	--pm-radius-lg: var(--pm-radius-md);
	--pm-shadow: var(--pm-shadow-md);
	--pm-shadow-soft: var(--pm-shadow-sm);

	/* Semantic shortcuts for UI roles */
	--pm-color-price: var(--pm-pink);
	--pm-color-on-accent: var(--pm-on-pink);
	--pm-grad-hero: linear-gradient(90deg, var(--pm-color-powder-1) 0%, var(--pm-color-powder-2) 60%, var(--pm-color-powder-3) 100%);
	--pm-grad-section-alt: linear-gradient(180deg, var(--pm-color-powder-4) 0%, var(--pm-color-powder-5) 100%);
	--pm-grad-card-ph: linear-gradient(160deg, var(--pm-color-powder-2), var(--pm-color-powder-3));

	/* Motion composites */
	--pm-transition-color: color var(--pm-dur-fast) var(--pm-ease-std);
	--pm-transition-ui: transform var(--pm-dur-mid) var(--pm-ease-out),
		box-shadow var(--pm-dur-mid) var(--pm-ease-out),
		background var(--pm-dur-fast) var(--pm-ease-std),
		border-color var(--pm-dur-fast) var(--pm-ease-std);

	/* ========== Component defaults (переопределяются инлайном/JS) ========== */
	--pm-fam: var(--pm-pink);
	--pm-chip-fam: var(--pm-pink);
	--pm-fill: 0%;
	--pm-tip-arrow: 50%;
	--pm-btn-radius: var(--pm-radius-pill);
	--pm-btn-font-size: var(--pm-fs-md);
	--pm-btn-bg: var(--pm-pink);
	--pm-btn-bg-hover: var(--pm-pink-hover);
	--pm-btn-bg-active: var(--pm-pink-active);
	--pm-btn-fg: var(--pm-on-pink);
	--pm-btn-shadow-hover: var(--pm-shadow-md);
}

/* Reduce motion: обнуляем длительности глобально */
@media (prefers-reduced-motion: reduce) {
	:root {
		--pm-dur-fast: 0.01ms;
		--pm-dur-mid: 0.01ms;
		--pm-dur-slow: 0.01ms;
	}
}
