/* ========================================
   薪连薪 VI Brand Hero — 内页统一渐变光晕系统
   与首页同源：4层 radial-gradient 色球 + heroGradientShift 动画
   禁止：SVG厚重波浪、点阵、斑点、粒子、星空、硬切色带、单像素线
   ======================================== */

/* ── 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.44fr) minmax(0, 0.56fr);
  gap: clamp(32px, 3vw, 56px);
  align-items: center;
  position: relative;
  z-index: 2;
}

.BrandHero__text {
  max-width: 560px;
  min-width: 0;
}

.BrandHero__label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 4px var(--space-3);
  font-size: 12px;
  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: clamp(2rem, 3.2vw, 3rem);
  font-weight: 300;
  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-base);
  color: var(--color-text-secondary);
  line-height: 1.75;
  margin: 0 0 var(--space-6);
  max-width: 520px;
}

.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%);
}

/* ── 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--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;
  }
}
