/* 营销组件；首页及复用 Factory、Service Map、Process 等组件的页面共同消费。 */

/*
   服务地图装饰层

   路线与粒子仅作视觉补充，可读市场范围由地图自身语义提供。 */

.pattrix-service-particles,
.pattrix-service-particles-expanded { display: none; }

/*
   首屏轮播 */

.pattrix-hero-carousel { --pattrix-hero-fade-duration: 800ms; --pattrix-hero-zoom-duration: 9000ms; --pattrix-hero-zoom-end: 1.060; position: relative; width: 100%; height: clamp(580px, 42vw, 680px); min-height: 580px; max-height: 680px; background: var(--pattrix-color-surface); overflow: hidden; color: var(--pattrix-color-on-inverse); }
.pattrix-hero-slides, .pattrix-hero-slide { position: absolute; inset: 0; }
/* 淡入覆盖：新图叠在旧图上淡入，旧图由 .is-leaving 保持显示到过渡结束再隐藏，visibility 不做过渡。 */
.pattrix-hero-slide { z-index: 0; opacity: 0; visibility: hidden; transition: opacity var(--pattrix-hero-fade-duration) var(--pattrix-ease-out); }
.pattrix-hero-slide.is-active { z-index: 2; opacity: 1; visibility: visible; }
.pattrix-hero-slide.is-leaving { z-index: 1; opacity: 1; visibility: visible; }
.pattrix-hero-slide::after { display: none; }
.pattrix-hero-slide.has-copy::after { content: ""; position: absolute; inset: 0; display: block; background: linear-gradient(90deg, rgba(15, 18, 22, .64) 0%, rgba(15, 18, 22, .36) 42%, transparent 72%); pointer-events: none; }
.pattrix-hero-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--pattrix-hero-focus-x, 50%) var(--pattrix-hero-focus-y, 50%); transform-origin: var(--pattrix-hero-focus-x, 50%) var(--pattrix-hero-focus-y, 50%); }
.pattrix-hero-slide-copy { position: absolute; z-index: 1; bottom: clamp(72px, 9vw, 128px); left: max(24px, var(--pattrix-layout-gutter)); width: min(540px, calc(100% - 48px)); }
.pattrix-hero-slide-copy h2 { max-width: 13ch; margin: 0; color: var(--pattrix-color-on-inverse); font-family: var(--wp--preset--font-family--display); font-size: clamp(42px, 5vw, 76px); font-weight: 500; letter-spacing: -.04em; line-height: .92; }
.pattrix-hero-slide-copy p { max-width: 460px; margin: 22px 0 0; color: var(--pattrix-color-on-inverse); font-size: 16px; line-height: 1.6; }
.pattrix-hero-slide-copy .pattrix-button { margin-top: 28px; }
.pattrix-hero-title-word { display: inline-block; white-space: nowrap; }
.pattrix-hero-title-character { display: inline-block; }
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-image { will-change: transform; animation: pattrix-hero-image-zoom var(--pattrix-hero-zoom-duration) linear both; }
/* 离场图由脚本冻结当前缩放帧，不能重置到动画起点，否则左侧叠层会闪烁。 */
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-leaving .pattrix-hero-slide-image { animation: none; }
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy { will-change: transform, opacity; }
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-title-character { opacity: 0; transform: translateY(30%) rotate(-5deg); animation: pattrix-hero-title-character-in 1200ms cubic-bezier(.77, 0, .175, 1) calc(330ms + (var(--pattrix-hero-character-index) * 30ms)) both; }
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy > p { animation: pattrix-hero-copy-in 1000ms cubic-bezier(.23, 1, .32, 1) 880ms both; }
.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy > .pattrix-button { animation: pattrix-hero-cta-in 700ms cubic-bezier(.23, 1, .32, 1) 1050ms both; }
@keyframes pattrix-hero-image-zoom { from { transform: scale(1); } to { transform: scale(var(--pattrix-hero-zoom-end)); } }
@keyframes pattrix-hero-title-character-in { from { opacity: 0; transform: translateY(30%) rotate(-5deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
@keyframes pattrix-hero-copy-in { from { opacity: 0; transform: translateX(50px); } to { opacity: 1; transform: translateX(0); } }
@keyframes pattrix-hero-cta-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 1240px) { .pattrix-hero-carousel { --pattrix-hero-zoom-end: 1.085; }
}
@media (min-width: 1460px) { .pattrix-hero-carousel { --pattrix-hero-zoom-end: 1.095; }
}
@media (min-width: 768px) and (max-width: 1239px) { .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-title-character { animation-delay: calc(330ms + (var(--pattrix-hero-character-index) * 20ms)); }
}
@media (max-width: 767px) {
	.pattrix-hero-carousel { --pattrix-hero-zoom-end: 1.040; }
	.pattrix-hero-slide-copy h2 { max-width: 100%; font-size: clamp(34px, 10vw, 48px); line-height: 1; letter-spacing: 0; }
	.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy h2 { animation: pattrix-hero-mobile-title-in 700ms cubic-bezier(.23, 1, .32, 1) 330ms both; }
	.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-title-character { opacity: 1; transform: none; animation: none; }
}
@keyframes pattrix-hero-mobile-title-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.pattrix-hero-controls, .pattrix-capability-controls { position: absolute; z-index: 2; right: 0; bottom: 20px; left: 0; display: flex; align-items: center; justify-content: center; gap: 0; }
.pattrix-hero-controls button, .pattrix-capability-controls button { box-sizing: border-box; width: 10px; min-width: 10px; height: 10px; min-height: 10px; margin: 0 4px; padding: 0; background: var(--pattrix-color-on-inverse); border: 0; border-radius: 50%; opacity: .5; cursor: pointer; transition: background-color var(--pattrix-duration-hover) var(--pattrix-ease-standard), opacity var(--pattrix-duration-hover) var(--pattrix-ease-standard); }
.pattrix-hero-controls button[aria-current="true"], .pattrix-capability-controls button[aria-current="true"] { background: var(--pattrix-color-interaction); opacity: 1; }
.pattrix-hero-controls button:focus-visible, .pattrix-capability-controls button:focus-visible { outline: 2px solid var(--pattrix-color-on-inverse); outline-offset: 4px; }

/*
   首页产品与工艺展示 */

.pattrix-home-section { width: min(100% - 48px, var(--pattrix-layout-home)); margin: 0 auto; padding: clamp(80px, 11vw, 160px) 0; }
.pattrix-home-section--categories { padding-bottom: clamp(88px, 10vw, 140px); }
.pattrix-home-section-head { position: relative; max-width: 720px; margin-bottom: 52px; }
.pattrix-home-section-head h2, .pattrix-capability-copy h2, .pattrix-process-intro h2, .pattrix-inquiry-band h2 { margin: 16px 0 18px; color: var(--pattrix-color-text); font-size: clamp(34px, 4.2vw, 62px); line-height: 1.08; letter-spacing: 0; }
.pattrix-home-section-head > p:not(.pattrix-kicker), .pattrix-capability-copy > p:not(.pattrix-kicker), .pattrix-process-intro > p:not(.pattrix-kicker) { max-width: 580px; color: var(--pattrix-color-text-secondary); font-size: 17px; line-height: 1.6; }
.pattrix-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--pattrix-color-border); border-left: 1px solid var(--pattrix-color-border); }
.pattrix-category-grid a { min-height: 158px; padding: 24px; display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 18px; color: var(--pattrix-color-text); border-right: 1px solid var(--pattrix-color-border); border-bottom: 1px solid var(--pattrix-color-border); text-decoration: none; transition: color var(--pattrix-duration-hover) var(--pattrix-ease-standard), background-color var(--pattrix-duration-hover) var(--pattrix-ease-standard); }
.pattrix-category-grid a .pattrix-ui-icon { grid-column: 3; justify-self: end; --pattrix-icon-size: 20px; }
.pattrix-category-grid strong { font-size: clamp(18px, 2vw, 26px); font-weight: 500; }
.pattrix-category-grid a:hover { color: var(--pattrix-color-on-inverse); background: var(--pattrix-color-interaction); text-decoration: none; }
.pattrix-category-grid a:hover span:first-child { color: color-mix(in srgb, var(--pattrix-color-on-inverse) 72%, transparent); }

