/*============================================================================
   合作伙伴品牌墙公共组件
   颜色从解决方案页 --solution-primary 继承；脱离方案页使用时回退为品牌蓝。
   ============================================================================*/
.partner-wall { --partner-accent: var(--solution-primary, #246bfd); --partner-accent-soft: color-mix(in srgb, var(--partner-accent) 8%, #fff); --partner-accent-line: color-mix(in srgb, var(--partner-accent) 22%, #dfe7f2); position: relative; overflow: hidden; padding: 6.25rem 0; background: radial-gradient(circle at 8% 10%, color-mix(in srgb, var(--partner-accent) 9%, transparent), transparent 25rem),
    linear-gradient(180deg, #fff 0%, var(--partner-accent-soft) 100%); color: #101828; }
.partner-wall::before { position: absolute; right: -9rem; bottom: -13rem; width: 30rem; height: 30rem; border: 1px solid color-mix(in srgb, var(--partner-accent) 14%, transparent); border-radius: 50%; box-shadow: 0 0 0 3.75rem color-mix(in srgb, var(--partner-accent) 3%, transparent); content: ""; pointer-events: none; }
.partner-wall > .container { position: relative; z-index: 1; }
.partner-wall-head { max-width: 52rem; margin: 0 auto 2.75rem; text-align: center; }
.partner-wall-eyebrow { display: flex; align-items: center; justify-content: center; gap: .625rem; margin-bottom: .875rem; color: var(--partner-accent); font-size: .75rem; font-weight: 700; letter-spacing: .14em; }
.partner-wall-eyebrow span { width: 1.5rem; height: 1px; background: linear-gradient(90deg, transparent, var(--partner-accent)); }
.partner-wall-eyebrow span:last-child { background: linear-gradient(90deg, var(--partner-accent), transparent); }
.partner-wall .partner-wall-title { margin: 0; color: #101828; font-size: clamp(2rem, 3vw, 3rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.24; text-wrap: balance; }
.partner-wall .partner-wall-desc { max-width: 44rem; margin: 1rem auto 0; color: #667085; font-size: 1rem; line-height: 1.8; text-wrap: balance; }
/*面板只以主题色做轻量描边和顶部标识，避免抢占品牌 Logo 的视觉焦点。*/
.partner-wall-panel { position: relative; overflow: hidden; border: 1px solid var(--partner-accent-line); border-radius: 1.5rem; background: rgba(255, 255, 255, .82); box-shadow: 0 1.25rem 3.5rem color-mix(in srgb, var(--partner-accent) 10%, transparent); }
.partner-wall-panel::before { position: absolute; top: 0; right: 2rem; left: 2rem; height: .1875rem; border-radius: 0 0 .25rem .25rem; background: linear-gradient(90deg, transparent, var(--partner-accent) 22%, var(--partner-accent) 78%, transparent); content: ""; opacity: .72; }
.partner-wall-logos { padding: 2rem; }
.partner-wall .partner-wall-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .875rem; margin: 0; padding: 0; list-style: none; }
.partner-wall .partner-wall-logo { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .375rem; min-width: 0; height: 7rem; padding: 0 .75rem; border: 1px solid #e8edf4; border-radius: .875rem; background: rgba(255, 255, 255, .9); box-shadow: 0 .25rem .75rem rgba(16, 24, 40, .035); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.partner-wall .partner-wall-logo a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; flex-direction: column; gap: .375rem; padding: .75rem 1rem; color: inherit; text-decoration: none; }
.partner-wall .partner-wall-logo img { display: block; width: 7.5rem; max-width: 100%; height: 2.25rem; object-fit: contain; object-position: center; transition: transform .2s ease; }
.partner-wall .partner-wall-logo span { display: block; overflow: hidden; max-width: 100%; color: #667085; font-size: .6875rem; line-height: 1.25; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.partner-wall .partner-wall-logo:hover { border-color: color-mix(in srgb, var(--partner-accent) 42%, #dce5f1); box-shadow: 0 .75rem 1.5rem color-mix(in srgb, var(--partner-accent) 13%, transparent); transform: translateY(-.1875rem); }
.partner-wall .partner-wall-logo:hover img { transform: scale(1.025); }
@media (max-width: 1199.98px) {
  .partner-wall .partner-wall-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .partner-wall { padding: 5rem 0; }
  .partner-wall-logos { padding: 2rem; }
  .partner-wall .partner-wall-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .partner-wall { padding: 4.25rem 0; }
  .partner-wall-head { margin-bottom: 2.125rem; }
  .partner-wall .partner-wall-title { font-size: 1.875rem; }
  .partner-wall .partner-wall-desc { font-size: .875rem; line-height: 1.7; }
  .partner-wall-panel { border-radius: 1.125rem; }
  .partner-wall-logos { padding: 1.25rem; }
  .partner-wall .partner-wall-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .partner-wall .partner-wall-logo { height: 5.75rem; padding: 0 .5rem; }
  .partner-wall .partner-wall-logo a { padding: .625rem .75rem; }
  .partner-wall .partner-wall-logo img { width: 6.5rem; height: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .partner-wall .partner-wall-logo,
  .partner-wall .partner-wall-logo img { transition: none; }
}
