/* Company profile: dimensions and responsive behavior mirror cps-lighting.com/about/. */
.about-site-page p,
.about-site-page h1,
.about-site-page h2,
.about-site-page h3 { margin: 0; }
.about-page { display: flex; align-items: center; flex-direction: column; overflow: hidden; color: #4d4d4d; }
.about-banner { position: relative; width: 100%; padding-top: 3.75rem; }
.about-banner picture,
.about-banner img { display: block; width: 100%; }
.about-banner__headline { position: absolute; z-index: 1; top: calc(50% + 1.875rem); left: 20vw; transform: translateY(-50%); }
.about-banner__headline h1 { color: #f5f5f5; font-size: 3rem; font-weight: 500; }

.about-intro { box-sizing: border-box; width: 100vw; padding: 0 12vw; background: #f1f2f3; }
.about-intro__content { display: flex; align-items: center; justify-content: space-between; margin: 8.125rem 0; }
.about-intro__copy { flex: 0 0 55%; }
.about-intro__copy h2 { margin-bottom: 2.5rem; color: #4d4d4d; font-size: 2.25rem; font-weight: 600; }
.about-intro__copy p { width: 85%; color: #4d4d4d; font-size: .875rem; font-weight: 300; line-height: 1.8; white-space: pre-line; }
.about-intro__video { flex: 0 0 48%; }
.about-intro__video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

.about-bases { box-sizing: border-box; width: 100vw; margin-top: 10vw; padding: 0 12vw; }
.about-base { display: flex; align-items: center; gap: 5vw; }
.about-base.is-reversed { flex-direction: row-reverse; }
.about-base__image { flex: 0 0 50%; width: 50%; }
.about-base__image img { display: block; width: 100%; object-fit: cover; }
.about-base__copy { flex: 1; }
.about-base__copy h2 { margin-bottom: .75rem; color: #4d4d4d; font-size: 1.375rem; font-weight: 400; }
.about-base__copy p { color: #4d4d4d; font-size: .875rem; font-weight: 300; line-height: 1.8; }

.about-patents { box-sizing: border-box; width: 100vw; margin-top: 10vw; padding: 0 12vw; }
.about-patents > h2 { margin-bottom: 2.5rem; color: #4d4d4d; font-size: 2.25rem; font-weight: 600; }
.about-patents__content { display: flex; gap: 5rem; }
.about-patents__image { display: block; width: 33%; max-width: 31.25rem; }
.about-patents__image img { display: block; width: 100%; }
.about-patents__details { display: flex; flex: 1; flex-direction: column; }
.about-patents__copy p { color: #666; font-size: .875rem; font-weight: 400; line-height: 1.8; }
.about-patents__line { width: 100%; height: .0625rem; margin-top: 4vw; background: linear-gradient(90deg, #666 56.39%, rgb(102 102 102 / 0%)); }
.patent-metrics { display: flex; flex: 1; flex-direction: column; justify-content: space-evenly; }
.patent-metrics__row { display: flex; gap: 9.375rem; margin-top: 1vw; }
.patent-metric { min-width: 0; }
.patent-metric strong { display: inline-block; color: #666; font-size: 3rem; font-weight: 400; line-height: 2.5rem; }
.patent-metric p { margin-top: 1.25rem; color: gray; font-size: 1rem; font-weight: 400; line-height: 1.25; }

.about-certificates { box-sizing: border-box; width: 100%; padding: 4rem 0 2rem; }
.certificate-carousel { text-align: center; }
.certificate-carousel__controls { position: relative; display: flex; align-items: center; max-width: 75rem; margin: 0 auto; padding: 0 2.5rem; }
.certificate-viewport { flex: 1; min-width: 0; height: 25rem; overflow: hidden; }
.certificate-track { display: flex; height: 100%; transition: transform .35s ease; }
.certificate-item { display: flex; flex: 0 0 20%; align-items: center; justify-content: center; height: 100%; padding: 0 .75rem; overflow: visible; background: transparent; border: 0; opacity: .65; transform: scale(.82); cursor: pointer; transition: transform .35s ease, opacity .35s ease; }
.certificate-item.is-active { z-index: 2; opacity: 1; transform: scale(1.05); }
.certificate-item:hover { transform: scale(1.03); }
.certificate-item img { box-sizing: border-box; width: 100%; height: 16.25rem; padding: 0; object-fit: contain; }
.certificate-arrow { z-index: 10; display: flex; flex: 0 0 2.25rem; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; color: #fff; background: rgb(228 84 13 / 80%); border: 0; border-radius: 50%; cursor: pointer; transition: all .3s ease; }
.certificate-arrow:hover { background: #e4540d; transform: scale(1.1); }
.certificate-arrow span,
.timeline-arrow span { display: block; width: 0; height: 0; border-top: .33rem solid transparent; border-bottom: .33rem solid transparent; border-left: .5rem solid currentColor; }
.certificate-arrow.is-prev span,
.timeline-arrow.is-prev span { transform: rotate(180deg); }
.certificate-carousel h2 { margin: 0 0 2vw; color: #4d4d4d; font-size: 1.875rem; font-weight: 400; }
.certificate-dots { display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; }
.certificate-dots button { width: .5rem; height: .5rem; padding: 0; background: rgb(228 84 13 / 30%); border: 0; border-radius: 50%; opacity: 1; cursor: pointer; transition: all .3s ease; }
.certificate-dots button[aria-current="true"] { background: #e4540d; transform: scale(1.3); }
.certificate-preview { position: fixed; z-index: 9999; inset: 0; display: flex; align-items: center; justify-content: center; background: rgb(0 0 0 / 85%); cursor: pointer; }
.certificate-preview[hidden] { display: none; }
.certificate-preview__content { position: relative; display: flex; align-items: center; justify-content: center; max-width: 90vw; max-height: 90vh; cursor: default; }
.certificate-preview__content img { max-width: 90vw; max-height: 90vh; object-fit: contain; border-radius: .25rem; box-shadow: 0 .5rem 2rem rgb(0 0 0 / 30%); }
.certificate-preview__content button { position: absolute; top: -2.5rem; right: -2.5rem; display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; color: #fff; background: rgb(255 255 255 / 20%); border: 0; border-radius: 50%; font-size: 1.75rem; line-height: 1; cursor: pointer; }

.about-timeline { box-sizing: border-box; width: 76vw; margin: 10vw 0; }
.about-timeline > h2 { margin-bottom: 2.5rem; color: #4d4d4d; font-size: 2.25rem; font-weight: 600; }
.timeline-carousel { position: relative; padding: 0 2.5rem; }
.timeline-viewport { overflow: hidden; }
.timeline-track { display: flex; transition: transform .4s ease; }
.timeline-item { flex: 0 0 13.75rem; padding: 0 .625rem; text-align: center; }
.timeline-item__year { margin-bottom: .5rem; color: #e3550b; font-size: 1.125rem; font-weight: 600; }
.timeline-item__arrow { height: 1.5rem; margin-bottom: .25rem; background: #eef0f4; clip-path: polygon(0 0, calc(100% - .75rem) 0, 100% 50%, calc(100% - .75rem) 100%, 0 100%, .75rem 50%); }
.timeline-item__node { position: relative; display: flex; justify-content: center; height: 2.5rem; }
.timeline-item__node::before { position: absolute; top: 0; width: .125rem; height: 100%; content: ""; background: #d0d3da; }
.timeline-item__node span { position: absolute; bottom: 0; width: .625rem; height: .625rem; background: #fff; border: .125rem solid #d0d3da; border-radius: 50%; }
.timeline-item__content { display: grid; grid-template-rows: 2.5rem 5rem 10rem; padding-top: .5rem; }
.timeline-item__content h3 { display: flex; align-items: flex-start; justify-content: center; margin: 0; color: #4d4d4d; font-size: 1rem; font-weight: 500; line-height: 1.25; }
.timeline-item__content p { margin: 0; color: #676767; font-size: .875rem; line-height: 1.8; text-align: center; }
.timeline-item__content img { display: block; align-self: start; width: 100%; height: 10rem; margin: 0; object-fit: contain; border-radius: .25rem; }
.timeline-arrow { position: absolute; z-index: 2; top: 50%; display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; color: #fff; background: rgb(199 199 199 / 50%); border: 0; border-radius: .25rem; transform: translateY(-50%); cursor: pointer; }
.timeline-arrow:disabled { opacity: .3; cursor: not-allowed; }
.timeline-arrow:not(:disabled):hover { background: rgb(227 85 11 / 80%); }
.timeline-arrow.is-prev { left: 0; }
.timeline-arrow.is-next { right: 0; }

@media (max-width: 1280px) {
  .about-patents__content { gap: 3.125rem; }
  .patent-metrics__row { gap: 6.25rem; }
  .about-timeline { width: 90vw; }
  .about-timeline > h2 { font-size: 1.5rem; }
}

@media (max-width: 1024px) {
  .about-banner__headline h1 { margin-bottom: .625rem; font-size: 2rem; }
  .about-patents__copy { margin-bottom: 1.25rem; }
  .about-patents__line { margin-top: 1.25rem; }
  .patent-metrics__row { margin-bottom: .9375rem; }
  .patent-metric strong { font-size: 1.875rem; }
  .patent-metric p { margin-top: .625rem; font-size: .875rem; }
  .certificate-item { flex-basis: 33.333333%; }
}

@media (max-width: 767px) {
  .about-banner__headline { top: auto; bottom: 3.125rem; left: 4rem; transform: none; }
  .about-banner__headline h1 { font-size: 1.75rem; }
  .about-intro { padding: 0 1.25rem; }
  .about-intro__content { flex-direction: column; gap: 1.5rem; margin: 2.5rem 0; }
  .about-intro__copy { flex: none; width: 100%; }
  .about-intro__copy h2 { position: relative; margin-bottom: .625rem; font-size: 1.25rem; font-weight: 400; }
  .about-intro__copy h2::after { position: absolute; bottom: -.375rem; left: 0; width: 1.875rem; height: .125rem; content: ""; background: #e3540b; }
  .about-intro__copy p { width: 100%; font-size: .875rem; }
  .about-intro__video { flex: none; width: 100%; }
  .about-intro__video iframe { width: 100%; height: 12.5rem; }
  .about-bases { padding: 0 1.25rem; }
  .about-base,
  .about-base.is-reversed { flex-direction: column; gap: 1.25rem; margin-bottom: 2.5rem; }
  .about-base:last-child { margin-bottom: 0; }
  .about-base__image { flex: none; width: 100%; }
  .about-base__copy h2 { position: relative; margin-bottom: .625rem; font-size: 1.25rem; font-weight: 400; }
  .about-base__copy p { font-size: .875rem; }
  .about-patents { padding: 0 1.25rem; }
  .about-patents > h2 { margin-bottom: 2.5rem; font-size: 1.25rem; font-weight: 400; line-height: 1.2; }
  .about-patents__content { gap: 2rem; }
  .about-patents__image { width: 30%; }
  .about-patents__details { width: 100%; }
  .about-patents__copy { margin-bottom: 1.3125rem; }
  .about-patents__copy p { font-size: .875rem; font-weight: 300; }
  .patent-metrics__row { margin-bottom: 2.0625rem; }
  .patent-metric p { margin-top: .25rem; font-size: .875rem; }
  .certificate-carousel__controls { display: block; padding: 0 2rem; }
  .certificate-viewport { width: 100%; height: 17.5rem; }
  .certificate-item { flex-basis: 25%; padding-inline: .375rem; }
  .certificate-item img { height: 10rem; }
  .certificate-arrow { position: absolute; top: 50%; width: 1.75rem; height: 1.75rem; transform: translateY(-50%); }
  .certificate-arrow:hover { transform: translateY(-50%) scale(1.1); }
  .certificate-arrow.is-prev { left: 0; }
  .certificate-arrow.is-next { right: 0; }
  .certificate-carousel h2 { font-size: 1.875rem; }
  .certificate-dots button:nth-child(n+5) { display: none; }
  .certificate-preview__content,
  .certificate-preview__content img { max-width: 95vw; max-height: 85vh; }
  .certificate-preview__content button { top: .625rem; right: .625rem; width: 2rem; height: 2rem; }
  .about-timeline { width: 100%; padding: 0 1.25rem; }
  .about-timeline > h2 { margin-bottom: 2rem; font-size: 1.25rem; font-weight: 400; line-height: 1.2; }
  .timeline-carousel { padding: 0; }
  .timeline-viewport { overflow: visible; }
  .timeline-track { display: block; transform: none !important; }
  .timeline-arrow { display: none; }
  .timeline-item { position: relative; width: 100%; padding: 0 0 1.75rem 1.25rem; }
  .timeline-item:not(:last-child)::before { position: absolute; top: .5rem; left: .3125rem; width: .0625rem; height: calc(100% - .5rem); content: ""; background: #d0d3da; }
  .timeline-item::after { position: absolute; z-index: 1; top: .375rem; left: 0; width: .6875rem; height: .6875rem; content: ""; background: #fff; border: .125rem solid #e3550b; border-radius: 50%; }
  .timeline-item__year { margin-bottom: .5rem; font-size: 1.125rem; font-weight: 700; }
  .timeline-item__arrow,
  .timeline-item__node { display: none; }
  .timeline-item__content { display: block; padding-top: 0; }
  .timeline-item__content h3 { font-size: 1rem; }
  .timeline-item__content p { padding-bottom: 3.125rem; font-size: .875rem; text-align: center; }
  .timeline-item__content img { height: 8.75rem; margin: .75rem 0 1.25rem; }
}

@media (max-width: 520px) {
  .about-base { margin-bottom: 1.875rem; }
  .about-base__copy h2 { font-size: 1rem; }
  .about-patents__content { flex-direction: column; }
  .about-patents__image { width: 100%; max-width: none; }
  .patent-metrics__row { gap: 3.125rem; }
  .certificate-carousel__controls { padding: 0 1.5rem; }
  .certificate-viewport { height: 15rem; }
  .certificate-item { flex-basis: 25%; }
  .certificate-item img { height: 8.125rem; }
  .timeline-item { padding: 0 0 1.375rem 1rem; }
  .timeline-item:not(:last-child)::before { left: .1875rem; }
  .timeline-item::after { left: -.125rem; width: .5625rem; height: .5625rem; }
  .timeline-item__year { margin-bottom: .375rem; font-size: 1rem; }
  .timeline-item__content p { font-size: .875rem; }
}

@media (max-width: 450px) {
  .about-banner { padding-top: 2.5rem; }
}

/* 实验室 */
.equipment-section { padding: 5rem 0; background: #fff; }
.equipment-main-title { position: relative; margin: 0 0 3.75rem; color: #333; font-size: 2.25rem; font-weight: 500; text-align: center; }
.equipment-main-title::after { display: block; width: 3.125rem; height: 3px; margin: 1rem auto 0; content: ""; background: #e3540b; transition: width .3s ease; }
.equipment-main-title:hover::after { width: 5rem; }
.equipment-category { width: min(80vw, 1280px); margin: 0 auto 5rem; padding: 1.25rem; opacity: 1; transform: none; }
.reveal-ready .equipment-category { opacity: 0; transform: translateY(60px); }
.equipment-category.is-visible { animation: equipment-rise .8s cubic-bezier(.34, 1.56, .64, 1) both; }
.equipment-category:last-child { margin-bottom: 0; }
.equipment-category > h3 { position: relative; margin: 0 0 1.875rem; padding-left: 1rem; color: #333; font-size: 1.25rem; font-weight: 600; }
.equipment-category > h3::before { position: absolute; top: 50%; left: 0; width: .25rem; height: 1.25rem; content: ""; background: #e3540b; transform: translateY(-50%); }
.equipment-grid { gap: 1.25rem; }
.equipment-grid.type-main-side { display: grid; grid-template-columns: 65fr 35fr; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.equipment-grid.type-main-side .is-main { grid-row: 1 / 3; }
.equipment-grid.type-2x2,
.equipment-grid.type-2col { display: grid; grid-template-columns: repeat(2, 1fr); }
.equipment-grid.type-2x2 .equipment-item { aspect-ratio: 16 / 10; }
.equipment-item { position: relative; overflow: hidden; min-height: 0; border-radius: .5rem; box-shadow: 0 2px 12px rgb(0 0 0 / 6%); transition: transform .4s ease, box-shadow .4s ease; }
.equipment-item:hover { box-shadow: 0 12px 32px rgb(0 0 0 / 12%); transform: translateY(-6px); }
.equipment-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.equipment-item:hover img { transform: scale(1.06); }
.equipment-item figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 1.25rem .875rem .625rem; color: #fff; background: linear-gradient(0deg, rgb(0 0 0 / 70%), transparent); font-size: .8125rem; text-align: center; }
@keyframes equipment-rise {
  0% { opacity: 0; transform: translateY(60px); }
  60% { opacity: 1; transform: translateY(-8px); }
  100% { opacity: 1; transform: none; }
}

/* 服务保障 */
.service-shell { width: min(1300px, calc(100% - 40px)); margin-inline: auto; }
.service-page { letter-spacing: .075rem; }
.service-hero { position: relative; }
.service-hero > img { width: 100%; height: auto; min-height: 250px; object-fit: cover; }
.service-hero__headline { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.service-hero h1 { color: #fff; font-size: 3rem; font-weight: 300; }
.service-title { color: #000; font-size: 2.125rem; font-weight: 700; }
.after-sales { padding: 5.25rem 0 6.25rem; background: #fff; }
.service-intro { margin-top: 2.125rem !important; color: #000; font-size: .875rem; font-weight: 300; line-height: 1.375rem; }
.service-cards { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 2.375rem; background: #f1f3f5; box-shadow: 0 6px 20px rgb(0 0 0 / 8%); }
.service-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; padding: 2.125rem 1.875rem; opacity: 1; transform: none; transition: opacity .6s ease, transform .6s ease; }
.reveal-ready .service-card { opacity: 0; transform: translateY(30px); }
.service-card.is-visible { opacity: 1; transform: none; }
.service-card:nth-child(odd) { border-right: 1px solid #fff; }
.service-card:nth-child(-n+2) { border-bottom: 1px solid #fff; }
.service-card h3 { color: #000; font-size: 1.125rem; font-weight: 400; }
.service-card p { margin-top: 1rem !important; color: #000; font-size: .75rem; font-weight: 300; line-height: 1.25rem; }
.service-card img { flex: 0 0 auto; width: auto; height: 2.875rem; object-fit: contain; }
.cooperation { padding: 5.625rem 0 6.875rem; background: #f5f5f5; }
.cooperation__inner { display: flex; align-items: flex-start; gap: 3.75rem; margin-top: 3.5rem; }
.cooperation__copy { flex: 1; min-width: 0; }
.cooperation-block { padding-bottom: 1.625rem; border-bottom: 1px solid #d3d3d3; }
.cooperation-block + .cooperation-block { margin-top: 1.625rem; }
.cooperation-block h3 { color: #000; font-size: 1rem; font-weight: 500; }
.cooperation-block p { margin-top: .875rem !important; color: #000; font-size: .75rem; font-weight: 300; line-height: 1.25rem; }
.cooperation-block p + p { margin-top: 0 !important; }
.cooperation-block .disclaimer { font-weight: 500; }
.cooperation__image { flex: 0 0 46%; }
.cooperation__image img { width: 100%; box-shadow: 0 6px 20px rgb(0 0 0 / 12%); }

@media (max-width: 1024px) {
  .equipment-grid.type-main-side { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; }
  .equipment-grid.type-main-side .is-main { grid-column: 1 / 3; grid-row: auto; aspect-ratio: 16 / 9; }
  .equipment-grid.type-main-side .is-side { aspect-ratio: 16 / 10; }
  .service-title { font-size: 1.875rem; }
  .cooperation__inner { gap: 2rem; }
}

@media (max-width: 767px) {
  .equipment-section { padding: 2.5rem 0; }
  .equipment-main-title { margin-bottom: 2.5rem; font-size: 1.375rem; }
  .equipment-category { width: calc(100% - 40px); margin-bottom: 3.125rem; padding: 0; }
  .equipment-category > h3 { margin-bottom: 1.25rem; font-size: 1rem; }
  .equipment-grid { gap: .75rem; }
  .equipment-item figcaption { padding: .75rem .625rem .375rem; font-size: .6875rem; }
  .service-hero h1 { font-size: 1.625rem; }
  .service-title { font-size: 1.5rem; }
  .after-sales { padding: 3rem 0 3.5rem; }
  .service-intro { margin-top: 1.25rem !important; }
  .service-cards { grid-template-columns: 1fr; margin-top: 1.75rem; }
  .service-card { padding: 1.625rem 1.25rem; border-right: 0 !important; border-bottom: 1px solid #fff; }
  .service-card:last-child { border-bottom: 0; }
  .cooperation { padding: 3rem 0 3.5rem; }
  .cooperation__inner { flex-direction: column-reverse; gap: 1.625rem; margin-top: 1.875rem; }
  .cooperation__image { flex: none; width: 100%; }
}

@media (max-width: 480px) {
  .equipment-grid.type-main-side,
  .equipment-grid.type-2x2,
  .equipment-grid.type-2col { display: grid; grid-template-columns: 1fr; }
  .equipment-grid.type-main-side .is-main { grid-column: auto; }
  .equipment-item { aspect-ratio: 16 / 10 !important; }
  .service-hero h1 { font-size: 1.125rem; }
  .service-title { font-size: 1.25rem; }
  .service-card img { height: 2.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .innovation-item,
  .equipment-category,
  .service-card { opacity: 1; transform: none; }
}