.pattrix-home-section--products { background: var(--pattrix-color-surface); width: 100%; padding-right: max(var(--pattrix-layout-gutter), calc((100% - var(--pattrix-layout-home)) / 2)); padding-left: max(var(--pattrix-layout-gutter), calc((100% - var(--pattrix-layout-home)) / 2)); }
.pattrix-product-grid--home { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 38px 20px; }


.pattrix-new-products { padding: clamp(96px, 8vw, 120px) max(var(--pattrix-layout-gutter), calc((100% - var(--pattrix-layout-wide)) / 2)) 96px; background: var(--pattrix-color-surface); }
.pattrix-new-products-inner { width: min(100%, 1671px); margin: 0 auto; }
.pattrix-new-products-heading { position: relative; display: grid; place-items: center; }
.pattrix-new-products-chair { position: absolute; top: 50%; z-index: 0; display: block; height: clamp(130px, 15vw, 220px); pointer-events: none; transform: translateY(-50%); }
.pattrix-new-products-chair img { display: block; width: auto; height: 100%; }
.pattrix-new-products-chair--left { left: clamp(0px, 4vw, 64px); }
.pattrix-new-products-chair--right { right: clamp(0px, 4vw, 64px); }
.pattrix-new-products h2 { position: relative; z-index: 1; margin: 0; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: clamp(30px, 3vw, 48px); font-weight: 500; line-height: 1.15; text-align: center; text-transform: uppercase; }
.pattrix-new-products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--pattrix-space-5); margin-top: clamp(56px, 8vw, 96px); }
/* 每个自动网格行由内容最多的新品卡片决定高度，同行卡片随行高拉伸。 */
.pattrix-new-product { align-self: stretch; display: flex; flex-direction: column; min-width: 0; height: 100%; color: var(--pattrix-color-text); text-decoration: none; }
.pattrix-new-product-media { display: block; aspect-ratio: var(--pattrix-media-frame-ratio, 4 / 5); overflow: hidden; }
.pattrix-new-product-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-new-product-name { display: flex; align-items: center; min-height: 26px; margin-top: var(--pattrix-space-3); color: inherit; font-family: var(--wp--preset--font-family--sans); font-size: 20px; font-weight: 400; line-height: 26px; margin-bottom: 0; }
.pattrix-new-product-name a { color: inherit; font: inherit; text-decoration: none; }
.pattrix-new-product-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 7px; color: var(--pattrix-color-text-secondary); font-size: 12px; line-height: 1.4; }
.pattrix-new-product-meta span + span { padding-left: 12px; border-left: 1px solid var(--pattrix-color-border-strong); }
.pattrix-new-product-specs { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 16px; padding-bottom: 5px; color: var(--pattrix-color-text); border-bottom: 1px solid var(--pattrix-color-border-strong); font-size: 11px; font-weight: 600; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
.pattrix-new-product-specs .pattrix-ui-icon { --pattrix-icon-size: 16px; }
.pattrix-new-product:hover { color: var(--pattrix-color-interaction); text-decoration: none; }
.pattrix-new-product:hover .pattrix-new-product-media img { transform: scale(1.04); }
.pattrix-new-product:hover .pattrix-new-product-specs { color: var(--pattrix-color-interaction); border-color: var(--pattrix-color-interaction); }
.pattrix-new-products-grid.pattrix-reveal-ready .pattrix-new-product,
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-media,
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-copy { opacity: 0; transition: opacity var(--pattrix-duration-base) var(--pattrix-ease-standard), transform var(--pattrix-duration-base) var(--pattrix-ease-standard); transition-delay: var(--pattrix-reveal-delay, 0ms); }
/* 新品卡片只渐显，不逐张位移，避免同一行在错峰入场时看起来不对齐。 */
.pattrix-new-products-grid.pattrix-reveal-ready .pattrix-new-product { transform: none; }
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-media { transform: translateX(-16px); }
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-copy { transform: translateY(12px); }
.pattrix-new-products-grid.pattrix-reveal-ready .pattrix-new-product.is-visible,
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-media.is-visible,
.pattrix-factory-intro-inner.pattrix-reveal-ready .pattrix-factory-intro-copy.is-visible,
.pattrix-process-steps.pattrix-reveal-ready .pattrix-process-step.is-visible { opacity: 1; transform: none; }

.pattrix-factory-intro { padding: var(--wp--preset--spacing--90) 0; background: var(--pattrix-color-bg); }
.pattrix-factory-intro-inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 0; align-items: stretch; width: min(100% - (2 * var(--pattrix-layout-gutter)), var(--pattrix-layout-wide)); margin: 0 auto; }
/* 网格行高由文字列拉伸决定，aspect-ratio 会把该高度转移成 1.5 倍宽度溢出列轨道：媒体盒必须显式定宽。 */
.pattrix-factory-intro-media { width: 100%; aspect-ratio: 3 / 2; overflow: hidden; background: var(--pattrix-color-bg); }
.pattrix-factory-intro-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform var(--pattrix-duration-base) var(--pattrix-ease-standard); }
.pattrix-factory-intro-media:hover img { transform: scale(1.015); }
.pattrix-factory-intro-copy { align-self: center; padding: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--90); color: var(--pattrix-color-text); }
.pattrix-factory-intro-eyebrow { margin-bottom: var(--wp--preset--spacing--30); color: var(--pattrix-color-interaction); }
.pattrix-factory-intro-copy h2 { max-width: 520px; margin: 0 0 var(--wp--preset--spacing--30); color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--section-title); font-weight: 500; line-height: 1.12; letter-spacing: 0; }
.pattrix-factory-intro-company { margin: 0 0 var(--wp--preset--spacing--40); color: var(--pattrix-color-text); font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: .04em; line-height: 1.45; text-transform: uppercase; }
.pattrix-factory-intro-lead { max-width: 620px; margin: 0; color: var(--pattrix-color-text-secondary); font-size: var(--wp--preset--font-size--body-large); line-height: 1.55; }
.pattrix-factory-intro-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: var(--wp--preset--spacing--70) 0 var(--wp--preset--spacing--60); padding: var(--wp--preset--spacing--40) 0 0; border-top: 1px solid var(--pattrix-color-border); list-style: none; }
.pattrix-factory-intro-proof li { position: relative; min-width: 0; padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) 0 0; color: var(--pattrix-color-text); }
.pattrix-factory-intro-proof li::before { position: absolute; top: 0; left: 0; width: var(--wp--preset--spacing--50); height: 2px; background: var(--pattrix-color-interaction); content: ""; }
.pattrix-factory-intro-proof li + li { padding-left: var(--wp--preset--spacing--30); }
.pattrix-factory-intro-proof li + li::before { left: var(--wp--preset--spacing--30); }
.pattrix-factory-intro-proof strong { display: block; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-4); font-weight: 500; line-height: 1.15; }
.pattrix-factory-intro-proof li:last-child strong { font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pattrix-factory-intro-proof span { display: block; margin-top: var(--wp--preset--spacing--20); color: var(--pattrix-color-text-secondary); font-size: var(--wp--preset--font-size--caption); line-height: 1.45; }
.pattrix-factory-intro-link { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--30); margin-top: 0; color: var(--pattrix-color-interaction); font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; transition: color var(--pattrix-duration-fast) var(--pattrix-ease-standard), transform var(--pattrix-duration-fast) var(--pattrix-ease-standard); }
.pattrix-factory-intro-link:hover { color: var(--pattrix-color-text); text-decoration: none; }
.pattrix-factory-intro-link span { display: inline-block; transition: transform var(--pattrix-duration-fast) var(--pattrix-ease-standard); }
.pattrix-factory-intro-link:hover span { transform: translateX(var(--wp--preset--spacing--20)); }
.pattrix-factory-intro-link:active { transform: scale(.98); }

