/* GEO 页面复用 base.css 的字号变量及首页的三档内容宽度。 */
.geo-page {
  --geo-scale: 1;
  --geo-content-width: 1500px;
}

html:has(body.geo-page),
body.geo-page,
.geo-page .box {
  min-width: 0;
}

.geo-main {
  /* 透明公共导航覆盖首屏，让背景从页面顶部连续铺开。 */
  padding-top: 0;
}

.geo-page-content {
  background: #fff;
}

.geo-hero {
  box-sizing: border-box;
  min-height: calc(1080px * var(--geo-scale));
  padding: calc(220px * var(--geo-scale)) calc(24px * var(--geo-scale)) calc(194px * var(--geo-scale));
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
  background: #edf5ff url('../img/operate/geo/geo-hero-background.png') center top / cover no-repeat;
}

.geo-hero-content {
  max-width: calc(1600px * var(--geo-scale));
  margin: 0 auto;
}

.geo-hero-artwork {
  width: calc(280px * var(--geo-scale));
  height: calc(280px * var(--geo-scale));
  margin: 0 auto calc(40px * var(--geo-scale));
}

.geo-hero-icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.geo-hero-title {
  margin: 0;
  color: #333;
  font-size: var(--font-size-72);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
}

.geo-hero-title-line {
  display: block;
}

