/* ============================================================
   tokens.css · 悦礼婚嫁 · 全站唯一样式来源
   源出 docs/design-spec.md §2.1（v1.2 定稿），逐值照抄，未增未改。
   命名规范：--{类别}-{语义}-{级别}
   改主色只需改 --c-primary-600 及其 hover/active 三个派生值。
   ------------------------------------------------------------
   全站禁止在组件里直接写 hex，一律走 var(--c-*)。
   ============================================================ */
:root {
  /* ---------- 主色（绛红）---------- */
  --c-primary-50:  #FBF1F1;   /* 极浅底：选中胶囊底、提示卡底 */
  --c-primary-100: #F5DEDE;
  --c-primary-200: #E9BCBC;
  --c-primary-300: #D69090;   /* 深底上的强调文字（6.78:1 on #1F1A16）*/
  --c-primary-400: #BF6363;
  --c-primary-500: #A53B45;   /* 主按钮 active（白字压底 6.34:1）*/
  --c-primary-600: #8E2A33;   /* ★ 主色：主按钮底、价格数字、focus 环 */
  --c-primary-700: #74212A;   /* hover（白字压底 10.53:1）*/
  --c-primary-800: #5C1A22;   /* 深色关键词（12.92:1 on 白）*/

  /* ---------- 辅助色（香槟金）---------- */
  --c-accent-100: #F0E6D8;
  --c-accent-300: #D8BE9A;    /* 仅深底：金线 / 金字（9.65:1 on #1F1A16）*/
  --c-accent-400: #C89B62;    /* 仅深底：focus 环（6.83:1 on #1F1A16）*/
  --c-accent-600: #8C6A3F;    /* ★ 金标准色：白/纸底上的发丝线、eyebrow（4.94:1 on 白 / 4.63:1 on 纸）*/
  --c-accent-700: #6E5230;    /* ★ 砂底上的金：砂底 #8C6A3F 只有 4.25:1，改用此值 6.20:1 */

  /* ---------- 中性色阶（暖灰，10 级）---------- */
  --c-neutral-0:   #FFFFFF;
  --c-neutral-50:  #FAF7F3;   /* 页面默认底（暖纸）*/
  --c-neutral-100: #F3EDE6;   /* 强调区块底（暖砂）*/
  --c-neutral-200: #E5DCD1;   /* 发丝分隔线（纯装饰，1.36:1）*/
  --c-neutral-300: #D2C6B8;   /* 卡片描边 / 占位图虚线框 */
  --c-neutral-400: #A99C8D;   /* 仅装饰图标、disabled 文字（2.68:1，禁止承载信息）*/
  --c-neutral-500: #786B5B;   /* placeholder、图注（5.18:1 on 白 / 4.85:1 on 纸）*/
  --c-neutral-600: #635749;   /* ★ 次要文字 body-sm（7.02:1 on 白 / 6.04:1 on 砂）*/
  --c-neutral-700: #4A4038;   /* 次级标题、表格文字（10.09:1 on 白）*/
  --c-neutral-800: #332C26;   /* 正文备选（13.73:1 on 白）*/
  --c-neutral-900: #1F1A16;   /* ★ 正文与标题（17.25:1 on 白 / 16.15:1 on 纸）*/

  /* ---------- 语义色 ---------- */
  --c-success:    #2F6B4F;  --c-success-bg: #EFF6F1;
  --c-warning:    #7A4C00;  --c-warning-bg: #FDF5E6;
  --c-danger:     #A3221A;  --c-danger-bg:  #FCF0EF;
  --c-info:       #2E5670;  --c-info-bg:    #EEF4F8;

  /* ---------- 语义别名（组件里只用这一层，不直接引用色阶）---------- */
  --c-bg:            var(--c-neutral-50);
  --c-bg-alt:        var(--c-neutral-100);
  --c-surface:       var(--c-neutral-0);
  --c-text:          var(--c-neutral-900);
  --c-text-2:        var(--c-neutral-700);
  --c-text-3:        var(--c-neutral-600);
  --c-text-4:        var(--c-neutral-500);
  --c-text-disabled: var(--c-neutral-400);
  --c-line:          var(--c-neutral-200);      /* 分隔线，装饰 */
  --c-line-strong:   var(--c-neutral-300);      /* 卡片描边 */
  --c-line-control:  #948776;                   /* ★ 表单控件边框，3.51:1，达标 1.4.11 */
  --c-ink:           var(--c-neutral-900);      /* 深色区块底 / 页脚 */

  /* ---------- 字体族 ---------- */
  /* 黑体栈：正文、H2 以下、按钮、所有价格数字 */
  --font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
               "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei",
               Arial, sans-serif;
  /* 衬线栈：只用于 H1 与 H2 */
  --font-serif: "Songti SC", "STSong", "Source Han Serif SC", "Noto Serif SC",
                "SimSun", "STZhongsong", Georgia, serif;
  /* 中文不引入任何 webfont。此处无 @font-face，全站 0 个字体请求。 */

  /* ---------- 字号阶梯（移动端基准 375px）---------- */
  --fs-h1: 28px;     --lh-h1: 1.32;  --fw-h1: 600;
  --fs-h2: 23px;     --lh-h2: 1.38;  --fw-h2: 600;
  --fs-h3: 18px;     --lh-h3: 1.5;   --fw-h3: 700;
  --fs-h4: 16px;     --lh-h4: 1.5;   --fw-h4: 600;
  --fs-lead: 15px;   --lh-lead: 1.6; /* 首屏副标 / 区块引导语 */
  --fs-body: 16px;   --lh-body: 1.75;
  --fs-sm: 14px;     --lh-sm: 1.7;
  --fs-caption: 13px;--lh-caption: 1.6;
  --fs-micro: 12px;  --lh-micro: 1.5;
  --fs-price-xl: 34px; --lh-price-xl: 1.1;  /* 价格卡主数字 */
  --fs-price-lg: 30px; --lh-price-lg: 1.1;  /* 表格内价格 */
  --fs-price-md: 22px; --lh-price-md: 1.2;  /* 行内价格、套系价 */
  --fs-btn: 16px;      --lh-btn: 1;

  /* ---------- 间距刻度（4 基数）---------- */
  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 20px;  --sp-6: 24px;  --sp-7: 32px;  --sp-8: 40px;
  --sp-9: 48px;  --sp-10: 56px; --sp-11: 64px; --sp-12: 80px;
  --sp-13: 96px; --sp-14: 128px;

  /* ---------- 圆角 ---------- */
  --r-xs: 4px;   /* 小徽标 */
  --r-sm: 8px;   /* 图片、缩略图、照片 */
  --r-md: 10px;  /* 按钮、输入框、小卡 */
  --r-lg: 12px;  /* 卡片 */
  --r-xl: 16px;  /* 弹层、大容器 */
  --r-pill: 999px; /* 只用于单选胶囊 */

  /* ---------- 阴影（只有 4 档 + 吸底条专用）---------- */
  --sh-sm: 0 1px 2px rgba(31, 26, 22, .06);
  --sh-md: 0 2px 8px rgba(31, 26, 22, .08);
  --sh-lg: 0 8px 24px rgba(31, 26, 22, .12);
  --sh-modal: 0 24px 48px -12px rgba(31, 26, 22, .28);
  --sh-tabbar: 0 -1px 0 var(--c-line), 0 -8px 24px rgba(31, 26, 22, .08);

  /* ---------- 层级 ---------- */
  --z-base: 0;
  --z-raised: 10;
  --z-tabbar: 60;
  --z-backdrop: 100;
  --z-modal: 110;
  --z-toast: 120;
  --z-skip: 200;

  /* ---------- 布局 ---------- */
  --container-max: 1120px;   /* 内容最大宽度，≥1440 也不放大 */
  --measure: 560px;          /* 正文段落最大宽度 */
  --gutter: 20px;            /* 移动端左右安全边距（375 基准）*/
  --cols: 12;
  --col-gap: 16px;           /* 移动端 */
  --section-y: 56px;         /* 区块上下 padding（移动）*/

  /* ---------- 交互尺寸 ---------- */
  --tap-min: 44px;           /* 所有可点击元素最小边 */
  --input-h: 48px;
  --btn-h: 52px;             /* 主按钮 */
  --btn-h-sm: 44px;          /* 次按钮 / 吸底条内按钮 */
  --tabbar-h: 56px;          /* 吸底 CTA 条本体高度（不含安全区）*/
  --bottombar-h: 48px;       /* 客片 tab / FAQ summary 高 */
  --qr-display: 200px;       /* 微信二维码显示边长，**仅 ≥768px 生效** */
  --wechat-num-fs: 24px;     /* 移动端弹层里的大号微信号字号 */

  /* ---------- 动效 ---------- */
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
  --ease: cubic-bezier(.2, .7, .3, 1);

  /* ---------- 安全区 ---------- */
  --sab: env(safe-area-inset-bottom, 0px);
  --sat: env(safe-area-inset-top, 0px);
}

