/* =====================================================
   飞利信 Philisense - 业务管理页面样式（Hero固定高度优化完整版）
   image-grid升级：单图更大展示、全局居中，1/2/3/4+图自适应
   ===================================================== */
:root {
  --hero-h-desk: 480px;    /* 桌面固定高度 */
  --hero-h-tab: 380px;     /* 平板固定高度 */
  --hero-h-mob: 320px;     /* 手机固定高度 */
  --hero-inner-gap: 48px;
  --hero-padding-x: 24px;
  --hero-img-max-h: 360px; /* Hero图片最大高度，防止撑高 */
  --gray-1: #f8fafc;
  --gray-2: #e5e7eb;
  --gray-4: #4b5563;
  --primary: #165dff;
  --black: #111827;
  --radius-md: 8px;
}
   
body { background: #f5f7fb; }
.solution-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #0f172a 0%, #165dff 58%, #eef5ff 100%);
  color: #fff;
  height: var(--hero-h-desk);
  display: flex;
  align-items: center;
}
.solution-hero::after {
  content: "";
  position: absolute;
  right: -12%;
  bottom: -120px;
  left: 44%;
  width: 70%;
  height: 70%;
  background: rgba(255,255,255,.16);
  border-radius: 999px;
  transform: rotate(-8deg);
  pointer-events: none;
}
.solution-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--hero-padding-x);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 500px);
  gap: var(--hero-inner-gap);
  align-items: center;
  max-height: calc(var(--hero-h-desk) - 40px);
  overflow: hidden;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 6px;
  color: #dbeafe;
  font-size: 13px;
  margin-bottom: 18px;
}
.solution-hero h1 {
  font-family: "Space Grotesk", "Microsoft YaHei", sans-serif;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.08;
  margin-bottom: 20px;
  letter-spacing: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.solution-hero p {
  max-width: 760px;
  color: #e5efff;
  font-size: 17px;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hero-media {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  padding: 12px;
  min-height: 300px;
  max-height: var(--hero-img-max-h);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 24px 70px rgba(15,23,42,.24);
  overflow: hidden;
}
.hero-media img {
  width: 100%;
  max-height: var(--hero-img-max-h);
  object-fit: contain;
  display: block;
  border-radius: 6px;
  background: #fff;
}
.hero-placeholder {
  width: 100%;
  min-height: 300px;
  max-height: var(--hero-img-max-h);
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: rgba(255,255,255,.14);
  font-size: 44px;
  font-weight: 700;
  letter-spacing: 0;
}
.solution-main {
  max-width: 1440px;
  margin: 0 auto;
  padding: 54px 24px 80px;
}
.solution-section {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 34px;
  margin-bottom: 26px;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.section-heading {
  margin-bottom: 22px;
}
.section-heading span {
  display: block;
  color: #165dff;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 8px;
}
.section-heading h2 {
  font-family: "Space Grotesk", "Microsoft YaHei", sans-serif;
  font-size: 28px;
  line-height: 1.25;
  letter-spacing: 0;
}
.rich-copy {
  color: #374151;
  font-size: 16px;
  line-height: 1.85;
}
.rich-copy p {
  margin-bottom: 14px;
}
.rich-copy ul {
  display: grid;
  gap: 10px;
  margin: 12px 0 4px;
}
.rich-copy li {
  position: relative;
  padding-left: 18px;
}
.rich-copy li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .78em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #165dff;
}

/* ========== 优化后自适应图片网格 单图超大居中 ========== */
.image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  justify-items: center;
  width: 100%;
}
.image-card {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  background: #f8fafc;
  width: 100%;
  max-width: 480px;
  transition: box-shadow 0.2s ease;
}
.image-card:hover {
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
}
.image-card img {
  width: 100%;
  height: 260px;
  object-fit: contain;
  object-position: center;
  display: block;
  background: #fff;
}
.image-card figcaption {
  padding: 10px 12px;
  color: #6b7280;
  font-size: 13px;
  text-align: center;
}
/* 单张图放大加宽，完全居中 */
.image-grid:has(.image-card:nth-child(1):last-child) .image-card {
  max-width: 960px;
}
.image-grid:has(.image-card:nth-child(1):last-child) .image-card img {
  height: 480px;
}
/* 两张图适度放大 */
.image-grid:has(.image-card:nth-child(2):last-child) .image-card {
  max-width: 540px;
}
.image-grid:has(.image-card:nth-child(2):last-child) .image-card img {
  height: 300px;
}

.meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.meta-card {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 18px;
}
.meta-card h3 {
  font-size: 17px;
  margin-bottom: 10px;
}
.meta-card p {
  color: #4b5563;
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 6px;
}
.table-scroll {
  overflow-x: auto;
}
.overview-table,
.source-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}
.overview-table th,
.overview-table td,
.source-table td {
  border: 1px solid #e5e7eb;
  padding: 12px;
  vertical-align: top;
  color: #374151;
  line-height: 1.65;
}
.overview-table th {
  background: #111827;
  color: #fff;
  text-align: left;
}
.overview-table tr:nth-child(even) td,
.source-table tr:nth-child(even) td {
  background: #f8fafc;
}
.source-details {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  margin-bottom: 14px;
  overflow: hidden;
}
.source-details summary {
  cursor: pointer;
  padding: 16px 18px;
  background: #f8fafc;
  font-weight: 600;
}
.source-details .table-scroll {
  padding: 0 14px 14px;
}
.cell-coord {
  display: inline-flex;
  margin: 0 8px 8px 0;
  padding: 2px 7px;
  border-radius: 6px;
  background: #e0edff;
  color: #165dff;
  font-size: 12px;
  font-weight: 600;
}
.raw-cell {
  white-space: pre-wrap;
  margin: 0;
  color: #374151;
  font: inherit;
  line-height: 1.7;
}

