/* Brand Hero */

/* ── Base Brand Hero Container ── */
.BrandHero {
  position: relative;
  min-height: auto;
  display: flex;
  align-items: center;
  padding-top: var(--inner-hero-padding-top);
  padding-bottom: var(--inner-hero-padding-bottom);
  overflow: hidden;
  background: #FFFFFF;
}

/* Wrapper ensures content alignment */
.BrandHero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container-main);
  margin: 0 auto;
  padding: 0 var(--container-padding-inline);
}

/* ── Universal Grid Layer ── */
.BrandHero__grid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.025;
  background-image:
    linear-gradient(rgba(10, 61, 255, 0.4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10, 61, 255, 0.4) 1px, transparent 1px);
  background-size: 60px 60px;
  animation: brandGridShift 30s linear infinite;
}

/* ── Gradient Glow Layer ── */
.BrandHero__gradient {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-size: 200% 200%;
  animation: heroGradientShift 12s ease infinite;
}

/* ── Smooth Transition to Content (no hard cuts) ── */
/*
 * 过渡原理：
 * 1. Hero底部140px使用mask-image渐变淡出
 * 2. 伪元素::after在底部创建160px白色渐变蒙层
 * 3. 下一Section通过 .section-first-after-hero 类获得正确顶部间距
 * 4. 不使用border-bottom、实体色带、单像素线
 */
.BrandHero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 160px;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.4) 30%,
    rgba(255,255,255,0.75) 60%,
    rgba(255,255,255,0.95) 85%,
    #FFFFFF 100%
  );
}

/* 深色Hero变体（case-detail）过渡到深色 */
.BrandHero--case-detail::after {
  background: linear-gradient(
    to bottom,
    rgba(10,26,58,0) 0%,
    rgba(10,26,58,0.4) 30%,
    rgba(10,26,58,0.75) 60%,
    rgba(10,26,58,0.95) 85%,
    #0A1A3A 100%
  );
}

/* 废弃旧的硬切transition元素 */
.BrandHero__transition {
  display: none;
}

/* ── First section after hero gets proper gap (auto-applied) ── */
.BrandHero + section,
.BrandHero + .section,
.BrandHero + div[class*="section"],
.BrandHero + div[class*="Section"],
.BrandHero + main > section:first-child {
  padding-top: var(--hero-to-section-gap);
}
.section-first-after-hero {
  padding-top: var(--hero-to-section-gap) !important;
}

/* ── Layout Grid ── */
.BrandHero__layout {
  display: grid;
  /* 文字列加宽、视觉列收窄：让左侧文案更饱满，缩短左文与右图的留白，削弱割裂感 */
  grid-template-columns: minmax(0, 0.56fr) minmax(0, 0.44fr);
  gap: clamp(24px, 2.5vw, 56px);
  align-items: center;
  position: relative;
  z-index: 2;
}

.BrandHero__text {
  max-width: min(100%, 860px);
  min-width: 0;
}

.BrandHero__label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 4px var(--space-3);
  font-size: 14px;
  font-weight: var(--font-weight-medium);
  color: var(--color-primary);
  background: rgba(10, 61, 255, 0.06);
  border-radius: 20px;
  margin-bottom: var(--space-5);
  letter-spacing: 0.04em;
}

.BrandHero__title {
  font-family: var(--font-display);
  font-size: var(--text-hero-inner);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--color-text-primary);
  margin: 0 0 var(--space-5);
}

.BrandHero__subtitle {
  font-size: var(--text-lead);
  color: var(--color-text-secondary);
  line-height: 1.75;
  margin: 0 0 var(--space-6);
  max-width: min(100%, 760px);
}

.BrandHero__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: 0;
}

.BrandHero__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  position: relative;
  z-index: 2;
}

/* ═══════════════════════════════════════════
   Page-Specific Gradient Variants
   ═══════════════════════════════════════════ */

/* ── Products ── */
.BrandHero--products .BrandHero__gradient {
  background:
    radial-gradient(ellipse 65% 50% at 30% 75%, rgba(10, 61, 255, 0.14) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 75% 25%, rgba(0, 212, 255, 0.11) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 60% 55%, rgba(123, 97, 255, 0.10) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 20% 30%, rgba(22, 119, 255, 0.07) 0%, transparent 50%);
}

