/*
Theme Name: Omni Cosplay Child
Template: hello-elementor
Version: 2.5.1
Description: 万相次元 Omni Cosplay 子主题 — v3.0 Warm Premium Retail（暖色高级零售）
Author: Developer
Text Domain: omnicosplay-child
*/

/* ════════════════════════════════════════════════════════════════
   本文件仅保留：
     ① WordPress 必需的主题头（上方注释块）
     ② hello-elementor 父主题容器的内边距/背景中和
     ③ 旧 --omni-* 变量 → OD 设计令牌别名（向后兼容旧模板内联引用）
     ④ WP 集成桥接（真实商品图填充 OD 的占位容器）
     ⑤ WooCommerce 原生加购表单桥接（可变/组合商品；WC 自带 CSS 已 dequeue）
   ──────────────────────────────────────────────────────────────
   全部品牌视觉、配色、组件样式都在 assets/css/omni.css
   （OD v3.0「Warm Premium Retail」设计系统基底，functions.php 全站加载）。
   改配色 / 改组件请到 omni.css，勿在此堆叠，避免回到旧技术债。
   ════════════════════════════════════════════════════════════════ */

/* ── ③ 旧 --omni-* → OD 令牌别名（实际值在 omni.css 的 :root 定义）── */
:root {
  --omni-bg:           #FAF7F2;
  --omni-surface:      #FFFFFF;
  --omni-primary:      #1A1A1A;
  --omni-text:         #1A1A1A;
  --omni-text-muted:   #6B6256;
  --omni-accent:       #E63946;
  --omni-gold:         #C9A24B;
  --omni-border:       rgba(40, 30, 20, .10);
  --omni-font-heading: 'Rajdhani', 'Rajdhani Fallback', Arial, sans-serif;
  --omni-font-body:    'Inter', 'Inter Fallback', Arial, sans-serif;
}

/* ── 字体令牌：度量对齐后备栈（根治字体加载回流 CLS — issue #21）──────────
   omni.css :root 用裸 'Rajdhani'/'Inter'/'Orbitron'（OD 生成、晚加载，普通
   声明盖不过）；此处用 !important 覆盖为带「度量对齐后备 face」的栈——后备
   @font-face 见 assets/fonts/fonts.css 末尾（@capsizecss 从 woff2 实测生成）。
   自定义属性的 !important 不受源顺序影响 → 稳压 omni.css，无需改 OD 文件。
   Orbitron 仅 LOGO（全大写·单行·无垂直回流），平均字宽 size-adjust 会过冲，
   故只挂 Arial 后备、不做 metric fallback。验证见 issue #21（无头 Chrome 实测
   Δh：Inter 正文 24.75px→0；Rajdhani 单行宽 72px→9.5px）。*/
:root {
  --font-display: 'Rajdhani', 'Rajdhani Fallback', Arial, sans-serif !important;
  --font-body:    'Inter', 'Inter Fallback', Arial, sans-serif !important;
  --font-brand:   'Orbitron', Arial, sans-serif !important;
}

/* Hero 副标题是单行 tagline——锁 nowrap，避免品牌字体未到位时后备字体把它
   顶成 2 行（会带着 .ohv2-info→.ohv2-visual 整列长高 → 英雄区主图上下跳）。
   metric fallback 把宽度对齐到 ~2.5%，但该串恰卡换行边界仍会被顶；nowrap 从
   源头消除该处换行回流。Rajdhani 窄体在桌面/移动各断点单行均可容下。
   见 issue #21（无头 Chrome 实测：此项是 metric fallback 后最后的 30px 残差）。*/
.ohv2-subtitle { white-space: nowrap; }

/* ── ② 中和 hello-elementor 父主题容器内边距/背景 ── */
.site,
.site-content,
.page-content,
.entry-content,
.hfe-header,
.hfe-footer {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* ── ④ WP 集成桥接：真实商品图填满 OD 占位容器 ── */
.ohv2-product-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  z-index: 2;
}

/* ── ⑤ WooCommerce 原生加购表单桥接 ──────────────────────────────
   single-product.php 的可变/组合商品走 woocommerce_template_single_add_to_cart()，
   但 WC 自带样式已被 dequeue。下面把 WC 原生类映射到 OD 设计令牌，
   让变体下拉 / 数量 / 加购按钮与暖色主题一致（简单商品用 OD 手写表单，无需此段）。
   仅作用于 .omni-buy-form--native，不影响其它 WC 默认输出。 */
.omni-buy-form--native .variations { width: 100%; border-collapse: collapse; margin: 0 0 4px; }
.omni-buy-form--native .variations th,
.omni-buy-form--native .variations td { padding: 8px 0; vertical-align: middle; text-align: left; }
.omni-buy-form--native .variations th.label label {
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--fg); margin: 0;
}
.omni-buy-form--native .variations td.value { padding-left: 16px; }
.omni-buy-form--native .variations select {
  width: 100%; min-height: 42px; padding: 9px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: #fff; font-size: 14px; color: var(--fg); cursor: pointer;
}
.omni-buy-form--native .variations select:focus { outline: none; border-color: var(--gold); }
.omni-buy-form--native .reset_variations {
  display: inline-block; margin: 6px 0 0; font-size: 12px; color: var(--muted2); text-decoration: underline;
}
.omni-buy-form--native .woocommerce-variation-price {
  margin: 14px 0; font-family: var(--font-display, 'Rajdhani', sans-serif);
  font-size: 26px; font-weight: 700; color: var(--fg);
}
.omni-buy-form--native .woocommerce-variation-availability { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.omni-buy-form--native .woocommerce-variation-add-to-cart {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 16px;
}
.omni-buy-form--native .quantity { display: inline-flex; }
.omni-buy-form--native .quantity .qty {
  width: 72px; height: 46px; text-align: center;
  border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff;
  font-family: var(--font-display, 'Rajdhani', sans-serif); font-size: 15px; font-weight: 700; color: var(--fg);
}
.omni-buy-form--native .single_add_to_cart_button {
  flex: 1; min-width: 200px; display: inline-flex; align-items: center; justify-content: center;
  height: 46px; padding: 0 28px; border: 1px solid var(--accent); border-radius: var(--radius-sm);
  background: var(--accent); color: #fff;
  font-family: var(--font-display, 'Rajdhani', sans-serif); font-size: 14px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; cursor: pointer; transition: background .15s, border-color .15s;
}
.omni-buy-form--native .single_add_to_cart_button:hover {
  background: var(--accent2, #c92a37); border-color: var(--accent2, #c92a37);
}
.omni-buy-form--native .single_add_to_cart_button:disabled,
.omni-buy-form--native .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }
