/* Service cards: consistent number/copy geometry, independent of animation. */
.sanhua-chain li i { font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.is-scroll-profile .about-service-stage { height: 340px; }
.is-scroll-profile .sanhua-chain { clip-path: inset(-70px -8px 0 -8px); }
.is-scroll-profile .sanhua-chain li { grid-template-columns: 190px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; column-gap: 64px; padding: 48px 64px; will-change: transform; backface-visibility: hidden; }
.is-scroll-profile .sanhua-chain li i { grid-row: 1 / 3; align-self: center; position: relative; top: -.08em; font-size: 112px; line-height: 1; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.is-scroll-profile .sanhua-chain h3 { grid-row: 1; align-self: start; line-height: 1.2; margin: 0; }
.is-scroll-profile .sanhua-chain p { grid-row: 2; align-self: start; margin: 16px 0 0; line-height: 1.65; }

@media(min-width:960px) and (max-width:1200px) {
 .is-scroll-profile .sanhua-chain li { grid-template-columns: 140px minmax(0,1fr); column-gap: 40px; padding: 40px; }
 .is-scroll-profile .sanhua-chain li i { font-size: 96px; }
}

.sanhua-hero-corner-visual img { transform: scale(1.04); }
.about-timeline-rail { width: 2px; background: none; }
.about-timeline-svg { display:block; width:100%; height:100%; overflow:visible; }
.about-timeline-svg path { fill:none; stroke-width:2; vector-effect:non-scaling-stroke; }
.about-history-track { stroke:var(--about-line); }
.about-timeline-svg .about-history-progress { stroke:var(--about-accent); stroke-dasharray:1; stroke-dashoffset:0; background:none; }
.about-timeline-entry::before { transform:scale(var(--history-node-scale,1)); transition:background-color .3s ease,box-shadow .3s ease !important; }
.about-timeline-entry.is-reached::before { background:var(--about-accent); }
.about-timeline-entry.is-current::before { box-shadow:0 0 0 4px color-mix(in srgb,var(--about-accent) 10%,transparent); }
@media(prefers-reduced-motion:reduce){.about-timeline-entry::before{transition:none !important;}}

/* A complete reading layout also works without GSAP or with reduced motion. */
.sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain { display:grid; gap:14px; }
.sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain li {
 min-height:0; padding:26px 30px; border:1px solid var(--about-line); border-radius:14px;
 background:var(--about-surface); grid-template-columns:56px minmax(0,1fr);
 grid-template-rows:auto auto; gap:10px 22px; align-content:start;
}
.sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain li i {
 grid-row:1 / 3; padding:0; font-size:32px; line-height:1.15; color:var(--about-accent);
}
.sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain h3 { margin:0; font-size:26px; line-height:1.25; }
.sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain p { margin:0; line-height:1.65; }
.is-scroll-profile .about-service-stage { height:clamp(240px,44vh,340px); }
.is-scroll-profile.is-stage-pinned .about-service-stage { margin-top:64px; margin-bottom:40px; }
.is-scroll-profile.is-chapter-pinned .about-service-stage { height:var(--service-card-height,300px); margin:var(--service-card-gap,56px) auto 0; }
/* Solid fallbacks for older browsers without color-mix. */
.is-scroll-profile .sanhua-chain li:nth-child(2) { background:#eff4f0; background:color-mix(in srgb,var(--about-accent) 5%,var(--about-surface)); }
.is-scroll-profile .sanhua-chain li:nth-child(3) { background:#e7eeea; background:color-mix(in srgb,var(--about-accent) 9%,var(--about-surface)); }
.is-scroll-profile .sanhua-chain li:nth-child(4) { background:#dee9e3; background:color-mix(in srgb,var(--about-accent) 14%,var(--about-surface)); }
@media(max-width:959px) {
 .is-scroll-profile .sanhua-chain li { grid-template-columns:88px minmax(0,1fr); column-gap:28px; padding:30px; }
 .is-scroll-profile .sanhua-chain li i { font-size:76px; }
 .is-scroll-profile .sanhua-chain h3 { font-size:30px; }
 .is-scroll-profile .sanhua-chain p { font-size:15px; margin-top:14px; }
 .sanhua-profile .sanhua-section-head { column-gap:36px; }
}
@media(max-width:700px) {
 .is-scroll-profile .sanhua-chain li { grid-template-columns:64px minmax(0,1fr); column-gap:22px; padding:24px; }
 .is-scroll-profile .sanhua-chain li i { font-size:56px; }
 .is-scroll-profile .sanhua-chain h3 { font-size:26px; }
 .sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain li { padding:22px; grid-template-columns:38px minmax(0,1fr); column-gap:16px; }
 .sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain li i { font-size:27px; }
 .sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain h3 { font-size:23px; }
 .sanhua-culture-grid article { padding:24px 12px; row-gap:12px; }
 .about-timeline-entry { padding-bottom:42px; }
}
@media(max-width:559px) {
 .sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain li i { grid-row:1; }
 .sanhua-profile .inner-shell:not(.is-scroll-profile) .sanhua-chain p { grid-column:1 / -1; }
}

/* Portrait windows keep upcoming cards visible instead of a pin spacer. */
.is-scroll-profile.is-flow-stack .about-service-stage { height:auto; margin:40px auto 0; }
.is-scroll-profile.is-flow-stack .sanhua-chain { height:auto; clip-path:none; overflow:visible; padding-bottom:0; }
.is-scroll-profile.is-flow-stack .sanhua-chain li {
 position:sticky; inset:auto; top:calc(112px + var(--stack-index,0)*12px);
 height:clamp(220px,25vh,300px); margin-bottom:20px; transform-origin:center top;
}
.is-scroll-profile.is-flow-stack .sanhua-chain li:last-child { margin-bottom:0; }
.is-scroll-profile.is-flow-stack .about-service-progress { display:none; }

/* The reading gallery uses a consistent contact sheet at every unpinned size. */
.gallery-grid-caption { display:none; }
.gallery-scroll-caption { display:contents; }
.sanhua-field-gallery__item figcaption .gallery-scroll-caption { font-size:inherit; }
.sanhua-field-gallery__item .gallery-grid-caption strong { font-size:14px; }
.is-scroll-gallery .sanhua-field-gallery__item .gallery-grid-only { display:none; }
.about-gallery-stage:not(.is-scroll-gallery) .sanhua-field-gallery__track {
 grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 28px; align-items:start;
}
.about-gallery-stage:not(.is-scroll-gallery) .about-image-frame { aspect-ratio:4 / 3; border-radius:12px; }
.about-gallery-stage:not(.is-scroll-gallery) .about-image-frame img { height:100%; aspect-ratio:4 / 3; object-fit:cover; object-position:center; }
.about-gallery-stage:not(.is-scroll-gallery) .sanhua-field-gallery__item figcaption { gap:12px; padding-top:12px; line-height:1.5; }
.about-gallery-stage:not(.is-scroll-gallery) .gallery-grid-caption { display:contents; }
.about-gallery-stage:not(.is-scroll-gallery) .gallery-scroll-caption { display:none; }
@media(max-width:559px) {
 .about-gallery-stage:not(.is-scroll-gallery) .sanhua-field-gallery__track { grid-template-columns:minmax(0,1fr); gap:26px; }
}