.geo-hero-title-accent {
  color: #6548eb;
  font-weight: 600;
  background: linear-gradient(270deg, #c15acf 10%, #3445eb 64%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.geo-hero-description {
  margin: 8px 0 0;
  font-size: var(--font-size-20);
  font-weight: 400;
  line-height: calc(28px * var(--geo-scale));
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-actions {
  display: flex;
  justify-content: center;
  gap: calc(20px * var(--geo-scale));
  margin-top: calc(40px * var(--geo-scale));
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: calc(254px * var(--geo-scale));
  height: calc(68px * var(--geo-scale));
  padding: 0 calc(20px * var(--geo-scale));
  border: 2px solid transparent;
  border-radius: calc(999px * var(--geo-scale));
  font-family: inherit;
  font-size: var(--font-size-20);
  font-weight: 500;
  line-height: calc(28px * var(--geo-scale));
  cursor: pointer;
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-action-primary {
  color: #fff;
  background: linear-gradient(90deg, #539cff 0%, #415aff 50%, #736fff 100%);
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-action-secondary {
  color: #3280ff;
  /* 多层背景保留胶囊圆角，避免 border-image 的方角。 */
  background:
    linear-gradient(#edf5ff, #edf5ff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-action-primary:hover {
  filter: brightness(1.04);
}

:is(.geo-hero, .geo-solution, .geo-system, .geo-team, .geo-cases, .geo-cta) .geo-actions button:focus-visible {
  outline: 2px solid #415aff;
  outline-offset: 4px;
}

.geo-solution {
  box-sizing: border-box;
  padding: calc(140px * var(--geo-scale)) calc(24px * var(--geo-scale)) calc(130px * var(--geo-scale));
  background: #fff;
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
}

.geo-system {
  box-sizing: border-box;
  padding: calc(120px * var(--geo-scale)) calc(24px * var(--geo-scale));
  background: #eef4ff;
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
}

.geo-system .geo-action-secondary {
  background:
    linear-gradient(#eef4ff, #eef4ff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

:is(.geo-solution, .geo-system, .geo-team, .geo-cases) .geo-section-header h2 {
  margin: 0;
  font-size: var(--font-size-60);
  font-weight: 600;
  line-height: 1.4;
}

:is(.geo-solution, .geo-system, .geo-team, .geo-cases) .geo-section-description {
  margin: calc(12px * var(--geo-scale)) 0 0;
  color: #6b6e7b;
  font-size: var(--font-size-28);
  font-weight: 400;
  line-height: 1.4;
}

:is(.geo-solution-image, .geo-system-image) {
  display: block;
  width: 100%;
  max-width: var(--geo-content-width);
  height: auto;
  margin: calc(40px * var(--geo-scale)) auto 0;
}

:is(.geo-solution, .geo-system, .geo-team, .geo-cases) .geo-actions {
  margin-top: calc(60px * var(--geo-scale));
}

.geo-solution .geo-action-primary {
  background: linear-gradient(90deg, #529dfb, #0f5fff);
}

.geo-solution .geo-action-secondary {
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

.geo-team {
  box-sizing: border-box;
  padding: calc(120px * var(--geo-scale)) calc(24px * var(--geo-scale));
  background: #fff;
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
}

.geo-team-list,
.geo-team-support {
  display: grid;
  max-width: var(--geo-content-width);
  margin: calc(40px * var(--geo-scale)) auto 0;
  gap: calc(30px * var(--geo-scale));
}

.geo-team-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0;
  list-style: none;
}

.geo-team-item h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: calc(80px * var(--geo-scale));
  margin: 0 0 calc(30px * var(--geo-scale));
  padding: calc(12px * var(--geo-scale));
  border-radius: calc(12px * var(--geo-scale));
  font-size: var(--font-size-32);
  font-weight: 500;
  line-height: 1.4;
}

.geo-team-intent h3 { background: #cceff9; }
.geo-team-content h3 { background: #d9e8ff; }
.geo-team-media h3 { background: #e8e7ff; }

.geo-team-card {
  position: relative;
}

.geo-team-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(16px * var(--geo-scale));
}

.geo-team-card p {
  position: absolute;
  top: calc(50px * var(--geo-scale));
  right: calc(50px * var(--geo-scale));
  left: calc(50px * var(--geo-scale));
  margin: 0;
  padding-left: calc(26px * var(--geo-scale));
  color: #272b33;
  font-size: var(--font-size-20);
  font-weight: 400;
  line-height: calc(32px * var(--geo-scale));
  text-align: left;
}

.geo-team-card p::before,
.geo-team-support-item li::before {
  content: '';
  position: absolute;
  top: calc(9px * var(--geo-scale));
  left: 0;
  width: calc(14px * var(--geo-scale));
  height: calc(14px * var(--geo-scale));
  background: url('../img/operate/geo/geo-team-bullet.png') center / contain no-repeat;
}

.geo-team-support {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: calc(30px * var(--geo-scale));
  text-align: left;
}

.geo-team-support-item {
  box-sizing: border-box;
  min-height: calc(270px * var(--geo-scale));
  padding: calc(50px * var(--geo-scale));
  border-radius: calc(20px * var(--geo-scale));
  background: #eef4ff center / cover no-repeat;
}

.geo-team-support-item:first-child {
  background-image: url('../img/operate/geo/geo-team-project-background.png');
}

.geo-team-support-item:last-child {
  background-image: url('../img/operate/geo/geo-team-customer-background.png');
}

.geo-team-support-item h3 {
  margin: 0 0 calc(16px * var(--geo-scale));
  font-size: 28px;
  font-weight: 500;
  line-height: calc(42px * var(--geo-scale));
}

.geo-team-support-item ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.geo-team-support-item li {
  position: relative;
  padding-left: calc(26px * var(--geo-scale));
  color: #272b33;
  font-size: var(--font-size-20);
  font-weight: 400;
  line-height: calc(32px * var(--geo-scale));
}

.geo-team .geo-action-secondary {
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

.geo-cases {
  box-sizing: border-box;
  padding: calc(120px * var(--geo-scale)) calc(24px * var(--geo-scale));
  background: #eef4ff;
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
}

.geo-case-carousel {
  max-width: var(--geo-content-width);
  margin: calc(40px * var(--geo-scale)) auto 0;
}

.geo-case-columns {
  display: grid;
  grid-template-columns: 23fr 52fr 23fr;
  gap: calc(15px * var(--geo-scale));
  margin-bottom: calc(12px * var(--geo-scale));
}

.geo-case-columns span {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: calc(90px * var(--geo-scale));
  padding: calc(12px * var(--geo-scale));
  border-radius: calc(12px * var(--geo-scale));
  background: linear-gradient(110deg, #7fb4ff, #9786ff);
  color: #fff;
  font-size: var(--font-size-28);
  font-weight: 500;
  line-height: 1.4;
}

.geo-case-slide img {
  display: block;
  width: 100%;
  height: auto;
}

.geo-case-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(12px * var(--geo-scale));
  margin-top: calc(40px * var(--geo-scale));
}

.geo-case-pagination .swiper-pagination-bullet {
  width: calc(16px * var(--geo-scale));
  height: calc(16px * var(--geo-scale));
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: calc(999px * var(--geo-scale));
  background: #fff;
  opacity: 1;
  cursor: pointer;
}

.geo-case-pagination .swiper-pagination-bullet-active {
  width: calc(56px * var(--geo-scale));
  background: #c2dfff;
}

.geo-case-pagination button:focus-visible {
  outline: 2px solid #415aff;
  outline-offset: 4px;
}

.geo-cases .geo-action-secondary {
  background:
    linear-gradient(#eef4ff, #eef4ff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

.geo-cta {
  box-sizing: border-box;
  min-height: calc(760px * var(--geo-scale));
  padding: calc(210px * var(--geo-scale)) calc(24px * var(--geo-scale));
  background: #f6faff url('../img/operate/geo/geo-cta-background.png') center / cover no-repeat;
  color: #333;
  font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
  text-align: center;
}

.geo-cta-description {
  margin: 0;
  font-size: var(--font-size-48);
  font-weight: 600;
  line-height: 1.4;
}

.geo-cta-description span {
  font-weight: 600;
  color: #7656ec;
  background: linear-gradient(270deg, #c15acf 11%, #5765ec 61%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.geo-cta h2 {
  margin: calc(16px * var(--geo-scale)) 0 0;
  font-size: var(--font-size-90);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .1em;
}

.geo-cta .geo-actions {
  margin-top: calc(60px * var(--geo-scale));
}

.geo-cta .geo-action-secondary {
  background:
    linear-gradient(#f6faff, #f6faff) padding-box,
    linear-gradient(90deg, #529dfb, #0f5fff) border-box;
}

/* 与线上首页一致：1500 → 1300 → 1100px，尺寸约按 1 / .86 / .73 缩放。 */
@media screen and (max-width: 1650px) {
  .geo-page {
    --geo-scale: .86;
    --geo-content-width: 1300px;
  }
}

@media screen and (max-width: 1420px) {
  .geo-page {
    --geo-scale: .73;
    --geo-content-width: 1100px;
  }
}
