/* ==========================================================================
   Linkshing 官网 · 公共样式（Common）
   含：容器 / 板块 / 标题组件 / 按钮 / 卡片 / 工具类 / 入场动效
   命名：BEM（block__element--modifier）
   ========================================================================== */

/* ==========================================================================
   一、布局容器
   ========================================================================== */

/* 内容容器：最大 1200px，桌面左右 24px，移动 16px */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

/* 板块：统一下内边距 */
.section {
  padding-block: var(--section-padding-y);
}

/* 浅灰背景板块 */
.section--muted {
  background-color: var(--color-bg);
}

/* 紧凑板块（用于次级内容） */
.section--compact {
  padding-block: calc(var(--section-padding-y) * .7);
}

/* ==========================================================================
   二、标题组件
   中文大标题 + 4px 橙色短下划线（约 80px）+ 灰色英文小字副标题
   ========================================================================== */

.section-head {
  margin-bottom: var(--space-8);
}

.section-head--center {
  text-align: center;
}

/* 英文小字副标题（灰色） */
.section-head__eyebrow {
  display: block;
  /* 英文小字改用 Inter：字形更规整，全大写 + 字距时尤其明显
     中文字符不在 Inter 字集内，会自动回落到系统字体 */
  font-family: var(--font-family-latin);
  font-size: var(--fs-small);
  font-weight: var(--fw-medium);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-1);
}

/* 中文大标题 */
.section-head__title {
  position: relative;
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  color: var(--color-ink);
  padding-bottom: var(--space-3);
}

/* 品牌橙色短下划线（约 80px，4px 高） */
.section-head__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 80px;
  height: 4px;
  background-color: var(--color-accent);
  border-radius: 2px;
}

/* 居中变体：下划线居中 */
.section-head--center .section-head__title::after {
  left: 50%;
  transform: translateX(-50%);
}

/* 标题下方描述文字 */
.section-head__desc {
  margin-top: var(--space-2);
  max-width: 720px;
  color: var(--color-text);
}

.section-head--center .section-head__desc {
  margin-inline: auto;
}

/* ==========================================================================
   三、按钮
   主 CTA 橙底白字胶囊 ｜ 次按钮 蓝底白字 ｜ 幽灵 透明底 + 蓝边蓝字
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: 14px 32px;
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  text-align: center;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background-color var(--transition-base),
    color var(--transition-base),
    border-color var(--transition-base),
    transform var(--transition-base),
    box-shadow var(--transition-base);
  /* 防止移动端双击缩放 */
  touch-action: manipulation;
}

/* 主 CTA：橙底白字
   底色调深至 --color-accent-ink，确保白字对比度 4.85:1（WCAG AA） */
.btn--primary {
  background-color: var(--color-accent-ink);
  border-color: var(--color-accent-ink);
  color: var(--color-white);
}

.btn--primary:hover,
.btn--primary:focus-visible {
  background-color: var(--color-accent-ink-hover);
  border-color: var(--color-accent-ink-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(194, 76, 0, .3);
}

/* 次按钮：蓝底白字 */
.btn--secondary {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
  background-color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 98, 242, .25);
}