.pattrix-capability-band { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); min-height: 640px; background: var(--pattrix-color-surface-strong); color: var(--pattrix-color-text); }
.pattrix-capability-copy { align-self: center; max-width: 660px; padding: clamp(56px, 7vw, 112px) clamp(32px, 6vw, 96px); }
.pattrix-capability-copy h2 { max-width: 520px; margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--50); color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--section-title); font-weight: 500; line-height: 1.15; }
.pattrix-capability-copy > p:not(.pattrix-kicker) { max-width: 560px; color: var(--pattrix-color-text-secondary); font-size: var(--wp--preset--font-size--body); line-height: 1.6; }
.pattrix-capability-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30); margin: var(--wp--preset--spacing--70) calc(-1 * var(--wp--preset--spacing--20)) var(--wp--preset--spacing--50); }
.pattrix-capability-fact { display: flex; align-items: center; gap: 0; min-height: 112px; box-sizing: border-box; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); background: var(--pattrix-color-bg); border: 1px solid var(--pattrix-color-border); }
.pattrix-capability-fact:nth-child(even) { padding-left: var(--wp--preset--spacing--30); border-left: 1px solid var(--pattrix-color-border); }
.pattrix-capability-fact-icon { display: flex; flex: 0 0 var(--wp--preset--spacing--60); width: var(--wp--preset--spacing--60); height: var(--wp--preset--spacing--60); align-items: center; justify-content: center; color: var(--pattrix-color-interaction); }
.pattrix-capability-fact-icon .pattrix-ui-icon { --pattrix-icon-size: var(--wp--preset--spacing--60); }
.pattrix-capability-fact-copy { display: flex; min-width: 0; min-height: var(--wp--preset--spacing--60); flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.pattrix-capability-fact strong { display: block; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--section-title); font-weight: 700; line-height: 1; }
.pattrix-capability-fact-copy > span { display: block; margin-top: var(--wp--preset--spacing--20); color: var(--pattrix-color-text-secondary); font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.pattrix-capability-copy .pattrix-text-link { color: var(--pattrix-color-text); }
.pattrix-capability-carousel { position: relative; min-height: 640px; overflow: hidden; background: var(--pattrix-color-inverse); }
.pattrix-capability-controls { z-index: 3; }
.pattrix-capability-slides, .pattrix-capability-slide { position: absolute; inset: 0; }
.pattrix-capability-slide { z-index: 0; opacity: 0; visibility: hidden; transition: opacity var(--pattrix-duration-fade) var(--pattrix-ease-out); }
.pattrix-capability-slide.is-active { z-index: 2; opacity: 1; visibility: visible; }
.pattrix-capability-slide.is-leaving { z-index: 1; opacity: 1; visibility: visible; }
.pattrix-capability-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
/*
   服务能力与世界地图

   以现有低饱和底图为底，路线与节点用纯矢量与样式实现。 */

.pattrix-service-section { padding: clamp(48px, 5vw, 72px) 0 clamp(56px, 6vw, 80px); color: var(--pattrix-color-text); background: var(--pattrix-color-bg); }
.pattrix-service-inner { width: min(calc(100% - (2 * var(--pattrix-layout-gutter))), var(--pattrix-layout-wide)); margin: 0 auto; }
.pattrix-service-heading { display: grid; grid-template-columns: minmax(0, .9fr) minmax(260px, .62fr); column-gap: clamp(28px, 6vw, 96px); align-items: end; margin-bottom: clamp(24px, 3vw, 40px); }
.pattrix-service-heading h2 { max-width: 620px; margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(34px, 4vw, 58px); font-weight: 500; line-height: 1; }
.pattrix-service-heading p:last-child { max-width: 390px; margin: 0 0 1px; color: var(--pattrix-color-text-secondary); font-size: var(--wp--preset--font-size--body); line-height: 1.45; }
.pattrix-service-map-stage { display: grid; gap: clamp(12px, 1.5vw, 20px); }
.pattrix-service-map { position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 950 / 620; min-height: 420px; background: #dededc; border: 1px solid rgba(29, 29, 31, .12); }
.pattrix-service-map-label { position: absolute; top: 22px; left: 24px; z-index: 4; color: rgba(29, 29, 31, .66); font-family: var(--wp--preset--font-family--mono); font-size: 10px; font-weight: 600; letter-spacing: .13em; }
.pattrix-service-map-trigger { position: absolute; top: 33.333%; left: 0; z-index: 4; width: 1px; height: 1px; pointer-events: none; }
.pattrix-service-map::after { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg, rgba(240,240,238,.18), transparent 24%, transparent 78%, rgba(240,240,238,.14)); pointer-events: none; }
.pattrix-service-map > img, .pattrix-service-map > svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.pattrix-service-map > img { z-index: 0; object-fit: fill; opacity: .86; filter: grayscale(1) contrast(.86); }
.pattrix-service-map > svg { z-index: 2; overflow: visible; }
.pattrix-service-routes { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.pattrix-service-routes, .pattrix-service-nodes, .pattrix-service-labels, .pattrix-service-particles { display: none; }
.pattrix-service-routes-expanded { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.pattrix-service-route { fill: none; stroke: var(--pattrix-service-route-color, rgba(118, 73, 59, .42)); stroke-width: 2; }
.pattrix-service-route-highlight { fill: none; stroke: var(--pattrix-service-route-highlight, #b86646); stroke-width: 2.4; stroke-dasharray: .14 .86; stroke-dashoffset: 0; opacity: .92; animation: pattrix-service-stroke 5.8s linear infinite; }
.pattrix-service-china { fill: var(--pattrix-service-origin, #d86f46); opacity: .92; }
.pattrix-service-node-ring { fill: none; stroke: var(--pattrix-service-node, #c36f4d); stroke-width: 1.8; opacity: .85; transform-box: fill-box; transform-origin: center; animation: pattrix-service-ripple 2.8s ease-out infinite; }
.pattrix-service-node-core { fill: var(--pattrix-service-node, #c36f4d); stroke: #fff; stroke-width: 1.4; }
.pattrix-service-node--origin .pattrix-service-node-ring { stroke: var(--pattrix-service-origin, #d86f46); stroke-width: 2.4; animation-duration: 2.4s; }
.pattrix-service-node--origin .pattrix-service-node-core { fill: var(--pattrix-service-origin, #d86f46); stroke-width: 1.8; }
.pattrix-service-node:nth-child(3) .pattrix-service-node-ring { animation-delay: -.6s; }
.pattrix-service-node:nth-child(4) .pattrix-service-node-ring { animation-delay: -1.2s; }
.pattrix-service-node:nth-child(5) .pattrix-service-node-ring { animation-delay: -1.8s; }
.pattrix-service-node:nth-child(6) .pattrix-service-node-ring { animation-delay: -.9s; }
.pattrix-service-node:nth-child(7) .pattrix-service-node-ring { animation-delay: -1.5s; }
.pattrix-service-node:nth-child(8) .pattrix-service-node-ring { animation-delay: -2.1s; }
.pattrix-service-labels text { fill: #4b4b4b; font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; paint-order: stroke; stroke: rgba(240,240,238,.86); stroke-width: 4px; stroke-linejoin: round; }
.pattrix-service-particles circle { fill: #fff; stroke: var(--pattrix-service-origin, #d86f46); stroke-width: 2; filter: drop-shadow(0 0 5px rgba(216,111,70,.8)); }
.pattrix-service-nodes-expanded .pattrix-service-node-ring, .pattrix-service-nodes-expanded .pattrix-service-node-core { vector-effect: non-scaling-stroke; }
.pattrix-service-labels-expanded text { fill: #4b4b4b; font-family: var(--wp--preset--font-family--mono); font-size: 11px; font-weight: 600; letter-spacing: .035em; paint-order: stroke; stroke: rgba(240,240,238,.86); stroke-width: 4px; stroke-linejoin: round; }
.pattrix-service-labels-expanded { display: block; }
.pattrix-service-particles-expanded circle { fill: #fff; stroke: #d86f46; stroke-width: 2; filter: drop-shadow(0 0 5px rgba(216,111,70,.8)); }
.pattrix-service-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pattrix-service-card { min-width: 0; min-height: 0; box-sizing: border-box; padding: 18px 16px 20px; background: rgba(240, 240, 238, .94); border: 1px solid rgba(29, 29, 31, .18); opacity: 1; transform: none; transition: border-color var(--pattrix-duration-base) var(--pattrix-ease-standard), background-color var(--pattrix-duration-base) var(--pattrix-ease-standard), opacity var(--pattrix-duration-base) var(--pattrix-ease-out), transform var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-service-card-icon { display: grid; width: 38px; height: 38px; place-items: center; color: var(--pattrix-color-interaction); background: var(--pattrix-color-surface); }
.pattrix-service-card-icon .pattrix-ui-icon { --pattrix-icon-size: 23px; }
.pattrix-service-card-label { display: block; margin-top: 14px; color: var(--pattrix-color-interaction); font-family: var(--wp--preset--font-family--mono); font-size: 9px; font-weight: 600; letter-spacing: .1em; line-height: 1.3; }
.pattrix-service-card h3 { margin: 7px 0 8px; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: clamp(18px, 1.35vw, 23px); font-weight: 500; line-height: 1.08; }
.pattrix-service-card p { margin: 0; color: var(--pattrix-color-text-secondary); font-size: 12px; line-height: 1.4; }
.pattrix-service-cards.pattrix-reveal-ready .pattrix-service-card { opacity: 0; transform: translateY(32px); transition-delay: var(--pattrix-reveal-delay, 0ms); }
.pattrix-service-cards.pattrix-reveal-ready .pattrix-service-card.is-visible { opacity: 1; transform: none; }
@media (hover: hover) and (pointer: fine) {
	.pattrix-service-card:hover { background: var(--pattrix-color-surface); border-color: var(--pattrix-color-interaction); }
}
@keyframes pattrix-service-stroke { 0% { stroke-dashoffset: 1; } 100% { stroke-dashoffset: 0; } }
@keyframes pattrix-service-ripple { 0% { opacity: .8; transform: scale(.75); } 68%, 100% { opacity: 0; transform: scale(2.65); } }
@media (prefers-reduced-motion: reduce) {
	.pattrix-service-route-highlight { stroke-dasharray: none; animation: none; opacity: .76; }
	.pattrix-service-node-ring { animation: none; opacity: .65; }
	.pattrix-service-particles, .pattrix-service-particles-expanded { display: none; }
	.pattrix-service-cards.pattrix-reveal-ready .pattrix-service-card { opacity: 1; transform: none; transition: none; }
	.pattrix-process-steps.pattrix-reveal-ready, .pattrix-process-steps.pattrix-reveal-ready .pattrix-process-step { transition: none; }
	.pattrix-faq-answer, .pattrix-faq-answer p, .pattrix-faq-toggle::before, .pattrix-faq-toggle::after { transition: none; }
}

/*
   工艺承诺带与常见问题

   折叠项由脚本添加门控类，脚本未执行时内容必须默认可见。 */

.pattrix-process-band { position: relative; overflow: hidden; color: var(--pattrix-color-text); background: var(--pattrix-color-surface-strong); }
.pattrix-process-band::before { content: ""; position: absolute; inset: 0; opacity: .72; background-image: linear-gradient(90deg, var(--pattrix-color-border) 1px, transparent 1px), linear-gradient(var(--pattrix-color-border) 1px, transparent 1px); background-size: 84px 84px; pointer-events: none; }
.pattrix-process-inner { position: relative; display: grid; grid-template-columns: minmax(220px, .8fr) minmax(180px, .42fr) minmax(0, 1.8fr); gap: clamp(32px, 5vw, 80px); width: min(calc(100% - 48px), var(--pattrix-layout-home)); margin: 0 auto; padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 96px); }
.pattrix-process-intro { max-width: 390px; }
.pattrix-process-intro .pattrix-kicker { color: var(--pattrix-color-interaction); }
.pattrix-process-kicker { display: flex; align-items: center; gap: 14px; }
.pattrix-process-kicker span:last-child { display: inline-flex; align-items: center; gap: 14px; color: var(--pattrix-color-text-muted); }
.pattrix-process-kicker span:last-child::before { width: clamp(30px, 4vw, 72px); height: 1px; background: var(--pattrix-color-border-strong); content: ""; }
.pattrix-process-intro h2 { margin: 18px 0 24px; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: clamp(38px, 4.6vw, 68px); font-weight: 500; line-height: .98; letter-spacing: -.03em; }
.pattrix-process-intro p:not(.pattrix-kicker) { max-width: 280px; margin: 0; color: var(--pattrix-color-text-secondary); font-size: 15px; line-height: 1.65; }
.pattrix-process-link { display: inline-flex; align-items: center; gap: 14px; margin-top: 34px; padding-bottom: 8px; color: var(--pattrix-color-text); border-bottom: 1px solid var(--pattrix-color-border-strong); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; transition: color var(--pattrix-duration-hover) var(--pattrix-ease-out), border-color var(--pattrix-duration-hover) var(--pattrix-ease-out), transform var(--pattrix-duration-hover) var(--pattrix-ease-out); }
.pattrix-process-link span { font-size: 18px; font-weight: 300; line-height: 1; }
@media (hover: hover) and (pointer: fine) {
	.pattrix-process-link:hover { color: var(--pattrix-color-interaction); border-color: var(--pattrix-color-interaction); transform: translateX(4px); text-decoration: none; }
}
.pattrix-process-promise { align-self: start; display: flex; flex-direction: column; padding-top: 2px; }
.pattrix-process-promise-label, .pattrix-process-promise-unit, .pattrix-process-promise-condition { color: var(--pattrix-color-text-muted); font-family: var(--wp--preset--font-family--mono); font-size: 10px; letter-spacing: .13em; }
.pattrix-process-promise strong { margin: 20px 0 0 -6px; color: var(--pattrix-color-interaction); font-family: var(--wp--preset--font-family--display); font-size: clamp(90px, 11vw, 164px); font-weight: 400; line-height: .78; letter-spacing: -.08em; }
.pattrix-process-promise-unit { margin-top: 18px; color: var(--pattrix-color-text); font-size: 13px; }
.pattrix-process-promise-condition { display: block; max-width: 164px; margin-top: 14px; font-size: 8px; line-height: 1.55; }
.pattrix-process-promise-rule { width: 100%; max-width: 164px; height: 1px; margin-top: 28px; background: var(--pattrix-color-interaction); transform-origin: left center; }
/* 轨道进入视口后按阶段推进：首卡满幅，已完成步骤收缩到三分之一。 */
.pattrix-process-steps { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 34px 0 0; list-style: none; }
.pattrix-process-steps.pattrix-reveal-ready { grid-template-columns: minmax(0, 1fr) minmax(0, 0fr) minmax(0, 0fr); transition: grid-template-columns var(--pattrix-duration-fade) var(--pattrix-ease-in-out); }
.pattrix-process-steps.pattrix-reveal-ready.is-stage-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 0fr); }
.pattrix-process-steps.pattrix-reveal-ready.is-stage-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pattrix-process-steps::before { position: absolute; top: 0; right: 0; left: 0; height: 1px; content: ""; transform-origin: left center; }
.pattrix-process-steps::before { background: var(--pattrix-color-border-strong); }
.pattrix-process-step { position: relative; min-width: 0; min-height: 246px; overflow: hidden; padding: clamp(24px, 3vw, 42px) clamp(18px, 2.5vw, 36px) 26px; border-left: 1px solid var(--pattrix-color-border); opacity: 1; transform: translateX(24px); transition: background-color var(--pattrix-duration-hover) var(--pattrix-ease-standard), opacity var(--pattrix-duration-enter) var(--pattrix-ease-out), transform var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-process-steps.pattrix-reveal-ready .pattrix-process-step { opacity: 0; }
.pattrix-process-steps.pattrix-reveal-ready .pattrix-process-step.is-visible { opacity: 1; transform: none; }
.pattrix-process-step:first-child { border-left: 0; }
.pattrix-process-step-top { display: flex; align-items: center; min-height: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--pattrix-color-border); }
.pattrix-process-step-code { color: var(--pattrix-color-text-muted); font-family: var(--wp--preset--font-family--mono); font-size: 9px; font-weight: 600; letter-spacing: .12em; }
.pattrix-process-step h3 { margin: 26px 0 13px; color: var(--pattrix-color-text); font-size: 20px; font-weight: 500; line-height: 1.15; }
.pattrix-process-step p { margin: 0; color: var(--pattrix-color-text-secondary); font-size: 13px; line-height: 1.7; }
.pattrix-process-step p strong { color: var(--pattrix-color-interaction); font-weight: 600; }
@media (hover: hover) and (pointer: fine) {
	.pattrix-process-step:hover { background: var(--pattrix-color-surface); }
	.pattrix-process-step:hover .pattrix-process-step-code { color: var(--pattrix-color-interaction); }
}
.pattrix-faq-section { color: var(--pattrix-color-text); background: var(--pattrix-color-surface); border-top: 1px solid var(--pattrix-color-border-strong); border-bottom: 1px solid var(--pattrix-color-border-strong); }
.pattrix-faq-inner { width: min(calc(100% - 48px), var(--pattrix-layout-home)); margin: 0 auto; padding: clamp(40px, 4vw, 56px) 0 clamp(44px, 4.5vw, 64px); }
.pattrix-faq-masthead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .58fr); align-items: stretch; gap: clamp(28px, 6vw, 96px); padding-bottom: 0; }
.pattrix-faq-heading { max-width: 620px; }
.pattrix-faq-heading h2 { margin: 14px 0 18px; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: clamp(36px, 3.6vw, 56px); font-weight: 500; line-height: 1; letter-spacing: -.03em; }
.pattrix-faq-side { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 4px 0 0; }
.pattrix-faq-lede { max-width: 360px; margin: 0; color: var(--pattrix-color-text-secondary); font-size: 15px; line-height: 1.6; }
.pattrix-faq-meta { display: flex; flex-direction: column; gap: 8px; min-width: 160px; color: var(--pattrix-color-text-muted); font-family: var(--wp--preset--font-family--mono); font-size: 14px; letter-spacing: .11em; line-height: 1.4; }
.pattrix-faq-meta span:first-child { color: var(--pattrix-color-interaction); }
.pattrix-faq-list { margin-top: clamp(20px, 2.5vw, 32px); border-top: 1px solid var(--pattrix-color-border-strong); }
.pattrix-faq-item { border-bottom: 1px solid var(--pattrix-color-border); }
.pattrix-faq-item summary { display: grid; grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr) 20px; grid-template-areas: "topic question toggle"; align-items: center; gap: clamp(18px, 3vw, 48px); min-height: 56px; padding: 0; color: var(--pattrix-color-text); cursor: pointer; list-style: none; }
.pattrix-faq-item summary::-webkit-details-marker { display: none; }
.pattrix-faq-item summary:focus-visible { outline: 2px solid var(--pattrix-color-focus); outline-offset: 5px; }
.pattrix-faq-topic { grid-area: topic; color: var(--pattrix-color-text-muted); font-family: var(--wp--preset--font-family--mono); font-size: 14px; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; }
.pattrix-faq-question { grid-area: question; max-width: 620px; font-family: var(--wp--preset--font-family--display); font-size: clamp(17px, 1.65vw, 24px); font-weight: 500; line-height: 1.15; }
.pattrix-faq-toggle { position: relative; grid-area: toggle; display: block; width: 18px; height: 18px; color: var(--pattrix-color-text); }
.pattrix-faq-toggle::before, .pattrix-faq-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform var(--pattrix-duration-fast) var(--pattrix-ease-out); }
.pattrix-faq-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.pattrix-faq-item[open] .pattrix-faq-toggle::after { transform: translate(-50%, -50%) rotate(0); }
.pattrix-faq-item[open] summary { color: var(--pattrix-color-interaction); }
.pattrix-faq-answer { display: grid; grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr) 20px; grid-template-rows: 0fr; column-gap: clamp(18px, 3vw, 48px); padding: 0; transition: grid-template-rows var(--pattrix-duration-enter) var(--pattrix-ease-out), padding-bottom var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-faq-answer p { grid-column: 2; min-height: 0; max-width: 620px; margin: 0; overflow: hidden; color: var(--pattrix-color-text-secondary); font-size: 15px; line-height: 1.7; opacity: 0; transform: translateY(-8px); transition: opacity var(--pattrix-duration-enter) var(--pattrix-ease-out), transform var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-faq-answer p strong { color: var(--pattrix-color-text); font-weight: 600; }
.pattrix-faq-item[open] .pattrix-faq-answer { grid-template-rows: 1fr; padding-bottom: 20px; }
.pattrix-faq-item[open] .pattrix-faq-answer p { opacity: 1; transform: none; }
.pattrix-inquiry-band { color: var(--pattrix-color-on-inverse); background: var(--pattrix-color-inverse-mid); border-bottom: 1px solid var(--pattrix-color-inverse-border); }

.pattrix-inquiry-inner { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); align-items: end; gap: clamp(40px, 7vw, 112px); width: min(calc(100% - 48px), var(--pattrix-layout-home)); margin: 0 auto; padding: clamp(56px, 6vw, 84px) 0 clamp(64px, 7vw, 96px); }
.pattrix-inquiry-copy { max-width: 760px; }
.pattrix-inquiry-band .pattrix-kicker, .pattrix-inquiry-action-label { color: var(--pattrix-color-inverse-muted); }
.pattrix-inquiry-band h2 { max-width: 760px; margin: 18px 0 24px; color: var(--pattrix-color-on-inverse); font-family: var(--wp--preset--font-family--display); font-size: clamp(44px, 6.2vw, 86px); font-weight: 500; line-height: .95; letter-spacing: -.04em; }
.pattrix-inquiry-notes { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 38px; padding-top: 18px; border-top: 1px solid var(--pattrix-color-inverse-border); }
.pattrix-inquiry-notes span { color: var(--pattrix-color-inverse-muted); font-family: var(--wp--preset--font-family--mono); font-size: 10px; letter-spacing: .1em; }
.pattrix-inquiry-action { display: flex; flex-direction: column; align-items: flex-start; padding-top: 20px; border-top: 1px solid var(--pattrix-color-inverse-border); }
.pattrix-inquiry-action-label { font-family: var(--wp--preset--font-family--mono); font-size: 10px; letter-spacing: .13em; }
.pattrix-inquiry-action .pattrix-button { margin-top: 28px; }
.pattrix-inquiry-action > p { margin: 18px 0 0; color: var(--pattrix-color-inverse-faint); font-size: 12px; line-height: 1.5; }
.pattrix-inquiry-band .pattrix-kicker { color: var(--pattrix-color-inverse-muted); }

@media (max-width: 991px) {
	.pattrix-hero-carousel { height: clamp(580px, 42vw, 680px); min-height: 580px; }
	.pattrix-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pattrix-product-grid--home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pattrix-new-products { padding: 35px 20px 20px; }
	.pattrix-new-products-chair { height: 84px; }
	.pattrix-new-products-chair--left { left: 0; }
	.pattrix-new-products-chair--right { right: 0; }
	.pattrix-new-products h2 { font-size: 28px; line-height: 34px; }
	.pattrix-new-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; margin-top: 25px; }
	.pattrix-new-product-name { min-height: 20px; margin-top: 12px; font-size: 14px; line-height: 20px; }
	.pattrix-factory-intro { padding: var(--wp--preset--spacing--70) 0; }
	.pattrix-factory-intro-inner, .pattrix-capability-band { grid-template-columns: 1fr; }
	.pattrix-factory-intro-inner { gap: var(--wp--preset--spacing--60); }
	.pattrix-factory-intro-media { max-width: none; }
		.pattrix-factory-intro-copy { padding-left: 0; }
		.pattrix-capability-carousel { min-height: 520px; }
		.pattrix-service-heading { grid-template-columns: 1fr; gap: 22px; }
		.pattrix-service-heading p:last-child { max-width: 560px; }
	.pattrix-service-map { min-height: 360px; }
	.pattrix-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.pattrix-process-inner { grid-template-columns: minmax(220px, .8fr) minmax(160px, .55fr); gap: 32px; }
	.pattrix-process-steps { grid-column: 1 / -1; }
	.pattrix-faq-inner { gap: 40px; }
	.pattrix-inquiry-inner { gap: 48px; }
}

@media (max-width: 640px) {
	/* 文案、说明与 CTA 的自然高度大于 4:3 画幅时，保留安全空间避免顶到吸顶导航。 */
	.pattrix-hero-carousel { aspect-ratio: auto; height: auto; min-height: 500px; }
	.pattrix-hero-controls, .pattrix-capability-controls { right: 0; bottom: 18px; left: 0; }
	.pattrix-home-section { width: min(100% - 32px, var(--pattrix-layout-home)); padding-top: 80px; padding-bottom: 80px; }
	.pattrix-home-section--products { padding-right: 16px; padding-left: 16px; }
	.pattrix-category-grid { grid-template-columns: 1fr; }
	.pattrix-category-grid a { min-height: 116px; }
	.pattrix-product-grid--home { gap: 28px 10px; }
	.pattrix-factory-intro { padding: var(--wp--preset--spacing--40) 0; }
	.pattrix-factory-intro-inner { gap: var(--wp--preset--spacing--60); width: min(100% - (2 * var(--wp--preset--spacing--40)), var(--pattrix-layout-wide)); }
	.pattrix-factory-intro-copy { padding-top: 0; }
	.pattrix-factory-intro-copy h2 { margin-bottom: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--h-4); line-height: 1.15; }
	.pattrix-factory-intro-company { margin-bottom: var(--wp--preset--spacing--30); }
	.pattrix-factory-intro-lead { font-size: var(--wp--preset--font-size--body); }
	.pattrix-factory-intro-proof { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--60); margin-bottom: var(--wp--preset--spacing--50); padding-top: var(--wp--preset--spacing--30); }
	.pattrix-factory-intro-proof li { padding-right: 0; }
	.pattrix-factory-intro-proof li + li { padding-top: var(--wp--preset--spacing--30); padding-left: 0; border-top: 1px solid var(--pattrix-color-border); }
	.pattrix-factory-intro-proof li + li::before { left: 0; }
	.pattrix-factory-intro-proof span { margin-top: var(--wp--preset--spacing--10); }
	.pattrix-capability-copy { padding: 64px 24px 76px; }
	.pattrix-capability-list { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--20); }
	.pattrix-capability-fact, .pattrix-capability-fact:nth-child(even) { min-height: 0; padding: var(--wp--preset--spacing--30); border-left: 1px solid var(--pattrix-color-border); }
	.pattrix-capability-fact strong { font-size: var(--wp--preset--font-size--h-4); }
		.pattrix-capability-carousel { min-height: 0; aspect-ratio: 4 / 3; }
		.pattrix-service-section { padding-top: 56px; padding-bottom: 64px; }
		.pattrix-service-inner { width: min(100% - 32px, 560px); }
		.pattrix-service-heading { margin-bottom: 32px; }
		.pattrix-service-heading h2 { font-size: clamp(32px, 9vw, 48px); }
		.pattrix-service-heading p:last-child { font-size: var(--wp--preset--font-size--body); }
		.pattrix-service-map { width: 100%; max-width: 100%; min-height: 0; aspect-ratio: 950 / 620; }
		.pattrix-service-labels, .pattrix-service-labels-expanded { display: none; }
		.pattrix-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
		.pattrix-service-card { min-height: 0; padding: 14px; }
		.pattrix-service-card-label { margin-top: 10px; font-size: 8px; }
		.pattrix-service-card h3 { font-size: 18px; }
		.pattrix-service-card p { font-size: 11px; }
		.pattrix-process-inner { display: block; width: min(100% - 32px, 560px); padding-top: 56px; padding-bottom: 68px; }
	.pattrix-process-intro { max-width: 100%; }
	.pattrix-process-intro h2 { font-size: clamp(42px, 12vw, 62px); }
	.pattrix-process-promise { margin-top: 68px; padding: 22px 0 0; border-top: 1px solid var(--pattrix-color-border-strong); }
	.pattrix-process-promise strong { margin-top: 17px; font-size: clamp(100px, 31vw, 170px); }
	.pattrix-process-promise-rule { max-width: 100%; }
	.pattrix-process-kicker { gap: 10px; }
	.pattrix-process-kicker span:last-child { gap: 10px; }
	.pattrix-process-kicker span:last-child::before { width: 28px; }
	.pattrix-process-steps { grid-template-columns: 1fr; margin-top: 56px; padding: 0 0 0 28px; }
	.pattrix-process-steps::before { top: 0; right: auto; bottom: 0; left: 0; width: 1px; height: auto; transform-origin: top center; }
	.pattrix-process-steps.pattrix-reveal-ready,
	.pattrix-process-steps.pattrix-reveal-ready.is-stage-2,
	.pattrix-process-steps.pattrix-reveal-ready.is-stage-3 { grid-template-columns: 1fr; transition: none; }
	.pattrix-process-step, .pattrix-process-step:first-child { min-height: 0; padding: 0 0 28px; border-right: 0; border-bottom: 1px solid var(--pattrix-color-border); border-left: 0; }
	.pattrix-process-step + .pattrix-process-step { padding-top: 28px; }
	.pattrix-process-step::before { top: -6px; left: -34px; }
	.pattrix-process-step + .pattrix-process-step::before { top: 22px; }
	.pattrix-process-step h3 { margin-top: 20px; }
	.pattrix-process-step-code { font-size: 8px; }
	.pattrix-faq-inner { display: block; width: min(100% - 32px, 560px); padding-top: 40px; padding-bottom: 48px; }
	.pattrix-faq-masthead { display: block; padding-bottom: 0; }
	.pattrix-faq-heading { max-width: 100%; }
	.pattrix-faq-heading h2 { font-size: clamp(32px, 8vw, 44px); }
	.pattrix-faq-side { gap: 20px; padding-top: 20px; padding-bottom: 0; }
	.pattrix-faq-lede { max-width: 100%; }
	.pattrix-faq-meta { width: 100%; text-align: left; }
	.pattrix-faq-list { margin-top: 20px; }
	.pattrix-faq-item summary { grid-template-columns: minmax(0, 1fr) 18px; grid-template-areas: "topic toggle" "question toggle"; gap: 8px 12px; min-height: 0; padding: 14px 0; }
	.pattrix-faq-topic { font-size: 12px; }
	.pattrix-faq-question { font-size: 17px; }
	.pattrix-faq-answer { grid-template-columns: minmax(0, 1fr) 18px; column-gap: 12px; }
	.pattrix-faq-answer p { grid-column: 1; font-size: 13px; }
	.pattrix-faq-item[open] .pattrix-faq-answer { padding-bottom: 18px; }
	.pattrix-inquiry-inner { display: block; width: min(100% - 32px, 560px); padding-top: 56px; padding-bottom: 64px; }
	.pattrix-inquiry-band h2 { font-size: clamp(48px, 14vw, 72px); }
	.pattrix-inquiry-action { margin-top: 64px; }
	.pattrix-inquiry-action .pattrix-button { margin-top: 28px; }
}

/* 430px 以下将装饰椅让出标题安全区，431px 规避视口小数舍入。 */
@media (max-width: 431px) {
	.pattrix-new-products-heading { min-height: 88px; padding-inline: 8px; }
	.pattrix-new-products-chair { height: 64px; }
	.pattrix-new-products-chair--left { left: -4px; }
	.pattrix-new-products-chair--right { right: -4px; }
	.pattrix-new-products h2 { max-width: 100%; padding-inline: 18px; background: var(--pattrix-color-surface); font-size: 24px; line-height: 30px; }
}

@media (prefers-reduced-motion: reduce) {
	.pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide .pattrix-hero-slide-image, .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-leaving .pattrix-hero-slide-image, .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-title-character, .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy > p, .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy > .pattrix-button, .pattrix-hero-carousel.is-motion-ready .pattrix-hero-slide.is-active .pattrix-hero-slide-copy h2 { animation: none !important; opacity: 1; transform: none; }
}