/* ── Solutions ── */
.BrandHero--solutions .BrandHero__gradient {
  background:
    radial-gradient(ellipse 60% 50% at 15% 55%, rgba(10, 61, 255, 0.13) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 85% 45%, rgba(0, 212, 255, 0.11) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 50% 60%, rgba(123, 97, 255, 0.09) 0%, transparent 50%),
    radial-gradient(ellipse 55% 35% at 40% 25%, rgba(22, 119, 255, 0.06) 0%, transparent 50%);
}

/* ── Cases ── */
.BrandHero--cases .BrandHero__gradient {
  background:
    radial-gradient(ellipse 65% 45% at 60% 80%, rgba(10, 61, 255, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 45%, rgba(0, 212, 255, 0.11) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 50% 30%, rgba(123, 97, 255, 0.09) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 30% 55%, rgba(22, 119, 255, 0.06) 0%, transparent 50%);
}

/* ── Policy ── */
.BrandHero--policy .BrandHero__gradient {
  background:
    radial-gradient(ellipse 55% 45% at 50% 60%, rgba(10, 61, 255, 0.09) 0%, transparent 60%),
    radial-gradient(ellipse 45% 35% at 70% 40%, rgba(0, 212, 255, 0.08) 0%, transparent 55%),
    radial-gradient(ellipse 40% 30% at 35% 45%, rgba(123, 97, 255, 0.07) 0%, transparent 50%),
    radial-gradient(ellipse 50% 30% at 55% 25%, rgba(22, 119, 255, 0.05) 0%, transparent 50%);
}

/* ── News / 行业观察 ── */
.BrandHero--news .BrandHero__gradient {
  background:
    radial-gradient(ellipse 62% 50% at 18% 62%, rgba(10, 61, 255, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 55% 45% at 82% 36%, rgba(0, 212, 255, 0.11) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 55% 30%, rgba(123, 97, 255, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 42% 78%, rgba(22, 119, 255, 0.06) 0%, transparent 50%);
}

/* ── Report ── */
.BrandHero--report .BrandHero__gradient {
  background:
    radial-gradient(ellipse 60% 50% at 55% 65%, rgba(10, 61, 255, 0.13) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 35%, rgba(0, 212, 255, 0.12) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 30% 50%, rgba(22, 119, 255, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse 50% 30% at 60% 25%, rgba(123, 97, 255, 0.06) 0%, transparent 50%);
}

/* ── Partners ── */
.BrandHero--partners .BrandHero__gradient {
  background:
    radial-gradient(ellipse 55% 45% at 50% 55%, rgba(10, 61, 255, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 75% 40%, rgba(0, 212, 255, 0.10) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 25% 50%, rgba(123, 97, 255, 0.09) 0%, transparent 55%),
    radial-gradient(ellipse 55% 35% at 55% 30%, rgba(22, 119, 255, 0.05) 0%, transparent 50%);
}

/* ── About ── */
.BrandHero--about .BrandHero__superGraphic {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.08;
}
.BrandHero--about .BrandHero__superGraphic svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75%;
  height: 75%;
}
.BrandHero--about .BrandHero__gradient {
  background:
    radial-gradient(ellipse 60% 50% at 50% 60%, rgba(10, 61, 255, 0.10) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 70% 35%, rgba(0, 212, 255, 0.09) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 35% 45%, rgba(123, 97, 255, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 55% 25%, rgba(22, 119, 255, 0.05) 0%, transparent 50%);
}

/* ── Case Detail (dark) ── */
/* 问答中心：内容型内页，光晕更克制，保持内容页节奏 */
.BrandHero--wenda .BrandHero__gradient {
  background:
    radial-gradient(ellipse 60% 50% at 50% 60%, rgba(10, 61, 255, 0.11) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 76% 38%, rgba(0, 212, 255, 0.09) 0%, transparent 55%),
    radial-gradient(ellipse 45% 40% at 24% 34%, rgba(123, 97, 255, 0.07) 0%, transparent 55%);
}

.BrandHero--case-detail {
  background: #0A1A3A;
}
.BrandHero--case-detail .BrandHero__gradient {
  background:
    radial-gradient(ellipse 55% 45% at 50% 55%, rgba(10, 61, 255, 0.25) 0%, transparent 60%),
    radial-gradient(ellipse 45% 35% at 75% 40%, rgba(0, 212, 255, 0.18) 0%, transparent 55%),
    radial-gradient(ellipse 40% 30% at 30% 45%, rgba(123, 97, 255, 0.15) 0%, transparent 50%),
    radial-gradient(ellipse 50% 30% at 55% 25%, rgba(22, 119, 255, 0.10) 0%, transparent 50%);
}
.BrandHero--case-detail .BrandHero__title,
.BrandHero--case-detail .BrandHero__subtitle {
  color: #FFFFFF;
}
.BrandHero--case-detail .BrandHero__subtitle {
  color: rgba(255,255,255,0.8);
}
.BrandHero--case-detail .BrandHero__label {
  color: rgba(255,255,255,0.9);
  background: rgba(255,255,255,0.1);
}

/* ── Contact ── */
.BrandHero--contact .BrandHero__gradient {
  background:
    radial-gradient(ellipse 55% 50% at 45% 60%, rgba(10, 61, 255, 0.10) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 70% 40%, rgba(0, 212, 255, 0.09) 0%, transparent 55%),
    radial-gradient(ellipse 45% 35% at 30% 45%, rgba(123, 97, 255, 0.07) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 55% 30%, rgba(22, 119, 255, 0.05) 0%, transparent 50%);
}

/* ═══════════════════════════════════════════
   Section Title Gap
   ═══════════════════════════════════════════ */
.SectionHeading {
  margin-bottom: var(--section-title-gap);
}
.SectionHeading__title {
  margin-bottom: var(--space-4);
}

/* ═══════════════════════════════════════════
   Animation Keyframes
   ═══════════════════════════════════════════ */

@keyframes brandGridShift {
  0% { transform: translate(0, 0); }
  100% { transform: translate(60px, 60px); }
}

@keyframes heroGradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* ═══════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════ */

@media (max-width: 1200px) {
  .BrandHero__gradient {
    opacity: 0.8;
  }
}

@media (max-width: 1024px) {
  .BrandHero {
    padding-top: clamp(100px, 10vw, 120px);
    padding-bottom: clamp(48px, 5vw, 64px);
  }
  .BrandHero__layout {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .BrandHero__visual {
    display: none;
  }
  .BrandHero__text {
    max-width: 100%;
  }
  .BrandHero__title {
    font-size: 2rem;
  }
  .BrandHero::after {
    height: 100px;
  }
}

@media (max-width: 768px) {
  .BrandHero {
    padding-top: clamp(88px, 12vw, 100px);
    padding-bottom: clamp(40px, 6vw, 52px);
  }
  .BrandHero__inner {
    padding: 0 var(--space-6);
  }
  .BrandHero__title {
    font-size: 1.75rem;
  }
  .BrandHero::after {
    height: 80px;
  }
}

@media (max-width: 480px) {
  .BrandHero {
    padding-top: clamp(80px, 14vw, 92px);
    padding-bottom: clamp(32px, 6vw, 44px);
  }
  .BrandHero__title {
    font-size: 1.5rem;
  }
  .BrandHero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .BrandHero__actions .btn {
    width: 100%;
    text-align: center;
  }
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  .BrandHero__gradient,
  .BrandHero__grid {
    animation: none !important;
  }
}

/* 内容页 Hero 标题体系 */
.BrandHero--wenda .BrandHero__title,
.BrandHero--report .BrandHero__title,
.BrandHero--policy .BrandHero__title,
.BrandHero--news .BrandHero__title {
  font-size: clamp(46px, 4vw, 58px);
  font-weight: var(--font-weight-semibold);
  line-height: 1.32;
  margin-bottom: var(--space-5);
}

.BrandHero--wenda .BrandHero__subtitle,
.BrandHero--report .BrandHero__subtitle,
.BrandHero--policy .BrandHero__subtitle,
.BrandHero--news .BrandHero__subtitle {
  font-size: clamp(17px, 1.3vw, 18px);
  line-height: 1.75;
}

@media (max-width: 1024px) {
  .BrandHero--wenda .BrandHero__title,
  .BrandHero--report .BrandHero__title,
  .BrandHero--policy .BrandHero__title,
  .BrandHero--news .BrandHero__title {
    font-size: clamp(40px, 4.6vw, 46px);
  }
}

@media (max-width: 768px) {
  .BrandHero--wenda .BrandHero__title,
  .BrandHero--report .BrandHero__title,
  .BrandHero--policy .BrandHero__title,
  .BrandHero--news .BrandHero__title {
    font-size: clamp(34px, 5vw, 38px);
  }
  .BrandHero--wenda .BrandHero__subtitle,
  .BrandHero--report .BrandHero__subtitle,
  .BrandHero--policy .BrandHero__subtitle,
  .BrandHero--news .BrandHero__subtitle {
    font-size: 15.5px;
  }
}

/* Hero 次要按钮 */
.BrandHero--wenda .BrandHero__actions .btn--secondary,
.BrandHero--report .BrandHero__actions .btn--secondary,
.BrandHero--policy .BrandHero__actions .btn--secondary,
.BrandHero--news .BrandHero__actions .btn--secondary {
  background: #FFFFFF;
  color: var(--brand-primary, #2454FF);
  border-color: rgba(36, 84, 255, 0.45);
  box-shadow: 0 1px 2px rgba(24, 32, 51, 0.06);
}

.BrandHero--wenda .BrandHero__actions .btn--secondary:hover,
.BrandHero--report .BrandHero__actions .btn--secondary:hover,
.BrandHero--policy .BrandHero__actions .btn--secondary:hover,
.BrandHero--news .BrandHero__actions .btn--secondary:hover {
  background: #F4F7FF;
  color: var(--btn-primary-hover-bg, #173FE6);
  border-color: rgba(36, 84, 255, 0.72);
  box-shadow: 0 2px 10px rgba(36, 84, 255, 0.16);
}

.BrandHero--wenda .BrandHero__actions .btn--secondary:active,
.BrandHero--report .BrandHero__actions .btn--secondary:active,
.BrandHero--policy .BrandHero__actions .btn--secondary:active,
.BrandHero--news .BrandHero__actions .btn--secondary:active {
  background: #EAF0FF;
  color: #1230C8;
  border-color: #1230C8;
  box-shadow: none;
  transform: scale(0.97);
}

/* ── 内页 Hero CTA 按钮与首页同色（适用于加载本文件的所有 BrandHero 变体）──
   问题：.BrandHero::after 是 hero 底部 160px 白色渐变过渡蒙层（z-index: 3，pointer-events: none）。
   hero 高度随内容与断点变化，CTA 行会落进蒙层被冲淡，主按钮品牌蓝因此深浅不一
   （实测 /cases 被冲淡为 #6f8eff，而首页 / 为 #2b59ff）。
   处理：让 CTA 行稳定位于蒙层之上（z-index: 4）。
   .BrandHero__layout 原来的 z-index: 2 会创建层叠上下文、把子元素锁在蒙层之下，
   因此这里取消该布局层的层叠上下文，并把渐变层下移一级、文字列/视觉列改为自身定位但不设 z-index，
   使 hero 其余内容的绘制层级与底部过渡观感保持原样，仅 CTA 行不再被白色蒙层冲淡。
   /cases 的 CTA 行外层是通用容器 .xlx-u-59（不是 .BrandHero__actions），一并提升。 */
.BrandHero .BrandHero__layout {
  z-index: auto;
}

.BrandHero .BrandHero__gradient {
  z-index: 0;
}

.BrandHero .BrandHero__text,
.BrandHero .BrandHero__visual {
  position: relative;
}

.BrandHero .BrandHero__actions,
.BrandHero .xlx-u-59 {
  position: relative;
  z-index: 4;
}