/* ============================================================
   断点覆盖（单一主断点体系：768 / 1024 / 1440 + 360 兜底）
   ============================================================ */

/* 平板 */
@media (min-width: 768px) {
  :root {
    --fs-h1: 36px; --lh-h1: 1.24;
    --fs-h2: 27px; --lh-h2: 1.32;
    --fs-h3: 20px;
    --fs-lead: 17px; --lh-lead: 1.7;
    --fs-body: 16px; --lh-body: 1.8;
    --fs-sm: 15px;
    --fs-caption: 14px;
    --fs-price-xl: 38px;
    --gutter: 32px;
    --col-gap: 20px;
    --section-y: 72px;
  }
}

/* 桌面 */
@media (min-width: 1024px) {
  :root {
    --fs-h1: 52px; --lh-h1: 1.15;
    --fs-h2: 34px; --lh-h2: 1.28;
    --fs-h3: 22px; --lh-h3: 1.45;
    --fs-h4: 18px;
    --fs-lead: 18px; --lh-lead: 1.7;
    --fs-body: 17px; --lh-body: 1.8;
    --fs-sm: 15px;
    --fs-caption: 14px;
    --fs-price-xl: 44px;
    --fs-price-lg: 36px;
    --fs-price-md: 24px;
    --gutter: 40px;
    --col-gap: 24px;
    --section-y: 96px;
  }
}

/* 宽屏：容器封顶，不拉伸 */
@media (min-width: 1440px) {
  :root { --section-y: 112px; }
}

/* 小安卓兜底：只收边距，不动字号 */
@media (max-width: 359px) {
  :root { --gutter: 16px; --fs-h1: 26px; }
}
