.subpage-hero { position: relative; overflow: hidden; padding: 112px 0 96px; background: linear-gradient(135deg, #f7faff 0%, #fff 62%); }
.subpage-hero::after { content: ''; position: absolute; width: 640px; height: 640px; right: -220px; top: -230px; border: 1px solid rgba(45,109,246,.11); border-radius: 50%; box-shadow: 0 0 0 50px rgba(45,109,246,.025), 0 0 0 105px rgba(45,109,246,.018); pointer-events: none; }
.subpage-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(340px, .97fr); align-items: center; gap: 70px; }
.subpage-hero h1 { max-width: 720px; margin: 0; font-size: clamp(42px, 4vw, 70px); line-height: 1.12; letter-spacing: -.075em; }
.subpage-hero h1 em { color: var(--blue); font-style: normal; }
.subpage-hero-lede { max-width: 620px; margin: 26px 0 30px; color: var(--muted); font-size: 17px; line-height: 1.9; }
.subpage-crumb { margin: 0 0 22px; color: #8290a4; font-size: 12px; }
.subpage-crumb a { color: var(--blue); }
.subpage-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.subpage-visual { position: relative; min-height: 350px; padding: 12px; border: 1px solid #dfe7f5; border-radius: 24px; background: linear-gradient(145deg, #eaf1ff, #f7fbff 58%, #e5edff); box-shadow: 0 24px 60px rgba(48,91,165,.13); overflow: hidden; }
.subpage-visual::before { content: ''; position: absolute; width: 280px; height: 280px; right: -95px; top: -95px; border: 1px solid rgba(45,109,246,.2); border-radius: 50%; }
.subpage-visual::after { content: ''; position: absolute; width: 200px; height: 200px; left: -110px; bottom: -120px; border: 1px solid rgba(125,97,237,.18); border-radius: 50%; }
.subpage-visual img { position: relative; z-index: 1; display: block; width: 100%; height: auto; object-fit: cover; object-position: top center; border-radius: 14px; box-shadow: 0 14px 30px rgba(39,67,124,.12); }
.subpage-section { padding: 112px 0; }
.subpage-section.soft { background: #f7f9fc; }
.subpage-section.dark { color: #fff; background: #151b26; }
.subpage-section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 45px; }
.subpage-section-head h2 { margin: 0; font-size: clamp(34px, 4vw, 54px); line-height: 1.18; letter-spacing: -.065em; }
.subpage-section-head h2 span { color: var(--blue); }
.subpage-section-head p { max-width: 390px; margin: 0 0 5px; color: var(--muted); line-height: 1.8; }
.subpage-section.dark .subpage-section-head p { color: #aab4c2; }
.pain-grid, .module-grid, .culture-grid, .case-grid, .solution-grid-new, .spec-grid { display: grid; gap: 16px; }
.pain-grid { grid-template-columns: repeat(4, 1fr); }
.pain-card { position: relative; min-height: 220px; padding: 25px; border: 1px solid #e3e9f2; border-radius: 17px; background: #fff; overflow: hidden; }
.pain-card::after { content: ''; position: absolute; right: -22px; top: -22px; width: 110px; height: 110px; background-repeat: no-repeat; background-position: center; background-size: 90px 90px; opacity: .9; pointer-events: none; }
.pain-card:nth-child(1)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23ecb58a' stroke-width='3.5' stroke-linecap='round'><circle cx='14' cy='18' r='6'/><circle cx='28' cy='32' r='5'/><circle cx='44' cy='20' r='6'/><circle cx='50' cy='44' r='5'/><circle cx='18' cy='48' r='4'/></svg>"); }
.pain-card:nth-child(2)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23c4b3f0' stroke-width='3.5' stroke-linecap='round'><rect x='8' y='22' width='22' height='20' rx='4'/><rect x='34' y='22' width='22' height='20' rx='4'/><path d='M30 28h4M30 36h4' stroke-dasharray='3 3'/></svg>"); }
.pain-card:nth-child(3)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%239bcfd5' stroke-width='3.5' stroke-linecap='round'><circle cx='32' cy='14' r='6'/><path d='M32 22v8'/><path d='M20 44l12-14 12 14'/><path d='M14 50h36'/></svg>"); }
.pain-card:nth-child(4)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23eda4c4' stroke-width='3.5' stroke-linejoin='round'><rect x='8' y='8' width='24' height='24' rx='3'/><rect x='32' y='32' width='24' height='24' rx='3'/><rect x='32' y='8' width='24' height='24' rx='3'/><path d='M40 20v8h-8'/></svg>"); }
.pain-card b, .pain-card h3 { display: block; }
.pain-card b { color: var(--blue); font-size: 12px; }
.pain-card h3 { margin: 52px 0 9px; font-size: 20px; letter-spacing: -.04em; }
.pain-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.module-grid { grid-template-columns: repeat(3, 1fr); }
.module-card { position: relative; min-height: 270px; padding: 27px; border: 1px solid #e3e8f1; border-radius: 17px; background: #fff; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.module-card::after { content: ''; position: absolute; right: -10px; top: -10px; width: 110px; height: 110px; background-repeat: no-repeat; background-position: center; background-size: 90px 90px; background-color: transparent; opacity: .9; pointer-events: none; }
.module-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(38,67,116,.09); }
.module-card:nth-child(1)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23a8c3f8' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><rect x='10' y='10' width='44' height='44' rx='8'/><path d='M22 32l8 8 16-18'/></svg>"); }
.module-card:nth-child(2)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23c4b3f0' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='M14 10h26l12 12v32a4 4 0 01-4 4H14a4 4 0 01-4-4V14a4 4 0 014-4z'/><path d='M40 10v12h12'/><path d='M20 34h24M20 44h16'/></svg>"); }
.module-card:nth-child(3)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23a3d4be' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><rect x='10' y='10' width='20' height='20' rx='4'/><rect x='34' y='10' width='20' height='20' rx='4'/><rect x='10' y='34' width='20' height='20' rx='4'/><rect x='34' y='34' width='20' height='20' rx='4'/></svg>"); }
.module-card:nth-child(4)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23ecb58a' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><rect x='14' y='12' width='36' height='40' rx='6'/><path d='M24 24h8M24 32h16M24 40h12'/><path d='M30 44l4 4 8-8'/></svg>"); }
.module-card:nth-child(5)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23eda4c4' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='M10 14a4 4 0 014-4h36a4 4 0 014 4v24a4 4 0 01-4 4H30l-10 10v-10H14a4 4 0 01-4-4V14z'/><circle cx='22' cy='26' r='2.2' fill='%23eda4c4'/><circle cx='32' cy='26' r='2.2' fill='%23eda4c4'/><circle cx='42' cy='26' r='2.2' fill='%23eda4c4'/></svg>"); }
.module-card:nth-child(6)::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%239bcfd5' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='28' cy='28' r='16'/><path d='M40 40l12 12'/></svg>"); }
.module-index { color: var(--blue); font-size: 12px; font-weight: 700; }
.module-card h3 { margin: 33px 0 10px; font-size: 21px; letter-spacing: -.045em; }
.module-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.module-card small { position: absolute; left: 27px; bottom: 24px; color: #9aa5b4; font-size: 10px; }
.culture-grid { grid-template-columns: repeat(4, 1fr); }
.culture-card { min-height: 235px; padding: 24px; border-radius: 17px; background: #edf3ff; color: var(--ink); }
.culture-card:nth-child(2) { background: #eeeafe; }.culture-card:nth-child(3) { background: #e9f8f3; }.culture-card:nth-child(4) { background: #fff1e6; }
.culture-card h3 { margin: 48px 0 9px; font-size: 20px; letter-spacing: -.045em; color: var(--ink); }.culture-card p { margin: 0; color: #687587; font-size: 12px; line-height: 1.75; }
.numbered-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: item; }
.numbered-list li { display: grid; grid-template-columns: 42px 1fr; gap: 17px; align-items: start; padding: 18px 0; border-top: 1px solid var(--line); }
.numbered-list li::before { counter-increment: item; content: counter(item, decimal-leading-zero); color: var(--blue); font-size: 12px; font-weight: 700; }
.numbered-list strong { display: block; margin-bottom: 3px; font-size: 16px; }.numbered-list span { color: var(--muted); font-size: 13px; line-height: 1.75; }
.split-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.split-copy h2 { margin: 0 0 20px; font-size: clamp(34px, 4vw, 52px); line-height: 1.18; letter-spacing: -.065em; }.split-copy h2 span { color: var(--blue); }.split-copy > p { margin: 0 0 25px; color: var(--muted); line-height: 1.85; }
.quote-note { margin-top: 26px; padding: 15px 17px; border-left: 3px solid var(--blue); color: #6d7786; background: #f5f8ff; font-size: 12px; line-height: 1.75; }
.diagram-card { position: relative; min-height: 360px; padding: 24px; border: 1px solid #dfe6f1; border-radius: 20px; background: #f8faff; overflow: hidden; }.diagram-center { position: absolute; left: 50%; top: 50%; z-index: 2; width: 150px; height: 110px; display: flex; flex-direction: column; align-items: center; justify-content: center; transform: translate(-50%, -50%); border: 1px solid #bcd0fb; border-radius: 18px; background: #fff; box-shadow: 0 18px 30px rgba(40,81,160,.12); }.diagram-center b { color: #2c5dcc; font-size: 18px; }.diagram-center span { color: #8c9ab0; font-size: 10px; }.diagram-ring { position: absolute; left: 50%; top: 50%; width: 280px; height: 210px; transform: translate(-50%, -50%); border: 1px dashed #c8d7f2; border-radius: 50%; }.diagram-node { position: absolute; z-index: 3; min-width: 110px; padding: 11px 13px; border: 1px solid #dfe6f1; border-radius: 11px; background: #fff; box-shadow: 0 10px 20px rgba(40,70,123,.07); }.diagram-node b { display: block; color: #456bc7; font-size: 13px; }.diagram-node span { color: #95a0ae; font-size: 9px; }.diagram-node:nth-of-type(1) { left: 25px; top: 36px; }.diagram-node:nth-of-type(2) { right: 24px; top: 48px; }.diagram-node:nth-of-type(3) { left: 37px; bottom: 34px; }.diagram-node:nth-of-type(4) { right: 28px; bottom: 28px; }
.spec-table { width: 100%; border-collapse: collapse; font-size: 13px; }.spec-table th, .spec-table td { padding: 16px 18px; border-bottom: 1px solid #e4e9f1; text-align: left; vertical-align: top; }.spec-table th { color: #5c6878; background: #f6f8fb; font-size: 12px; }.spec-table td { color: #6b7584; }.spec-table td:first-child { color: var(--ink); font-weight: 700; white-space: nowrap; }
.case-grid { grid-template-columns: repeat(2, 1fr); }/* 旧深色卡样式（cases.html 已改用 gallery-*，保留备份） .case-card-new { display: grid; grid-template-columns: 135px 1fr; gap: 20px; min-height: 250px; padding: 17px; border: 1px solid #2f3b4d; border-radius: 17px; background: #1b2330; overflow: hidden; }.case-card-new img { width: 135px; height: 215px; object-fit: contain; align-self: center; border-radius: 10px; background: #f5f6f8; }.case-card-new h3 { margin: 14px 0 8px; color: #fff; font-size: 19px; }.case-card-new p { margin: 0; color: #aab4c2; font-size: 12px; line-height: 1.78; }.case-card-new .case-meta { color: #8facff; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; } */
.logo-chip { width: 90px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; margin-bottom: 12px; border-radius: 8px; background: #fff; }.logo-chip img { width: 100%; height: 100%; object-fit: contain; }.case-card-new .logo-chip img { width: 100%; height: 100%; background: transparent; border-radius: 0; }
.solution-grid-new { grid-template-columns: repeat(2, 1fr); }.solution-card-new { min-height: 270px; padding: 29px; border-radius: 18px; background: #f6f9ff; }.solution-card-new:nth-child(2) { background: #f4f0ff; }.solution-card-new:nth-child(3) { background: #eefaf6; }.solution-card-new:nth-child(4) { background: #fff4ea; }.solution-card-new h3 { margin: 44px 0 10px; font-size: 23px; }.solution-card-new p { max-width: 440px; margin: 0; color: #687587; font-size: 13px; line-height: 1.8; }.solution-tag { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.page-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 55px 65px; border-radius: 22px; background: linear-gradient(135deg, #eaf1ff, #f9fbff); }.page-cta h2 { margin: 0; font-size: 32px; letter-spacing: -.06em; }.page-cta p { margin: 8px 0 0; color: var(--muted); font-size: 13px; }
.subpage-section.dark .page-cta { color: var(--ink); }
.subpage-footer { margin-top: 0; }
@media (max-width: 900px) { .subpage-hero-inner, .split-layout { grid-template-columns: 1fr; gap: 42px; }.pain-grid { grid-template-columns: repeat(2, 1fr); }.culture-grid { grid-template-columns: repeat(2, 1fr); }.module-grid { grid-template-columns: repeat(2, 1fr); }.case-grid, .solution-grid-new { grid-template-columns: 1fr; }.subpage-visual { max-width: 640px; }.page-cta { align-items: flex-start; flex-direction: column; } }
@media (max-width: 560px) { .subpage-hero { padding: 72px 0 64px; }.subpage-section { padding: 76px 0; }.subpage-hero h1 { font-size: 43px; }.subpage-hero-lede { font-size: 15px; }.subpage-section-head { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 31px; }.pain-grid, .module-grid, .culture-grid { grid-template-columns: 1fr; }.pain-card, .module-card, .culture-card { min-height: 0; }.pain-card h3, .culture-card h3 { margin-top: 31px; }.subpage-visual { min-height: 280px; padding: 13px; }.subpage-visual img { height: 250px; }/* .case-card-new 旧响应式也保留备份 */ .page-cta { padding: 34px 26px; }.page-cta h2 { font-size: 27px; }.spec-table { min-width: 620px; }.table-scroll { overflow-x: auto; } }

/* ========== Case Gallery（cases.html 新版块） ========== */
.gallery-featured { display: grid; grid-template-columns: 1fr 1.25fr; gap: 56px; align-items: center; margin-bottom: 56px; padding: 44px 48px; border: 1px solid #e3e9f2; border-radius: 28px; background: linear-gradient(135deg, #f7faff 0%, #ffffff 70%); box-shadow: 0 30px 60px rgba(48,91,165,.08); overflow: hidden; }
.gallery-featured-info .gallery-featured-logo { width: 130px; height: 52px; padding: 8px 14px; margin-bottom: 22px; border-radius: 12px; background: #fff; border: 1px solid #e8edf5; box-shadow: 0 4px 12px rgba(40,70,123,.06); }
.gallery-tag { display: inline-block; margin-bottom: 18px; padding: 5px 11px; border-radius: 999px; background: #eaf1ff; color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.gallery-featured-info h3 { margin: 0 0 16px; max-width: 480px; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.22; letter-spacing: -.055em; color: var(--ink); }
.gallery-featured-info > p { max-width: 460px; margin: 0 0 26px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.gallery-highlights { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 480px; }
.gallery-highlights li { padding: 14px 16px; border-radius: 12px; background: #fff; border: 1px solid #edf1f7; }
.gallery-highlights b { display: block; margin-bottom: 4px; color: var(--blue); font-size: 14px; font-weight: 700; }
.gallery-highlights span { color: #6d7786; font-size: 11.5px; line-height: 1.5; }
.gallery-link { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: 13px; font-weight: 700; }
.gallery-link::after { content: '↗'; font-size: 12px; }

.gallery-featured-visual { position: relative; padding: 16px; border-radius: 22px; background: linear-gradient(145deg, #eaf1ff, #f7fbff); border: 1px solid #dfe7f5; box-shadow: 0 30px 60px rgba(48,91,165,.13); overflow: hidden; }
.gallery-featured-visual::before { content: ''; position: absolute; width: 240px; height: 240px; right: -90px; top: -90px; border: 1px solid rgba(45,109,246,.2); border-radius: 50%; }
.gallery-featured-visual::after { content: ''; position: absolute; width: 180px; height: 180px; left: -90px; bottom: -100px; border: 1px solid rgba(125,97,237,.18); border-radius: 50%; }
.gallery-windowbar { display: flex; align-items: center; justify-content: space-between; height: 36px; padding: 0 16px; margin-bottom: 12px; border-bottom: 1px solid #edf0f4; background: linear-gradient(180deg, #f8fbff, #fff); color: #8290a4; font-size: 11px; font-weight: 600; letter-spacing: .02em; }
.gallery-windowbar i { font-style: normal; color: #b6c0d0; font-size: 9px; letter-spacing: 4px; }
.gallery-featured-visual img { position: relative; z-index: 1; display: block; width: 100%; height: 360px; object-fit: contain; border-radius: 13px; background: rgba(255,255,255,.72); box-shadow: 0 14px 30px rgba(39,67,124,.12); }

.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gallery-card { display: flex; flex-direction: column; padding: 20px; border: 1px solid #e3e9f2; border-radius: 18px; background: #fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.gallery-card:hover { transform: translateY(-3px); border-color: #c9d8f5; box-shadow: 0 18px 36px rgba(38,67,116,.1); }
.gallery-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; height: 38px; }
.gallery-card .logo-chip { width: 80px; height: 36px; padding: 5px 8px; background: #fff; border: none; border-radius: 8px; margin-bottom: 0; }
.gallery-tag-sm { color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-align: right; }
.gallery-card-shot { margin: 0 0 18px; position: relative; height: 160px; padding: 12px; border-radius: 12px; background: #f6f8fc; border: 1px solid #edf0f5; display: flex; align-items: center; justify-content: center; }
.gallery-card-shot img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.gallery-card h3 { margin: 0 0 6px; font-size: 16px; font-weight: 700; letter-spacing: -.03em; color: var(--ink); }
.gallery-card p { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.78; }

@media (max-width: 1100px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .gallery-featured { grid-template-columns: 1fr; padding: 28px 26px; gap: 36px; }.gallery-featured-info h3 { font-size: 24px; }.gallery-highlights { grid-template-columns: 1fr; max-width: 100%; }.gallery-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gallery-grid { grid-template-columns: 1fr; }.gallery-featured { padding: 22px; }.gallery-featured-info h3 { font-size: 22px; }.gallery-featured-visual img { height: 240px; }.placeholder-body h3 { font-size: 22px !important; } }

/* Placeholder 卡（4×2 第 8 格：「下一个案例就是你」） */
.gallery-card-placeholder { background: linear-gradient(135deg, #f1f6ff, #f7faff); border: 1px dashed #c9d8f5; align-items: center; justify-content: center; min-height: 360px; padding: 28px; text-align: left; }
.gallery-card-placeholder:hover { border-style: solid; }
.gallery-tag-placeholder { color: var(--blue) !important; letter-spacing: .12em !important; font-size: 11px !important; margin-bottom: 0; width: 100%; text-align: left; }
.gallery-card-placeholder .placeholder-body { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.gallery-card-placeholder .placeholder-body h3 { margin: 0; font-size: 26px; line-height: 1.25; letter-spacing: -.04em; color: var(--ink); }
.gallery-card-placeholder .placeholder-body p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.gallery-card-placeholder .gallery-card-head { height: auto; margin-bottom: 0; }

/* 发展历程弧线时间轴（about） */
.timeline-curve { position: relative; width: 100%; max-width: 1400px; margin: 30px auto 0; aspect-ratio: 1400 / 620; }
.timeline-curve svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.timeline-curve .tl-shadow { stroke: #d9e7fb; stroke-width: 15; opacity: .85; }
.timeline-curve .tl-path { stroke: #2f8bff; stroke-width: 5; stroke-linecap: round; }
.timeline-curve .tl-vline { stroke: #d8e2f0; stroke-width: 1; }
.timeline-curve .tl-dot { fill: #fff; stroke: #2f8bff; stroke-width: 5; r: 9; }
.tl-item { position: absolute; max-width: 260px; }
.tl-item::before { content: ''; position: absolute; left: -15px; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: #2f8bff; }
.tl-item b { display: block; color: #2f8bff; font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.tl-item p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.tl-item.tl-big strong { display: block; margin-top: 4px; font-size: 44px; font-weight: 900; letter-spacing: -.03em; color: var(--ink); }
.tl-item.tl-big strong small { font-size: 14px; font-weight: 500; color: var(--muted); }

/* About page milestone timeline: a clean, presentation-style curve inspired by the supplied reference. */
section:has(.timeline-curve) { background: linear-gradient(180deg, #f8fbff 0%, #f4f8fd 100%); }
section:has(.timeline-curve) .subpage-section-head { margin-bottom: 20px; }
section:has(.timeline-curve) .timeline-curve { max-width: 1360px; margin-top: 6px; aspect-ratio: 1400 / 580; }
section:has(.timeline-curve) .timeline-curve { background-image: linear-gradient(to bottom, transparent 18%, #d2deec 18% 88%, transparent 88%), linear-gradient(to bottom, transparent 17%, #d2deec 17% 86%, transparent 86%); background-position: calc(2.9% - 11px) 0, calc(23.6% - 11px) 0; background-repeat: no-repeat; background-size: 1px 100%, 1px 100%; }
section:has(.timeline-curve) .timeline-curve::after { content: ''; position: absolute; inset: 9% 1% 5%; pointer-events: none; background: radial-gradient(circle at 16% 88%, rgba(45,109,246,.06), transparent 22%), radial-gradient(circle at 74% 18%, rgba(45,109,246,.05), transparent 28%); }
section:has(.timeline-curve) .timeline-curve .tl-shadow { stroke: #d6e3f4; stroke-width: 16; opacity: .72; transform: translateY(9px); }
section:has(.timeline-curve) .timeline-curve .tl-path { stroke: #147df5; stroke-width: 5.5; filter: drop-shadow(0 4px 4px rgba(20,125,245,.11)); }
section:has(.timeline-curve) .timeline-curve .tl-vline { stroke: #d2deec; stroke-width: 1.2; }
section:has(.timeline-curve) .timeline-curve .tl-dot { fill: #fff; stroke: #147df5; stroke-width: 4; r: 10; }
section:has(.timeline-curve) .tl-item { z-index: 2; max-width: 245px; }
section:has(.timeline-curve) .tl-item b { font-size: 25px; letter-spacing: -.045em; }
section:has(.timeline-curve) .tl-item p { margin-top: 6px; color: #77879a; font-size: 12px; line-height: 1.65; }
section:has(.timeline-curve) .tl-item::before { width: 10px; height: 10px; left: -16px; top: 10px; box-shadow: 0 0 0 4px rgba(20,125,245,.1); }
section:has(.timeline-curve) .tl-item.tl-big strong { margin-top: 2px; font-size: 46px; line-height: 1; }
section:has(.timeline-curve) .tl-item.tl-big strong small { font-size: 14px; }
/* Keep the milestone marker on the axis while moving copy clear of the guide lines. */
section:has(.timeline-curve) .tl-item[style*="left:23.6%"] > b,
section:has(.timeline-curve) .tl-item[style*="left:23.6%"] > p,
section:has(.timeline-curve) .tl-item[style*="left:25%"] > b,
section:has(.timeline-curve) .tl-item[style*="left:25%"] > p,
section:has(.timeline-curve) .tl-item[style*="left:26.4%"] > b,
section:has(.timeline-curve) .tl-item[style*="left:26.4%"] > p { position: relative; left: 16px; }
section:has(.timeline-curve) .tl-item[style*="left:60.7%"] > b,
section:has(.timeline-curve) .tl-item[style*="left:60.7%"] > p { position: relative; left: 20px; }
section:has(.timeline-curve) .tl-item[style*="left:75.4%"] > b,
section:has(.timeline-curve) .tl-item[style*="left:75.4%"] > p,
section:has(.timeline-curve) .tl-item[style*="left:75.4%"] > strong { position: relative; left: 14px; }
section:has(.timeline-curve) .tl-item[style*="left:60.7%"] { transform: translateY(-6px); }
@media (max-width: 900px) {
  .timeline-curve { aspect-ratio: auto; padding-left: 22px; }
  section:has(.timeline-curve) .timeline-curve { background-image: none; }
  section:has(.timeline-curve) .tl-item > b,
  section:has(.timeline-curve) .tl-item > p,
  section:has(.timeline-curve) .tl-item > strong { left: 0; }
  .timeline-curve svg { display: none; }
  .timeline-curve::before { content: ''; position: absolute; left: 5px; top: 10px; bottom: 10px; width: 2px; background: #2f8bff; opacity: .35; }
  .tl-item { position: relative; left: 0 !important; top: 0 !important; max-width: 100%; margin-bottom: 22px; }
  .tl-item::before { left: -19px; }
}

/* 合作客户 logo 墙（cases） */
.logo-wall-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-top: 12px; }
.logo-cell { display: flex; align-items: center; justify-content: center; height: 96px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.logo-cell img { max-width: 100%; max-height: 60px; width: auto; height: auto; object-fit: contain; }
.logo-cell:hover { border-color: #c8d8f5; box-shadow: 0 10px 22px rgba(24,43,75,.08); transform: translateY(-2px); }
@media (max-width: 1050px) { .logo-wall-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 820px) { .logo-wall-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; } .logo-cell { height: 82px; } }
@media (max-width: 520px) { .logo-wall-grid { grid-template-columns: repeat(2, 1fr); } }