/* 平板适配 900px以下 */
@media (max-width: 900px) {
  .solution-hero {
    height: var(--hero-h-tab);
  }
  .solution-hero-inner {
    grid-template-columns: 1fr;
    max-height: calc(var(--hero-h-tab) - 30px);
  }
  .hero-media {
    min-height: 220px;
    max-height: 260px;
  }
  .solution-section {
    padding: 24px;
  }
  /* 平板图片高度压缩 */
  .image-card img {
    height: 220px;
  }
  .image-grid:has(.image-card:nth-child(1):last-child) .image-card img {
    height: 320px;
  }
}

/* 手机适配 520px以下 */
@media (max-width: 520px) {
  .solution-hero {
    height: var(--hero-h-mob);
  }
  .solution-hero-inner {
    padding: 0 16px;
    max-height: calc(var(--hero-h-mob) - 20px);
  }
  .solution-main {
    padding: 34px 16px 56px;
  }
  .section-heading h2 {
    font-size: 23px;
  }
  .rich-copy {
    font-size: 15px;
  }
  /* 手机强制单列，取消最大宽度限制 */
  .image-grid {
    grid-template-columns: 1fr;
  }
  .image-card,
  .image-grid:has(.image-card:nth-child(1):last-child) .image-card,
  .image-grid:has(.image-card:nth-child(2):last-child) .image-card {
    max-width: 100%;
  }
  .image-card img,
  .image-grid:has(.image-card:nth-child(1):last-child) .image-card img,
  .image-grid:has(.image-card:nth-child(2):last-child) .image-card img {
    height: 200px;
  }
}

/* ===== 基础设施表格（独有样式） ===== */
.infra-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 24px 0;
  background: var(--gray-1);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.infra-table thead {
  background: linear-gradient(135deg, var(--primary) 0%, #0d47e0 100%);
  color: #fff;
}
.infra-table th {
  padding: 16px 20px;
  text-align: left;
  font-weight: 600;
  font-size: 15px;
  border-bottom: 2px solid rgba(255,255,255,0.2);
}
.infra-table td {
  padding: 14px 20px;
  border-bottom: 1px solid var(--gray-2);
  font-size: 14px;
  color: var(--gray-4);
}
.infra-table tbody tr:hover {
  background: rgba(22,93,255,0.05);
}
.infra-table tbody tr:last-child td {
  border-bottom: none;
}
.infra-table .col-index {
  width: 80px;
  text-align: center;
  font-weight: 600;
  color: var(--primary);
}
.infra-table .col-item {
  font-weight: 500;
  color: var(--black);
}

/* ===== 子方案卡片（独有样式） ===== */
.section-divider {
  border: none;
  border-top: 1px dashed #d1d5db;
  margin: 34px 0;
}
.sub-solution-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.sub-solution-card {
  background: linear-gradient(135deg, #f8fafc 0%, #eef5ff 100%);
  border: 1px solid #e0edff;
  border-radius: 10px;
  padding: 24px;
  transition: transform 0.2s, box-shadow 0.2s;
}
.sub-solution-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(22,93,255,0.12);
}
.sub-solution-card h3 {
  color: #165dff;
  font-size: 20px;
  margin-bottom: 12px;
  font-family: "Space Grotesk", "Microsoft YaHei", sans-serif;
  text-align: center;
  margin: 12px 0;
}
.sub-solution-card p {
  color: #4b5563;
  font-size: 14px;
  line-height: 1.7;
}
.sub-solution-card .card-image {
  width: 100%;
  height: 160px;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 14px;
  background: #f0f7ff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sub-solution-card .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.solution-section > h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 600;
    color: #165dff;
    line-height: 1.4;
    margin: 16px 0;
}