/* 幽灵按钮：透明底 + 蓝边蓝字 */
.btn--ghost {
  background-color: transparent;
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.btn--ghost:hover,
.btn--ghost:focus-visible {
  background-color: var(--color-primary-light);
  transform: translateY(-2px);
}

/* 幽灵按钮（白边版，用于深色背景） */
.btn--ghost-light {
  background-color: transparent;
  border-color: rgba(255, 255, 255, .8);
  color: var(--color-white);
}

.btn--ghost-light:hover,
.btn--ghost-light:focus-visible {
  background-color: rgba(255, 255, 255, .14);
  border-color: var(--color-white);
}

/* 按钮尺寸变体 */
.btn--sm {
  padding: 10px 22px;
  font-size: var(--fs-small);
}

.btn--lg {
  padding: 16px 40px;
  font-size: 18px;
}

.btn--block {
  display: flex;
  width: 100%;
}

/* 按钮禁用态 */
.btn[disabled],
.btn[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* ==========================================================================
   四、卡片
   ========================================================================== */

.card {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-4);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

/* 大卡片 */
.card--lg {
  border-radius: var(--radius-lg);
  padding: var(--space-6);
}

/* 可点击卡片：悬停上浮 4px */
.card--interactive {
  display: block;
  color: inherit;
}

.card--interactive:hover,
.card--interactive:focus-visible {
  transform: translateY(var(--hover-lift));
  box-shadow: var(--shadow-card-hover);
}

/* 无边框卡片（用于已有背景的区块） */
.card--plain {
  border-color: transparent;
  box-shadow: none;
}

/* ==========================================================================
   五、网格与工具类
   ========================================================================== */

.grid {
  display: grid;
  gap: var(--space-3);
}

.grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

.grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* 通用弹性工具 */
.flex {
  display: flex;
}

.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* 标签 */
.tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: var(--fs-small);
  border-radius: var(--radius-pill);
  background-color: var(--color-primary-light);
  color: var(--color-primary);
}

.tag--accent {
  background-color: var(--color-accent-light);
  color: var(--color-accent);
}

/* 文本工具类 */
.text-accent {
  color: var(--color-accent);
}

.text-muted {
  color: var(--color-text-muted);
}

.text-center {
  text-align: center;
}

/* 焦点可见性（无障碍：键盘聚焦必须可见） */
:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 2px;
}

/* ==========================================================================
   六、入场动效
   IntersectionObserver 添加 .is-visible 后触发淡入上移
   ========================================================================== */

.reveal {
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition: opacity var(--reveal-duration) ease,
    transform var(--reveal-duration) ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 依次延迟（用于卡片列表的错峰入场） */
.reveal--delay-1 { transition-delay: .1s; }
.reveal--delay-2 { transition-delay: .2s; }
.reveal--delay-3 { transition-delay: .3s; }

/* ==========================================================================
   七、通用视觉增强（克制）
   统一在 .card / 交互卡片上叠加悬停光效与图标微动，不改变既有布局
   ========================================================================== */

/* 可交互卡片的悬停光效：从光标方向渗出的柔和品牌色高光 */
.card--interactive,
.biz-card,
.highlight-card {
  position: relative;
  isolation: isolate;
}

.card--interactive::after,
.biz-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  opacity: 0;
  background: radial-gradient(320px circle at 50% 0%, rgba(0, 98, 242, .08), transparent 68%);
  transition: opacity var(--transition-base);
  pointer-events: none;
}

.card--interactive:hover::after,
.biz-card:hover::after {
  opacity: 1;
}

/* 图标：悬停时轻微放大 + 上浮，呼应卡片上浮 */
.biz-card__icon,
.highlight-card__icon {
  transition: transform var(--transition-base), background-color var(--transition-base);
}

.biz-card:hover .biz-card__icon,
.highlight-card:hover .highlight-card__icon {
  transform: translateY(-2px) scale(1.05);
}

/* 数字计数：未初始化前隐藏，避免出现「0」闪现 */
[data-count]:not([data-count-ready]) {
  visibility: hidden;
}

/* 尊重动效偏好：关闭入场位移与光效 */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
  }

  .card--interactive::after,
  .biz-card::after {
    display: none;
  }

  .biz-card:hover .biz-card__icon,
  .highlight-card:hover .highlight-card__icon {
    transform: none;
  }

  [data-count]:not([data-count-ready]) {
    visibility: visible;
  }
}

/* ==========================================================================
   八、响应式（移动优先：以下为窄屏降级规则）
   ========================================================================== */

/* 平板及以下：3 列 → 2 列 */
@media (max-width: 1023px) {
  .grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 移动端：多列 → 单列 */
@media (max-width: 767px) {
  .grid--2,
  .grid--3,
  .grid--4 {
    grid-template-columns: 1fr;
  }

  .section-head {
    margin-bottom: var(--space-6);
  }
}
