.support-hero{min-height:68svh;background:#263A36;color:#F7F5F0;padding:clamp(72px,8vw,120px) 7vw 58px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,130px);align-items:center}

.support-hero-copy{max-width:920px}

.support-hero .h1{font-size:clamp(58px,6vw,112px);line-height:1.02;margin:20px 0 28px}

.support-hero p{max-width:700px;font-size:clamp(20px,1.35vw,27px);line-height:1.55;color:rgba(247,245,240,.78)}

.support-hero .kicker,.support-services .kicker,.support-request .kicker{color:#D9A27B}

.support-hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid rgba(247,245,240,.3);padding-top:18px;color:#D9A27B;letter-spacing:.14em;font-size:13px}

.support-services{padding:46px 7vw 62px;background:#E8DED0;color:#263A36;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,9vw,180px)}

.support-services-head .h2,.support-request .h2{font-size:clamp(48px,4.7vw,88px);line-height:1.02;margin:20px 0}

.support-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;align-items:stretch;border-top:1px solid rgba(38,58,54,.28)}

.support-service-grid article{position:relative;padding:18px 18px 0 0}

.support-service-grid article:not(:last-child):after{content:"";position:absolute;top:0;bottom:0;right:-14px;width:1px;background:rgba(38,58,54,.2)}

.support-service-grid .number{font-size:clamp(42px,4vw,68px);color:#C77A4A}

.support-service-grid h3{font-size:clamp(22px,1.7vw,28px);font-weight:500;line-height:1.2;margin:16px 0 12px}

.support-service-grid p{font-size:clamp(16px,1.15vw,19px);line-height:1.55;color:#52635C;margin:0}

.support-install-copy .h2{font-size:clamp(42px,4vw,76px);line-height:1.05;margin:18px 0 22px}

.support-install-copy .kicker{color:#D9A27B}

.support-request .wide{grid-column:1/-1}

.support-request .resource-success{display:none}

.support-request .submitted .resource-success{display:block;grid-column:1/-1}

.resource-gate [type=submit]:disabled{opacity:.62;cursor:not-allowed}

.support-request .submit-failed .resource-success{display:block;grid-column:1/-1;color:#b3261e}
/* 平板区间（801–1080px）补一条：原来的堆叠断点只到 800px，
   而 820/834px 的平板刚好卡在断点之上，仍按桌面版「左标题 + 右三列」排，
   右栏只剩约 107px，被内容撑到 449px → 整页横向溢出 68–80px、必须左右滑动。
   这里把「服务区改为上下堆叠」提前到 1080px，平板不再溢版；
   只影响 .support-services / .support-service-grid，不动 support-hero 首屏。 */
@media(max-width:1080px){.support-services{display:block;padding:72px 24px}.support-service-grid{margin-top:48px;grid-template-columns:1fr}.support-service-grid article{border-top:1px solid rgba(38,58,54,.2);padding:22px 0 4px}.support-service-grid article:first-child{border-top:0}.support-service-grid article:after{display:none}}
@media(max-width:800px){.support-hero{grid-template-columns:1fr;min-height:0}.support-hero-visual{height:420px}.support-services,.support-request{display:block;padding:72px 24px}.support-service-grid{margin-top:48px;grid-template-columns:1fr}.support-service-grid article{border-bottom:1px solid rgba(38,58,54,.2);padding-bottom:26px}.support-service-grid article:after{display:none}.support-service-grid article:last-child{border-bottom:0;padding-bottom:0}.support-request .resource-gate-fields{grid-template-columns:1fr}.support-request .wide{grid-column:auto}.support-hero{padding:92px 24px 54px}.support-hero-meta{margin-top:64px}}

.audience-section{padding:74px 0 96px!important}

.audience-section>.container{width:calc(100% - 80px)!important;max-width:none!important}

.audience-section .grid-4,.audience-section .grid-3{grid-template-columns:repeat(4,minmax(0,1fr));gap:52px}

.audience-section .number{font-size:clamp(42px,4vw,72px)!important;color:#D9A27B}

.audience-section h3,.audience-section .card-title{font-size:clamp(28px,2.2vw,42px)!important;line-height:1.1!important;margin:18px 0!important}

.audience-section p,.audience-section .card-copy{font-size:clamp(18px,1.35vw,25px)!important;line-height:1.5!important;color:#52635C!important}

[data-lang="en"]:not(body){display:none!important}

body.lang-en [data-lang="zh"]{display:none!important}

body.lang-en [data-lang="en"]{display:revert!important}

.panel-web-catalog{padding:clamp(88px,10vw,160px) 7vw 100px;background:#263A36;color:#F7F5F0}

.panel-web-catalog .h1{font-size:clamp(58px,7vw,126px);line-height:1.02;margin:24px 0 28px}

.panel-web-catalog .kicker,.panel-web-set .kicker{color:#D9A27B}

.catalog-lead{max-width:760px;font-size:20px;line-height:1.6;color:rgba(247,245,240,.75)}

.panel-web-set{padding:90px 7vw;background:#F7F5F0;color:#263A54}

.panel-web-set-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:24px;margin-bottom:34px}

.panel-web-set-head h2{font-size:clamp(28px,3vw,52px);font-weight:400;margin:0}

.panel-web-set-head p{max-width:760px;font-size:18px;line-height:1.5;color:#52635C;margin:18px 0 0}

.panel-web-pages{display:grid;grid-template-columns:1fr;gap:84px}

.panel-web-pages img{height:auto;max-height:none;object-fit:contain}

.panel-web-pages figure{margin:0}

.panel-web-pages img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:top;background:#fff}

.panel-web-pages figcaption{padding-top:12px;font-size:12px;letter-spacing:.08em;color:#8E6B56}

.panel-catalog-files .h2{font-size:clamp(48px,5vw,92px);line-height:1.02;margin:20px 0 62px}

.panel-intro-copy,.panel-performance>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(54px,7vw,130px)}

.panel-intro .h1{font-size:clamp(58px,6vw,112px);line-height:1.02;margin:20px 0 28px}

.panel-intro .kicker,.panel-families .kicker,.panel-performance .kicker,.panel-applications .kicker{color:#D9A27B}

.panel-families .h2,.panel-performance .h2,.panel-applications .h2{font-size:clamp(48px,5vw,92px);line-height:1.02;margin:20px 0 0}

.ceiling-intro,.ceiling-product,.ceiling-detail{display:grid;grid-template-columns:1fr 1fr;min-height:76svh;background:#F7F5F0;color:#263A36}

.ceiling-intro-copy,.ceiling-product>div,.ceiling-detail>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(54px,7vw,130px)}

.ceiling-intro>img,.ceiling-product>img{width:100%;height:100%;min-height:76svh;object-fit:cover}

.ceiling-intro .h1{font-size:clamp(58px,6vw,112px);line-height:1.02;margin:20px 0 28px}

.ceiling-intro p,.ceiling-product p,.ceiling-detail p{max-width:620px;font-size:19px;line-height:1.6;color:#52635C}

.ceiling-product.reverse>div{grid-column:1;grid-row:1}

.ceiling-product.reverse>img{grid-column:2;grid-row:1}

.ceiling-product .h2,.ceiling-detail .h2,.ceiling-scenes .h2{font-size:clamp(48px,5vw,92px);line-height:1.02;margin:20px 0 28px}

.ceiling-product .kicker,.ceiling-detail .kicker,.ceiling-scenes .kicker{color:#D9A27B}

.doors-hero{position:relative;min-height:82svh;background:#263A36;color:#F7F5F0}

.doors-hero>img{width:100%;height:82svh;object-fit:cover;opacity:.72}

.doors-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,35,30,.78),rgba(20,35,30,.08) 70%)}

.doors-hero-copy{position:absolute;z-index:1;inset:0 auto 0 8vw;width:min(620px,42vw);display:flex;flex-direction:column;justify-content:center}

.doors-hero-copy .h1{font-size:clamp(58px,6vw,112px);line-height:1.02;margin:22px 0 28px}

.doors-hero-copy p{font-size:22px;line-height:1.55;color:rgba(247,245,240,.84)}

.door-series{padding:110px 5vw 140px;background:#F7F5F0;color:#263A36}

.door-series-head{display:none!important}

.door-series-head .h2{font-size:clamp(54px,5vw,96px);line-height:1.02;margin:18px 0 0}

.door-family{border-top:0;padding:44px 0 82px}

.door-products article .number,.door-products article .model-tag{position:absolute;z-index:3;order:1;color:#fff!important;text-shadow:0 1px 4px rgba(0,0,0,.65)}

.door-products article .number{display:none!important}

.door-products article .model-tag{display:none!important}

.door-products article img{order:2}

.door-products article h3{order:3}

.door-family-head{display:flex;align-items:baseline;gap:42px;margin-bottom:28px}

.door-family-head h2{font-size:clamp(32px,3vw,52px);font-weight:400;margin:0}

.door-family-head .kicker{color:#9A735A}

.door-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:max-content;row-gap:96px;column-gap:34px}

.door-products article{display:flex;flex-direction:column;min-width:0;background:#F7F5F0;position:relative;z-index:1}

.door-products article img{flex:none}

.door-products article img{aspect-ratio:3/4!important;height:auto!important;min-height:420px;max-height:620px;width:100%;margin-left:0;margin-right:0;object-fit:contain!important;background:#F4F1EB}

.door-products article .model-tag{min-height:28px;margin-top:10px;color:#52635C!important;position:relative;z-index:2}

.door-products article h3{position:relative;z-index:2;color:#263A36!important;margin-bottom:0}

.door-products article .model-tag span{color:#000!important}

/* WC_DOOR_FIRST_FIX（2026-10-15 删除原规则）：
   原规则是 .door-family:first-child .door-products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:34px}
   它是「第一个门系列常驻展开、其余折叠」那套旧设计的残留。现在每个系列都有
   「点击展开」按钮，这条 !important 会强行显示排在第一个的系列（当时正好是 WPC门墙同色系列），
   而按钮文案仍是「点击展开」——两者自相矛盾，表现为「一进页面这个系列就是展开的」。
   必须**直接删掉**这条：titlebar-unify.js 注入的
   .door-family:not(.is-open) .door-products{display:none!important} 与它特异性相同，
   谁生效取决于文档顺序（那条在 head、本文件在 body），靠加覆盖规则不可靠。
   删掉后第一个系列与其它系列行为完全一致：默认折叠，点开才展开。 */

.door-family:first-child .door-products article h3{font-size:20px}

.door-family:first-child .door-products article img{aspect-ratio:1/1.1}

.door-products article{transition:transform .3s ease}

.door-products article:hover{transform:translateY(-6px)}

.door-products article img{background:#ebe7df}

.door-family:not(:first-child) .door-products article h3{font-size:18px}

.door-family:not(:first-child){padding-top:64px}

.door-family:first-child{padding-top:0}

.door-products article img{width:100%;aspect-ratio:1/1.18;object-fit:cover;display:block;margin-bottom:15px}

.door-products article .number{font-size:12px;color:#9A735A;letter-spacing:.1em}

.door-products article .model-tag{min-height:20px;margin-top:7px;color:#7F8A84;font-size:12px;letter-spacing:.08em}

.door-products article h3{margin-top:6px}

.door-products article h3{font-size:15px;line-height:1.25;font-weight:500;margin:7px 0 0}
@media(max-width:800px){.door-products img.mobile-fullscreen{position:fixed!important;z-index:9999;inset:0;width:100vw!important;height:100vh!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;background:#000;margin:0!important;cursor:zoom-out}}
@media(max-width:900px){.panel-web-catalog{padding:82px 24px 72px}.panel-web-set{padding:64px 24px}.panel-web-set-head{display:block}.panel-web-pages{grid-template-columns:1fr;gap:38px}.panel-web-pages img{height:auto;max-height:none}.panel-catalog-files{padding:72px 24px}.panel-catalog-file-grid a{grid-template-columns:48px 1fr 24px;gap:12px}.panel-catalog-file-grid strong{font-size:18px}.panel-intro,.panel-performance{display:block;min-height:0}.panel-intro>img,.panel-performance>img{min-height:48svh;height:48svh}.panel-intro-copy,.panel-performance>div{padding:64px 24px}.panel-families,.panel-applications{padding:72px 24px}.panel-families-head{display:block;margin-bottom:44px}.panel-family-grid,.panel-application-grid{grid-template-columns:1fr}.panel-family-grid img,.panel-application-grid img{height:360px}.panel-intro,.ceiling-product,.ceiling-detail{display:block;min-height:0}.ceiling-intro>img,.ceiling-product>img,.ceiling-detail>img{min-height:48svh;height:48svh}.ceiling-intro-copy,.ceiling-product>div,.ceiling-detail>div{padding:64px 24px}.ceiling-product.reverse>div,.ceiling-product.reverse>img{display:block}.ceiling-scenes{padding:72px 24px}.ceiling-scenes-grid{grid-template-columns:1fr}.ceiling-scenes-grid img{height:420px}.doors-hero,.doors-hero>img{min-height:70svh;height:70svh}.doors-hero-copy{left:24px;width:calc(100% - 48px)}.door-series{padding:72px 24px}.door-series-head{display:block;margin-bottom:44px}.door-products{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px}.door-family-head{display:block}.door-family-head h2{margin-top:10px}}

body:has(.case-grid) .container,body:has(.case-grid) .case-grid{width:calc(100% - 72px)!important;max-width:none!important}

.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}

.case-grid .case{min-width:0}

.case-grid .case img{width:100%;height:clamp(420px,42vw,760px);object-fit:cover;display:block}

.case-grid .case-label{padding:22px 0 12px}

.case-grid .case-label h3{font-size:clamp(24px,2vw,38px);font-weight:400}

.factory-hero,.factory-story{display:grid;grid-template-columns:1fr 1fr;min-height:78svh;background:#F7F5F0;color:#263A36}

.factory-hero-image,.factory-story-image{min-height:78svh}

.factory-hero img,.factory-story img,.factory-wide img{width:100%;height:100%;object-fit:cover}

.factory-hero-copy,.factory-story-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(56px,8vw,140px)}

.factory-hero-copy .h1,.factory-story-copy .h2{font-size:clamp(52px,5vw,100px);line-height:1.02;margin:20px 0 30px;color:#263A36}

.factory-hero-copy p,.factory-story-copy p{max-width:600px;font-size:clamp(19px,1.3vw,26px);line-height:1.6;color:#52635C}

.factory-story-copy .h2{color:#F7F5F0}

.factory-wide .h2{font-size:clamp(54px,6vw,112px);line-height:1.02;margin-top:22px;color:#F7F5F0}

.factory-line{display:grid;grid-template-columns:.8fr 1.2fr;min-height:62svh;background:#F7F5F0;color:#263A36}

.factory-line.reverse{grid-template-columns:1.2fr .8fr;background:#263A36;color:#F7F5F0}

.factory-line.reverse>div{grid-column:2}

.factory-line.reverse>img{grid-column:1;grid-row:1}

.factory-line>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(56px,8vw,130px)}

.factory-line>img{width:100%;height:100%;min-height:62svh;object-fit:cover}

.factory-line .h2{font-size:clamp(48px,5vw,90px);line-height:1.02;margin:18px 0 26px}

.factory-line p{max-width:520px;font-size:20px;line-height:1.55;color:#52635C}

.factory-line.reverse p{color:rgba(247,245,240,.8)}

.factory-line .kicker{color:#9A735A}

.home-header{position:absolute;top:0;left:0;right:0;z-index:19;background:rgba(20,35,30,.16);border-bottom:1px solid rgba(255,255,255,.28);color:#fff}

.home-header .logo,.home-header .nav a{color:#f4eee3}

.home-header .logo span{color:#d9a27b}

.logo{gap:13px;font-size:31px!important;font-weight:700!important;letter-spacing:.025em}

.logo:has(.brand-logo):before{display:none}

.brand-logo{width:210px!important;height:auto!important;object-fit:contain}

.logo:before{content:"";display:inline-block;flex:0 0 26px;width:26px;height:26px;border:1px solid #e7c6a8;border-radius:50%;background:linear-gradient(#f4eee3,#f4eee3) 14px 11px/2px 27px no-repeat,linear-gradient(#f4eee3,#f4eee3) 14px 11px/28px 2px no-repeat,#263a36;box-shadow:0 4px 14px rgba(19,30,27,.25),inset 0 0 0 1px rgba(255,255,255,.08)}

.header:not(.home-header) .logo:before{border-color:#c98e68;background:#263a36}

.home-header .nav a:after{background:#f1ad82}

.home-header .lang{border-color:rgba(255,255,255,.55);color:#fff}

.hero .hero-content{left:0!important;right:auto!important;bottom:14px!important;width:96vw!important;max-width:none!important;margin:0!important;padding:0 2vw!important;text-align:left!important;align-items:flex-start!important}

.hero h1{max-width:94vw!important}

#quote.quote-form-section{background:#F7F5F0!important;color:#263A36!important;padding:56px 0 72px!important;border-top:0!important}

#quote.quote-form-section .quote-form-wrap{width:min(92vw,1880px)!important;display:grid!important;grid-template-columns:minmax(420px,.9fr) minmax(620px,1.1fr);gap:clamp(48px,7vw,120px);align-items:center}

#quote.quote-form-section .quote-copy{display:flex;flex-direction:column;justify-content:space-between;padding:0;border-right:0}

#quote.quote-form-section .quote-copy .kicker{color:#9A735A!important;font-size:13px;letter-spacing:.2em;margin-bottom:32px}

#quote.quote-form-section .quote-copy .h2{font-size:clamp(48px,4vw,76px)!important;line-height:1.02!important;letter-spacing:-.05em;color:#263A36!important;margin:0 0 22px!important;font-weight:400}

#quote.quote-form-section .quote-copy p{max-width:560px;font-size:clamp(19px,1.35vw,26px)!important;line-height:1.5!important;color:#52635C!important}

#quote.quote-form-section .quote-form{display:grid!important;grid-template-columns:1fr 1fr;gap:34px 42px;padding:0!important;background:transparent!important}

#quote.quote-form-section .quote-form label{color:#52635C!important;font-size:13px!important;font-weight:700;letter-spacing:.08em}

#quote.quote-form-section .quote-form input,#quote.quote-form-section .quote-form textarea{border:0!important;border-bottom:1px solid rgba(38,58,54,.42)!important;border-radius:0!important;background:transparent!important;color:#263A36!important;padding:18px 0!important;font-size:20px!important;outline:none}

#quote.quote-form-section .quote-form input:focus,#quote.quote-form-section .quote-form textarea:focus{border-bottom-color:#263A36!important}

#quote.quote-form-section .quote-form textarea{height:104px!important}

/* 弹窗底色已改白：占位符原来是近白色，在白底上等于看不见 */
#quote.quote-form-section .quote-form textarea::placeholder,#quote.quote-form-section .quote-form input::placeholder{color:rgba(82,99,92,.55)}

#quote.quote-form-section .quote-form button{margin-top:22px;border:1px solid #263A36!important;border-radius:0!important;background:#263A36!important;color:#F7F5F0!important;font-size:17px!important;font-weight:700;letter-spacing:.05em;padding:21px!important}

#quote.quote-form-section .form-success{color:#14532D!important;background:rgba(255,255,255,.78);padding:12px 18px;border-radius:10px}

#quote.quote-form-section .form-failed{color:#8f1d16!important;background:rgba(255,255,255,.78);padding:12px 18px;border-radius:10px}

/* ===== 询盘表单弹窗化：页面里只留一个按钮，点开才出现表单 ===== */
#quote.quote-form-section{padding:clamp(52px,6vw,96px) 0!important}

.quote-cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px}

/* 区块底色是浅米色 #E8DED0，文字必须是深色 —— 原来是白字，等于看不见 */
.quote-cta .kicker{color:#9A735A;letter-spacing:.16em;font-size:12px}

.quote-cta .h2{margin:12px 0 10px;color:#263A36;font-size:clamp(30px,3.6vw,58px);line-height:1.06;font-weight:400}

.quote-cta p{margin:0;max-width:560px;color:#52635C;font-size:clamp(16px,1.1vw,19px);line-height:1.5}

.quote-cta .btn{flex:0 0 auto;border:1px solid #263A36!important;background:#263A36!important;color:#F7F5F0!important;border-radius:999px;padding:18px 34px;font-size:15px;font-weight:600;cursor:pointer}

.quote-cta .btn:hover{background:#16241f!important}

/* 层级取 100000：必须高于头部语言下拉菜单（10000），否则弹窗打开时点语言按钮，
   下拉菜单会浮在弹窗上面，两个浮层叠在一起。 */
.wc-quote-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}

.wc-quote-modal[hidden]{display:none!important}

.wc-quote-backdrop{position:absolute;inset:0;background:rgba(10,14,13,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.wc-quote-dialog{position:relative;z-index:1;width:min(940px,100%);max-height:88vh;overflow:auto;background:#FFFFFF;border:1px solid rgba(38,58,54,.1);border-radius:18px;padding:clamp(26px,3.4vw,52px);box-shadow:0 30px 90px rgba(20,35,30,.3)}

.wc-quote-dialog .quote-form-wrap{grid-template-columns:1fr!important;gap:0!important}

.wc-quote-dialog .quote-copy .h2{font-size:clamp(24px,2.6vw,38px)!important;margin:8px 0 10px}

.wc-quote-dialog .quote-copy p{font-size:15px!important}

.wc-quote-dialog .quote-form{margin-top:18px}

/* 手机端电话/WhatsApp 为必填：标签补一个星号，避免用户以为可以不填 */
.quote-phone-required>span:first-child:after{content:" *";color:#8f1d16;font-weight:700}

.wc-quote-close{position:absolute;top:10px;right:14px;z-index:2;border:0;background:transparent;color:#263A36;font-size:34px;line-height:1;cursor:pointer;opacity:.5;transition:opacity .2s ease,color .2s ease}

.wc-quote-close:hover{opacity:1;color:#C77A4A}

body.wc-quote-open{overflow:hidden}

/* ===== 样品申请弹窗（全站通用，由 script.js 创建）===== */
.wc-sample-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}

.wc-sample-modal[hidden]{display:none!important}

.wc-sample-backdrop{position:absolute;inset:0;background:rgba(10,14,13,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.wc-sample-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid rgba(38,58,54,.1);border-radius:18px;padding:clamp(24px,3.2vw,44px);box-shadow:0 30px 90px rgba(20,35,30,.3)}

.wc-sample-dialog .kicker{color:#9A735A;letter-spacing:.16em;font-size:12px}

.wc-sample-dialog .h2{margin:10px 0;color:#263A36;font-size:clamp(24px,2.6vw,36px);line-height:1.15;font-weight:400}

.wc-sample-note{margin:0 0 18px;color:#52635C;font-size:14px;line-height:1.7}

.wc-sample-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.wc-sample-form label span{display:block;margin-bottom:6px;color:#52635C;font-size:13px;font-weight:600}

.wc-sample-form input,.wc-sample-form textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid rgba(38,58,54,.22);border-radius:8px;background:#fff;color:#263A36;font:inherit;font-size:15px}

.wc-sample-form textarea{resize:vertical;line-height:1.6}

.wc-sample-form input:focus,.wc-sample-form textarea:focus{outline:none;border-color:#C77A4A}

.wc-sample-form .wide{grid-column:1/-1}

.wc-sample-form button[type=submit]{justify-self:start;padding:14px 30px;cursor:pointer;border:0}

/* 电话/WhatsApp 必填：标签补星号 */
.wc-sample-req>span:first-child:after{content:" *";color:#8f1d16;font-weight:700}

.wc-sample-ok,.wc-sample-fail{margin:0;font-size:14px}

.wc-sample-ok{color:#14532D;background:rgba(20,83,45,.08);padding:12px 16px;border-radius:10px}

.wc-sample-fail{color:#8f1d16;background:rgba(143,29,22,.08);padding:12px 16px;border-radius:10px}

.wc-sample-close{position:absolute;top:8px;right:14px;z-index:2;border:0;background:transparent;color:#263A36;font-size:32px;line-height:1;cursor:pointer;opacity:.5;transition:opacity .2s ease,color .2s ease}

.wc-sample-close:hover{opacity:1;color:#C77A4A}

body.wc-sample-open{overflow:hidden}

/* 弹窗挂在 body 上，不在 main/.footer 里，阿语方向要单独接管 */
body.lang-ar .wc-sample-dialog{direction:rtl;text-align:right}
@media(max-width:640px){.wc-sample-form{grid-template-columns:1fr}.wc-sample-dialog{max-height:92vh;padding:24px 20px}}
@media(max-width:800px){.wc-quote-dialog{max-height:92vh;width:100%}.quote-cta{flex-direction:column;align-items:flex-start}}

.quote-form-section{background:#D9A27B!important;padding:clamp(64px,7vw,128px) 0!important}

.quote-form-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,8vw,160px);align-items:start}

.quote-copy .h2{font-size:clamp(46px,4.5vw,82px);line-height:1.05;margin:12px 0 22px;color:#fff}

.quote-copy p{font-size:clamp(18px,1.2vw,23px);line-height:1.55;color:rgba(255,255,255,.88)}

.quote-copy .kicker{color:#263A36}

.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}

.quote-form label{display:grid;gap:8px;color:#263A36;font-size:14px;font-weight:700;letter-spacing:.04em}

.quote-form input,.quote-form textarea{width:100%;border:1px solid rgba(38,58,54,.45);border-radius:0;background:rgba(255,255,255,.9);color:#263A36;padding:15px 16px;font:inherit;font-size:16px}

.quote-form textarea{height:118px;resize:vertical}

.quote-form .wide{grid-column:1/-1}

.quote-form button{justify-content:center;border:1px solid #263A36;background:#263A36;color:#fff;cursor:pointer}

.quote-form button:hover{background:#1c2e2a}

.form-success{display:none!important;grid-column:1/-1;margin:0;color:#263A36;font-weight:700}

.quote-form.submitted .form-success{display:block!important}

.form-failed{display:none!important;grid-column:1/-1;margin:0;color:#ffd9c7;font-weight:700}

.quote-form.submit-failed .form-failed{display:block!important}

.support-request .form-failed{display:block;grid-column:1/-1;color:#b3261e}
@media(max-width:700px){#quote.quote-form-section .quote-form-wrap{width:calc(100% - 48px)!important;grid-template-columns:1fr!important;gap:50px}#quote.quote-form-section .quote-form{grid-template-columns:1fr!important;gap:28px}#quote.quote-form-section .quote-copy .h2{font-size:48px!important}.quote-form-wrap{grid-template-columns:1fr;gap:38px}.quote-form{grid-template-columns:1fr}.quote-form-section{padding:64px 0!important}}

#advantages:has(.benefits-grid){display:block!important;width:100%!important;background:#263A36!important}

#advantages:has(.benefits-grid)>.container{display:block!important;width:100%!important;max-width:none!important}

#advantages:has(.benefits-grid) .benefits-grid{width:100%!important}

.advantages-section{display:block!important;width:100%!important;background:#263A36!important;color:#F4EEE3!important;padding:92px 0 120px}

.advantages-section .section-head,.advantages-section .benefits-grid{width:100%!important;max-width:none!important}

.advantages-section>.container{display:block!important;width:100%!important;max-width:none;background:transparent!important;padding:0 5vw}

 .advantages-section .benefits-grid{width:100%!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}

.advantages-section *{background:transparent!important;opacity:1!important}

.advantages-section>*,.advantages-section .container,.advantages-section .grid-3,.advantages-section article,.advantages-section .card{background:transparent!important}

.advantages-section .grid-3{width:100%;background:transparent!important}

.advantages-section .grid-3{grid-template-columns:repeat(3,1fr);column-gap:80px;row-gap:92px}

.advantages-section .section-head{display:flex;justify-content:space-between;align-items:end;gap:80px;margin-bottom:70px}

.advantages-section .section-head .h2{font-size:clamp(54px,5vw,92px);line-height:1.02}

.advantages-section .section-head .intro{font-size:clamp(20px,1.5vw,28px);max-width:650px}

.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(244,238,227,.25)}

.benefit-card{min-height:clamp(250px,27vh,340px);padding:34px 32px;background:#263A36!important;border:1px solid rgba(244,238,227,.18)}

.benefit-card .number{font-size:30px;margin-bottom:16px}

.benefit-card .kicker{font-size:13px;letter-spacing:.16em}

.benefit-card h3{font-size:clamp(30px,2.2vw,48px);margin:18px 0 12px}

.benefit-card p{font-size:clamp(18px,1.2vw,23px);max-width:520px}

.advantages-section .section-head,.advantages-section .section-head .h2,.advantages-section .section-head *{color:#F4EEE3!important}

.advantages-section .section-head .intro{color:rgba(244,238,227,.9)!important}

.advantages-section .number,.advantages-section .kicker{color:#D9A27B!important}

.advantages-section h3{color:#F4EEE3!important;font-size:clamp(25px,2vw,38px)}

.advantages-section p{color:rgba(244,238,227,.9)!important;font-size:18px;line-height:1.6}

.advantage-panel .advantage-copy .h2{font-size:clamp(58px,5.5vw,108px)!important;line-height:1.02!important}

.advantage-panel .advantage-copy .intro{font-size:clamp(20px,1.4vw,28px)!important;line-height:1.5!important}

#advantages{padding:0!important;min-height:100svh;background:#263A36!important;display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch}

#advantages>div{min-width:0}

#advantages>div:first-child{min-height:100svh}

#advantages>div:last-child{padding:clamp(58px,7vw,120px) clamp(42px,6vw,120px);display:flex;flex-direction:column;justify-content:center;background:#263A36!important}

#advantages .h2{font-size:clamp(52px,5vw,96px)!important;line-height:1.02!important;color:#F4EEE3!important}

#advantages .intro,#advantages p{font-size:clamp(18px,1.3vw,25px)!important;line-height:1.55;color:rgba(244,238,227,.9)!important}

#advantages .list{margin-top:45px}

#advantages li{padding:22px 0;border-top:1px solid rgba(244,238,227,.35);font-size:clamp(20px,1.5vw,29px);color:#F4EEE3}

#advantages li:before{color:#D9A27B}

.process-section{background:#263A36!important;color:#F4EEE3!important;padding:48px 0 64px;min-height:0;display:block}

.process-section .section-head{margin-bottom:42px}

.process-section .section-head .h2{font-size:clamp(48px,4.8vw,88px)!important}

.process-section .section-head .intro{font-size:clamp(18px,1.2vw,23px)!important}

.process-section .section-head .h2{font-size:clamp(58px,6vw,112px)!important;color:#F4EEE3!important}

.process-section .section-head .intro{font-size:clamp(21px,1.5vw,30px)!important;color:rgba(244,238,227,.86)!important}

.process-section .kicker{color:#D9A27B!important}

.process-section>.container{width:calc(100% - 120px);max-width:2300px}

.process-section .section-head{display:flex;justify-content:space-between;align-items:end;gap:80px;margin-bottom:76px}

.process-section .section-head .h2{font-size:clamp(52px,5vw,96px);line-height:1.02;color:#263A36}

.process-section .section-head .intro{font-size:clamp(19px,1.4vw,26px);color:#60736b;max-width:620px}

.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0}

.process-steps article{position:relative;padding:0 42px 0 0}

.process-steps article:not(:last-child){margin-right:42px}

.process-steps .step-no{font-size:clamp(44px,4vw,72px);line-height:1;color:#D9A27B;margin-bottom:28px}

.process-steps .step-line{position:absolute;top:38px;left:78px;right:0;border-top:1px solid #D9A27B}

.process-steps h3{font-size:clamp(30px,2.4vw,46px);font-weight:400;margin:0 0 14px;color:#F4EEE3}

.process-steps p{font-size:clamp(18px,1.3vw,24px);line-height:1.5;color:rgba(244,238,227,.84);margin:0;max-width:360px}

.materials-section{min-height:100svh;padding:54px 0 32px;overflow:hidden}

.materials-section>.container{width:100%;max-width:none}

.materials-section .section-head{display:block!important;width:min(calc(100% - 80px),1700px);margin:0 auto 34px;text-align:center}

.materials-section .section-head>div{text-align:center}

.materials-section .section-head .kicker{text-align:center}

.materials-section .section-head .h2{font-size:clamp(48px,4.8vw,82px);line-height:1.05;max-width:1400px;margin:0 auto 22px}

.materials-section .section-head .intro{font-size:22px;line-height:1.55;max-width:900px;margin:0 auto;color:#52635c;text-align:center}

.materials-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:none;cursor:grab;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;padding:0 40px 18px;scrollbar-width:none}

.materials-track::-webkit-scrollbar{display:none}

.materials-track:active{cursor:grabbing}

.material-card{flex:0 0 min(42vw,690px);scroll-snap-align:start;background:#fff}

.material-image{height:clamp(390px,48vh,650px);overflow:hidden}

.material-image img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}

.material-card:hover .material-image img{transform:scale(1.07)}

.material-copy{padding:22px 6px 8px}

.material-copy h3{font-size:clamp(30px,2.5vw,46px);font-weight:300;margin:5px 0 8px}

.material-copy p{font-size:18px;color:#52635c;margin:0;max-width:580px}

:root{--ink:#18211f;--muted:#66716d;--cream:#f4f1eb;--paper:#fbfaf7;--line:#d9ddd8;--accent:#be6d47;--sage:#8c9d91;--dark:#18211f;--max:1240px}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{overflow-x:hidden;margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif;line-height:1.6}

a{color:inherit;text-decoration:none}

img{display:block;width:100%;height:100%;object-fit:cover}

.container{width:min(calc(100% - 40px),1400px);margin:auto}

.menu{display:none}

.header{height:78px;background:rgba(251,250,247,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}

.header .container{height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}

.logo{font-weight:800;letter-spacing:.13em;font-size:28px;white-space:nowrap}

.logo span{color:var(--accent);font-weight:400}

.nav{display:flex;gap:31px;align-items:center;font-size:16px;letter-spacing:.04em}

.nav a{position:relative;padding:28px 0}

.nav a:after{content:"";position:absolute;left:0;bottom:19px;width:0;height:1px;background:var(--accent);transition:.25s}

.nav a:hover:after,.nav a.active:after{width:100%}

.actions{display:flex;gap:10px;align-items:center}

.lang{border:0!important;background:transparent;padding:14px 18px;font-size:20px;cursor:pointer;display:inline-flex;align-items:center;gap:11px;white-space:nowrap;transition:transform .25s ease,background .25s ease;color:inherit!important}

.lang:hover{transform:scale(1.08);background:rgba(255,255,255,.16)}

.home-header .lang{margin-right:34px}

.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);padding:15px 24px;font-size:14px;letter-spacing:.1em;text-transform:uppercase;transition:.25s}

.btn:hover{background:var(--ink);color:#fff}

.btn.fill{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:999px}

.btn.fill:hover{background:#9e5535}

.menu{display:none;background:none;border:0;font-size:24px}

.hero{min-height:100svh;height:100svh;position:relative;color:#fff;background:#34403a;overflow:hidden}

.hero-media{position:absolute;inset:0;opacity:.73}

.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,20,.78),rgba(15,23,20,.18) 68%,rgba(15,23,20,.3))}

.hero-content{position:relative;z-index:1;min-height:100svh;display:flex,flex-direction:column;justify-content:center;padding:70px 0;max-width:670px}

.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:18px}

.hero .eyebrow{color:#e4a17e}

.h1{font-size:clamp(42px,6vw,76px);line-height:1.06;font-weight:300;letter-spacing:-.04em;margin:0 0 26px}

.h1 em{font-family:Georgia,serif;font-style:italic;font-weight:400}

.lead{font-size:18px;max-width:560px;color:rgba(255,255,255,.85);margin:0 0 32px}

.hero-meta{display:flex;gap:30px;margin-top:76px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}

.section{padding:105px 0}

.section.cream{background:var(--cream)}

.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:44px}

.kicker{font-size:11px;color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-weight:700}

.h2{font-size:clamp(31px,4vw,52px);line-height:1.1;font-weight:300;letter-spacing:-.035em;margin:9px 0 0}

.h2 em{font-family:Georgia,serif;font-style:italic}

.intro{max-width:420px;color:var(--muted);font-size:15px}

#products>.container{width:calc(100% - 120px);max-width:2200px}

#products .card{position:relative;overflow:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}

#products .card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}

#products .card:hover{transform:translateY(-14px);box-shadow:0 24px 45px rgba(24,33,31,.16)}

#products .card:hover:after{transform:scaleX(1)}

#products{padding-top:76px;padding-bottom:130px}

#products .section-head{display:block!important;margin:0 auto 52px;text-align:center;max-width:1700px}

#products .section-head>div{display:block;text-align:center}

#products .section-head .h2{font-size:clamp(58px,6vw,112px);line-height:1;max-width:1500px;margin:0 auto 24px}

#products .section-head .intro{font-size:clamp(21px,1.7vw,30px);line-height:1.45;color:#52635c;max-width:1200px;margin:auto}

#products .card{position:relative;min-height:min(54vw,720px);overflow:hidden;background:var(--dark);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}

#products .card:hover{transform:translateY(-12px);box-shadow:0 26px 52px rgba(24,33,31,.22)}

#products .card:hover .card-image img{transform:scale(1.1);filter:saturate(1.12) contrast(1.04)}

.card{background:#fff}

.card:hover .card-image img{transform:scale(1.045)}

.number{font-size:11px;letter-spacing:.15em;color:var(--accent);margin-bottom:18px}

.split{display:grid;grid-template-columns:1fr 1fr;min-height:530px}

.split-copy .intro{color:#bdc8c1}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

.stat{padding:28px 20px;border-right:1px solid var(--line)}

.stat:last-child{border-right:0}

.stat strong{font-size:32px;font-weight:300;display:block}

.stat span{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}

.cta{background:var(--accent);color:#fff;padding:72px 0}

.cta .container{display:flex;justify-content:space-between;align-items:center;gap:30px}

.cta .h2{max-width:650px}

.cta .btn{border-color:#fff;color:#fff}

.cta .btn:hover{background:#fff;color:var(--accent)}

.footer{background:var(--dark);color:#dce3dd;padding:60px 0 25px}

.footer-grid{display:grid;grid-template-columns:1.4fr 1.5fr 1fr 1fr 1fr;gap:32px;padding-bottom:45px}

/* WC_FOOTER_PRODUCTS（2026-10-15）——「产品目录」栏有 9 项，单列会把页脚拉长近一倍。
   改成两列并排：整栏仍占网格中的 1 格（宽 1.5fr），列高与旁边的社交栏大致齐平。
   ≤900px 时（见文件末尾 WC_COMPACT）回退为单列，避免手机端把这一格挤成 4 行窄条。 */
.footer-products .footer-col2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.footer-products .footer-col2 a{display:block;white-space:nowrap}

.footer h3{font-weight:400;font-size:14px;margin:0 0 17px}

.footer p,.footer a{color:#9eaaa2;font-size:13px}

.footer a{display:block;margin:6px 0}

.copyright{border-top:1px solid #3b4641;padding-top:20px;color:#7c8981;font-size:11px;display:flex;justify-content:space-between}

.page-hero{background:var(--dark);color:#fff;padding:90px 0 78px}

.page-hero .h1{max-width:760px;margin-bottom:15px}

.page-hero p{color:#bdc8c1;max-width:580px;margin:0}

.catalog-item .number{margin:0}
@media(max-width:850px){.catalog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.catalog-grid{grid-template-columns:1fr}}

.product-card .image{position:absolute;inset:0;background:#4d5a52}

.product-card .image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,15,13,.75),transparent 70%)}

.product-card .content{position:absolute;inset:auto 25px 25px}

.quote-dot{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--accent);font-size:22px;line-height:1}
@media(max-width:850px){.download-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.download-grid{grid-template-columns:1fr}}

.pain-card .number{font-size:12px}
@media(max-width:850px){.pain-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.pain-grid{grid-template-columns:1fr}}

.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}

.case-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}

.case{position:relative;height:370px;overflow:hidden;color:#fff}

.case:nth-child(1){grid-column:span 7}

.case:nth-child(2){grid-column:span 5}

.case:nth-child(3){grid-column:span 5}

.case:nth-child(4){grid-column:span 7}

.case:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.65),transparent 65%)}

.case .case-label{position:absolute;bottom:22px;left:22px;z-index:1}

.case h3{font-size:23px;font-weight:300;margin:4px 0}

.form{display:grid;gap:14px}

.form input,.form textarea,.form select{width:100%;border:1px solid var(--line);background:#fff;padding:14px;font:inherit;font-size:13px}

.form textarea{min-height:120px;resize:vertical}

[data-lang=en]{display:none}

.lang-en [data-lang=zh]{display:none}

.lang-en [data-lang=en]{display:inline}

.lang-en p[data-lang=en],.lang-en h1[data-lang=en],.lang-en h2[data-lang=en],.lang-en h3[data-lang=en],.lang-en span[data-lang=en]{display:block}

.lang-en .eyebrow[data-lang=en]{display:block}

.lang-en .btn[data-lang=en]{display:inline-flex}

.lang-en .nav-text[data-lang=en]{display:inline}

.lang-en .nav-text[data-lang=zh]{display:none}
@media(max-width:850px){.nav a{padding:10px 0}.nav a:after{bottom:5px}.home-header .container{padding-left:16px;padding-right:16px;gap:14px}.header .container{gap:14px;padding-left:16px;padding-right:16px}.hero,.hero-content{min-height:100svh}.grid-3,.product-grid,.contact-box{grid-template-columns:1fr}.split{grid-template-columns:1fr}.split-image{min-height:330px}.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.cta .container{display:block}.cta .btn{margin-top:25px}.case-grid{display:grid;grid-template-columns:1fr 1fr}.case,.case:nth-child(n){grid-column:span 1;height:270px}.case:first-child{grid-column:span 2}.footer-grid{grid-template-columns:1fr 1fr}.copyright{display:block}.copyright span{display:block;margin-top:8px}}
@media(max-width:850px){.rich-grid{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.process-item:nth-child(2){border-right:0}}

.header.home-header{background:transparent!important;backdrop-filter:none;border-bottom:0!important}

.home-header .nav{flex:1;justify-content:center;gap:clamp(2px,0.6vw,12px)}

.home-header .nav a{font-size:12px;font-weight:500;transition:transform .28s cubic-bezier(.2,.8,.2,1),color .28s ease,background .28s ease,box-shadow .28s ease;position:relative;padding:5px 6px;border-radius:4px;white-space:normal;line-height:1.2;text-align:center}

.home-header .nav a:after{height:2px;bottom:1px;left:6px;width:0;background:#ffd0a9;transition:width .3s cubic-bezier(.2,.8,.2,1)}

.home-header .nav a:hover{transform:translateY(-4px) scale(1.08);color:#fff;background:rgba(190,109,71,.85);box-shadow:0 8px 18px rgba(0,0,0,.22),0 0 14px rgba(255,180,126,.4)}

.home-header .nav a:hover:after{width:calc(100% - 28px)}

.home-header .nav a.active{font-weight:700}

.home-header .container{width:100%;max-width:none;padding-left:clamp(8px,1.2vw,20px);padding-right:clamp(8px,1.2vw,20px);gap:14px}

.home-header .logo{display:inline-flex;flex-direction:row;align-items:center;line-height:normal}

.header:not(.home-header) .logo{display:inline-flex;flex-direction:row;align-items:center;line-height:normal}

.header:not(.home-header) .logo-sub{color:var(--muted)!important}

.hero-content{position:absolute;left:0;right:0;bottom:0;min-height:0!important;justify-content:flex-end;padding:0 0 48px!important}

.hero .hero-meta{display:none}

.hero .eyebrow{font-size:16px}

.hero .lead{max-width:900px}

.hero .h1{font-size:clamp(60px,7.6vw,108px);text-shadow:0 2px 14px rgba(0,0,0,.18)}

.hero .lead{font-size:24px;line-height:1.5;text-shadow:0 2px 10px rgba(0,0,0,.15)}
@media(max-width:500px){.hero-content{justify-content:flex-end;padding:45px 0 45px!important}.hero .h1{font-size:62px}}

.header.home-header.is-scrolled{position:fixed;top:0;background:rgba(251,250,247,.96)!important;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(24,33,31,.08)}

.header.home-header.is-scrolled .logo,.header.home-header.is-scrolled .nav a{color:var(--ink)}

.header.home-header.is-scrolled .logo span{color:var(--accent)}

.header.home-header.is-scrolled .nav a:after{background:var(--accent)}

.header.home-header.is-scrolled .lang{border-color:var(--line);color:var(--ink)}

.header.home-header{position:absolute;top:0;color:#fff}

.header.home-header .logo,.header.home-header .nav a{color:#fff}

.header.home-header .btn.fill{background:var(--accent);color:#fff;border-color:var(--accent)}

.hero .hero-content{position:absolute!important;left:0;right:auto;width:min(calc(100% - 40px),1600px);margin-left:0!important;margin-right:0!important;bottom:0;min-height:0!important;padding:0 0 0 max(24px,2.5vw)!important;justify-content:flex-end!important}

/* WC_HERO_WRAP：首页大标题允许换行。
   原来这里是 white-space:nowrap!important + 上限 138px ——
   中文标题「墙板、软瓷、吊顶、门、柜与地板，完整、高性价比的快装空间系统。」
   30 多字，138px 一行要 4200px 宽，远超 1600px 容器，
   右侧「性价比」直接被裁掉（2026-10-17 站长反馈「文案跑出去了」）。
   改成 normal 让浏览器自然折行，字号链不变，视觉层级保持。 */
.hero h1{font-size:clamp(72px,6.5vw,138px)!important;line-height:.94!important;font-weight:300!important;letter-spacing:-.045em!important;white-space:normal!important;overflow-wrap:anywhere!important;max-width:94vw!important;margin:0 0 22px!important}

.hero h1 em{white-space:nowrap;font-style:normal!important;font-family:inherit!important;color:#d9a27b}

.hero h1,.hero .lead{color:#eee9df!important}

.hero h1{text-shadow:0 3px 18px rgba(18,28,25,.42)!important}

.hero .lead{text-shadow:0 2px 12px rgba(18,28,25,.5)!important}

.hero .hero-media:after{background:linear-gradient(90deg,rgba(16,28,24,.84),rgba(16,28,24,.3) 54%,rgba(16,28,24,.08))!important}

.hero .lead{font-size:25px!important;line-height:1.4!important;max-width:1250px!important}

.hero .eyebrow{font-size:19px!important}
@media(max-width:500px){.hero h1{font-size:58px!important;line-height:.96!important;white-space:normal!important}.hero .lead{font-size:22px!important}.hero .lead{font-size:27px!important}.hero .eyebrow{font-size:18px!important}}

#products .card{min-height:auto;background:#fff;overflow:hidden;transform:none!important;box-shadow:none!important}

#products .card-body .number{color:var(--accent)}

#products .card:hover .card-image img{transform:scale(1.04)}
@media(max-width:500px){#advantages{display:block;min-height:0}#advantages>div:first-child{min-height:52svh}#advantages>div:last-child{padding:56px 28px 70px}#advantages .h2{font-size:48px!important}#advantages li{font-size:21px;padding:18px 0}.process-section>.container{width:calc(100% - 32px)}.process-section .section-head{display:block;margin-bottom:48px}.process-steps{grid-template-columns:1fr;gap:42px}.process-steps article{padding:0 0 0 0}.process-steps article:not(:last-child){margin-right:0}.process-steps .step-line{display:none}.advantages-section>.container{width:calc(100% - 32px)}.advantages-section .grid-3{grid-template-columns:1fr;row-gap:56px}#products>.container{width:calc(100% - 28px)}#products .card{min-height:460px}#products .card-body{padding:28px}#products .section-head .h2{font-size:48px}.rich-grid,.process{grid-template-columns:1fr}.process-item{border-right:0;border-bottom:1px solid var(--line);margin-right:0;padding-right:0}.container{width:min(calc(100% - 28px),var(--max))}.hero-content{padding:45px 0}.h1{font-size:44px}.section{padding:72px 0}.section-head{display:block}.intro{margin-top:15px}.hero-meta{margin-top:50px;gap:15px;flex-wrap:wrap}.footer-grid{grid-template-columns:1fr}.case-grid{grid-template-columns:1fr}.case,.case:nth-child(n),.case:first-child{grid-column:span 1}.product-card{min-height:330px}}

.door-series-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}

.door-series-grid article{border-top:1px solid rgba(38,58,54,.32);padding-top:20px}

.door-series-grid img{width:100%;height:260px;object-fit:cover;object-position:center;display:block;margin-bottom:22px}

.door-series-grid h3{font-size:24px;font-weight:500;line-height:1.25;margin:14px 0 10px}

.door-series-grid p{font-size:15px;line-height:1.6;color:#52635C}

.panel-catalog .h2{font-size:clamp(48px,5vw,92px);line-height:1.02;margin:20px 0 62px}

.resource-gate{width:100%}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #C77A4A;outline-offset:3px}
@media(max-width:900px){.door-series-grid{grid-template-columns:repeat(2,1fr)}.panel-catalog-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.door-series-grid{grid-template-columns:1fr}.panel-catalog-grid{grid-template-columns:repeat(2,1fr);gap:24px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media(max-width:1100px){.hero h1{white-space:normal!important;font-size:clamp(44px,6vw,72px)!important;line-height:1.06!important}.hero h1 em{white-space:normal}}
@media(max-width:640px){.hero h1{font-size:clamp(34px,7.6vw,50px)!important}.hero .h1{font-size:clamp(34px,7.6vw,50px)}.doors-hero-copy .h1,.panel-intro .h1,.ceiling-intro .h1,.support-hero .h1,.panel-web-catalog .h1,.factory-hero .h1{font-size:clamp(34px,7.6vw,52px)}.panel-families .h2,.panel-performance .h2,.panel-applications .h2,.ceiling-product .h2,.ceiling-detail .h2,.ceiling-scenes .h2,.door-series-head .h2,.support-services-head .h2,.support-request .h2,.panel-catalog .h2{font-size:clamp(30px,6.6vw,46px)}}

.header:not(.home-header){background:rgba(24,33,31,.62);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.18)}

.header:not(.home-header) .logo,.header:not(.home-header) .nav a{color:#f4eee3}

.header:not(.home-header) .logo span{color:#d9a27b}

.header:not(.home-header) .lang{color:#f4eee3;border-color:rgba(255,255,255,.45)}

.header:not(.home-header) .btn.fill{background:var(--accent);color:#fff;border-color:var(--accent)}

.header:not(.home-header) .nav a{padding:20px 16px;border-radius:4px;transition:transform .28s cubic-bezier(.2,.8,.2,1),color .28s ease,background .28s ease,box-shadow .28s ease}

.header:not(.home-header) .nav a:after{left:16px;bottom:12px;height:2px;background:#ffd0a9}

.header:not(.home-header) .nav a:hover{transform:translateY(-6px) scale(1.1);color:#fff;background:rgba(190,109,71,.9);box-shadow:0 10px 24px rgba(0,0,0,.22),0 0 18px rgba(255,180,126,.34)}

.header:not(.home-header) .nav a:hover:after{width:calc(100% - 32px);background:#fff}

.header:not(.home-header) .nav a.active{font-weight:600}

.header.is-scrolled{background:rgba(251,250,247,.96)!important;border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(24,33,31,.08)}

.header.is-scrolled .logo,.header.is-scrolled .nav a{color:var(--ink)!important}

.header.is-scrolled .logo span{color:var(--accent)!important}

.header.is-scrolled .lang{color:var(--ink)!important;border-color:var(--line)!important}

.header.is-scrolled .nav a:after{background:var(--accent)}

#quote.quote-form-section .quote-form-wrap{grid-template-columns:1fr!important;gap:50px;width:calc(100% - 32px)!important}

#quote.quote-form-section .quote-form{grid-template-columns:1fr!important;gap:24px}

.cta{display:block!important}

.cta .container{display:block!important;gap:36px!important}

.quote-form-section{padding:64px 0!important}

.quote-bubble{position:fixed;right:68px;bottom:32px;z-index:50;display:inline-flex;align-items:center;gap:12px;padding:17px 25px 17px 17px;border-radius:999px;background:var(--accent);color:#fff;box-shadow:0 14px 34px rgba(26,35,31,.3);font-size:15px;letter-spacing:.06em;transition:transform .3s ease,box-shadow .3s ease,background .3s ease}

.quote-bubble:hover{transform:translateY(-7px) scale(1.06);background:#d5825b;box-shadow:0 18px 40px rgba(26,35,31,.38)}
@media(max-width:640px){.quote-bubble{right:16px;bottom:16px;padding:13px 20px 13px 13px;font-size:14px}}
@media(max-width:640px){.quote-form .hide-mobile{display:none!important}.quote-form{grid-template-columns:1fr!important;gap:20px}}

/* ===== 联系方式板块（每页正文末尾）===== */
.contact-block{background:var(--cream);padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--line)}

.contact-block .container{max-width:var(--max);margin:0 auto;padding:0 24px}

.contact-block .kicker{color:#9A735A;font-size:13px;letter-spacing:.2em;margin-bottom:14px}

.contact-value.placeholder{color:#a08b7d;font-weight:500;border-bottom:1px dashed #c9b7a8}
@media(max-width:640px){
.contact-block{padding:48px 0}
.contact-block .container{padding:0 18px}
.contact-grid{grid-template-columns:1fr}
.contact-head{margin-bottom:28px}}

.wc-toast{position:fixed;left:50%;bottom:104px;transform:translate(-50%,18px);z-index:9999;display:flex;align-items:center;gap:10px;padding:13px 22px;background:var(--ink);color:#f7f5f0;font-size:14px;line-height:1.4;border-radius:999px;box-shadow:0 10px 34px rgba(24,33,31,.26);opacity:0;pointer-events:none;transition:opacity .26s ease,transform .26s cubic-bezier(.22,.8,.24,1);max-width:calc(100vw - 40px)}

.wc-toast.on{opacity:1;transform:translate(-50%,0)}

.wc-toast-dot{width:7px;height:7px;border-radius:50%;background:#7fd1a8;flex:0 0 auto}

.wc-toast-dot.fail{background:#e4735a}
@media(max-width:640px){.wc-toast{bottom:84px;font-size:13px;padding:12px 18px;max-width:calc(100vw - 32px)}}
@media(prefers-reduced-motion:reduce){.wc-toast{transition:opacity .01s linear}}

/* ===== 灵感页图片：hover 动态效果 + 点击放大 ===== */
/* --- 1. 卡片 hover 动态 --- */
.case-grid .case{cursor:zoom-in}

.case-grid .case img{transition:transform .7s cubic-bezier(.22,.8,.24,1),filter .5s ease}

.case-grid .case:hover img{transform:scale(1.07)}

.case:after{transition:background .45s ease,opacity .45s ease}

.case-grid .case:hover:after{background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.06) 62%,transparent)}

.case-grid .case .case-label{transition:transform .5s cubic-bezier(.22,.8,.24,1)}

.case-grid .case:hover .case-label{transform:translateY(-6px)}

.case-grid .case h3{transition:letter-spacing .5s ease}

.case-grid .case:hover h3{letter-spacing:.012em}

.case-grid .case .kicker{transition:color .4s ease,opacity .4s ease}

.case-grid .case:hover .kicker{color:#e8b98f;opacity:1}

/* 放大按钮（右上角） */
.case-grid .case .case-zoom{position:absolute;top:16px;right:16px;z-index:2;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(24,33,31,.34);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;opacity:0;transform:scale(.86) translateY(-4px);transition:opacity .38s ease,transform .38s cubic-bezier(.22,.8,.24,1),background .3s ease}

.case-grid .case:hover .case-zoom,.case-grid .case:focus-visible .case-zoom{opacity:1;transform:scale(1) translateY(0)}

.case-grid .case .case-zoom svg{width:19px;height:19px;display:block}

.case-grid .case:hover .case-zoom{background:rgba(24,33,31,.5)}

/* 键盘可达 */
.case-grid .case:focus-visible{outline:2px solid #d9a27b;outline-offset:4px}

/* --- 2. 图片灯箱 --- */
.wc-lightbox{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:clamp(20px,5vw,72px);background:rgba(16,22,20,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .34s ease}

.wc-lightbox.on{opacity:1;pointer-events:auto}

.wc-lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 30px 90px rgba(0,0,0,.5);transform:scale(.94);opacity:0;transition:transform .42s cubic-bezier(.22,.8,.24,1),opacity .34s ease}

.wc-lightbox.on img{transform:scale(1);opacity:1}

.wc-lightbox-close{position:absolute;top:clamp(16px,3vw,30px);right:clamp(16px,3vw,30px);width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(38,58,54,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:26px;line-height:1;cursor:pointer;transition:background .25s ease,transform .25s ease}

.wc-lightbox-close:hover{background:rgba(233,115,90,.72);transform:rotate(90deg)}

.wc-lightbox-cap{position:absolute;left:0;right:0;bottom:clamp(18px,3.4vw,34px);text-align:center;color:rgba(247,245,240,.82);font-size:14px;letter-spacing:.02em;padding:0 24px}

.wc-lightbox-cap b{display:block;font-weight:400;font-size:clamp(16px,1.3vw,20px);color:#f7f5f0;margin-bottom:3px}

.wc-lightbox-count{position:absolute;top:clamp(20px,3.4vw,34px);left:clamp(20px,3.4vw,34px);color:rgba(247,245,240,.6);font-size:13px;letter-spacing:.08em}

.wc-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(38,58,54,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:20px;cursor:pointer;transition:background .25s ease,transform .25s ease}

.wc-lightbox-nav:hover{background:rgba(217,162,123,.7)}

.wc-lightbox-nav.prev{left:clamp(12px,2.6vw,26px)}

.wc-lightbox-nav.next{right:clamp(12px,2.6vw,26px)}

.wc-lightbox-nav.prev:hover{transform:translateY(-50%) translateX(-3px)}

.wc-lightbox-nav.next:hover{transform:translateY(-50%) translateX(3px)}

body.wc-lightbox-open{overflow:hidden}
@media(max-width:640px){
  .wc-lightbox{padding:14px}
  .wc-lightbox-nav{width:40px;height:40px;font-size:17px}
  .wc-lightbox-close{width:42px;height:42px;font-size:22px}
  .case-grid .case{cursor:pointer}}
@media(prefers-reduced-motion:reduce){
  .case-grid .case img,.case-grid .case .case-label,.case:after,.case-grid .case .case-zoom,.wc-lightbox,.wc-lightbox img{transition-duration:.01s!important}
  .case-grid .case:hover img{transform:none}}

/* ===== 全站收紧：正文末尾 → 联系方式 的垂直间距 =====
   原状：最后一屏内容到「联系方式」小字实测 202px
         （.section 底部 105px + .contact-block 顶部 96px 叠加）
   现改为：区块底部 28px + 联系方式顶部 28px ≈ 56px，贴近但不拥挤。
   仅调整与联系方式相接的最后一个 section，不影响其它档位间距。 */
.contact-block{padding-top:28px!important}

.contact-block .contact-head{margin-bottom:30px!important}

/* 紧邻联系方式的最后一个 section：收掉底部内边距 */
main > .section:last-of-type,
main > section.section:last-of-type,
.section:has(+ .contact-block){padding-bottom:28px!important}

/* 档案区网格 */

/* 图片档案区块（cream 底）与联系方式的衔接 */
.section.cream:has(+ .contact-block){padding-bottom:28px!important}

/* 移动端进一步收紧 */
@media(max-width:768px){
  .contact-block{padding-top:24px!important}
  main > .section:last-of-type,
  main > section.section:last-of-type,
  .section:has(+ .contact-block){padding-bottom:24px!important}
  .section.cream:has(+ .contact-block){padding-bottom:24px!important}
}

/* ===== 全站收紧 v2：通用命中「联系方式前一个兄弟区块」 =====
   v1 的 .section:last-of-type 只能命中标准 .section，
   对 panel-web-set / ceiling-scenes / factory-line / support-request 等自定义类名无效，导致部分页间距为 0。
   这里改用 :has(+ .contact-block) 相邻兄弟选择器，无论前一区块叫什么名字都能命中。
   注意：不使用 .contact-block ~ *，避免误伤其后的 footer。 */
main > *:has(+ .contact-block),
section:has(+ .contact-block),
div:has(+ .contact-block),
article:has(+ .contact-block){padding-bottom:28px!important}

/* 联系方式本身顶部统一 28px（此块最后声明，优先级最高） */
.contact-block{padding-top:28px!important}
@media(max-width:768px){
  main > *:has(+ .contact-block),
  section:has(+ .contact-block),
  div:has(+ .contact-block),
  article:has(+ .contact-block){padding-bottom:24px!important}
  .contact-block{padding-top:24px!important}}

/* ===== 全站收紧 v3：补齐普通块级元素（.cta 等非 section 节点） =====
   v2 的 :has() 只写在 section/div/article 上，index.html 末尾是 .cta.quote-form-section，
   需要让它也命中。这里用 `*:has(+ .contact-block)` 覆盖所有标签类型。 */
*:has(+ .contact-block){padding-bottom:28px!important}
@media(max-width:768px){
  *:has(+ .contact-block){padding-bottom:24px!important}}

/* ===== 全站收紧 v4：覆盖高优先级的 ID 规则 =====
   index.html 末尾区块是 .cta#quote.quote-form-section，原规则
     #quote.quote-form-section{padding:56px 0 72px!important}

   带 ID 选择器，优先级高于 v3 的 *:has()。
   这里用同等的 ID 级选择器覆盖底部 padding，使其与其它 6 页统一为 28px。 */
#quote.quote-form-section{padding-bottom:28px!important}

main > #quote.quote-form-section{padding-bottom:28px!important}

.cta.quote-form-section{padding-bottom:28px!important}
@media(max-width:768px){
  #quote.quote-form-section{padding-bottom:24px!important}
main > #quote.quote-form-section{padding-bottom:24px!important}
.cta.quote-form-section{padding-bottom:24px!important}}

/* ===================================================================
   全站收紧 v5：压掉「区块之间」的多余留白（第二轮，全站统一 56px）
   -------------------------------------------------------------------
   背景：用户反馈「这里空白太大了」。
   实测根源有两条：
     A. 各页 hero 底部的 78px，来自 HTML 内联 <style> 里的
        .fullscreen-page-hero{padding:150px 8vw 78px!important}

        它与下一个区块的 padding-top 叠加，形成 124~201px 的空档。
     B. .section{padding:105px 0}

 这类全局档位，两块相加就是 210px。

   策略：以「区块相邻关系」精确命中，不做全局砍档位，
        避免误伤区块内部的行距与容器留白。
   目标：相邻区块之间的视觉间距 ≈ 56px（上下各 28px）。
   =================================================================== */

/* --- 1. hero 区块：底部统一收到 28px -------------------------------
   hero 底部原本 78px，来源是各页 HTML 内联 <style> 中的
     .fullscreen-page-hero{padding:150px 8vw 78px!important}

   内联样式位于 <head> 内 styles.css 之后，同级 !important 下它胜出。
   因此这里用「双类选择器 + 属性选择器」把优先级抬上去，
   不修改 HTML，保持「去旧存新」可回退。 */
section.fullscreen-page-hero[class],
.fullscreen-page-hero.fullscreen-page-hero{padding-bottom:28px!important}

/* --- 2. hero 之后的首个区块：顶部统一 28px ------------------------- */
.fullscreen-page-hero + *{padding-top:28px!important}

/* --- 3. index 首页：区块之间的衔接 --------------------------------- */
/* hero → products（原 130px） */
.hero + .section,
.hero + #products{padding-top:28px!important}

/* 产品区 → 优势区（原 105px） */
.section + .advantages-section{padding-top:28px!important}

/* 优势区 → 材料区（原 210px） */
.advantages-section{padding-bottom:28px!important}

.materials-section{padding-top:28px!important}

.materials-section{padding-bottom:28px!important}

/* 材料区 → 工艺区（原 210px） */
.process-section{padding-top:28px!important}

.process-section{padding-bottom:28px!important}

/* 工艺区 → cream 区（原 210px） */
.section.cream{padding-top:28px!important}

.section.cream{padding-bottom:28px!important}

/* cream 区 → 下一个 section（原 210px） */
.section.cream + .section{padding-top:28px!important}

/* 末段 section → 询价表单（原 161px）
   .cta#quote.quote-form-section 的顶部 padding 由 ID 规则定义，
   优先级高于类选择器，这里用同等 ID 级选择器覆盖。 */
.section + .cta.quote-form-section{padding-top:28px!important}

.section + #quote.quote-form-section{padding-top:28px!important}

#quote.quote-form-section{padding-top:28px!important}

/* --- 4. 通用兜底：任何紧邻的兄弟区块 -------------------------------
   对未逐一列举的组合也生效，避免以后再出现 200px 级的空档。
   用 :has() 只命中「自己后面还跟着另一个区块」的元素，
   不会碰到最后一个区块（那部分已由 v1~v4 单独处理为 28px）。 */
main > .section:has(+ .section),
main > .section:has(+ .advantages-section),
main > .section:has(+ .materials-section),
main > .section:has(+ .process-section),
main > .section:has(+ .cta),
main > section:has(+ section),
main > section:has(+ .cta){padding-bottom:28px!important}

/* --- 5. 墙板页：产品库 hero → 系列区块（原 110px） -----------------
   .panel-web-set 的 padding 由 titlebar-unify.js 注入
   （padding-top/bottom:32px!important），这里同步为 28px。 */
.panel-web-catalog{padding-bottom:28px!important}

.panel-web-set + .panel-web-set{padding-top:28px!important}

/* --- 7. 门页：hero → 门系列（原 188px） ----------------------------
   .door-series 底部由 titlebar-unify.js 注入为 0，
   这里只压上面这块的顶部，让门系列紧跟 hero。 */
.doors-hero + .door-series{padding-top:28px!important}

/* --- 8. 灵感页：hero → 首屏图片区（原 152px） ---------------------- */
.page-hero + .audience-section{padding-top:28px!important}

/* 首屏图片区 → cream 区块（原 201px，用户截图所指） */
.audience-section{padding-bottom:28px!important}

.audience-section + .section.cream{padding-top:28px!important}

/* --- 9. 服务与支持页：hero → 服务项（原 124px） -------------------- */
.support-hero + .support-services{padding-top:28px!important}

/* 服务项 → 需求表单（原 175px） */
.support-services{padding-bottom:28px!important}

.support-services:has(+ .support-request){padding-bottom:28px!important}

/* --- 10. 移动端：进一步收紧到 24px --------------------------------- */
@media(max-width:800px){
  section.fullscreen-page-hero[class],
  .fullscreen-page-hero.fullscreen-page-hero{padding-bottom:24px!important}
  .fullscreen-page-hero + *{padding-top:24px!important}
  .hero + .section,
  .hero + #products{padding-top:24px!important}
  .section + .advantages-section{padding-top:24px!important}
  .advantages-section{padding-bottom:24px!important}
  .materials-section{padding-top:24px!important;padding-bottom:24px!important}
  .process-section{padding-top:24px!important;padding-bottom:24px!important}
  .section.cream{padding-top:24px!important;padding-bottom:24px!important}
  .section.cream + .section{padding-top:24px!important}
  .section + .cta.quote-form-section{padding-top:24px!important}
  .section + #quote.quote-form-section{padding-top:24px!important}
  #quote.quote-form-section{padding-top:24px!important}
  .panel-web-catalog{padding-bottom:24px!important}
  .panel-web-set + .panel-web-set{padding-top:24px!important}
  .ceiling-detail{padding-bottom:24px!important}
  .ceiling-scenes{padding-top:24px!important}
  .doors-hero + .door-series{padding-top:24px!important}
  .page-hero + .audience-section{padding-top:24px!important}
  .audience-section{padding-bottom:24px!important}
  .audience-section + .section.cream{padding-top:24px!important}
  .support-hero + .support-services{padding-top:24px!important}
  .support-services{padding-bottom:24px!important}
  .support-request{padding-top:24px!important}
}

/* ===================================================================
   手机版导航修复（v6）
   -------------------------------------------------------------------
   问题：窄屏下 .nav 仍横向排开，7 个菜单项 + 语言/菜单按钮挤不下，
        「首页 墙板 吊顶 门 …」后半截被截断（用户截图反馈）。
   根因：.menu 按钮全局 display:none，且从未在任何断点被显示；
        JS 早已写好 .nav.open 的开关逻辑（script.js 里
        menu.addEventListener('click',()=>nav.classList.toggle('open'))），
        但 CSS 里完全没有 .nav.open 的样式 —— 属于纯 CSS 缺失。
   方案：≤900px 时隐藏横向 .nav，显示 .menu 汉堡按钮；
        点击后 .nav.open 以浮层形式展开，纵向排列。
   =================================================================== */

@media(max-width:900px){
  /* --- 容器：给右侧按钮留位 --- */
  .header .container,
  .home-header .container{position:relative;gap:10px;padding-left:16px;padding-right:16px}

  /* --- 隐藏横向导航，改为浮层 --- */
  .nav,
  .home-header .nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:30;
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    max-height:min(78vh,620px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:8px 0;
    background:rgb(251,250,247);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 40px rgba(24,33,31,.16);
    opacity:0;
    transform:translateY(-8px);
    transition:opacity .24s ease,transform .24s ease;
  }
  /* 展开状态 */
  .nav.open,
  .home-header .nav.open{
    display:flex;
    opacity:1;
    transform:translateY(0);
  }

  /* --- 菜单项：整行可点，左对齐 --- */
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    display:block;
    width:100%;
    padding:15px 20px;
    font-size:16px;
    font-weight:500;
    line-height:1.35;
    letter-spacing:.02em;
    border-radius:0;
    text-align:left;
    color:#1f302c!important;
    background:rgb(251,250,247);
    border-bottom:1px solid rgba(38,58,54,.12);
    transform:none!important;
    box-shadow:none!important;
  }
  .nav a:last-child{border-bottom:0}
  /* 取消悬停位移与光晕（移动端不需要） */
  .nav a:hover,
  .home-header .nav a:hover,
  .header:not(.home-header) .nav a:hover{
    transform:none!important;
    background:rgba(217,162,123,.22)!important;
    color:#1f302c!important;
    box-shadow:none!important;
  }
  /* 下划线指示条改为左侧竖条 */
  .nav a:after,
  .home-header .nav a:after,
  .header:not(.home-header) .nav a:after{
    left:0!important;
    bottom:auto!important;
    top:12px!important;
    width:3px!important;
    height:calc(100% - 24px)!important;
    background:var(--accent)!important;
    opacity:0;
    transition:opacity .2s ease;
  }
  .nav a.active:after,
  .nav a:hover:after{opacity:1;width:3px!important}
  .nav a.active{font-weight:700}

  /* --- 汉堡按钮：显示出来 --- */
  .menu{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    margin-left:2px;
    background:transparent;
    border:0;
    font-size:24px;
    line-height:1;
    color:inherit;
    cursor:pointer;
    border-radius:8px;
    -webkit-tap-highlight-color:transparent;
    transition:background .2s ease,transform .2s ease;
  }
  .menu:hover{background:rgba(0,0,0,.06)}
  .menu:active{transform:scale(.94)}
  /* 首页透明头部下按钮用白色 */
  .home-header:not(.is-scrolled) .menu{color:#fff}
  .header.is-scrolled .menu{color:var(--ink)}

  /* --- 语言按钮：收紧，避免挤占 --- */
  .lang,
  .home-header .lang{
    padding:10px 12px;
    margin-right:0!important;
    font-size:17px;
  }

  /* --- 导航展开时锁定页面滚动由 JS 可选处理，这里保证层级正确 --- */
  .header{z-index:40}
}

/* 更窄的屏幕：进一步压缩按钮与字号 */
@media(max-width:480px){
  .lang,
  .home-header .lang{padding:8px 10px;font-size:16px}
  .menu{width:38px;height:38px;font-size:22px}
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{padding:14px 16px;font-size:15px}
}

/* 极窄屏（如 320px）：品牌字标略缩，防止挤爆 */
@media(max-width:360px){
  .header .logo{font-size:17px}
  .header .logo img,.brand-logo{height:26px}
}

/* ===================================================================
   手机版导航修复 v6.1：品牌 logo 弹性缩放 + 展开态遮罩
   -------------------------------------------------------------------
   问题：.brand-logo 是固定 width:210px!important，窄屏不缩。
        390px 视口下 logo(210) + 语言按钮 + 汉堡按钮 会顶出屏幕，
        灵感页(cases.html) 尤为明显（按钮右边缘 397 > 视口 390）。
   方案：≤900px 时让 logo 改为「弹性宽度」，按视口自适应缩小。
   =================================================================== */

@media(max-width:900px){
  /* --- logo 不再固定 210px，改为随视口缩放 --- */
  .brand-logo,
  .header .logo img{
    width:clamp(150px,46vw,190px)!important;
    height:auto!important;
    max-width:100%!important;
  }
  .header .logo,
  .home-header .logo{flex:0 1 auto;min-width:0;max-width:56%}
  .header .logo img{display:block}
  /* actions 不压缩、不换行 */
  .actions{
    flex:0 0 auto;
    margin-left:auto;
    gap:6px;
  }

  /* --- 展开态遮罩：已由 script.js 注入的独立节点 .wc-nav-scrim 承担 ---
     （早期这里有一层 .nav.open:before 的 fixed 遮罩，
       它与 .wc-nav-scrim 叠在一起产生双重 backdrop-filter 模糊，
       导致菜单打开时整页"雾蒙蒙"。此处停用，保留注释以便追溯。） */
  .nav.open:before{
    display:none!important;
  }
}
@media(max-width:480px){
  .brand-logo,
  .header .logo img{width:clamp(140px,44vw,175px)!important}}
@media(max-width:360px){
  .brand-logo,
  .header .logo img{width:clamp(126px,42vw,155px)!important}}

/* ===================================================================
   服务页 hero 元数据：窄屏回归文档流
   -------------------------------------------------------------------
   .fullscreen-page-hero .support-hero-meta 由 HTML 内联样式定义为
     position:absolute; right:8vw; bottom:78px; width:min(360px,30vw)
   以右侧为锚点，窄屏下从右边撑出视口（360px 溢出 31px / 320px 溢出 71px）。
   放到 ≤900px 统一处理，覆盖平板到手机的全部窄屏。
   =================================================================== */
@media(max-width:900px){
  .fullscreen-page-hero .support-hero-meta{
    position:static!important;
    right:auto!important;
    left:auto!important;
    bottom:auto!important;
    top:auto!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:26px!important;
    box-sizing:border-box!important;
    display:grid!important;
  }
  .fullscreen-page-hero .support-hero-meta span{min-width:0;overflow-wrap:anywhere}
}

/* ===================================================================
   手机版导航 v8：汉堡按钮居中 + 展开后菜单文字居中
   -------------------------------------------------------------------
   需求：汉堡菜单按钮显示在导航栏正中；展开后的菜单项文字居中。
   做法：header 容器改为三栏栅格（左 logo / 中按钮 / 右留白），
        按钮用绝对定位精确居中到视口中线。
   =================================================================== */
@media(max-width:900px){
  /* --- 汉堡按钮：绝对居中于整条导航栏 --- */
  .header .container,
  .home-header .container,
  .header:not(.home-header) .container{position:relative}

  .menu{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    transform:translate(-50%,-50%)!important;
    margin:0!important;
  }
  .menu:active{transform:translate(-50%,-50%) scale(.94)!important}

  /* --- 展开后的菜单项：文字居中 --- */
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    text-align:center!important;
    padding:15px 20px!important;
  }
  /* 当前页的橙色标识条从中线展开，居中对称 */
  .nav a:after,
  .home-header .nav a:after,
  .header:not(.home-header) .nav a:after{
    left:50%!important;
    top:auto!important;
    bottom:8px!important;
    width:0!important;
    height:2px!important;
    transform:translateX(-50%);
    transition:width .22s ease,opacity .2s ease;
  }
  .nav a.active:after,
  .nav a:hover:after{
    width:34px!important;
    left:50%!important;
    opacity:1;
  }
}
@media(max-width:480px){
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{padding:14px 16px!important}}

/* ===================================================================
   手机版导航 v9：扩大汉堡按钮的可点击范围
   -------------------------------------------------------------------
   问题：按钮本体 42×42，手指点起来偏小（推荐触控目标 ≥ 48px）。
   方案：按钮本体加大到 60×60（触控热区随之外扩），
        同时保留绝对居中；图标字号微调，视觉观感不变。
        加负外边距不生效（已绝对定位），故直接改本体尺寸。
   =================================================================== */
@media(max-width:900px){
  .menu{
    width:60px!important;
    height:60px!important;
    font-size:25px!important;
    border-radius:50%!important;
    -webkit-tap-highlight-color:transparent;
  }
  .menu:hover{background:rgba(0,0,0,.06)}
  .menu:active{transform:translate(-50%,-50%) scale(.92)!important}
}
@media(max-width:480px){
  .menu{width:56px!important;height:56px!important;font-size:24px!important}}

/* ===================================================================
   手机版导航 v10：菜单视觉升级（深色底 + 序号 + 箭头 + 中英并列）
   -------------------------------------------------------------------
   背景：展开后只有 7 行纯文字，视觉单调。
   做法：
     1. 换深墨绿背景（#1F302C），与站点主色统一，质感更强
     2. CSS 计数器自动生成 01–07 序号（无需改 HTML）
     3. 每行右侧加 → 箭头，暗示"可进入"
     4. 中英并列：JS 把另一种语言的文案渲染成副标题
     5. 展开时逐项错位淡入，替代整块弹出
   =================================================================== */
@media(max-width:900px){
  /* --- 深色底 + 内边距 --- */
  .nav,
  .home-header .nav,
  .header:not(.home-header) .nav{
    counter-reset:navi;
    padding:14px 0 18px!important;
    background:#1F302C!important;
    border-bottom:0!important;
    box-shadow:0 22px 48px rgba(12,22,19,.42)!important;
  }

  /* --- 菜单项：左侧序号 + 中央文案 + 右侧箭头 --- */
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    counter-increment:navi;
    position:relative!important;
    display:grid!important;
    grid-template-columns:44px 1fr 28px;
    align-items:center!important;
    gap:0!important;
    width:100%!important;
    min-height:54px;
    padding:12px 22px!important;
    text-align:left!important;
    color:#1f302c!important;
    background:transparent!important;
    border-bottom:1px solid rgba(38,58,54,.12)!important;
    border-radius:0!important;
    /* 入场动画初态 */
    opacity:0;
    transform:translateY(-6px);
    animation:wcNavIn .34s cubic-bezier(.22,.8,.24,1) forwards;
  }

  /* 逐项延迟，形成阶梯感 */
  .nav a:nth-child(1){animation-delay:.04s}
  .nav a:nth-child(2){animation-delay:.08s}
  .nav a:nth-child(3){animation-delay:.12s}
  .nav a:nth-child(4){animation-delay:.16s}
  .nav a:nth-child(5){animation-delay:.20s}
  .nav a:nth-child(6){animation-delay:.24s}
  .nav a:nth-child(7){animation-delay:.28s}
  .nav a:nth-child(8){animation-delay:.32s}
  @keyframes wcNavIn{
    to{opacity:1;transform:translateY(0)}
  }

  /* 序号（CSS 计数器生成） */
  .nav a:before{
    content:counter(navi,decimal-leading-zero);
    grid-column:1;
    font-size:12px;
    font-weight:400;
    letter-spacing:.12em;
    color:rgba(217,162,123,.72);
    border:0!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    opacity:1!important;
    transform:none!important;
    position:static!important;
    inset:auto!important;
  }

  /* 箭头（右侧） */
  .nav a:after{
    content:"→"!important;
    grid-column:3;
    justify-self:end;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    font-size:16px;
    line-height:1;
    color:rgba(38,58,54,.42);
    opacity:1!important;
    transform:translateX(-3px)!important;
    transition:transform .24s ease,color .24s ease!important;
  }

  /* 中文主标题 */
  .nav a .nav-text[data-lang="zh"],
  .nav a .nav-text[data-lang="en"]{
    grid-column:2;
    font-size:17px;
    font-weight:500;
    line-height:1.3;
  }

  /* 语言切换按钮在菜单里不再重复显示另一种语言 */
  body.lang-en .nav a .nav-text[data-lang="zh"],
  body:not(.lang-en) .nav a .nav-text[data-lang="en"]{
    display:none!important;
  }

  /* --- 交互：左侧橙色竖条 + 箭头右移 --- */
  .nav a:hover,
  .home-header .nav a:hover,
  .header:not(.home-header) .nav a:hover{
    background:rgba(217,162,123,.13)!important;
    color:#fff!important;
  }
  .nav a:hover:after{transform:translateX(0)!important;color:#D9A27B!important}

  /* 当前页 */
  .nav a.active{
    background:rgba(217,162,123,.16)!important;
  }
  .nav a.active:before{color:#D9A27B;font-weight:600}
  .nav a.active .nav-text{font-weight:600}
  .nav a.active:after{color:#D9A27B!important;transform:translateX(0)!important}

  /* 最后一项不要分割线 */
  .nav a:last-child{border-bottom:0!important}

  /* --- 底部品牌信息条，填满视觉 --- */
  .nav:after{
    content:"sales@wallceil.com";
    display:block;
    grid-column:1/-1;
    padding:16px 22px 2px;
    border-top:1px solid rgba(38,58,54,.14);
    margin-top:12px;
    font-size:11px;
    letter-spacing:.1em;
    color:rgba(38,58,54,.45);
  }
}
@media(max-width:480px){
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    grid-template-columns:38px 1fr 24px;
    padding:11px 18px!important;
    min-height:50px;
  }
  .nav a .nav-text[data-lang="zh"],
  .nav a .nav-text[data-lang="en"]{font-size:16px}
  .nav:after{padding-left:18px;padding-right:18px}}

/* ===================================================================
   手机版导航 v11：标题栏三段式点击区 + 展开遮罩拦截
   -------------------------------------------------------------------
   需求：
     1. 标题栏横向切三段 —— 左 logo / 中汉堡 / 右语言，每段都是整块可点
     2. 菜单展开后，下方内容不可点击
     3. 点击下方遮罩任意位置收起菜单
   做法：
     - 三段均绝对定位、各占 1/3 宽、贴满栏高，热区拉满
     - 用 .menu / .lang / .logo 自身承载点击（不新增元素，避免挡链接）
     - 遮罩由 .nav.open:before 承担：fixed 全屏 + 可点击（去掉 pointer-events:none）
   =================================================================== */
@media(max-width:900px){
  /* --- 三段式：各自铺满 1/3 宽、贴满栏高 --- */
  .header .logo,
  .home-header .logo,
  .header:not(.home-header) .logo{
    position:absolute!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:33.333%!important;
    max-width:33.333%!important;
    height:auto!important;
    display:flex!important;
    align-items:center!important;
    padding-left:16px!important;
    z-index:2;
  }
  .header .logo img{max-width:calc(100% - 20px)!important;width:auto!important}

  /* 汉堡：中间三段之一，铺满中间 1/3 并居中图标 */
  .menu{
    position:absolute!important;
    left:33.333%!important;
    top:0!important;
    width:33.334%!important;
    height:100%!important;
    transform:none!important;
    border-radius:0!important;
    font-size:25px!important;
    z-index:2;
  }
  .menu:active{transform:none!important;background:rgba(0,0,0,.06)}

  /* 语言：右侧 1/3，整块可点，内容靠右 */
  .lang,
  .home-header .lang{
    position:absolute!important;
    right:0!important;
    top:0!important;
    left:auto!important;
    width:33.333%!important;
    height:100%!important;
    padding:0 18px 0 0!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    border:0!important;
    background:transparent!important;
    border-radius:0!important;
    font-size:17px!important;
    z-index:2;
  }
  .lang:active{background:rgba(0,0,0,.06)}

  /* actions 容器不再参与布局，子元素已绝对定位 */
  .actions,
  .header .actions{
    position:static!important;
    flex:0 0 0!important;
    width:0!important;
    margin:0!important;
    gap:0!important;
  }

  /* --- 展开遮罩：铺满导航栏以下的整个视口，挡住下方内容 --- */
  /* 由 JS 插入的独立节点 .wc-nav-scrim，top 由 JS 对齐到菜单底部。
     层级关系：遮罩 35 < header 40，所以标题栏与菜单始终在遮罩之上、可点。 */
  .wc-nav-scrim{
    display:none;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:35;
    background:rgba(12,22,19,.46);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .wc-nav-scrim.on{display:block}

  /* 菜单展开时锁住页面滚动：否则滚动后标题里露出来的那半截会来回变化，观感更乱 */
  body:has(.nav.open){overflow:hidden}

  /* 标题栏提升到遮罩之上（nav 是其子元素，随父级一起在最上层） */
  .header{z-index:40!important}
}
@media(max-width:480px){
  .header .logo{padding-left:14px!important}
  .lang,.home-header .lang{padding-right:14px!important;font-size:16px!important}
  .menu{font-size:24px!important}}

/* ===================================================================
   灵感页图片卡片：窄屏留白收紧 + 内容居中（v7）
   -------------------------------------------------------------------
   问题：body:has(.case-grid) .container 固定 width:calc(100% - 72px)，
        手机端左右各留 36px，卡片显得太窄、不居中。
   方案：窄屏按视口收紧左右留白，并保证网格与卡片居中。
   =================================================================== */

/* 平板及以下：留白收紧 */
@media(max-width:900px){
  body:has(.case-grid) .container,
  body:has(.case-grid) .case-grid{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .case-grid{justify-content:center}
  .case-grid .case{margin-left:auto;margin-right:auto;width:100%!important;max-width:100%!important}
  .case-grid .case img{width:100%!important;max-width:100%!important}
}

/* 手机：进一步收到 20px */
@media(max-width:640px){
  body:has(.case-grid) .container,
  body:has(.case-grid) .case-grid{
    width:calc(100% - 20px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .case-grid{grid-template-columns:1fr!important;gap:18px}
  .case-grid .case{width:100%!important}
  .case-grid .case img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/3;
    object-fit:cover;
    object-position:center;
  }
  .case-grid .case-label{padding:16px 0 8px}
}

/* 极窄屏 */
@media(max-width:400px){
  body:has(.case-grid) .container,
  body:has(.case-grid) .case-grid{width:calc(100% - 16px)!important}
}

/* ============================================================
   v12 手机端：汉堡按钮在三段式标题栏内始终保持白色
   - 任一「段」处于 :active / :hover / :focus-visible 时
     汉堡也保持白字，避免点左段(logo)或右段(语言)时变深
   - 展开菜单后同样保持白字，与深色菜单底一致
   ============================================================ */
@media(max-width:900px){
  /* 基础：【v21 改动】手机上标题栏背景已统一为米白条，
     汉堡与语言键统一深色（原来是浅色，配合旧的深色标题栏） */
  .header .menu,
  .header .lang,
  .home-header .menu,
  .home-header .lang{
    color:#1f302c!important;
  }
  .header .menu svg,
  .header .lang svg,
  .home-header .menu svg,
  .home-header .lang svg{
    stroke:#1f302c!important;
  }

  /* 任意段被按下/悬停时，汉堡/语言键转为站点橙 */
  .header:has(.logo:active) .menu,
  .header:has(.lang:active) .menu,
  .header:has(.menu:active) .menu,
  .header:has(.logo:hover) .menu,
  .header:has(.lang:hover) .menu,
  .header:has(.menu:hover) .menu,
  .menu:hover,
  .menu:focus,
  .menu:focus-visible,
  .lang:hover,
  .lang:focus-visible{
    color:#BE6D47!important;
  }
  .header .menu:hover svg,
  .header .menu:active svg,
  .header .lang:hover svg,
  .header .lang:active svg{
    stroke:#BE6D47!important;
  }

  /* 【v21 改动】原来这里给已滚动状态的 menu/lang 铺了深墨绿底 + 白字，
     那是标题栏还是深色时候的方案。现在标题栏统一为米白底，
     深色块反而把标题栏"切成"1/3 白 + 2/3 墨绿，视觉割裂。
     改为透明底 + 深色字，与标题栏融为一体。 */
  .header.is-scrolled .menu,
  .header.is-scrolled .lang,
  .header.home-header.is-scrolled .menu,
  .header.home-header.is-scrolled .lang{
    color:#1f302c!important;
    background:transparent!important;
    border-radius:0!important;
  }
  .header.is-scrolled .menu svg,
  .header.is-scrolled .lang svg{
    stroke:#1f302c!important;
  }
  .header.is-scrolled .menu:hover,
  .header.is-scrolled .menu:focus-visible,
  .header.is-scrolled .lang:hover,
  .header.is-scrolled .lang:focus-visible{
    background:rgba(217,162,123,.18)!important;
    color:#BE6D47!important;
  }
  .header.is-scrolled .menu:hover svg,
  .header.is-scrolled .lang:hover svg{
    stroke:#BE6D47!important;
  }

  /* 菜单展开期间按钮转为站点橙（标题栏已是米白底） */
  .header:has(.nav.open) .menu,
  .home-header .nav.open ~ .actions .menu{
    color:#BE6D47!important;
  }
  .header:has(.nav.open) .menu svg{
    stroke:#BE6D47!important;
  }
}

/* ============================================================
   v13 桌面端：顶部导航拉开间距 + 字号加大（手机端 900px 以下不受影响）
   覆盖原有 gap:clamp(2px,0.6vw,12px) / font-size:12px 的紧凑设定
   ============================================================ */
@media(min-width:901px){
  .header .nav,
  .home-header .nav,
  .header:not(.home-header) .nav{
    gap:clamp(18px,1.9vw,44px)!important;
  }
  /* 【等宽】导航项统一占位宽度，七项整体居中。
     原宽度跟着文字走（"门"窄、"服务与支持"宽），点击热区与
     悬停高亮块宽窄参差。这里统一占位：
     最长项是「服务与支持」（5 个汉字），故按 5em 留位，
     保证所有标题都放得下、不折行。
     注：不用 flex:1 平分，那会按容器宽度把各项撑开、间距散得很远。 */
  .header .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    flex:0 0 auto!important;
    width:calc(5em + 20px)!important;
    min-width:calc(5em + 20px)!important;
    max-width:calc(5em + 20px)!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:nowrap!important;
    font-size:clamp(15px,1.03vw,18px)!important;
    padding:8px 10px!important;
    letter-spacing:.02em!important;
    box-sizing:border-box!important;
  }
  /* 下划线：隐藏态 width:0，悬停/当前页时展开到内容区宽度
     （padding 左右各 10px，故内容区 = 100% - 20px）。
     注意不要用 left/right + width:auto —— 那会让未悬停时也显示出来。 */
  .home-header .nav a:after{left:10px!important;bottom:2px!important}
  .header:not(.home-header) .nav a:after{left:10px!important;bottom:10px!important}
  .home-header .nav a:hover:after,
  .home-header .nav a.active:after{width:calc(100% - 20px)!important}
  .header:not(.home-header) .nav a:hover:after,
  .header:not(.home-header) .nav a.active:after{width:calc(100% - 20px)!important}
  .header .lang,
  .home-header .lang,
  .header:not(.home-header) .lang{
    font-size:clamp(16px,1.05vw,19px)!important;
  }
}
@media(min-width:901px) and (max-width:1180px){
  .header .nav,
  .home-header .nav{gap:clamp(14px,1.5vw,26px)!important}
  .header .nav a,
  .home-header .nav a{font-size:15px!important;padding:8px 10px!important}
  .home-header .nav a:after,
  .header:not(.home-header) .nav a:after{left:10px!important}
  .home-header .nav a:hover:after,
  .header:not(.home-header) .nav a:hover:after{width:calc(100% - 20px)!important}}

/* ============================================================
   v14 修复：901–1080px 窄桌面/横向平板区间汉堡按钮变黑看不见
   ------------------------------------------------------------
   根因：menu 的手机样式定义在 @media(max-width:900px) 内，
        窗口宽 901–1080px 时手机规则失效，汉堡回落到桌面默认
        color:inherit（.header 为深色底 → 黑字深底，视觉不可见）。
   方案：把这段区间也视为「窄屏」，让汉堡与语言键统一浅色，
        并同步应用三段式布局，保证与手机端观感一致。
   ============================================================ */
@media(min-width:901px) and (max-width:1160px){
  /* --- 【v21 改动】汉堡与语言键统一深色（标题栏已是米白底） --- */
  .header .menu,
  .home-header .menu,
  .header:not(.home-header) .menu,
  .header .lang,
  .home-header .lang,
  .header:not(.home-header) .lang{
    color:#1f302c!important;
  }
  .header .menu svg,
  .header .lang svg,
  .home-header .menu svg,
  .home-header .lang svg{
    stroke:#1f302c!important;
  }
  .header .menu:hover,
  .header .menu:focus,
  .header .menu:focus-visible,
  .menu:hover,.menu:active,.menu:focus-visible,
  .header .lang:hover,
  .header .lang:focus-visible{
    color:#BE6D47!important;
  }
  .header .menu:hover svg,
  .header .menu:active svg,
  .header .lang:hover svg,
  .header .lang:active svg{
    stroke:#BE6D47!important;
  }
  /* 【v21 改动】同手机端：标题栏已是米白底，取消深色块 + 白字，
     改为透明底 + 深色字（宽屏 >1080px 仍保留原透明栏逻辑，见下方断点） */
  .home-header:not(.is-scrolled) .menu{color:#1f302c!important}
  .header.is-scrolled .menu,
  .header.is-scrolled .lang{
    color:#1f302c!important;
    background:transparent!important;
    border-radius:0!important;
  }
  .header.is-scrolled .menu svg,
  .header.is-scrolled .lang svg{
    stroke:#1f302c!important;
  }
  .header.is-scrolled .menu:hover,
  .header.is-scrolled .lang:hover{
    background:rgba(217,162,123,.18)!important;
    color:#BE6D47!important;
  }
  .header.is-scrolled .menu:hover svg,
  .header.is-scrolled .lang:hover svg{
    stroke:#BE6D47!important;
  }
  /* 菜单展开时按钮保持站点橙（与手机端一致） */
  .header:has(.nav.open) .menu{color:#BE6D47!important}
  .header:has(.nav.open) .menu svg{stroke:#BE6D47!important}

  /* --- 【根本修复】横向导航收成下拉浮层，与手机端（≤900px）完全一致 ---
     这段区间采用的也是「汉堡 + 下拉面板」的窄屏交互，但 v14 当初
     只搬了三段式绝对定位，漏搬了手机段里「隐藏横向 .nav」这两条，
     导致横向导航照旧横排、和绝对定位到中间的汉堡叠在一起
     （用户截图里"关于我们"被汉堡压住就是这个原因）。
     下面补上与手机端同款的两条规则：默认收起，展开时显示。 */
  .header .nav,
  .home-header .nav,
  .header:not(.home-header) .nav{
    position:absolute!important;
    top:100%!important;
    left:0!important;
    right:0!important;
    z-index:30!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:0!important;
    max-height:min(78vh,620px)!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    opacity:0;
    transform:translateY(-8px);
    transition:opacity .24s ease,transform .24s ease;
  }
  /* 展开状态 */
  .header .nav.open,
  .home-header .nav.open,
  .header:not(.home-header) .nav.open{
    display:flex!important;
    opacity:1;
    transform:translateY(0);
  }

  /* --- 【根本修复·续】下拉菜单项的排版，与手机端（≤900px）完全对齐 ---
     同样是因为 v14 只搬了定位没搬样式：这段区间展开后菜单项
     原本沿用桌面横排的样式，成了光秃秃的居中文字，
     没有序号、箭头、浅色面板底，和手机端观感两回事。
     下面补齐手机端那套：序号 + 左对齐标题 + 右侧箭头 + 面板底色。 */
  .header .nav,
  .home-header .nav,
  .header:not(.home-header) .nav{
    counter-reset:navi;
    padding:8px 0!important;
    background:rgb(251,250,247)!important;
    border-bottom:1px solid rgba(38,58,54,.12)!important;
    box-shadow:0 18px 40px rgba(24,33,31,.16)!important;
  }
  .header .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    counter-increment:navi;
    position:relative!important;
    display:grid!important;
    grid-template-columns:44px 1fr 28px;
    align-items:center!important;
    gap:0!important;
    width:100%!important;
    min-height:54px;
    padding:12px 22px!important;
    text-align:left!important;
    font-size:16px!important;
    color:#1f302c!important;
    background:transparent!important;
    border-bottom:1px solid rgba(38,58,54,.12)!important;
    border-radius:0!important;
    transform:none!important;
    opacity:1;
    animation:none;
  }
  .header .nav a:hover,
  .home-header .nav a:hover,
  .header:not(.home-header) .nav a:hover{
    background:rgba(217,162,123,.18)!important;
    color:#1f302c!important;
    transform:none!important;
  }
  /* 左侧序号 */
  .header .nav a:before,
  .home-header .nav a:before,
  .header:not(.home-header) .nav a:before{
    content:counter(navi,decimal-leading-zero);
    grid-column:1;
    font-size:12px;
    font-weight:400;
    letter-spacing:.12em;
    color:rgba(190,109,71,.85)!important;
    border:0!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    opacity:1!important;
    transform:none!important;
    position:static!important;
    inset:auto!important;
    left:auto!important;
    bottom:auto!important;
  }
  /* 右侧箭头 */
  .header .nav a:after,
  .home-header .nav a:after,
  .header:not(.home-header) .nav a:after{
    content:"→"!important;
    grid-column:3;
    justify-self:end;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    font-size:16px;
    line-height:1;
    color:rgba(38,58,54,.42)!important;
    opacity:1!important;
    transform:translateX(-3px)!important;
    transition:transform .24s ease,color .24s ease!important;
  }
  .header .nav a:hover:after,
  .home-header .nav a:hover:after{
    transform:translateX(0)!important;
    color:#BE6D47!important;
  }
  /* 当前页高亮，与手机端一致 */
  .header .nav a.active,
  .home-header .nav a.active,
  .header:not(.home-header) .nav a.active{
    background:rgba(217,162,123,.22)!important;
  }
  .header .nav a.active:before,
  .home-header .nav a.active:before{color:#D9A27B!important;font-weight:600}
  .header .nav a.active .nav-text,
  .home-header .nav a.active .nav-text{font-weight:600}
  .header .nav a.active:after,
  .home-header .nav a.active:after{
    color:#D9A27B!important;
    transform:translateX(0)!important;
  }
  .header .nav a .nav-text[data-lang="zh"],
  .header .nav a .nav-text[data-lang="en"],
  .home-header .nav a .nav-text[data-lang="zh"],
  .home-header .nav a .nav-text[data-lang="en"]{
    grid-column:2;
    font-size:17px;
    font-weight:500;
    line-height:1.3;
  }
  .header .nav a:last-child,
  .home-header .nav a:last-child{border-bottom:0!important}
  /* 底部品牌信息条，与手机端一致 */
  .header .nav:after,
  .home-header .nav:after,
  .header:not(.home-header) .nav:after{
    content:"sales@wallceil.com";
    display:block;
    padding:16px 22px 2px;
    border-top:1px solid rgba(38,58,54,.14);
    margin-top:12px;
    font-size:11px;
    letter-spacing:.1em;
    color:rgba(38,58,54,.45);
  }
  .header .container,
  .home-header .container,
  .header:not(.home-header) .container{position:relative}
  .header .logo,
  .home-header .logo,
  .header:not(.home-header) .logo{
    position:absolute!important;
    left:0!important;top:0!important;bottom:0!important;
    width:33.333%!important;max-width:33.333%!important;height:auto!important;
    display:flex!important;align-items:center!important;
    padding-left:18px!important;z-index:2;
  }
  .menu{
    position:absolute!important;
    left:33.333%!important;top:0!important;
    width:33.334%!important;height:100%!important;
    display:inline-flex!important;
    align-items:center!important;justify-content:center!important;
    transform:none!important;border-radius:0!important;
    margin:0!important;background:transparent!important;border:0!important;
    font-size:25px!important;cursor:pointer;z-index:2;
  }
  .menu:active{transform:none!important;background:rgba(255,255,255,.1)!important}
  .lang,
  .home-header .lang,
  .header:not(.home-header) .lang{
    position:absolute!important;
    right:0!important;left:auto!important;top:0!important;
    width:33.333%!important;height:100%!important;
    padding:0 20px 0 0!important;margin:0!important;
    display:flex!important;align-items:center!important;justify-content:flex-end!important;
    border:0!important;background:transparent!important;border-radius:0!important;
    font-size:17px!important;z-index:2;
  }
  .actions,
  .header .actions{
    position:static!important;flex:0 0 0!important;
    width:0!important;margin:0!important;gap:0!important;
  }
  .header{z-index:40!important}
}

/* ============================================================
   v15 还原：手机端菜单回归浅色底（取消深墨绿 #1F302C）
   ------------------------------------------------------------
   需求：恢复白色背景，不要绿色背景；文字颜色一并还原。
   做法：用 v10 之后的位置覆盖回浅色方案 ——
         背景 rgb(251,250,247) / 文字 #1f302c / 序号与箭头用站点主色
   ============================================================ */
@media(max-width:900px){
  /* --- 菜单容器：回到米白底 + 浅色描边 --- */
  .nav,
  .home-header .nav,
  .header:not(.home-header) .nav{
    background:rgb(251,250,247)!important;
    border-bottom:1px solid var(--line)!important;
    box-shadow:0 18px 40px rgba(24,33,31,.16)!important;
    padding:8px 0!important;
  }

  /* --- 菜单项：文字回到深色，分割线回到浅灰 --- */
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a{
    color:#1f302c!important;
    background:transparent!important;
    border-bottom:1px solid rgba(38,58,54,.12)!important;
  }
  .nav a:last-child{border-bottom:0!important}

  /* --- 序号：深色调，保持层级感 --- */
  .nav a:before{
    color:rgba(190,109,71,.85)!important;
  }
  .nav a.active:before{color:var(--accent)!important}

  /* --- 箭头：深色调 --- */
  .nav a:after{
    color:rgba(38,58,54,.38)!important;
  }
  .nav a:hover:after{color:var(--accent)!important}
  .nav a.active:after{color:var(--accent)!important}

  /* --- 悬停 / 当前页：浅橙底，文字保持深色 --- */
  .nav a:hover,
  .home-header .nav a:hover,
  .header:not(.home-header) .nav a:hover{
    background:rgba(217,162,123,.18)!important;
    color:#1f302c!important;
  }
  .nav a.active{
    background:rgba(217,162,123,.22)!important;
    color:#1f302c!important;
  }
  .nav a.active .nav-text{font-weight:600}

  /* --- 底部品牌信息条：回到浅色分隔线与深色文字 --- */
  .nav:after{
    border-top:1px solid rgba(38,58,54,.14)!important;
    color:rgba(38,58,54,.45)!important;
  }
}

/* ============================================================
   v16 修复：菜单展开时「雾蒙蒙」观感
   ------------------------------------------------------------
   问题：展开后整页发糊，菜单本身也显得不干净。两个原因：
     1. 两层遮罩叠加 —— 旧的 .nav.open:before（fixed + blur2px）
        与 script.js 注入的 .wc-nav-scrim（fixed + blur2px）同时生效，
        双重 backdrop-filter 把页面糊成一片。
        → 旧的那层已在上面停用（display:none）。
     2. 遮罩透明度偏重+模糊，视觉压迫感强。
        → 改为纯色半透明，去掉 blur，让底层内容保持清晰可辨。
   另外：遮罩起始位置由「菜单底部」改为「标题栏底部」，
        避免菜单和遮罩之间出现一条断层。
   ============================================================ */
@media(max-width:900px){
  .wc-nav-scrim{
    /* 菜单只盖住标题上半截，下半截露在遮罩里：压得太浅时文字仍清晰可读，
       看起来就像「标题被截断、显示错位」。加深并加虚化，让底层内容退回背景。 */
    background:rgba(20,30,27,.78)!important;
    backdrop-filter:blur(6px)!important;
    -webkit-backdrop-filter:blur(6px)!important;
  }
  /* 菜单本体不再叠加任何额外滤镜/阴影模糊 */
  .nav.open,
  .home-header .nav.open{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
@media(min-width:901px) and (max-width:1160px){
  .wc-nav-scrim{
    /* 菜单只盖住标题上半截，下半截露在遮罩里：压得太浅时文字仍清晰可读，
       看起来就像「标题被截断、显示错位」。加深并加虚化，让底层内容退回背景。 */
    background:rgba(20,30,27,.78)!important;
    backdrop-filter:blur(6px)!important;
    -webkit-backdrop-filter:blur(6px)!important;
  }}

/* ============================================================
   v17 修复：语言按钮的彩色 emoji 地球 🌐 不跟随主题色
   ------------------------------------------------------------
   根因：🌐 是彩色 emoji，由系统 emoji 字体渲染，CSS color 对其无效，
        在深色标题栏上固定显示为蓝青色，与米白/橙的配色冲突。
   方案：HTML 里已把该 emoji 换成内联 SVG（stroke=currentColor），
        这里只补排版样式，让其与文字基线对齐、跟随主题色。
   ============================================================ */
.lang .lang-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.lang .lang-icon svg{
  display:block;
  width:18px;
  height:18px;
  stroke:currentColor;
  color:inherit;
}
@media(max-width:900px){
  .lang .lang-icon svg{width:17px;height:17px}}

/* ============================================================
   v18 修复：手机端首页标题栏「左右切色」
   ------------------------------------------------------------
   现象：截图里标题栏被分成两块 —— 左 1/3（logo 区）是米白底，
        中右 2/3 是深色，中间一条硬分界线，看着像坏了。
   根因：首页 header 有 .header.home-header{background:transparent!important}

，
        透明时露出的是它下面两个不同图层：
          · 左 1/3 是 body 的米白底（--paper）
          · 中右 2/3 是 hero 的深色照片
        v11/v14 把 logo 绝对定位后，这条分界就暴露出来了。
   方案：窄屏下给首页标题栏补一层统一底色，三块区域颜色一致。
        - 未滚动：深色半透明（与 hero 深色照片衔接，logo 白字可读）
        - 已滚动：米白实底（与浅色标题栏一致，深色字可读）
   ============================================================ */
@media(max-width:1160px){
  /* 未滚动：统一深色半透明底，三段同色 */
  .header.home-header:not(.is-scrolled){
    background:rgba(24,33,31,.58)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }
  /* 已滚动：米白实底 */
  .header.home-header.is-scrolled{
    background:rgba(251,250,247,.97)!important;
  }
  /* 非首页的其他页面标题栏本来就是深色底，这里只是补齐模糊，保持观感一致 */
  .header:not(.home-header){
    backdrop-filter:blur(12px)!important;
    -webkit-backdrop-filter:blur(12px)!important;
  }
}

/* --- 菜单项文字：再次确认是深色（浅底菜单） --- */
@media(max-width:1160px){
  .nav a,
  .home-header .nav a,
  .header:not(.home-header) .nav a,
  .nav a .nav-text{
    color:#1f302c!important;
  }
  .nav a:hover,
  .nav a.active,
  .home-header .nav a:hover,
  .home-header .nav a.active{
    color:#1f302c!important;
  }
  /* 序号与箭头用站点主色，保证在米白底上清晰 */
  .nav a:before{color:#BE6D47!important}
  .nav a:after{color:rgba(38,58,54,.42)!important}
  .nav a.active:before,
  .nav a.active:after{color:#BE6D47!important}
  .nav a:hover:after{color:#BE6D47!important}
}

/* ============================================================
   v19 统一标题栏图标风格
   ------------------------------------------------------------
   HTML 里已把汉堡的 ☰ 文字字符换成内联 SVG（stroke=currentColor），
   与语言按钮的地球 SVG 保持同一套线性风格：粗细 1.9 / 圆头端点。
   这里只补尺寸与对齐，颜色一律继承按钮的 currentColor。
   ============================================================ */
.menu svg{
  display:block;
  width:24px;
  height:24px;
  stroke:currentColor;
  color:inherit;
  pointer-events:none;
}

.menu{
  color:inherit;
}
@media(max-width:900px){
  .menu svg{width:26px;height:26px}}
@media(max-width:480px){
  .menu svg{width:24px;height:24px}}

/* 三段式区间：图标同样跟随文字色，深色/浅色标题栏都能自适应 */
@media(min-width:901px) and (max-width:1160px){
  .menu svg{width:26px;height:26px}
}

/* ============================================================
   v20 手机端标题栏统一为「菜单同色」米白底
   ------------------------------------------------------------
   需求：标题栏（含 logo 段/汉堡段/语言段）整体使用与展开列表
         完全相同的背景色 rgb(251,250,247)，不再有深浅分块。
   做法：覆盖 .header.home-header 的 transparent，强制米白实底，
         三段随之统一；图标文字改为深色以在米白底上可读。
   ============================================================ */
@media(max-width:1160px){
  /* 标题栏整体：与展开列表同色 */
  .header,
  .header.home-header,
  .header:not(.home-header),
  .header.home-header:not(.is-scrolled),
  .header.home-header.is-scrolled{
    background:rgb(251,250,247)!important;
    border-bottom:1px solid rgba(38,58,54,.12)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }

  /* 三段内容：深色文字/图标，白底上清晰 */
  .header .logo,
  .header .menu,
  .header .lang,
  .home-header .logo,
  .home-header .menu,
  .home-header .lang,
  .header:not(.home-header) .logo,
  .header:not(.home-header) .menu,
  .header:not(.home-header) .lang{
    color:#1f302c!important;
  }
  .header .menu svg,
  .header .lang svg,
  .home-header .menu svg,
  .home-header .lang svg{
    stroke:#1f302c!important;
  }
  /* 悬停/按下反馈 */
  .header .menu:hover,
  .header .menu:active,
  .header .lang:hover,
  .header .lang:active{
    color:#BE6D47!important;
  }
  .header .menu:hover svg,
  .header .menu:active svg,
  .header .lang:hover svg,
  .header .lang:active svg{
    stroke:#BE6D47!important;
  }
}

/* ===== 询盘附件上传区 =====
   同时用在首页 #quote（橙色底）与服务与支持 .resource-gate（米黄底）。
   边框与文字用半透明中性色，两种底色上都能看清，不写死具体底色。 */
.wc-upload{width:100%;margin-top:4px}

.wc-upload-label{display:block}

.wc-upload-drop{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px;border:1px dashed rgba(38,58,54,.32);border-radius:10px;
  background:rgba(255,255,255,.42);
  cursor:pointer;transition:border-color .2s ease,background .2s ease;
}

.wc-upload-drop:hover,.wc-upload-drop:focus-visible{border-color:rgba(38,58,54,.6);background:rgba(255,255,255,.66);outline:none}

.wc-upload-drop.on{border-color:#8c9d91;background:rgba(255,255,255,.82)}

.wc-upload-icon{font-size:18px;line-height:1;color:rgba(38,58,54,.55)}

.wc-upload-text{font-size:14px;color:#263a36}

.wc-upload-tips{margin-top:8px;font-size:12px;line-height:1.6;color:rgba(38,58,54,.6)}

.wc-upload-warn{margin-top:6px;font-size:12px;color:#b3261e;line-height:1.5}

.wc-upload-warn:empty{display:none}

.wc-upload-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}

.wc-upload-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border:1px solid rgba(38,58,54,.16);border-radius:8px;
  background:rgba(255,255,255,.55);font-size:13px;
}

.wc-upload-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263a36}

.wc-upload-size{flex:0 0 auto;color:rgba(38,58,54,.55);font-size:12px}

.wc-upload-del{
  flex:0 0 auto;width:22px;height:22px;line-height:1;
  border:0;border-radius:50%;background:rgba(38,58,54,.1);color:#263a36;
  font-size:15px;cursor:pointer;
}

.wc-upload-del:hover{background:rgba(38,58,54,.22)}
@media(max-width:640px){
  .wc-upload-drop{padding:14px}
  .wc-upload-text{font-size:13px}}

/* ===== 产品卡片悬停橙线：改为紧贴文字下方 =====
   原规则 #products .card:after{bottom:0}

 把 4px 橙线贴在整张卡片最底边。
   卡片高度由图片撑满（508px），文字只占下半部分，且 card-body 有 28px 内边距，
   橙线最终落在白卡与下方奶油色区块的交界线上 —— 视觉上几乎看不见
   （用户反馈"三个都看不到了"）。
   现改为：橙线从卡片底边上抬 20px，正好落在最后一行文字下方约 12px 处，
   白底之上、颜色清晰，三张卡反馈统一。

   实测依据（1440 视口，首页 #products .card）：
     原 .card-body 底内边距仅 8px，文字几乎贴到卡片底边，
     橙线无论放哪都会压到最后一行字上（实测 gap 为 -15px）。
   现做法：先把 .card-body 的底内边距补到 30px，腾出干净留白；
     橙线取 bottom:18px（3px 高），线顶距文字底约 9px，线底距卡片底 18px。
   关键：.card-body 带 z-index:2（来自早期深色大图卡设计），
     加上自身白色背景，会把橙线完全盖住（elementFromPoint 命中的是 .card-body）。
     故橙线必须显式抬高 z-index 到 3，才能浮在文字块之上。
   三个视口（1440 / 1024 / 430）实测一致。 */
#products .card-body{padding-bottom:30px!important}

#products .card:after{
  top:auto!important;
  bottom:var(--wc-card-line-offset,18px)!important;
  left:34px!important;
  right:34px!important;
  height:3px!important;
  background:var(--accent)!important;
  border-radius:2px;
  z-index:3!important;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
}

#products .card:hover:after,
#products .card:focus-visible:after{transform:scaleX(1)}

/* 窄屏：卡片内边距变小，橙线两端随之收进 */
@media(max-width:800px){
  #products .card:after{left:24px!important;right:24px!important}
}

/* ===== 首页「获取报价」区块：配色与按钮对齐「服务与支持」底部 =====
   参照对象：resources.html 的 .support-request
     · 背景  #E8DED0（米黄），原首页为 #F7F5F0（米白）
     · 按钮  background:#BE6D47 橙、color:#fff、border-radius:999px 全圆角、
             padding:18px、font-size:14px、letter-spacing:.1em、无边框、占满整行
   说明：.support-request 自身带 !important 的既有规则不动，
        仅在末尾覆盖首页 #quote 区块，保证两处视觉一致。 */
#quote.quote-form-section{
  background:#E8DED0!important;
  color:#263A36!important;
}

/* 正文与说明文字在米黄底上的对比度 */
#quote.quote-form-section .quote-copy p{color:#52635C!important}

#quote.quote-form-section .quote-copy .kicker{color:#BE6D47!important}

/* 提交按钮：改为橙色全圆角，与服务支持底部一致 */
#quote.quote-form-section .quote-form button,
#quote.quote-form-section .btn.fill{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  margin-top:22px!important;
  border:0!important;
  border-radius:999px!important;
  background:#BE6D47!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:400!important;
  letter-spacing:.1em!important;
  padding:18px!important;
  transition:background-color .25s ease,transform .25s ease,box-shadow .25s ease;
}

#quote.quote-form-section .quote-form button:hover,
#quote.quote-form-section .btn.fill:hover{
  background:#a95c39!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(26,35,31,.22);
}

/* 输入框：米黄底上用深色下划线，保持与服务支持同款极简风 */
#quote.quote-form-section .quote-form input,
#quote.quote-form-section .quote-form textarea{
  border-bottom-color:rgba(38,58,54,.45)!important;
  color:#263A36!important;
}

#quote.quote-form-section .quote-form input:focus,
#quote.quote-form-section .quote-form textarea:focus{
  border-bottom-color:#BE6D47!important;
}

/* ===== 首页报价区 placeholder 颜色修正 =====
   原值 rgba(246,241,232,.42) 是为早期深色底设计的米白半透明，
   背景改成米黄 #E8DED0 后几乎不可见（实测对比度极低）。
   改为深色半透明，与浅色背景形成清晰可读的灰绿色提示文字。 */
#quote.quote-form-section .quote-form input::placeholder,
#quote.quote-form-section .quote-form textarea::placeholder{
  color:rgba(82,99,92,.82)!important;
}

/* ===== 首页产品区：九宫格（3 行 × 3 列）=====
   结构：#products > .container > .grid-9 > a.cell × 9
     第 1 行 = 墙板（3 图），第 2 行 = 吊顶（3 图），第 3 行 = 门（3 图）
   已移除原 .section-head 标题文案，改用视觉隐藏标题保留无障碍语义。 */
.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

#products .grid-9 .cell{
  position:relative;
  display:block;
  overflow:hidden;
  background:#e9e4dc;
  aspect-ratio:1/1;              /* 每格正方形，整体呈规整九宫格 */
  text-decoration:none;
  color:#fff;
}

#products .grid-9 .cell img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s ease;
}

#products .grid-9 .cell:hover img{
  transform:scale(1.06);
  filter:saturate(1.08) contrast(1.03);
}

#products .grid-9 .cell:hover .cell-label:before{
  opacity:1;
  transform:scaleX(1);
}

/* 平板：保持 3 列，收紧间距 */
@media(max-width:1100px){
  #products .grid-9{gap:10px!important}
  #products .grid-9 .cell-label{padding:16px 14px;font-size:clamp(17px,2.2vw,22px)}
}

/* 手机：始终保持 3 列，避免「一行一个产品」的分组被拆散 */
@media(max-width:640px){
  #products .grid-9{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  #products .grid-9 .cell-label{padding:9px 8px;font-size:12px;letter-spacing:0}
  #products .grid-9 .cell-label:before{left:8px;bottom:5px;width:18px;height:1.5px}
}
@media(max-width:430px){
  #products .grid-9{gap:4px!important}
  #products .grid-9 .cell-label{padding:7px 7px;font-size:11px}
  #products .grid-9 .cell-label:before{left:7px;bottom:4px;width:15px}}

/* ============================================================
   材质故事 · 双排图片滚动（materials-stack）
   ------------------------------------------------------------
   原结构：.materials-track 单排横向自动滚动（14 张卡）
   新结构：.materials-stack > .mat-row × 2，两排各自横向自动滚动
           —— 上排向左、下排向右，形成对向流动的层次感
   ============================================================ */

/* 外层容器：纵向堆叠两排 */
.materials-stack{
  display:flex!important;
  flex-direction:column;
  gap:22px;
  width:100%;
}

/* 每一排：横向轨道，隐藏滚动条 */
.mat-row{
  display:flex;
  gap:20px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  cursor:grab;
  padding:0 40px 6px;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}

.mat-row::-webkit-scrollbar{display:none}

.mat-row:active{cursor:grabbing}

/* 卡片尺寸：双排后高度减半，宽度相应收窄 */
.materials-stack .material-card{
  flex:0 0 min(30vw,470px);
  background:#fff;
}

.materials-stack .material-image{
  height:clamp(230px,30vh,390px);
  overflow:hidden;
}

.materials-stack .material-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}

.materials-stack .material-card:hover .material-image img{transform:scale(1.07)}

.materials-stack .material-copy{padding:16px 4px 6px}

.materials-stack .material-copy h3{font-size:clamp(24px,2vw,36px)}

.materials-stack .material-copy p{font-size:16px;line-height:1.5}
@media(max-width:1100px){
  .materials-stack{gap:16px}
  .mat-row{gap:14px;padding:0 26px 5px}
  .materials-stack .material-card{flex:0 0 min(42vw,380px)}
  .materials-stack .material-image{height:clamp(190px,26vh,300px)}
  .materials-stack .material-copy h3{font-size:clamp(21px,3vw,29px)}
  .materials-stack .material-copy p{font-size:15px}}
@media(max-width:640px){
  .materials-stack{gap:10px}
  .mat-row{gap:9px;padding:0 14px 3px}
  .materials-stack .material-card{flex:0 0 min(64vw,260px)}
  .materials-stack .material-image{height:clamp(150px,21vh,210px)}
  .materials-stack .material-copy{padding:11px 2px 4px}
  .materials-stack .material-copy h3{font-size:19px;margin:3px 0 4px}
  .materials-stack .material-copy p{font-size:13px;line-height:1.45}}

/* 尊重减少动效偏好 */
@media(prefers-reduced-motion:reduce){
  .mat-row{scroll-behavior:auto}
}

/* 双排改造后：不再强制满屏高度，避免底部出现大片空白 */
.materials-section{min-height:0!important;padding:64px 0 52px!important}

.materials-section .section-head{margin-bottom:26px!important}
@media(max-width:1100px){
  .materials-section{padding:52px 0 40px!important}}
@media(max-width:640px){
  .materials-section{padding:40px 0 30px!important}
  .materials-section .section-head{margin-bottom:20px!important}}

/* 产品九宫格：贴近两侧，减少左右留白 */
#products>.container{width:calc(100% - 40px)!important;max-width:2400px!important}
@media(max-width:640px){
  #products>.container{width:calc(100% - 24px)!important}}

/* 材质故事：每排 4 张（8 个材质 × 1 张） */
.materials-stack .material-card{flex:0 0 calc((100% - 60px)/4)}

.materials-stack .material-image{height:clamp(220px,28vh,360px)}

/* 连纹：裁到左侧那面垂直连纹木饰面 */
.materials-stack .material-card.mat-crop-left .material-image img{object-position:left center}
@media(max-width:1100px){
  .materials-stack .material-card{flex:0 0 calc((100% - 42px)/4)}
  .materials-stack .material-image{height:clamp(180px,24vh,290px)}}
@media(max-width:640px){
  .materials-stack .material-card{flex:0 0 calc((100% - 9px)/2)}
  .materials-stack .material-image{height:clamp(150px,22vh,240px)}}

/* 连纹：放大并左对齐，只保留左侧那面连纹木饰面，裁掉右侧色板 */
.materials-stack .material-card.mat-crop-left .material-image{position:relative}

.materials-stack .material-card.mat-crop-left .material-image img{
  position:absolute;left:0;top:-22%;width:auto;height:144%;max-width:none;
}

/* 每排固定 4 张、静态排布，取消拖拽光标 */
.materials-stack .mat-row{cursor:default}

/* 恢复横向滚动：可拖拽 */
.materials-stack .mat-row{cursor:grab}

.materials-stack .mat-row:active{cursor:grabbing}

/* 材质故事滚动图：点击放大（悬停/聚焦时出现放大按钮） */
.materials-stack .material-card{position:relative;cursor:pointer}

.materials-stack .material-card .case-zoom{
  position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;
  display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;
  background:rgba(24,33,31,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  color:#fff;opacity:0;transform:scale(.86) translateY(-4px);pointer-events:none;
  transition:opacity .34s ease,transform .34s cubic-bezier(.22,.8,.24,1),background .28s ease;
}

.materials-stack .material-card .case-zoom svg{width:17px;height:17px;display:block}

.materials-stack .material-card:hover .case-zoom,
.materials-stack .material-card:focus-visible .case-zoom{
  opacity:1;transform:scale(1) translateY(0);pointer-events:auto;
}

.materials-stack .material-card:hover .case-zoom{background:rgba(190,109,71,.72)}

.materials-stack .material-card:focus-visible{outline:2px solid #C77A4A;outline-offset:3px}

/* ============================================================
   出口流程（FROM BRIEF TO DELIVERY）平板 / 手机排版修正
   ------------------------------------------------------------
   原来只有 ≤500px 才收成 1 列，导致 501–1024px 之间仍是 4 列，
   列宽只剩 91–184px，正文被挤成一字一行。
   现在：≤1100px 收成 2 列，≤640px 收成 1 列，标题同步缩小。
   ============================================================ */
@media(max-width:1100px){
  .process-section>.container{width:calc(100% - 56px)}
  .process-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px}
  .process-steps article{padding:0}
  .process-steps article:not(:last-child){margin-right:0}
  .process-steps .step-line{display:none}
  .process-steps p{max-width:none}
}
@media(max-width:900px){
  .process-section .section-head{display:block;margin-bottom:44px}
  .process-section .section-head .intro{margin-top:16px;max-width:none}}
@media(max-width:640px){
  .process-section>.container{width:calc(100% - 36px)}
  .process-section .section-head .h2{font-size:clamp(32px,8.4vw,44px)!important}
  .process-section .section-head .intro{font-size:17px!important}
  .process-steps{grid-template-columns:1fr;gap:26px}
  .process-steps .step-no{font-size:38px;margin-bottom:10px}
  .process-steps h3{font-size:24px}
  .process-steps p{font-size:16px;line-height:1.5}}

/* ============================================================
   优势点：全部改为图示卡片（图标 + 短标签，去掉长文案）
   让不同语言的访客一眼看懂
   ============================================================ */
.benefit-card{
  min-height:clamp(180px,20vh,240px)!important;
  padding:30px 24px 34px!important;
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:20px;
}

.benefit-card .number{
  font-size:13px!important;letter-spacing:.2em;margin:0!important;
  color:rgba(217,162,123,.8)!important;
}

.benefit-icon{
  width:clamp(54px,4.6vw,74px);height:clamp(54px,4.6vw,74px);
  color:#D9A27B;flex:0 0 auto;
}

.benefit-icon svg{width:100%;height:100%;display:block}

.benefit-card h3{
  font-size:clamp(19px,1.5vw,27px)!important;font-weight:400;line-height:1.25;
  margin:0!important;color:#F4EEE3;
}
@media(max-width:900px){
  #advantages.advantages-section .benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .benefit-card{min-height:0!important;padding:28px 20px!important;gap:16px}
  .benefit-icon{width:60px;height:60px}}
/* WC_GRID_MOBILE：窄屏单列。
   原来这两条用的是低特异性选择器（.benefits-grid / .benefit-icon），
   而本文件后面 3470 行的 `#advantages.advantages-section .benefits-grid{…repeat(3,…)!important}`
   特异性高得多 —— 结果手机上永远被钉死成 3 列：卡片只剩 83px 宽、
   52px 的圆形图标被挤到屏幕外（实测 x=-22px）、标题只能逐字换行。
   现在把选择器对齐到同前缀，特异性高于 3470 行，媒体查询内正常生效。
   另外 index.html 里 .benefits-grid 的内联 grid-template-columns 已移除
   （内联样式会压过任何非 !important 的媒体查询）。 */
@media(max-width:560px){
  #advantages.advantages-section .benefits-grid{grid-template-columns:1fr!important;gap:12px!important}
  .benefit-card{flex-direction:row!important;text-align:left;gap:18px;padding:20px!important}
  #advantages.advantages-section .benefit-icon{width:48px!important;height:48px!important;flex:0 0 auto!important}
  #advantages.advantages-section .benefit-card h3{font-size:17px!important;line-height:1.3!important}
  .benefit-card .number{display:none!important}}

/* 优势点区块：窄屏标题与介绍改为上下堆叠 */
@media(max-width:900px){
  .advantages-section .section-head{display:block!important;margin-bottom:44px}
  .advantages-section .section-head .intro{margin-top:16px;max-width:none}
}
@media(max-width:560px){
  .advantages-section .section-head .h2{font-size:clamp(32px,8.4vw,44px)!important}}

/* ============================================================
   联系表单：手机 + 平板都用简化版（邮箱 / 项目需求 / 附件）
   —— 原来只有 ≤640px 隐藏多余字段，现在延伸到 ≤1024px
   ============================================================ */
@media(max-width:1024px){
  .quote-form-section .quote-form-wrap{grid-template-columns:1fr!important;gap:40px}
  .quote-form-section .quote-form{grid-template-columns:1fr!important;gap:22px}
  .quote-form-section .quote-form .hide-mobile{display:none!important}
}
@media(max-width:640px){
  .quote-form-section .quote-form{gap:18px}}

/* ============================================================
   优势区标题块优化
   ------------------------------------------------------------
   原来标题 72px（clamp 上限 92px）过于庞大，与下方紧凑的图示卡
   不成比例；右侧介绍文案也因 space-between 飘到最右端、显得孤立。
   现在：标题收到 clamp(36px,3.4vw,58px)，介绍文案限制宽度并靠右对齐
   标题底边，整体间距收紧。
   ============================================================ */
#advantages.advantages-section .section-head{
  align-items:flex-end!important;
  gap:clamp(32px,4vw,72px)!important;
  margin-bottom:52px!important;
}

#advantages.advantages-section .section-head .h2{
  font-size:clamp(40px,3.4vw,58px)!important;
  line-height:1.08!important;
  letter-spacing:-.03em!important;
  margin-top:14px!important;
}

#advantages.advantages-section .section-head .intro{
  max-width:430px!important;
  font-size:clamp(15px,1.1vw,19px)!important;
  line-height:1.55!important;
  color:rgba(244,238,227,.7)!important;
  text-align:right;
}
@media(max-width:900px){
  #advantages.advantages-section .section-head{margin-bottom:36px!important}
  #advantages.advantages-section .section-head .intro{text-align:left;max-width:none!important}}

/* ============================================================
   优势区：去掉墨绿底 → 浅色；图标改成贴合现实的彩色徽章
   ============================================================ */
#advantages.advantages-section{
  background:#E8DED0!important;
  color:#263A36!important;
}

#advantages.advantages-section .section-head .kicker{color:#BE6D47!important}

#advantages.advantages-section .section-head .h2{color:#263A36!important}

#advantages.advantages-section .section-head .intro{color:#5C6B64!important}

/* 九宫格：白色圆角卡片 + 间距 */
#advantages.advantages-section .benefits-grid{
  gap:16px!important;
  background:transparent!important;
}

#advantages.advantages-section .benefit-card{
  background:#fff!important;
  border:1px solid rgba(38,58,54,.07)!important;
  border-radius:16px!important;
  box-shadow:0 2px 12px rgba(38,58,54,.05);
}

#advantages.advantages-section .benefit-card .number{color:rgba(38,58,54,.36)!important}

#advantages.advantages-section .benefit-card h3{color:#263A36!important}

/* 图标：彩色圆形徽章（底色为同色系浅调） */
#advantages.advantages-section .benefit-icon{
  width:clamp(64px,5.4vw,84px)!important;
  height:clamp(64px,5.4vw,84px)!important;
  border-radius:50%;
  display:grid;place-items:center;
}

#advantages.advantages-section .benefit-icon svg{width:56%;height:56%;display:block}

#advantages.advantages-section .benefit-icon[data-icon="fire"]{color:#DE6B35!important;background:#FBE9DE!important}

#advantages.advantages-section .benefit-icon[data-icon="water"]{color:#3A82C4!important;background:#E3EEF9!important}

#advantages.advantages-section .benefit-icon[data-icon="bug"]{color:#7C8C4C!important;background:#EFF2E1!important}

#advantages.advantages-section .benefit-icon[data-icon="install"]{color:#D29320!important;background:#FCF1D9!important}

#advantages.advantages-section .benefit-icon[data-icon="module"]{color:#2E9A8C!important;background:#E1F2F0!important}

#advantages.advantages-section .benefit-icon[data-icon="color"]{color:#C2547E!important;background:#FBE6EF!important}

#advantages.advantages-section .benefit-icon[data-icon="custom"]{color:#7358A6!important;background:#ECE6F7!important}

#advantages.advantages-section .benefit-icon[data-icon="eco"]{color:#3E9B4F!important;background:#E3F3E6!important}

#advantages.advantages-section .benefit-icon[data-icon="value"]{color:#C48F24!important;background:#F9EFD7!important}
@media(max-width:900px){
  #advantages.advantages-section .benefit-icon{width:64px!important;height:64px!important}}
@media(max-width:560px){
  #advantages.advantages-section .benefit-icon{width:52px!important;height:52px!important}}

/* 容器本身被 #advantages>div:last-child 设了墨绿底 + 满屏最小高度，
   这里覆盖掉，否则区块底是浅色、容器仍盖着深绿 */
#advantages.advantages-section{min-height:0!important}

#advantages.advantages-section>.container{
  background:transparent!important;
  min-height:0!important;
  padding:clamp(56px,5.6vw,92px) clamp(24px,5vw,86px)!important;
}

/* ------------------------------------------------------------
   1) 修掉标题被 .section-head * 强制成浅色的问题
      （h2 本身是深色，但内部 span 被覆盖成 #F4EEE3 → 浅底上看不见）
   2) 文字改用中性深色，不再用墨绿 #263A36
   3) 标题字号收小
   ------------------------------------------------------------ */
#advantages.advantages-section .section-head .h2,
#advantages.advantages-section .section-head .h2 *{color:#1F1C19!important}

#advantages.advantages-section .section-head .h2{
  font-size:clamp(32px,2.7vw,44px)!important;
  line-height:1.12!important;
}

#advantages.advantages-section .section-head .intro{color:#5F5A53!important;font-size:clamp(14px,1.02vw,17px)!important}

#advantages.advantages-section .section-head .kicker{color:#BE6D47!important}

#advantages.advantages-section .benefit-card h3,
#advantages.advantages-section .benefit-card h3 *{color:#1F1C19!important;font-size:clamp(17px,1.32vw,23px)!important}

#advantages.advantages-section .benefit-card .number{color:rgba(31,28,25,.35)!important}

/* ------------------------------------------------------------
   出口流程区块：同样去掉墨绿底，改浅色 + 字号收小
   ------------------------------------------------------------ */
.process-section{background:#F7F5F0!important;color:#1F1C19!important}

.process-section .section-head .h2,
.process-section .section-head .h2 *{font-size:clamp(34px,3vw,52px)!important;color:#1F1C19!important}

.process-section .section-head .intro{font-size:clamp(15px,1.1vw,20px)!important;color:#5F5A53!important}

.process-section .kicker{color:#BE6D47!important}

.process-steps .step-no{color:#BE6D47!important}

.process-steps h3,
.process-steps h3 *{color:#1F1C19!important}

.process-steps p{color:#5F5A53!important}

.process-steps .step-line{border-top-color:rgba(190,109,71,.45)!important}

/* 图标在徽章里再放大一点，国际标牌那种「大图小字」比例 */
#advantages.advantages-section .benefit-icon svg{width:62%!important;height:62%!important}

#products .grid-9 .cell{border-radius:14px!important}

#products .grid-9 .cell img{
  filter:saturate(.76) contrast(.95) brightness(1.05) sepia(.06);
  transition:filter .55s ease,transform .7s cubic-bezier(.2,.8,.2,1);
}

#products .grid-9 .cell:hover img{
  filter:saturate(1.02) contrast(1) brightness(1) sepia(0);
  transform:scale(1.05);
}

/* 统一薄纱：上浅下深，压住冷白底与高饱和色块 */
#products .grid-9 .cell:before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(38,58,54,.05) 0%,rgba(38,58,54,.14) 52%,rgba(38,58,54,.36) 100%),
    rgba(232,222,208,.10);
  transition:opacity .5s ease;
}

#products .grid-9 .cell:hover:before{opacity:.3}
@media(max-width:1100px){
  #products .grid-9{gap:14px!important}}
@media(max-width:640px){
  #products .grid-9{gap:10px!important}
  #products .grid-9 .cell{border-radius:10px!important}}

/* ============================================================
   产品区：分类分行 + 横向滚动
   ------------------------------------------------------------
   每格 = 1 款产品（不是 1 张图），所以十几款也不会让页面爆炸；
   「一款多图」靠悬停时格内轮换解决，不占额外格子。
   ============================================================ */
#products{padding:76px 0 92px!important}

#products .prod-rows{display:flex;flex-direction:column;gap:clamp(34px,3.4vw,56px)}

/* 分类标题 */
.prod-group-head{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}

.prod-group-head .kicker{font-size:11px;letter-spacing:.18em;color:#BE6D47;font-weight:700}

.prod-group-head h3{font-size:clamp(20px,1.7vw,30px);font-weight:400;margin:0;letter-spacing:-.01em;color:#1F1C19}

/* 悬停：格内轮换 3 张图（一款多图，不占额外空间） */
@keyframes prodCycle{
  0%,30%{opacity:1}
  38%,100%{opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .prod-card:hover .prod-imgs img{animation:none;filter:none}
  .prod-card:hover .prod-imgs img:first-child{opacity:1}}
@media(max-width:900px){
  .prod-row{gap:12px}
  .prod-card{flex:0 0 clamp(190px,44vw,250px)}}
@media(max-width:640px){
  #products{padding:56px 0 64px!important}
  .prod-row{gap:10px}
  .prod-card{flex:0 0 68vw}
  .prod-imgs{border-radius:10px}
  .prod-group-head{margin-bottom:14px}}
@media(max-width:640px){
  .prod-imgs img{inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}}

/* ============================================================
   邮箱复制提示：从「屏幕底部居中」改为「贴在被点击的邮箱正上方」
   位置由 script.js 计算（left / top 内联），这里只负责锚点与动效：
   translate(-50%,-100%) 让提示框底边落在给定坐标上，即位于其上方。
   上方空间不足时 JS 会加 .below，翻到邮箱下方。
   ============================================================ */
.wc-toast{
  left:50%;top:0;bottom:auto!important;
  transform:translate(-50%,-100%) scale(.94);
}

.wc-toast.on{transform:translate(-50%,-100%) scale(1)}

.wc-toast.below{transform:translate(-50%,0) scale(.94)}

.wc-toast.below.on{transform:translate(-50%,0) scale(1)}

/* ============================================================
   产品卡：手机端让「一张卡完整显示」
   ------------------------------------------------------------
   原来固定 68vw，导致下一个产品被切掉近一半，看着像"显示不全"。
   改成「占满一行宽度、只露出下一张的一角」——
   既保证当前产品完整可见，又保留"可以横滑"的提示。
   卡片变宽后，卡内图片也随之变大。
   ============================================================ */
@media(max-width:640px){
  .prod-row{gap:12px;padding:2px 2px 8px}
  .prod-card{flex:0 0 calc(100% - 48px)}
  .prod-imgs{aspect-ratio:1/1}
}
@media(max-width:430px){
  .prod-row{gap:10px}
  .prod-card{flex:0 0 calc(100% - 42px)}}

/* ============================================================
   产品卡 · 手机端重做
   ------------------------------------------------------------
   之前的问题：手机上把「整张产品目录页」缩进方形卡里 →
   1) 目录页里的产品图被缩到看不清，等于给用户看一张模糊文档
   2) contain 留下大片灰边
   3) 卡片 68vw → 下一个产品被切掉半张
   现在改为：
   1) 一张卡占满一行（只留 18px 露出下一张的边，提示可横滑）
   2) 4:3 横版满图（cover），卡片变成正常的「产品瓷砖」
   3) 滑动带吸附，像相册一样一屏一张
   ============================================================ */
@media(max-width:640px){
  .prod-row{
    gap:10px;
    padding:2px 2px 6px;
    scroll-snap-type:x mandatory;
    scroll-padding-left:2px;
  }
  .prod-card{
    flex:0 0 calc(100% - 18px);
    gap:10px;
    scroll-snap-align:start;
  }
  .prod-imgs{
    aspect-ratio:4/3;
    border-radius:12px;
    box-shadow:inset 0 0 0 1px rgba(38,58,54,.08),0 2px 10px rgba(38,58,54,.06);
  }
  .prod-imgs img{
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .prod-name{font-size:15px}
  .prod-group-head{margin-bottom:12px}
}
@media(max-width:430px){
  .prod-card{flex:0 0 calc(100% - 14px)}}

/* 平板（≤900px）也用「满图 + 大卡」：2 张一行，避免同样缩成看不清的文档 */
@media(max-width:900px) and (min-width:641px){
  .prod-row{gap:14px}
  .prod-card{flex:0 0 calc(50% - 7px)}
  .prod-imgs{aspect-ratio:4/3}
  .prod-imgs img{
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .prod-name{font-size:16px}
}

/* ============================================================
   产品区 · 四行四图（墙板 / 软瓷 / 吊顶 / 门）
   ------------------------------------------------------------
   桌面：一行 4 张
   手机：2×2 四宫格缩略图，点击放大
   ============================================================ */
#products .prod-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

#products .prod-tile{
  margin:0;position:relative;overflow:hidden;
  aspect-ratio:1/1;border-radius:14px;
  background:#EAE5DE;
  cursor:zoom-in;
  box-shadow:inset 0 0 0 1px rgba(38,58,54,.08),0 2px 10px rgba(38,58,54,.05);
}

#products .prod-tile img{
  display:block;width:100%;height:100%;
  padding:9px;
  object-fit:contain;
  filter:saturate(.84) contrast(.96) brightness(1.01) sepia(.05);
  transition:filter .45s ease,transform .6s cubic-bezier(.2,.8,.2,1);
}

#products .prod-tile:hover img{
  filter:saturate(1.02) contrast(1) brightness(1) sepia(0);
  transform:scale(1.03);
}

#products .prod-tile:focus-visible{outline:2px solid #C77A4A;outline-offset:3px}
@media(max-width:1100px){
  #products .prod-grid{gap:12px}}

/* 手机：2×2 四宫格 */
@media(max-width:640px){
  #products .prod-grid{gap:8px}
  #products .prod-tile{border-radius:10px}
  #products .prod-tile img{padding:6px;object-fit:cover}
  #products .prod-group-head{margin-bottom:12px}
}

/* 手机端：4 张图改为 2×2 四宫格（缩略图，点击放大） */
@media(max-width:640px){
  #products .prod-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
}

/* ============================================================
   产品区 · 桌面端：16 张缩略图一屏全见（田字格）
   ------------------------------------------------------------
   尺寸用 vh 驱动，保证 4 行始终能塞进一屏；
   网格居中，行高与标题都收紧。
   ============================================================ */
@media(min-width:641px){
  #products{padding:56px 0 64px!important}
  #products .prod-rows{gap:clamp(18px,2.2vw,30px)}
  #products .prod-grid{
    grid-template-columns:repeat(4,auto)!important;
    justify-content:center;
    gap:clamp(12px,1.1vw,18px);
  }
  #products .prod-tile{
    width:clamp(148px,17.2vh,236px);
    aspect-ratio:1/1;
  }
  #products .prod-group-head{margin-bottom:10px}
  #products .prod-group-head .kicker{font-size:10px}
  #products .prod-group-head h3{font-size:clamp(16px,1.2vw,21px)}
  /* 悬停动效更明显 */
  #products .prod-tile:hover img{transform:scale(1.06)}
  #products .prod-tile:hover{
    box-shadow:inset 0 0 0 1px rgba(190,109,71,.5),0 12px 26px rgba(38,58,54,.14);
    transform:translateY(-3px);
  }
  #products .prod-tile{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
}

/* 桌面端精调：用视口高度反推缩略图尺寸 —— 4 行必然一屏内 */
@media(min-width:641px){
  #products{padding:clamp(26px,3.2vh,46px) 0 clamp(30px,3.6vh,52px)!important}
  #products .prod-rows{gap:clamp(12px,1.5vh,22px)!important}
  #products .prod-grid{gap:clamp(10px,1.1vw,16px)!important}
  #products .prod-tile{
    width:clamp(116px,calc((100vh - 330px)/4),232px)!important;
  }
  #products .prod-group-head{margin-bottom:7px!important}
  #products .prod-group-head h3{font-size:clamp(15px,0.95vw,17px)!important;line-height:1.2}
}

/* ============================================================
   产品区 · 桌面端最终版：四款产品并排，每款一个 2×2 田字格
   ------------------------------------------------------------
   4 个产品列 × 每列 2×2 缩略图 = 16 张，一屏全见；
   标签贴在各自格子正上方，不再被甩到最左。
   ============================================================ */
@media(min-width:641px){
  #products{padding:clamp(26px,3.2vh,46px) 0 clamp(30px,3.6vh,52px)!important}
  #products .prod-rows{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:clamp(18px,1.9vw,34px)!important;
    align-items:start;
  }
  #products .prod-group-head{margin-bottom:9px!important}
  #products .prod-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    justify-content:stretch!important;
    gap:clamp(7px,0.62vw,11px)!important;
  }
  #products .prod-tile{
    width:100%!important;
    aspect-ratio:1/1;
  }
}

/* 平板（641–1100px）：2 款并排，每款 2×2；避免 4 列把缩略图压到 80px */
@media(min-width:641px) and (max-width:1100px){
  #products .prod-rows{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:clamp(18px,2.6vw,34px)!important;
    align-items:start;
  }
  #products .prod-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    justify-content:stretch!important;
    gap:8px!important;
  }
  #products .prod-tile{width:100%!important;aspect-ratio:1/1}
}

/* 大屏才 4 款并排 */
@media(max-width:1100px){
  #products .prod-rows{grid-template-columns:inherit}
}

/* 4 款并排的断点下调到 ≥1000px，保证常见笔记本（1024/1080/1280）也是一屏 16 张 */
@media(min-width:1000px){
  #products .prod-rows{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:clamp(18px,1.9vw,34px)!important;
    align-items:start;
  }
  #products .prod-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    justify-content:stretch!important;
    gap:clamp(7px,0.62vw,11px)!important;
  }
  #products .prod-tile{width:100%!important;aspect-ratio:1/1}
}

/* ============================================================
   优势区 · 九项性能卡
   ------------------------------------------------------------
   每张卡的图标是内联 SVG，按 data-icon（fire / water / bug …）取色，
   不再使用九宫格徽章图（旧版九宫格徽章图方案已废弃）。
   ============================================================ */
#advantages.advantages-section .benefits-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(16px,2.1vw,38px)!important;
  background:transparent!important;
}

#advantages.advantages-section .benefit-badge{
  margin:0;position:relative;display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  background:transparent!important;
  box-shadow:none!important;
}

#advantages.advantages-section .benefit-badge i{
  position:absolute;
  width:300%;
  height:300%;
  left:calc(var(--bc) * -100%);
  top:calc(var(--br) * -100%);
  background:none!important;
  background-size:100% 100%!important;
}
@media(max-width:640px){
  #advantages.advantages-section .benefits-grid{gap:12px!important}}

/* 认证徽章：桌面端收小并居中，9 个一屏可览 */
@media(min-width:641px){
  #advantages.advantages-section .benefits-grid{
    grid-template-columns:repeat(3,auto)!important;
    justify-content:center!important;
    gap:clamp(16px,1.9vw,34px)!important;
  }
  #advantages.advantages-section .benefit-badge{
    width:clamp(132px,17vh,236px)!important;
    aspect-ratio:1/1;
  }
}

/* ============================================================
   回滚：认证徽章方案作废，恢复「九宫格图标卡片」
   （徽章精灵图会把徽章切坏，故整体还原）
   ============================================================ */
#advantages.advantages-section .benefits-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  justify-content:stretch!important;
  gap:16px!important;
  background:transparent!important;
}

#advantages.advantages-section .benefit-badge,
#advantages.advantages-section .benefit-badge i{display:none!important}
@media(max-width:640px){
  #advantages.advantages-section .benefits-grid{gap:12px!important}}

/* English / Arabic / Chinese selector */
[data-lang="ar"]:not(body){display:none!important}

body.lang-ar [data-lang="zh"],body.lang-ar [data-lang="en"]:not(body){display:none!important}

body.lang-ar [data-lang="ar"]{display:revert!important}

body.lang-ar .nav-text[data-lang="ar"]{display:inline!important}

.wc-language-menu[hidden]{display:none!important}

/* 语言选择：居中弹窗 + 遮罩（原来是贴按钮的小下拉，手机上不好点） */
.wc-language-backdrop{position:fixed;inset:0;z-index:9999;background:rgba(10,14,13,.6);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}

.wc-language-backdrop[hidden]{display:none!important}

body.wc-lang-open{overflow:hidden}

.wc-language-menu{position:fixed;z-index:10000;min-width:min(320px,calc(100vw - 40px));padding:22px 22px 14px;background:#fff;color:#263a36;border:1px solid rgba(38,58,54,.12);border-radius:16px;box-shadow:0 30px 80px rgba(16,28,24,.32);direction:ltr}

.wc-language-title{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#9A735A;font-weight:700;margin:0 0 10px;padding-left:2px}

.wc-language-menu button{display:flex;width:100%;min-height:52px;align-items:center;justify-content:space-between;padding:12px 14px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:16px;text-align:left;cursor:pointer;transition:background .18s ease,color .18s ease}

.wc-language-menu button+button{margin-top:4px}

.wc-language-menu button:hover,.wc-language-menu button.active{background:#f2ebe0;color:#9e5535}

.wc-language-menu button.active:after{content:'✓';font-size:16px}

body.lang-ar main,body.lang-ar .footer{direction:rtl;text-align:right}

body.lang-ar input,body.lang-ar textarea{direction:rtl;text-align:right}

body.lang-ar .section-head,body.lang-ar .panel-families-head{flex-direction:row-reverse}

body.lang-ar .hero .hero-content{left:auto!important;right:0!important;width:min(calc(100% - 32px),1400px)!important;padding-left:max(24px,4vw)!important;padding-right:max(24px,4vw)!important;text-align:right!important}

body.lang-ar .hero h1{white-space:normal!important;font-size:clamp(48px,5.4vw,104px)!important;line-height:1.08!important;max-width:1200px!important;margin-left:auto!important}

body.lang-ar .hero .lead{margin-left:auto!important;max-width:920px!important}

body.lang-ar .doors-hero-copy{left:auto!important;right:8vw!important;text-align:right}

body.lang-ar .door-family-head,body.lang-ar .hardware-accordion{direction:rtl!important}

body.lang-ar .door-family-head>div:first-child,body.lang-ar .door-family-head .kicker,body.lang-ar .door-family-head h2,body.lang-ar .door-family-description,body.lang-ar .door-hardware-link h2,body.lang-ar .door-hardware-link p{text-align:right!important}

body.lang-ar .door-family-toggle,body.lang-ar .hardware-toggle{justify-self:end!important}

body.lang-ar .panel-web-set-head{direction:rtl!important}

body.lang-ar .panel-web-set-head>div:first-child,body.lang-ar .panel-web-set-head .kicker,body.lang-ar .panel-web-set-head h2,body.lang-ar .panel-web-set-head .panel-web-set-desc{text-align:right!important}

body.lang-ar .panel-web-set-toggle{justify-self:end!important}

body.lang-ar .quote-bubble{direction:rtl}
@media(max-width:900px){
  .lang,.home-header .lang{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
  body.lang-ar .hero h1{font-size:clamp(42px,12vw,60px)!important}
  body.lang-ar .hero .lead{font-size:20px!important}
  body.lang-ar .doors-hero-copy{left:auto!important;right:auto!important}}
@media(max-width:800px){
  body .door-series .door-family-head{grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;width:100%!important}
  body .door-series .door-family-head>div:first-child{grid-column:1!important;min-width:0!important}
  body .door-series .door-family-toggle{grid-column:2!important}
  body .door-series .door-family-description{grid-column:1/-1!important;width:auto!important;max-width:100%!important}
  body .panel-web-set .panel-web-set-head{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  body .panel-web-set .panel-web-set-head>div:first-child,body .panel-web-set .panel-web-set-toggle,body .panel-web-set .panel-web-set-desc{grid-column:1!important;width:auto!important;max-width:100%!important}}

/* Keep the moving image rail independent from page RTL direction. */
.mat-row{direction:ltr}

body.lang-ar .materials-stack .material-copy{direction:rtl;text-align:right}

/* Shared homepage and inspiration lightbox caption. */
.wc-lightbox img{max-height:calc(100% - 104px)!important;margin-bottom:70px}

.wc-lightbox-cap{left:50%!important;right:auto!important;bottom:clamp(16px,2.4vw,26px)!important;transform:translateX(-50%);width:max-content;max-width:min(88vw,760px);padding:11px 20px!important;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(8,13,11,.84);box-shadow:0 10px 30px rgba(0,0,0,.34);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff!important;font-size:14px;line-height:1.45;letter-spacing:0!important}

.wc-lightbox-cap b{color:#fff!important;font-weight:600!important;font-size:clamp(17px,1.3vw,21px)!important;line-height:1.3}

body.lang-ar .wc-lightbox-cap{direction:rtl}

body.lang-ar .contact-item[href^="https://wa.me/"] .contact-value{display:inline-block;direction:ltr!important;unicode-bidi:isolate;text-align:left!important}

body.lang-ar input[type="tel"],body.lang-ar input[name="phone"],body.lang-ar input[type="email"],body.lang-ar input[name="email"]{direction:ltr!important;unicode-bidi:plaintext;text-align:left!important}
@media(max-width:640px){
  .wc-lightbox img{max-height:calc(100% - 112px)!important;margin-bottom:78px}
  .wc-lightbox-cap{max-width:calc(100vw - 28px);padding:10px 14px!important;font-size:13px}}

/* ============================================================
   阿拉伯语（RTL）页面 · 联系方式方向修正
   ------------------------------------------------------------
   规则只针对「纯拉丁字母 / 数字」的内容：
     · 邮箱 sales@wallceil.com      → 永远 LTR
     · 电话号码 +86 176 0125 5662   → 永远 LTR
   地址含阿拉伯文，必须保持 RTL，所以不能整块 .contact-value 处理
   （同一个 .contact-value 里混了邮箱、电话、地址三种内容）。
   用属性选择器锚定 href，地址那块没有 href，天然不受影响。
   ============================================================ */
/* 注意：必须排除页脚的社交链接（.social-link）。
   它们也是 wa.me 链接，如果被强制 direction:ltr，整行内容会从最左边开始排，
   在阿语页面里这一行就会「飞出」社交栏，看着像单独悬在左边。 */
body.lang-ar a[href^="mailto:"]:not(.social-link),
body.lang-ar a[href^="https://wa.me/"]:not(.social-link),
body.lang-ar .contact-item[href^="mailto:"] .contact-value,
body.lang-ar .contact-item[href^="https://wa.me/"] .contact-value{
  direction:ltr!important;
  unicode-bidi:isolate;
}

body.lang-ar .contact-item[href^="mailto:"] .contact-value,
body.lang-ar .contact-item[href^="https://wa.me/"] .contact-value{
  display:inline-block;
  text-align:left!important;
}

/* 地址：显式声明 RTL，避免被上面的规则或浏览器默认值影响 */
body.lang-ar .contact-item:not([href]) .contact-value{
  direction:rtl;
  unicode-bidi:isolate;
  text-align:right!important;
}

/* ===== WC_MATERIALS_STATIC: 材质故事改为「8 张静止图，四张一排」 =====
   script.js 里每排会复制一份用于无缝滚动（每排 16 个节点）。
   这里只显示每排前 4 张，并排成 4 列网格：
   上排前 4 = 第 1~4 款，下排前 4 = 第 5~8 款，正好 8 张不重复。
   要恢复跑马灯：删掉本段，并把 script.js 里 WC_MATERIALS_STATIC 的注释取消即可。 */
.materials-stack .mat-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;overflow:visible!important;padding:0!important}

.materials-stack .mat-row .material-card:nth-child(n+5){display:none!important}

.materials-stack .material-card{flex:none!important;width:auto!important;min-width:0!important}

.materials-stack .material-image{height:clamp(170px,22vh,280px)!important}
@media(max-width:1000px){
  .materials-stack .mat-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}}

/* WC_MATERIALS_STATIC_BP: 材质故事网格断点细化（写在后面，覆盖上面那条）
   桌面 4 列 → 平板 3 列 → 手机 2 列，避免 1000px 附近从 2 列直接跳到 4 列。 */
@media(max-width:1100px){
  .materials-stack .mat-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important}
}
@media(max-width:820px){
  .materials-stack .mat-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}}

/* ===== WC_SECTION_HIDDEN: 后台「系列排序」里隐藏的区块 =====
   后台给区块开标签加上 data-section-hidden 即从前台隐藏，
   内容仍保留在 HTML 里，后台点「恢复显示」即可还原。 */
[data-section-hidden]{display:none!important}

/* ===== WC_EMPTY_SECTION_HIDE: 没有产品的板块自动隐藏 =====
   产品板块（.panel-web-set）里一张图都没有时，由 titlebar-unify.js 打上 data-wc-empty，
   前台即不再留一个空标题。与后台「页面与区块」只列有图分组的逻辑一致；
   往板块里重新加图后会自动恢复。 */
/* 已停用（2026-09-24）：吊顶 4 个系列产品清空后，连系列标题一起被隐藏了，
   但标题本身要留着。titlebar-unify.js 里对应的那段也已停用。
   恢复办法：取消下面这行的注释即可。 */
/* [data-wc-empty]{display:none!important}

 */

/* ===== WC_HW_UNIFY_V2: 五金配件已并入 .door-family（见 titlebar-unify.js），
   行高、字号、hover、分割线全部自动跟随普通系列，这里原来的两轮对齐补丁
   （WC_HW_UNIFY / WC_HW_BORDER）随之作废删除。网格收尾线保留作兜底。 */
.door-series-grid > :last-child{border-bottom:1px solid rgba(31,48,43,.24)!important}

/* ===== WC_HERO_EN_FIT: 英文首屏标题字号微调 =====
   英文标题比中文长（3 行 vs 2 行），在 900px 视口下内容底边会超出屏幕、导语被裁。
   这里把英文模式的标题字号从 6.5vw 降到 5.9vw，三行总高减少约 20px，刚好放得下。
   中文（2 行）与阿语不受影响。 */
body.lang-en .hero h1{font-size:clamp(64px,5.9vw,124px)!important}

/* ===== WC_FLOOR_GALLERY: SPC 地板页的无标题图墙 =====
   该页不放系列标题，直接按「一排三张」铺图。
   不依赖 titlebar-unify.js 的 panel-web-set 逻辑，所以单独定义网格。 */
.floor-gallery{padding:90px 7vw;background:#F7F5F0;color:#263a36}

/* 放大按钮：script.js 会给 .floor-tile 追加 .case-zoom，
   但它原本只对 .case-grid .case / .material-card 有样式，
   不补的话 SVG 会按原始尺寸渲染成巨型图标。 */
.floor-tile{position:relative}

.floor-tile .case-zoom{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(24,33,31,.42);color:#fff;opacity:0;transform:scale(.86) translateY(4px);transition:opacity .2s ease,transform .2s ease,background-color .2s ease;pointer-events:none}

.floor-tile:hover .case-zoom,.floor-tile:focus-visible .case-zoom{opacity:1;transform:scale(1) translateY(0);pointer-events:auto;background:rgba(190,109,71,.72)}

.floor-tile .case-zoom svg{width:17px;height:17px;display:block}

.floor-tile{cursor:zoom-in}
@media(max-width:1100px){.floor-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:30px}}
@media(max-width:700px){.floor-gallery{padding:64px 24px}.floor-grid{grid-template-columns:1fr}}

/* ===== WC_SOCIAL_ICO: 页脚社交链接的彩色品牌图标 =====
   页脚深色底，用品牌官方色（LinkedIn 蓝 / Facebook 蓝 / Instagram 红 / YouTube 红）。 */
.footer .social-link{display:flex!important;align-items:center;gap:9px;margin:9px 0!important}

.footer .social-ico{display:inline-flex;width:18px;height:18px;flex:0 0 18px;transition:transform .2s ease}

.footer .social-ico svg{width:100%;height:100%;display:block}

.footer .social-link:hover .social-ico{transform:scale(1.14)}

/* ===== WC_CASE_GRID_FIX: 工程案例页 6 张图全部完整展示 =====
   问题：
   1) 12 列网格只给 :nth-child(1)-(4) 定义了 span（7+5 / 5+7），
      第 5、6 张案例没有 span 规则，默认各占 1/12 宽 —— 被挤成两条窄缝；
   2) .case 固定 height:370px + overflow:hidden，而 .case img 高度是
      clamp(420px,42vw,760px)，图片下半段整体被裁掉。
   方案：
   - 补齐第 5、6 张的跨度（沿用 7+5 交替节奏），全部 6 张进入版面；
   - 案例卡片高度改为 auto，图片按原始比例完整显示，不再裁切。 */
/* 自动循环：7+5 / 5+7 交替，四张一循环 —— 取代原来只管第 5、6 张的硬编码，
   以后新增任意数量的案例都不会再出现"只占 1/12 宽被挤成窄条"的问题 */
.case-grid .case:nth-child(4n+1){grid-column:span 7}

.case-grid .case:nth-child(4n+2){grid-column:span 5}

.case-grid .case:nth-child(4n+3){grid-column:span 5}

.case-grid .case:nth-child(4n+4){grid-column:span 7}

.case-grid .case{height:auto!important;overflow:visible!important}

.case-grid .case img{width:100%!important;height:auto!important;max-width:100%!important;aspect-ratio:auto!important;object-fit:contain!important}

/* 完整展示后图片以原始比例呈现，hover 缩放仍保留；窄屏由既有断点接管（≤640px 单列） */

/* ===== WC_DOOR_SERIES_MOBILE: 门系列窄屏对齐其他页面 =====
   问题：.door-family:not(.is-open) 被锁死 height:78px + overflow:hidden，
   折叠态下描述文案被裁掉，且下一项的 kicker 会压上来（实测重叠 21px）。
   另外描述字号被 clamp(10px,...) 压成 10px，展开按钮 17px 挤在右侧。
   目标：与 .panel-web-set（墙面/吊顶/SPC地板）窄屏排版一致 ——
   单列堆叠（kicker → 标题 → 展开按钮 → 完整描述），字号与间距对齐。
   说明：本段为追加覆盖，原有规则全部保留。 */
@media(max-width:800px){
  /* 1) 取消折叠态的固定高度与裁切，描述完整显示 */
  body .door-series .door-family,
  body .door-series .door-family:not(.is-open){height:auto!important;overflow:visible!important}
  body .door-series .door-family:not(.is-open):hover{height:auto!important;box-shadow:none!important;transform:none!important}
  /* 2) 头部改单列堆叠，行高与间距对齐 .panel-web-set-head */
  body .door-series .door-family-head,
  body .door-series .door-family:not(.is-open) .door-family-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto!important;
    align-items:start!important;
    align-content:start!important;
    gap:12px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
  }
  /* 3) 三个子项都占满整行、左对齐 */
  body .door-series .door-family-title-group,
  body .door-series .door-family-toggle,
  body .door-series .door-family-description{
    grid-column:1!important;
    justify-self:start!important;
    width:auto!important;
    max-width:100%!important;
  }
  /* 4) 字号与间距对齐其他页面：kicker 11 / 标题 17 / 按钮 18 / 描述 11 */
  body .door-series .door-family-head .kicker{font-size:11px!important;line-height:1.6!important}
  body .door-series .door-family-head h2{font-size:17px!important;line-height:1.15!important;margin:2px 0 0!important}
  body .door-series .door-family-toggle{font-size:18px!important;line-height:1!important;padding:11px 0!important;transform:none!important}
  body .door-series .door-family:hover .door-family-toggle{transform:none!important}
  body .door-series .door-family-description{font-size:11px!important;line-height:1.4!important;margin:0!important}
}

/* 平板区间（801–1100px，含 iPad 竖屏 810/820）仍用紧凑三列行，
   但去掉 78px 硬高度，避免长文案被裁掉（实测 801px 会溢出 9px）。
   大屏桌面排版不受影响。 */
@media(min-width:801px) and (max-width:1100px){
  body .door-series .door-family:not(.is-open){height:auto!important}
  body .door-series .door-family:not(.is-open):hover{height:auto!important}
  /* 关键：头部被 height:68px 锁死，描述会溢出头部、再被外层 overflow:hidden 裁掉。
     解锁头部高度，让整行按内容自适应。 */
  body .door-series .door-family-head{height:auto!important;min-height:0!important;max-height:none!important;align-items:center!important}
}

/* ===== WC_PRODUCTS_ROW4: 电脑版产品区改「每类横排 4 张正方形」 =====
   问题：原来是 5 列 × 每列 2×2 小图，单张只有 125×125，而产品图是 2000×1366
   横版，被塞进正方形格子用 contain 显示 —— 上下各留白 25px，实际内容仅占 58%。
   改法：每个品类独占一行、横向排 4 张，格子用正方形 + object-fit:cover，
   图片完全填满。单张 338×338，图片实际面积是原来的约 14 倍。
   范围：只在 ≥1000px 生效（原来 5 列布局的断点），平板 641–999px 和手机不动。
   说明：本段为追加覆盖，原有规则全部保留。 */
@media(min-width:1000px){
  #products .prod-rows{display:block!important}
  #products .prod-group{margin-bottom:clamp(26px,3vw,46px)}
  #products .prod-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    justify-content:stretch!important;
    gap:clamp(12px,1.1vw,18px)!important;
  }
  #products .prod-tile{width:100%!important;aspect-ratio:1/1!important;border-radius:12px!important}
  #products .prod-tile img{padding:0!important;object-fit:cover!important;filter:none!important}
  #products .prod-group-head{margin-bottom:clamp(10px,1vw,16px)!important}
  #products .prod-group-head h3{font-size:clamp(20px,1.6vw,26px)!important}
}

/* ===== WC_SERIES_CATALOG: 目录索取条 + 索取弹窗 =====
  配套 wc-runtime.js（合并了原 runtime-overrides + series-catalog）。
  目的：让客户知道每个系列还有上百款没展示，
  并用「完整电子目录」换取联系方式。配色沿用站点色板（accent #C77A4A）。 */

/* --- 目录条 --- */
.wc-catalog-bar{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-top:24px;padding-top:18px;
  border-top:1px solid rgba(38,58,54,.18);
}

.wc-catalog-bar .kicker{color:#C77A4A}

.wc-catalog-copy{min-width:0}

.wc-catalog-copy p{margin:9px 0 0;max-width:780px;font-size:14px;line-height:1.6;color:#52635C}

.wc-catalog-copy p b{color:#263A36;font-weight:600}

.wc-catalog-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto;flex-wrap:wrap}

.wc-catalog-ask{
  border:0;border-radius:999px;cursor:pointer;padding:12px 20px;
  background:#C77A4A;color:#fff;font:inherit;font-size:13px;font-weight:600;letter-spacing:.08em;
  transition:background .22s ease,transform .22s ease;
}

.wc-catalog-ask:hover{background:#9e5535;transform:translateY(-2px)}

/* 系列目录条：询价此系列 / 查看规格参数（与索取目录、WhatsApp 同排） */
.wc-catalog-enq{border:1px solid #263A36;border-radius:999px;cursor:pointer;padding:12px 20px;background:#263A36;color:#F7F5F0;font:inherit;font-size:13px;font-weight:600;letter-spacing:.08em;transition:background .22s ease,transform .22s ease}

.wc-catalog-enq:hover{background:#16241f;transform:translateY(-2px)}

.wc-catalog-sample{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:1px solid rgba(199,122,74,.6);border-radius:999px;background:rgba(199,122,74,.1);color:#9e5535;text-decoration:none;font:inherit;font-size:13px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .22s ease,border-color .22s ease}

.wc-catalog-sample:hover{background:rgba(199,122,74,.18);border-color:#9e5535}

.wc-catalog-wa{
  display:inline-flex;align-items:center;gap:9px;
  padding:14px 22px;border:1px solid rgba(37,211,102,.55);border-radius:999px;
  background:rgba(37,211,102,.08);color:#1c7a45;text-decoration:none;
  font-size:13px;font-weight:600;letter-spacing:.04em;
  transition:background .22s ease,border-color .22s ease;
}

.wc-catalog-wa:hover{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.8)}

.wc-catalog-wa-ico{display:inline-flex;width:16px;height:16px;flex:0 0 16px}

.wc-catalog-wa-ico svg{width:100%;height:100%;display:block}

/* 门系列：目录条挂在 .door-products（网格）里，需要横跨整行 */
.door-products > .wc-catalog-bar{grid-column:1/-1}

/* --- 索取弹窗 --- */
.wc-catalog-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:24px}

.wc-catalog-modal[hidden]{display:none!important}

.wc-catalog-backdrop{position:absolute;inset:0;background:rgba(16,28,24,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.wc-catalog-panel{
  position:relative;width:min(100%,520px);max-height:calc(100vh - 48px);overflow:auto;
  padding:clamp(28px,4vw,44px);border-radius:6px;
  background:#F7F5F0;color:#263A36;
  box-shadow:0 30px 70px rgba(10,20,17,.34);
  animation:wcCatalogIn .26s ease both;
}

@keyframes wcCatalogIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.wc-catalog-close{
  position:absolute;top:8px;right:12px;padding:6px;
  border:0;background:transparent;color:#52635C;
  font-size:30px;font-weight:200;line-height:1;cursor:pointer;
}

.wc-catalog-close:hover{color:#C77A4A}

.wc-catalog-title{font-size:clamp(24px,2.2vw,32px);font-weight:400;line-height:1.15;margin:10px 0 0}

.wc-catalog-series{margin:12px 0 0;font-size:14px;font-weight:600;color:#9e5535}

.wc-catalog-desc{margin:10px 0 0;font-size:14px;line-height:1.6;color:#52635C}

.wc-catalog-form{margin-top:24px;display:grid;gap:18px}

.wc-catalog-form label{display:grid;gap:7px}

.wc-catalog-label{font-size:12px;letter-spacing:.1em;font-weight:700;color:#52635C}

/* 目录索取弹窗：电话/WhatsApp 必填，标签上的红色星号 */
.wc-catalog-req{color:#8f1d16;font-style:normal;font-weight:700}

.wc-catalog-form input{
  border:0;border-bottom:1px solid rgba(38,58,54,.45);background:transparent;
  padding:12px 0;font:inherit;font-size:16px;color:#263A36;
}

.wc-catalog-form input:focus{outline:none;border-bottom-color:#C77A4A}

/* 蜜罐输入框：不能用 left:-9999px —— 阿语（RTL）页面会被撑出上万像素的横向滚动。
   改用「1px + 裁剪」的视觉隐藏，完全不参与布局尺寸。 */
.wc-catalog-hp{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}

.wc-catalog-submit{
  margin-top:4px;border:0;border-radius:999px;cursor:pointer;padding:17px 24px;
  background:#C77A4A;color:#fff;font:inherit;font-size:14px;font-weight:600;letter-spacing:.08em;
  transition:background .22s ease;
}

.wc-catalog-submit:hover{background:#9e5535}

.wc-catalog-submit:disabled{opacity:.6;cursor:not-allowed}

.wc-catalog-note{margin:0;font-size:12px;color:#8E9A94;text-align:center}

.wc-catalog-success{margin:0;font-size:14px;line-height:1.6;font-weight:600;color:#1c7a45}

.wc-catalog-fail{margin:0;font-size:13px;line-height:1.6;color:#b3261e}

body.wc-catalog-open{overflow:hidden}

body.lang-ar .wc-catalog-panel{direction:rtl;text-align:right}

body.lang-ar .wc-catalog-close{right:auto;left:12px}

body.lang-ar .wc-catalog-wa,body.lang-ar .wc-catalog-ask{letter-spacing:0}
@media(max-width:800px){
  .wc-catalog-bar{display:block;margin-top:26px;padding-top:20px}
  .wc-catalog-copy p{font-size:13px}
  /* 目录条按钮：原来的「满宽竖排 4 行」改成「一行 4 个」。
     内容宽 350px − 3 个 6px 间距 = 每按钮 83px；去掉左右各 3px 内边距后可用 77px。
     按钮内文字分两行显示（.wc-cl1 / .wc-cl2，见 wc-runtime.js 的 T 表），
     字号 10.5px / 9px 是按「最长一段仍能塞进 77px」实测定下来的：
       英文最长 "Enquire about" ≈72px、阿语最长 "عن هذه السلسلة" ≈58px、WhatsApp ≈54px。
     想改大字号要先量一遍，否则会换行溢出。 */
  .wc-catalog-actions{margin-top:18px;gap:6px;flex-wrap:nowrap}
  .wc-catalog-ask,.wc-catalog-wa,.wc-catalog-enq,.wc-catalog-sample,.wc-catalog-spec{width:auto;flex:1 1 0;min-width:0;justify-content:center;padding:9px 3px;letter-spacing:0}
  .wc-cl1{font-size:10.5px}
  .wc-cl2{font-size:9px}
  /* 在 .wc-cl1 之后插入一个换行符，把按钮文案断成两行（桌面端不断行） */
  .wc-cl1::after{content:"\A";white-space:pre}
  /* 两行宽度不同，居中更整齐（只改对齐，不改 display —— 否则会破坏语言切换的隐藏规则） */
  .wc-catalog-actions span[data-lang]{text-align:center}
  /* WhatsApp 按钮是「图标 + 两行文案」，图标要缩小才放得下 */
  .wc-catalog-wa{gap:4px}
  .wc-catalog-wa-ico{width:13px;height:13px;flex:0 0 13px}
  .wc-catalog-panel{padding:26px 22px}
  .wc-catalog-modal{padding:14px}}

/* ============================================================
   平板区间（901–1080px）汉堡菜单的菜单项宽度修复
   ------------------------------------------------------------
   问题：平板区间用的是「汉堡 + 下拉面板」（与手机一致），但桌面段
        @media(min-width:901px) 里那条「导航项统一等宽
        width/min/max: calc(5em + 20px)」同样命中这里。
        窄屏规则虽把 width 改成 100%，但 max-width 仍是 100px，
        结果每个菜单项被压成 100px 宽：序号和右侧箭头被挤掉，
        看起来像「缺号、排版错乱」。
   处理：菜单展开时按窄屏下拉重写宽度（用 .nav.open 提高优先级，
        确保盖过桌面那条 !important 规则）。
   ============================================================ */
@media(min-width:901px) and (max-width:1160px){
  .header .nav.open a,
  .home-header .nav.open a,
  .header:not(.home-header) .nav.open a{
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    display:grid!important;
    justify-content:initial!important;
    text-align:left!important;
  }
}

/* ===== 生产线区块：标题与文案在上、3 张实拍图在下 =====
   原来标题在左侧窄栏里、图片占右侧，标题被挤成两行，整段也偏高。
   现在：文案通栏在上，3 张图等宽并排在下。

   【2026-10-11 调整：图片高度 300px → clamp(300px,35vw,580px)】
   原因：站长的柜子生产线照片是手机实拍，接近正方形（3712×4047 / 3773×3629 /
   3757×3401），吊顶与门两处还有 0.75 的竖图。旧上限 300px 在 1920 视口下
   让每格变成 585×300（比例 1.95:1），object-fit:cover 视口把上下裁掉
   43%~62%，被反映为「图片太扁了、显示不全」。
   实测（1920 视口，每格 585px 宽）：
     容器 300px → 方图裁 43~53%、竖图裁 62%
     容器 580px → 方图基本完整、竖图裁 26%（两侧不留空，最均衡）
   竖图 0.75 若要完全不裁需要 780px，会让每个区块过高，故取 580px 折中。
   各区块文案与图片宽度不变，只改高度。 */
.factory-line,.factory-line.reverse{display:block;min-height:0}

.factory-line>div,.factory-line.reverse>div{display:block;padding:clamp(46px,4.8vw,76px) clamp(22px,5vw,72px) clamp(16px,1.8vw,24px);grid-column:auto}

.factory-line .h2{font-size:clamp(30px,3.2vw,52px);line-height:1.08;margin:12px 0 14px}

.factory-line p{max-width:820px;font-size:clamp(15px,1.05vw,18px);line-height:1.6}

.factory-line>.factory-shots,.factory-line.reverse>.factory-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;gap:clamp(8px,.7vw,12px);min-height:0;height:clamp(300px,35vw,580px);padding:0 clamp(22px,5vw,72px) clamp(32px,3.4vw,52px);grid-column:auto;grid-row:auto}

.factory-shot{position:relative;margin:0;min-width:0;overflow:hidden;background:rgba(38,58,54,.06)}

.factory-line.reverse .factory-shot{background:rgba(247,245,240,.08)}

.factory-shot:first-child{grid-column:auto}

.factory-shot img{width:100%;height:100%;object-fit:cover;display:block}

/* 窄屏：改成「1 张大 + 2 张并排」
   【2026-10-11】首图原为 16/9（手机上把近方形照片裁掉 44%），改为 4/3：
   与下方两张统一，近方图裁到 26%，竖图不再被削成一条。 */
@media(max-width:900px){
.factory-line>div,.factory-line.reverse>div{padding:44px 20px 14px}
.factory-line .h2{font-size:clamp(28px,7.4vw,38px);margin:10px 0 12px}
.factory-line>.factory-shots,.factory-line.reverse>.factory-shots{height:auto;grid-template-columns:1fr 1fr;padding:0 20px 40px}
.factory-shot:first-child{grid-column:1/-1}
.factory-shot img{height:auto}
.factory-shot:first-child img{aspect-ratio:4/3}
.factory-shot:not(:first-child) img{aspect-ratio:4/3}
}

/* ===== 1025–1400px：导航栏放不下会撑出横向滚动条 =====
   实测 1280 视口下 导航 + 语言/菜单按钮 比容器宽约 55px，document 被撑宽，
   页面底部出现横向滚动条（笔记本 1280/1366 常见）。这里收紧字号与间距，
   让它回到一行内；≤1024 由汉堡菜单接管，不受影响。 */
@media(min-width:1025px) and (max-width:1400px){
/* 必须带上 .home-header/.header 前缀并加 !important：否则被 .home-header .nav{...} 这类更具体的选择器压住 */
.header .nav,.home-header .nav,.header:not(.home-header) .nav{gap:10px!important;font-size:13.5px!important}
.header .nav a,.home-header .nav a,.header:not(.home-header) .nav a{font-size:13.5px!important;padding:22px 0!important}
.header .actions,.home-header .actions{gap:4px!important}
.header .actions .lang,.home-header .actions .lang{padding-left:9px!important;padding-right:9px!important}
}

/* ===== 页脚法律入口：隐私政策 / 服务条款 / Cookie 政策（2026-10-04 新增）=====
   注意 .footer a 原本是 display:block，这里覆盖为行内，否则三个链接会堆成三行；
   颜色与字号跟随版权行（11px / #7c8981），悬停提亮 + 下划线。 */
.copyright .footer-legal a{display:inline;color:inherit;font-size:inherit;text-decoration:none;margin-inline-start:14px;white-space:nowrap}

.copyright .footer-legal a:first-child{margin-inline-start:0}

.copyright .footer-legal a:hover{color:#e9eef0;text-decoration:underline}
@media (max-width:800px){.copyright .footer-legal{margin-top:2px}}

/* ===== 询盘弹窗「获取报价」：压缩到一屏显示完，不需要滚动（2026-10-04）=====
   原因：弹窗挂在 .quote-form-section 里，会继承页内区块的 ID 级大字号/大间距
   （标题 51px、输入框 padding 18px、字段行距 18px），内容高度 1100px+ 必须滚动。
   处理：弹窗内部紧凑化 —— 两列排布 + 收紧间距与字号，**不隐藏任何内容**；
   并把高度上限改成 100dvh，手机地址栏收起/展开都能吃下。
   实测可一屏放下：1440x900 / 1280x800 / 1366x768 / 1024x768 / 1280x640 /
   390x844 / 390x720 / 360x640（320x568 这类超小屏仍可滚动，内容不丢）。 */
#quote.quote-form-section .wc-quote-dialog{padding:18px 26px!important;max-height:calc(100dvh - 18px)!important}

#quote.quote-form-section .wc-quote-dialog .quote-copy .kicker{margin-bottom:8px!important;font-size:11px!important}

#quote.quote-form-section .wc-quote-dialog .quote-copy .h2{font-size:22px!important;line-height:1.2!important;margin:2px 0 4px!important}

#quote.quote-form-section .wc-quote-dialog .quote-copy p{font-size:12.5px!important;margin:0!important;line-height:1.35!important}

#quote.quote-form-section .wc-quote-dialog .quote-form{margin-top:8px!important;grid-template-columns:1fr 1fr!important;gap:8px 22px!important}

#quote.quote-form-section .wc-quote-dialog .quote-form label{gap:2px!important;font-size:11px!important}

#quote.quote-form-section .wc-quote-dialog .quote-form input,
#quote.quote-form-section .wc-quote-dialog .quote-form textarea{padding:7px 0!important;font-size:15px!important}

#quote.quote-form-section .wc-quote-dialog .quote-form textarea{height:58px!important}

#quote.quote-form-section .wc-quote-dialog .wc-upload{margin-top:2px!important}

#quote.quote-form-section .wc-quote-dialog .quote-form button{margin-top:8px!important;padding:12px!important;font-size:14px!important}
@media (max-width:600px){
  #quote.quote-form-section .wc-quote-dialog{padding:14px 16px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form{grid-template-columns:1fr!important;gap:6px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-copy .kicker{margin-bottom:4px!important}
  #quote.quote-form-section .wc-quote-dialog .wc-upload{padding:10px!important;min-height:0!important}
  /* iOS 聚焦时若字号 <16px 会自动放大页面，这里保底 16px */
  #quote.quote-form-section .wc-quote-dialog .quote-form input,
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{font-size:16px!important}}
@media (max-height:660px){
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{height:48px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form input,
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{padding:5px 0!important}
  #quote.quote-form-section .wc-quote-dialog .quote-copy p{font-size:12px!important;line-height:1.25!important}}
@media (max-height:640px){
  #quote.quote-form-section .wc-quote-dialog{padding:12px 20px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-copy .kicker{margin-bottom:2px!important;font-size:10px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-copy .h2{font-size:19px!important;margin:0 0 2px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-copy p{font-size:11.5px!important;line-height:1.2!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form{margin-top:6px!important;gap:5px 16px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form label{gap:1px!important;font-size:10.5px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form input,
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{padding:4px 0!important;font-size:14px!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{height:44px!important}
  #quote.quote-form-section .wc-quote-dialog .wc-upload{padding:8px!important;min-height:0!important}
  #quote.quote-form-section .wc-quote-dialog .quote-form button{margin-top:6px!important;padding:10px!important}}

/* 手机端输入框保底 16px（放在最后，避免被矮屏规则降到 14px 触发 iOS 聚焦缩放） */
@media (max-width:600px){
  #quote.quote-form-section .wc-quote-dialog .quote-form input,
  #quote.quote-form-section .wc-quote-dialog .quote-form textarea{font-size:16px!important}
}

/* ===== WC_HIDE_PAGE_CAPTIONS：隐藏图片下方的「第 N 页」图注（2026-10-05）=====
   门页每个缩略图下面原来有一行「第 1 页 / 第 2 页 …」，站长要求去掉。
   这里用 CSS 隐藏（不动 HTML 结构与 alt，随时可恢复：删掉本段即可）。 */
.door-catalog-page figcaption{display:none!important}

.door-catalog-page > figcaption{display:none!important}

/* ===== 工程案例卡：文字改为「图在上、字在图下方」（2026-10-05, v2）=====
   原设计：.case 固定高度 + .case-label 绝对定位 + 黑色渐变 → 文字压在照片上。
   新版：卡片改为竖向流式布局；手机端旧规则把高度锁死成 270px，这里用 !important 覆盖，
   图片显式按 4:3 自适应高度，确保图在上、文字在图下方，互不重叠。 */
.case-grid .case{
  display:flex!important;flex-direction:column!important;
  height:auto!important;min-height:0!important;overflow:visible!important;color:inherit!important;
}

.case-grid .case:after{display:none!important}

.case-grid .case img{
  width:100%!important;height:auto!important;aspect-ratio:16/10;object-fit:cover;object-position:center;
  border-radius:2px;
}

.case-grid .case .case-label{
  position:static!important;bottom:auto!important;left:auto!important;
  padding:18px 0 6px!important;transform:none!important;
}

.case-grid .case:hover .case-label{transform:none!important}

.case-grid .case-label .kicker{color:#9A735A!important;font-size:12px;letter-spacing:.16em}

.case-grid .case-label h3{color:#263A36!important;margin:6px 0 8px!important}

.case-grid .case-label p{color:#52635C!important;font-size:15px!important;line-height:1.6!important}
@media (max-width:900px){
  .case-grid .case img{aspect-ratio:4/3}
  .case-grid .case .case-label{padding:14px 0 4px!important}}

/* 案例网格：≤900px 一行一张卡（旧规则把卡片挤成 0 宽度，图片显示不出来） */
@media (max-width:900px){
  .case-grid{grid-template-columns:1fr!important;gap:22px!important}
  .case-grid .case,.case-grid .case:nth-child(n),.case-grid .case:first-child{
    grid-column:1/-1!important;width:100%!important;max-width:100%!important;margin:0!important;
    height:auto!important;min-height:0!important;
  }
  .case-grid .case img{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:4/3}
}

/* ===== WC_SERIES_CAPTION_OFF: 隐藏系列产品图片下方的说明文字（2026-10-05，用户要求） =====
   背景：墙面 / 吊顶 / SPC地板 等页面，每张图集图片下方都有一行说明文字
   （如「吊顶铝型材系列」「03 / CEILING LIGHTING」「01 / WALL PANEL COLLECTION」）。
   用户要求去掉这一行字。
   做法：仅用 CSS 隐藏，不删除 HTML 内容 —— 后台「页面与区块」里仍能看到并管理这些图，
   改动可随时通过删除本段恢复。 */
.panel-web-pages figure figcaption,
.panel-web-pages > figcaption,
.floor-grid figure figcaption,
.floor-gallery figcaption{display:none!important}

/* ===== CASE_GRID_UNIFY 工程案例网格：统一版式 ===== */
/* 旧版问题：12 栏只定义了前 4 张的宽度（后 4 张被挤成 1 栏）；
   图片高度 clamp(420px,42vw,760px) 比卡片 370px 还高，行高参差、文字落点忽上忽下。
   现在：行高统一由 grid-auto-rows 决定，图片绝对定位铺满（object-fit:cover 统一裁切），
   文字统一压在底部渐变上；宽窄按 7/5、5/7 交替，形成编辑式节奏；
   卡片数为奇数时，最后一张铺满整行，不留半排空档。 */
.case-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:18px!important;
  grid-auto-rows:clamp(250px,23vw,430px)!important;align-items:stretch!important}

.case-grid .case{grid-column:span 6;position:relative;height:auto!important;min-height:0!important;
  overflow:hidden;border-radius:3px;background:#1b2421}

.case-grid .case:nth-child(1){grid-column:span 7}

.case-grid .case:nth-child(2){grid-column:span 5}

.case-grid .case:nth-child(3){grid-column:span 5}

.case-grid .case:nth-child(4){grid-column:span 7}

.case-grid .case:nth-child(5){grid-column:span 7}

.case-grid .case:nth-child(6){grid-column:span 5}

.case-grid .case:nth-child(7){grid-column:span 5}

.case-grid .case:nth-child(8){grid-column:span 7}

.case-grid .case:last-child:nth-child(odd){grid-column:span 12}

.case-grid .case img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center!important;display:block}

.case-grid .case:after{background:linear-gradient(0deg,rgba(9,14,12,.92) 0%,rgba(9,14,12,.66) 30%,rgba(9,14,12,.28) 58%,rgba(9,14,12,0) 84%)}

.case-grid .case:hover:after{background:linear-gradient(0deg,rgba(9,14,12,.95) 0%,rgba(9,14,12,.72) 32%,rgba(9,14,12,.34) 60%,rgba(9,14,12,.05) 86%)}

.case-grid .case .case-label{position:absolute!important;left:26px!important;right:26px!important;bottom:22px!important;
  top:auto!important;padding:0!important;max-width:none!important}

.case-grid .case .case-label .kicker{color:#e6c3a2!important;font-size:11px!important;letter-spacing:.16em!important;
  text-transform:uppercase;margin:0 0 6px}

.case-grid .case .case-label h3{font-size:clamp(19px,1.5vw,27px)!important;font-weight:400!important;line-height:1.25!important;
  margin:0!important;color:#fff!important;text-shadow:0 1px 14px rgba(9,14,12,.55);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.case-grid .case .case-label p{margin:8px 0 0!important;font-size:clamp(13px,0.95vw,15px)!important;line-height:1.5!important;
  color:rgba(255,255,255,.8)!important;max-width:62ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.case-grid .case .case-zoom{top:14px;right:14px;width:40px;height:40px}
@media(max-width:1000px){
  .case-grid{grid-auto-rows:clamp(220px,32vw,360px)!important;gap:14px!important}
  .case-grid .case,.case-grid .case:nth-child(n){grid-column:span 12}
  .case-grid .case .case-label{left:20px!important;right:20px!important;bottom:18px!important}}
@media(max-width:640px){
  /* 手机：改成「图片在上 + 文字在下」的卡片，不再把字压在图上 —— 窄屏叠字既挤又看不清 */
  .case-grid{grid-auto-rows:auto!important;gap:14px!important}
  .case-grid .case,.case-grid .case:nth-child(n){aspect-ratio:auto!important;grid-column:span 12;background:#141c19}
  .case-grid .case img{position:static!important;height:auto!important;aspect-ratio:4/3;object-fit:cover!important;object-position:center!important}
  .case-grid .case:after,.case-grid .case:hover:after{display:none!important}
  .case-grid .case .case-label{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;padding:16px 18px 20px!important}
  .case-grid .case .case-label .kicker{color:#d9a27b!important}
  .case-grid .case .case-label h3{font-size:19px!important;-webkit-line-clamp:3}
  .case-grid .case .case-label p{display:-webkit-box!important;color:rgba(255,255,255,.72)!important}}

/* ===== CASE_GRID_UNIFY end ===== */

/* ===== CTA 双按钮：填写需求 + WhatsApp 留言（2026-10-05）===== */
#quote.quote-form-section .btn.fill.wc-wa-btn{background:#1FA855!important;margin-top:12px!important}

#quote.quote-form-section .btn.fill.wc-wa-btn:hover{background:#178a45!important}

#quote.quote-form-section .wc-wa-btn svg{margin-inline-end:9px;flex:0 0 auto}

#quote.quote-form-section .btn.fill.wc-wa-btn{text-transform:none!important;letter-spacing:.02em!important}
/* WC_NAV_DROP 导航「产品目录」下拉（2026-10-07 新增，只加不改）
   选择器刻意写得足够具体，用于覆盖 .home-header / .header 的 .nav a 规则
   （那些规则带 padding:5px 6px、font-size:12px、color:#fff，会让缩略图贴边、文字被压扁/看不见）。 */
.nav-drop{position:relative}
/* 鼠标通道：下拉与导航之间的空隙也算 hover，否则鼠标下行时菜单消失、点不到 */
.nav-drop::after{content:"";position:absolute;top:100%;left:-40px;right:-40px;height:16px;z-index:79}
.nav-sub{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);width:504px;box-sizing:border-box;background:#fff;border:1px solid rgba(38,58,54,.14);box-shadow:0 18px 42px rgba(18,32,27,.20);padding:6px 0;z-index:90;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease;display:block!important}
.nav-drop:hover .nav-sub,.nav-drop:focus-within .nav-sub,.nav-drop.is-open .nav-sub{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateX(-50%) translateY(0)!important}
.nav .nav-sub a,.nav .nav-sub .nav-sub-txt,.nav .nav-sub .nav-sub-txt b,.nav .nav-sub .nav-sub-txt small,.nav .nav-sub .nav-sub-arrow{color:inherit}
.nav-sub a,.nav .nav-sub a,.home-header .nav .nav-sub a,.header .nav .nav-sub a,.header:not(.home-header) .nav .nav-sub a{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:15px!important;box-sizing:border-box!important;width:502px!important;min-width:502px!important;max-width:502px!important;height:auto!important;min-height:72px!important;padding:14px 20px!important;margin:0!important;border-bottom:1px solid rgba(38,58,54,.08)!important;border-radius:0!important;background:transparent!important;text-decoration:none!important;text-align:left!important;color:#1F2C28!important;font-size:14px!important;font-weight:400!important;line-height:1.35!important;letter-spacing:0!important;text-transform:none!important;transform:none!important;box-shadow:none!important;float:none!important;white-space:normal!important;overflow:visible!important}
.nav-sub a:last-child{border-bottom:0!important}
.nav-sub a>img,.nav .nav-sub a>img{flex:0 0 60px!important;display:block!important;width:60px!important;height:45px!important;max-width:60px!important;max-height:45px!important;object-fit:cover!important;object-position:center!important;margin:0!important;padding:0!important;border:0!important;border-radius:2px!important;background:#e7e2d8}
.nav-sub-txt{flex:1 1 auto!important;min-width:0!important;display:block!important;padding:0!important;margin:0!important;font-size:14px!important;line-height:1.35!important}
.nav-sub a .nav-sub-txt b{display:block!important;font-size:14.5px!important;font-weight:600!important;color:#1F2C28!important;line-height:1.3!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.nav-sub a .nav-sub-txt small{display:block!important;font-size:12px!important;font-weight:400!important;color:#8b9793!important;line-height:1.4!important;margin:4px 0 0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.nav-sub-arrow{flex:0 0 20px!important;display:block!important;text-align:right!important;color:#b0bab6!important;font-size:19px!important;line-height:1!important;margin:0!important;transition:color .16s ease}
.nav-sub a:hover,.nav .nav-sub a:hover,.home-header .nav .nav-sub a:hover,.header .nav .nav-sub a:hover{background:#B0693F!important;color:#fff!important;transform:none!important;box-shadow:none!important}
.nav-sub a:hover .nav-sub-txt b{color:#fff!important}
.nav-sub a:hover .nav-sub-txt small{color:rgba(255,255,255,.86)!important}
.nav-sub a:hover .nav-sub-arrow{color:#fff!important}
.nav-sub a:after{display:none!important;content:none!important}
.nav-sub a:focus-visible{outline:2px solid #c98e68;outline-offset:-2px}
/* WC_NAV_DROP_TEXT */
/* 下拉里的文字：用自有属性 data-wc-lang 控制显示，避免被全局 [data-lang] 规则隐藏。
   font/color 全部 inherit，颜色由 .nav-sub a / b / small 决定，避免继承导航的白字。 */
.nav-sub [data-wc-lang]{display:none!important;color:inherit!important;font:inherit!important;line-height:inherit!important;letter-spacing:0!important;text-transform:none!important;opacity:1!important;visibility:visible!important}
html:not(.lang-en):not(.lang-ar) body:not(.lang-en):not(.lang-ar) .nav-sub [data-wc-lang="zh"]{display:inline!important}
html.lang-en .nav-sub [data-wc-lang="en"],body.lang-en .nav-sub [data-wc-lang="en"]{display:inline!important}
html.lang-ar .nav-sub [data-wc-lang="ar"],body.lang-ar .nav-sub [data-wc-lang="ar"]{display:inline!important}
/* 汉堡菜单模式下不显示这个子项面板：
   手机 (≤900px) 与平板 (901–1160px) 网站都用汉堡菜单，所以断点拉到 1160px。
   另外只要 .nav 处于汉堡展开态 (.nav.open)，无论视口多宽也一律隐藏。 */
@media(max-width:1160px){.nav-sub{display:none!important}}
.nav.open .nav-sub{display:none!important}







/* WC_NAV_NO_SHRINK */
/* 导航项禁止收缩：英语（Quick-Install System / Product Catalogue）与阿语标题较长，
   默认 flex-shrink:1 会把项压窄，文字溢出后叠在相邻项上。
   这里让每项按内容占宽、不折行；空间不足时由 .nav 的 gap 与字号承担收缩。 */
.nav>a,.nav>.nav-drop{flex:0 0 auto!important;min-width:0!important}
.nav>a,.nav>.nav-drop>a{white-space:nowrap!important}
/* 桌面区间 gap 偏大(31px)，英语较宽时适度收紧，避免顶到右侧按钮 */
@media(min-width:1161px){.nav{gap:clamp(10px,1.5vw,28px)!important}}

/* WC_NAV_SIZING_FIX */
/* 英语/阿语导航文字比中文长很多（Quick-Install System 需 ~119px），
   而首页首屏给导航项锁了 width/min-width/max-width = calc(5em+20px) ≈ 95px，
   文字被挤出去后压在相邻项上。这里只在英/阿语 + 桌面区间解除该固定宽度，
   中文保持原本的等宽排布不变。 */
@media(min-width:1161px){
  html.lang-en .nav>a,body.lang-en .nav>a,
  html.lang-ar .nav>a,body.lang-ar .nav>a,
  html.lang-en .nav>.nav-drop,body.lang-en .nav>.nav-drop,
  html.lang-ar .nav>.nav-drop,body.lang-ar .nav>.nav-drop,
  html.lang-en .nav>.nav-drop>a,body.lang-en .nav>.nav-drop>a,
  html.lang-ar .nav>.nav-drop>a,body.lang-ar .nav>.nav-drop>a{
    width:auto!important;min-width:0!important;max-width:none!important;
    white-space:nowrap!important}
}

/* WC_NAV_TIGHT */
/* 1161–1320px：英语/阿语导航标题较长，在较窄的桌面窗口里会互相挤压，
   这一段适度缩小字号与间距（中文不受影响）。 */
@media(min-width:1161px) and (max-width:1320px){
  html.lang-en .nav a,body.lang-en .nav a,
  html.lang-ar .nav a,body.lang-ar .nav a{
    font-size:13.5px!important;padding-left:4px!important;padding-right:4px!important}
  html.lang-en .nav,body.lang-en .nav,
  html.lang-ar .nav,body.lang-ar .nav{gap:12px!important}
}

/* ==========================================================================
   WC_GRID_MOBILE_FIX —— 优势区九宫格在窄屏的最终覆盖（必须留在文件最末）
   --------------------------------------------------------------------------
   症状：手机上九宫格被硬撑成 3 列，卡片只剩 83px 宽（320px 屏），
        52px 的圆形图标比卡片内容区还宽，被挤到屏幕外（实测 x=-22px），
        标题「WATERPROOFING AND DAMPROOFING」只能逐字换行。
   成因（两层，缺一不可）：
     1) index.html 的 .benefits-grid 带内联 grid-template-columns:repeat(3,…)，
        内联样式压过任何非 !important 的媒体查询 —— 这段内联已删除；
     2) 本文件 3470 行附近有一大段「回滚：认证徽章方案作废」的规则，
        选择器是 #advantages.advantages-section .benefits-grid 且带 !important，
        特异性与 !important 都拉满；它**没有媒体查询保护**，且位于文件后段 ——
        所以 2930 行那两条窄屏单列规则（特异性相同但更靠前）被它盖掉。
   因此这里把窄屏覆盖放在**全文件最末**：同特异性下后写者胜。
   ========================================================================== */
@media(max-width:900px){
  #advantages.advantages-section .benefits-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
}
@media(max-width:560px){
  #advantages.advantages-section .benefits-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  #advantages.advantages-section .benefit-card{
    flex-direction:row!important;
    text-align:left!important;
    padding:18px!important;
    gap:16px!important;
    min-height:0!important;
  }
  #advantages.advantages-section .benefit-icon{
    width:44px!important;height:44px!important;flex:0 0 auto!important;
  }
  #advantages.advantages-section .benefit-card h3{
    font-size:17px!important;line-height:1.3!important;
  }
  #advantages.advantages-section .benefit-card .number{display:none!important}
}

/* ==========================================================================
   WC_TAP_TARGETS —— 移动端点击区尺寸（无障碍：WCAG 2.5.8 Target Size）
   --------------------------------------------------------------------------
   实测：320–414px 视口下，页脚 21 个纵向链接的命中区只有 **21px 高**
   （font-size 13px + margin 6px，行盒高度约 21px）。手指点按容易误触相邻链接。
   WCAG 2.5.8（AA）要求最小 24×24 CSS px，移动端惯例是 44px。
   这里只给**触屏宽度**加垂直内边距：字号与排版不变，视觉上只是行距变宽松，
   命中区提升到约 44px。桌面（>860px）保持紧凑，不受影响。
   同样处理页脚社交链接（它们是 display:flex，内边距生效方式一致）。
   ========================================================================== */
@media(max-width:860px){
  .footer-grid a,
  .footer .social-link{
    padding-top:11px!important;
    padding-bottom:11px!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
  .footer-grid h3{margin-bottom:8px}
  /* 页脚社交链接图标跟着行高居中对齐 */
  .footer .social-link{align-items:center}
  /* WC_TAP_LEGAL：版权行的法律链接与「Cookie 设置」按钮。
     它们原本是 display:inline（4023 行有意改成行内，否则三个链接会堆成三行），
     而**行内元素的 vertical padding 不影响行盒高度** —— 所以单纯加内边距没用，
     实测仍是 12px 高的命中区。这里改成 inline-block 再补垂直内边距：
     一行内依旧横排，命中区提升到 24px 以上。 */
  .copyright .footer-legal a{
    display:inline-block!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
  /* WC_TAP_LEGAL：Cookie 设置按钮。
     它由服务端注入在 `<div class="container" style="…">` 里（**不在** .copyright 内），
     行内样式带 `padding:0 12px`，所以命中区只有 21px 高。内联样式优先级高于
     外部规则，必须用 !important 才能压过它。 */
  .wc-cookie-link{
    padding-top:9px!important;
    padding-bottom:9px!important;
  }
  /* WC_TAP_COOKIE_DETAIL：Cookie 横幅文案里的「详情」链接
     （cookie-consent.js 注入：…才会启用 Google Analytics。<a href="cookies.html">详情</a>）
     原本是纯行内、无内边距，实测命中区仅 28×16px。这里补垂直内边距，
     用 inline-block + 负外边距抵消，保证横幅文案行距不变。 */
  .wc-cookie-banner a{
    display:inline-block!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
    margin-top:-6px!important;
    margin-bottom:-6px!important;
  }
  .copyright{padding-bottom:10px}
}

/* ============================================================
   WC_HERO_TYPE_UNIFY —— 首屏（hero）文案版式全站统一：一律参照首页
   ============================================================
   背景：首页 index.html 用一段内联 <style> 把首屏字号压到原值的 2/3，
        其余页面没有这一层，于是同一个站里「首屏字」有大有小。
   需求：所有页面的首屏大图文案，字号与位置全部参照首页。

   改动前实测（1600×900、中文、本机 Chrome，单位 px）：
     页面                                   主标题  正文   小标题  文案左沿
     首页（基准）                           69.33   16.7   12.7    40
     快装系统 / 产品目录                    104     25     19      40
     墙面/吊顶/门/地板/柜/户外/案例/关于/联系  82（门页 76） 22  11   128
     法务三页（隐私 / Cookie / 条款）        60      17     12      128

   为什么写在文件末尾，而不是各页的内联 <style>：
     · 15 个页面各有一份 hero 内联样式，逐页改要动 15 处，漏一处就会出现
       「有的页面还是大字」；
     · 各页内联规则的优先级互相打架（门页还有一条三层选择器），
       只有在文件末尾用「更高特异性 + !important」才能一次压过全部；
     · 产品目录页 catalog.html 不注入前台 JS，只有走 CSS 才盖得到它。

   数值来源：与 index.html 内联 <style> 的第 2 块逐条一致（那一块 = 本文件原值 × 2/3）。
   所以首页外观完全不变，其余页面向它看齐。
   ⚠ 以后要调首屏字号：本块与 index.html 的内联块要一起改。

   还原方法：删掉本块（从 WC_HERO_TYPE_UNIFY 这一行起到文件末尾）即可。
   ============================================================ */

/* ---- 1) 小标题：.eyebrow（首页/目录/快装）与 .kicker（系统页/法务页） ---- */
html body .hero .eyebrow,
html body .hero .kicker,
html body .fullscreen-page-hero .eyebrow,
html body .fullscreen-page-hero .kicker,
html body .policy-hero .kicker,
html body .cookies-hero .kicker,
html body .terms-hero .kicker{
  font-size:12.7px!important;
}

/* ---- 2) 主标题 ----
   三类都要盖：
     .hero h1               首页 / 产品目录 / 快装系统
     .fullscreen-page-hero .h1   9 个系统页（含墙面页那种「直接子元素」写法）
     .doors-hero .doors-hero-copy .h1  门页另有一条三层选择器，须单独压过
   行高 .94 / 字距 -.045em / 字重 300 都是首页 .hero h1 的实测值。
   外边距：首页是「.eyebrow 下外边距 18px + h1 上外边距 0」= 视觉间距 18px，
   而系统页的 .kicker 没有下外边距、靠 h1 自己的 margin-top:18px 撑开 ——
   两者视觉间距一致，所以系统页的 margin-top 保持原样不动，只统一下边距。 */
html body .hero .hero-content h1,
html body .hero .hero-content .h1,
html body .fullscreen-page-hero h1,
html body .fullscreen-page-hero .h1,
html body .fullscreen-page-hero .h1.h1,
html body .doors-hero .doors-hero-copy .h1,
html body .policy-hero h1,
html body .cookies-hero h1,
html body .terms-hero h1{
  font-size:clamp(48px,4.333vw,92px)!important;
  line-height:.94!important;
  letter-spacing:-.045em!important;
  font-weight:300!important;
  max-width:94vw!important;
}
html body .hero .hero-content h1,
html body .hero .hero-content .h1,
html body .policy-hero h1,
html body .cookies-hero h1,
html body .terms-hero h1{
  margin:0 0 22px!important;
}
html body .fullscreen-page-hero .h1,
html body .fullscreen-page-hero .h1.h1,
html body .doors-hero .doors-hero-copy .h1{
  margin-bottom:22px!important;
}
html body .doors-hero .doors-hero-copy .h1{
  margin-top:18px!important;
}

/* ---- 3) 副文案 ----
   首页 .hero .lead：16.7px / 行高 1.4 / 最大宽 1250px。
   系统页原来是 22px / 1.55 / 650px，法务页 17px / 1.7 / 680px。
   最后一条 .doors-hero .doors-hero-copy p 是必需的：门页内联样式里
   有一条 `.doors-hero .doors-hero-copy p{max-width:100%!important}`（两个类 + 一个标签），
   优先级高于上面那条通用选择器，不点名就压不过它。 */
html body .hero .hero-content .lead,
html body .hero .hero-content p.lead,
html body .fullscreen-page-hero p,
html body .fullscreen-page-hero .catalog-lead,
html body .fullscreen-page-hero .doors-hero-copy p,
html body .policy-hero p,
html body .cookies-hero p,
html body .terms-hero p{
  font-size:16.7px!important;
  line-height:1.4!important;
  max-width:1250px!important;
}

/* ---- 4) 英文 / 阿语主标题 ----
   首页对 en / ar 各有一套更小的字号（拉丁与阿文字面高度不同），
   原来只有首页有，这里补到全站。
   ⚠ 顺序要求：必须排在中文基准值之后、所有断点之前 ——
   与 index.html 内联块的先后完全一致，否则 ≤900px 的阿语断点会被
   这条基准值（同为三层选择器）反过来盖掉。 */
html body.lang-en .hero .hero-content h1,
html body.lang-en .hero .hero-content .h1,
html body.lang-en .fullscreen-page-hero h1,
html body.lang-en .fullscreen-page-hero .h1,
html body.lang-en .fullscreen-page-hero .h1.h1,
html body.lang-en .doors-hero .doors-hero-copy .h1,
html body.lang-en .policy-hero h1,
html body.lang-en .cookies-hero h1,
html body.lang-en .terms-hero h1{
  font-size:clamp(42.67px,3.933vw,82.67px)!important;
}
html body.lang-ar .hero .hero-content h1,
html body.lang-ar .hero .hero-content .h1,
html body.lang-ar .fullscreen-page-hero h1,
html body.lang-ar .fullscreen-page-hero .h1,
html body.lang-ar .fullscreen-page-hero .h1.h1,
html body.lang-ar .doors-hero .doors-hero-copy .h1,
html body.lang-ar .policy-hero h1,
html body.lang-ar .cookies-hero h1,
html body.lang-ar .terms-hero h1{
  font-size:clamp(32px,3.6vw,69.33px)!important;
}

/* ---- 5) 断点 ----
   与 index.html 内联块逐条对应；顺序必须是「宽 → 窄」，
   否则同特异性的规则会由靠后的窄屏值覆盖宽屏值。 */
@media(max-width:1100px){
  html body .hero .hero-content h1,
  html body .hero .hero-content .h1,
  html body .fullscreen-page-hero h1,
  html body .fullscreen-page-hero .h1,
  html body .fullscreen-page-hero .h1.h1,
  html body .doors-hero .doors-hero-copy .h1,
  html body .policy-hero h1,
  html body .cookies-hero h1,
  html body .terms-hero h1{
    font-size:clamp(29.3px,4vw,48px)!important;
  }
}
@media(max-width:900px){
  html body.lang-ar .hero .hero-content h1,
  html body.lang-ar .hero .hero-content .h1,
  html body.lang-ar .fullscreen-page-hero h1,
  html body.lang-ar .fullscreen-page-hero .h1,
  html body.lang-ar .fullscreen-page-hero .h1.h1,
  html body.lang-ar .doors-hero .doors-hero-copy .h1,
  html body.lang-ar .policy-hero h1,
  html body.lang-ar .cookies-hero h1,
  html body.lang-ar .terms-hero h1{
    font-size:clamp(28px,8vw,40px)!important;
  }
  html body.lang-ar .hero .hero-content .lead,
  html body.lang-ar .fullscreen-page-hero p,
  html body.lang-ar .policy-hero p,
  html body.lang-ar .cookies-hero p,
  html body.lang-ar .terms-hero p{
    font-size:13.3px!important;
  }
}
@media(max-width:640px){
  html body .hero .hero-content h1,
  html body .hero .hero-content .h1,
  html body .fullscreen-page-hero h1,
  html body .fullscreen-page-hero .h1,
  html body .fullscreen-page-hero .h1.h1,
  html body .doors-hero .doors-hero-copy .h1,
  html body .policy-hero h1,
  html body .cookies-hero h1,
  html body .terms-hero h1{
    font-size:clamp(22.67px,5.067vw,33.33px)!important;
  }
}
@media(max-width:500px){
  html body .hero .eyebrow,
  html body .hero .kicker,
  html body .fullscreen-page-hero .eyebrow,
  html body .fullscreen-page-hero .kicker,
  html body .policy-hero .kicker,
  html body .cookies-hero .kicker,
  html body .terms-hero .kicker{
    font-size:12px!important;
  }
  html body .hero .hero-content .lead,
  html body .hero .hero-content p.lead,
  html body .fullscreen-page-hero p,
  html body .fullscreen-page-hero .catalog-lead,
  html body .policy-hero p,
  html body .cookies-hero p,
  html body .terms-hero p{
    font-size:18px!important;
  }
}

/* ---- 6) 文案区左右位置 ----
   系统页的 hero 内边距原本是 `150px 8vw 78px`（1600 宽时文案左沿 = 128px），
   首页 .hero .hero-content 的实测左内边距是 max(24px,2.5vw)（同屏宽 = 40px）。
   这里把左沿统一到首页的值；右侧留 20px（首页 .hero-content 的宽度算式
   `min(100% - 40px,1600px)` 等价于左右各让出 20px）。
   只写 padding-left / padding-right 长写属性，避免把上下的 150px / 78px 一起改掉。 */
html body .fullscreen-page-hero{
  padding-left:max(24px,2.5vw)!important;
  padding-right:20px!important;
}
/* 法务三页的首屏是一条纯色短横幅（没有大图），左右内边距原本也是 8vw。
   同样统一到首页的左沿；上下的 160px / 60px 保持原样不动
   （它们不是满屏大图，竖向节奏按各自横幅的留白走）。 */
html body .policy-hero,
html body .cookies-hero,
html body .terms-hero{
  padding-left:max(24px,2.5vw)!important;
  padding-right:20px!important;
}
/* 门页的文案块是绝对定位，父级内边距管不到它，要单独改 left。
   ≤800px 时门页会切成文档流 + 自己的 padding，所以这条只在宽屏生效，
   否则给 relative 元素加 left 会把整块往右推。 */
@media(min-width:801px){
  html body .fullscreen-page-hero .doors-hero-copy{
    left:max(24px,2.5vw)!important;
  }
}
/* 文案块宽度：系统页原本锁死在 min(820px,100%)，首页允许铺到 94vw。
   放开宽度后，主标题与正文的实际行宽就交给上面那套 max-width 统一控制
   （否则「柜子系统」这类长标题在 820px 里会被挤成 5 行）。 */
html body .fullscreen-page-hero .container,
html body .fullscreen-page-hero .page-hero-copy,
html body .fullscreen-page-hero .ceiling-intro-copy,
html body .fullscreen-page-hero .factory-hero-copy,
html body .fullscreen-page-hero .support-hero-copy,
html body .fullscreen-page-hero .panel-web-catalog-copy,
html body .fullscreen-page-hero .panel-intro-copy,
html body .fullscreen-page-hero .doors-hero-copy,
html body .fullscreen-page-hero-copy{
  width:100%!important;
  max-width:none!important;
}

/* ---- 7) 阿语（RTL）镜像 ----
   阿语下 <main> 是 direction:rtl + text-align:right（见本文件 body.lang-ar main 那条），
   所以文案天然贴右，上面那些「左内边距」在阿语里等于没生效，
   而 padding-right:20px 会让阿语正文拉成一条近 1500px 的长行。
   首页阿语的实测做法是：右内边距 max(24px,4vw)、主标题上限 1200px、正文上限 920px，
   这里照搬，保证阿语页面与首页阿语版本同位置、同宽度。 */
html body.lang-ar .fullscreen-page-hero,
html body.lang-ar .policy-hero,
html body.lang-ar .cookies-hero,
html body.lang-ar .terms-hero{
  padding-right:max(24px,4vw)!important;
  padding-left:20px!important;
}
html body.lang-ar .hero .hero-content h1,
html body.lang-ar .hero .hero-content .h1,
html body.lang-ar .fullscreen-page-hero .h1,
html body.lang-ar .fullscreen-page-hero .h1.h1,
html body.lang-ar .doors-hero .doors-hero-copy .h1,
html body.lang-ar .policy-hero h1,
html body.lang-ar .cookies-hero h1,
html body.lang-ar .terms-hero h1{
  max-width:1200px!important;
  margin-left:auto!important;
}
html body.lang-ar .hero .hero-content .lead,
html body.lang-ar .hero .hero-content p.lead,
html body.lang-ar .fullscreen-page-hero p,
html body.lang-ar .fullscreen-page-hero .catalog-lead,
html body.lang-ar .fullscreen-page-hero .doors-hero-copy p,
html body.lang-ar .policy-hero p,
html body.lang-ar .cookies-hero p,
html body.lang-ar .terms-hero p{
  max-width:920px!important;
  margin-left:auto!important;
}
/* 门页的文案块是绝对定位：阿语要镜像成「贴右」，
   否则上面那条 left:max(24px,2.5vw) 会和原有的 right:8vw 同时生效，
   把整块横向拉长（实测左边沿被推到 -32px）。 */
@media(min-width:801px){
  html body.lang-ar .doors-hero .doors-hero-copy{
    left:auto!important;
    right:max(24px,4vw)!important;
  }
}
/* ===================== WC_HERO_TYPE_UNIFY 结束 ===================== */

/* ============================================================
   WC_MOBILE_POLISH —— 手机版细节打磨（2026-10-11 第二轮）
   ============================================================
   体检数据（390×844、中文、本机 Chrome）：
     · 15 页全部无横向溢出 ✓
     · 每页 26~38 个交互元素命中区不足 44×44（页脚法务链接仅 30px 高、
       Cookie 设置按钮 39px、目录条按钮 41px）
     · 最小字号 9px（目录条按钮第二行）、11px（微标签）
     · 系列页把同一组「FULL CATALOGUE + 说明 + 4 按钮」逐系列重复：
       墙面页 6 遍、门页 7 遍、地板 4 遍、吊顶 3 遍
     · 首屏主标题沿用桌面端的 line-height:.94，手机小字号下两行几乎贴住

   本块只作用于窄屏，桌面端一律不动。
   还原方法：删掉本块即可。
   ============================================================ */

@media(max-width:900px){
  /* ---- 0) 安全网 ----
     给 <img> 补 width/height 属性后，个别没有 CSS 宽度约束的图片
     会按固有宽度撑出去（实测首页曾出现 +113px 横向溢出）。
     这条保证任何图片都不会超出容器。 */
  img{max-width:100%}

  /* ---- 1) 目录条：一次讲清 + 按钮放大到可点 ----
     原来 4 个按钮挤在一行：内容宽 350px ÷ 4 ≈ 83px/个，
     字号被压到 10.5px / 9px（9px 在手机上读不了）。
     改成 2×2 后每个按钮约 170px，字号可以回到 12.5px，
     高度也够 44px 的点击标准。 */
  .wc-catalog-actions{
    margin-top:16px!important;
    gap:8px!important;
    flex-wrap:wrap!important;
  }
  .wc-catalog-ask,
  .wc-catalog-wa,
  .wc-catalog-enq,
  .wc-catalog-sample,
  .wc-catalog-spec{
    width:auto!important;
    flex:1 1 calc(50% - 4px)!important;
    min-width:0;
    justify-content:center;
    padding:9px 10px!important;
    min-height:46px;
    letter-spacing:0!important;
  }
  .wc-cl1,.wc-cl2{font-size:12.5px!important}

  /* ---- 2) 同一段说明一页只讲一次 ----
     第一条目录条（.wc-bar-lead，由 wc-runtime.js 标记）保留
     「FULL CATALOGUE + 说明文字」；其余系列只留 4 个按钮。
     按钮仍在每个系列下方，逐系列询价/要样品的功能不受影响。 */
  .wc-catalog-bar:not(.wc-bar-lead) .wc-catalog-copy{display:none}
  .wc-catalog-bar{margin-top:20px!important;padding-top:16px!important}
}

/* ---- 3) 手机端命中区补到 44px ----
   页脚法务链接实测 30px 高、Cookie 设置按钮 39px。
   纯加垂直内边距即可（它们已经是 inline-block 或会被下面的规则改成）。
   另外补两个仍然偏小的：系列的「点击展开」41px、灯箱关闭按钮 42px。 */
@media(max-width:900px){
  /* WC_LEGAL_LANG：命中区补到 44px，但 display 只给「当前语言」的那一个。
     这里踩过一次坑：页脚法务链接的 <a> **自带 data-lang**（不是里面的 span），
     直接写 `.footer-legal a{display:inline-block!important}` 会把
     「隐藏其它语言」的规则一起盖掉 —— 实测中文模式下
     「隐私政策 Privacy الخصوصية」三种语言同时显示。
     所以先全部 display:none，再只把当前语言的恢复成 inline-block。 */
  .copyright .footer-legal a{
    display:none!important;
    padding-top:13px!important;
    padding-bottom:13px!important;
  }
  html body:not(.lang-en):not(.lang-ar) .copyright .footer-legal a[data-lang="zh"],
  html body.lang-en .copyright .footer-legal a[data-lang="en"],
  html body.lang-ar .copyright .footer-legal a[data-lang="ar"]{
    display:inline-block!important;
  }
  .wc-cookie-link{
    display:inline-block!important;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
  .panel-web-set-toggle,
  .door-family-toggle{min-height:46px}
  .wc-lightbox-close{width:44px!important;height:44px!important}
}

/* ---- 4) 手机端首屏主标题行高 ----
   桌面端 .94 是给 69px 大标题用的；手机上字号只有 22.67px，
   .94 会让两行汉字几乎贴在一起。窄屏单独放宽到 1.08。 */
@media(max-width:640px){
  html body .hero .hero-content h1,
  html body .hero .hero-content .h1,
  html body .fullscreen-page-hero h1,
  html body .fullscreen-page-hero .h1,
  html body .fullscreen-page-hero .h1.h1,
  html body .doors-hero .doors-hero-copy .h1,
  html body .policy-hero h1,
  html body .cookies-hero h1,
  html body .terms-hero h1{
    line-height:1.08!important;
  }
}
/* ---- 5) 右下角「获取报价」气泡：手机端缩成圆形 FAB ----
   改前实测（390×844）：134×56 的文字胶囊，固定在 (240,772)，
   占掉 34% 的屏宽，且每一页、每一个滚动位置都在 ——
   正文、系列按钮、页脚法务链接都被它压过。
   改成 56×56 圆钮（只留「＋」，无障碍名称仍在 aria-label 上），
   遮挡面积减少 58%，并和左下角的下滑箭头形成左右呼应。
   想换回带文字的版本：把 width/height 改成 width:auto;padding:0 18px 0 14px 即可。 */
@media(max-width:800px){
  .quote-bubble{
    right:16px!important;
    bottom:16px!important;
    width:56px!important;
    height:56px!important;
    padding:0!important;
    gap:0!important;
    justify-content:center!important;
  }
  .quote-bubble>span:not(.quote-dot){display:none!important}
  .quote-bubble:hover{transform:translateY(-4px) scale(1.04)!important}
}

/* ---- 6) 系列动作气泡：折叠时不再显示 ----
   原来「询价此系列 / 下载完整目录 / 获取样品 / WhatsApp」这一排
   在折叠状态下也常驻，于是墙面页 6 组、门页 4 组一路铺下来，
   列表被切得很碎。按需求改为：**展开该系列后才出现**。
   折叠态只剩「系列名 + 点击展开 ＋」，列表一眼能扫完。
   展开状态类名来自 titlebar-unify.js：.panel-web-set.is-open / .door-family.is-open */
@media(max-width:900px){
  .panel-web-set:not(.is-open)>.wc-catalog-bar,
  .door-family:not(.is-open)>.wc-catalog-bar{display:none!important}
}
/* ===================== WC_MOBILE_POLISH 结束 ===================== */

/* ============================================================
   WC_SERIES_ONE_NAME —— 系列名只保留一份：「序号 / 系列名」，橙色
   ============================================================
   问题：系列标题里出现了两遍同一个名字。
     · 面板系列（.panel-web-set）：titlebar-unify.js 把 kicker 改写成
       「03 / 石纹连纹系列」，而紧接着的 h2 就是「石纹连纹系列」；
     · 门系列（.door-family）：HTML 里 kicker 是「01 / WPC门墙同色系列」，
       h2 又是「WPC门墙同色系列」。
   中文模式下屏幕上会一模一样地出现两遍，英文/阿语也几乎完全重复。

   做法：序号由 titlebar-unify.js 写到 h2 的 data-wc-no 上，这里用
   attr() 渲染成「03 / 」前缀，整行用主题橙；kicker 隐藏。
   h2 仍是真正的标题元素（不是用 span 假扮），无障碍与 SEO 不受影响。

   还原方法：删掉本块即可 —— kicker 会重新出现，两行名字并存。
   ============================================================ */
.panel-web-set.wc-one-name .panel-web-set-head .kicker,
.door-family.wc-one-name .door-family-head .kicker{display:none!important}

.panel-web-set.wc-one-name .panel-web-set-head h2[data-wc-no]::before,
.door-family.wc-one-name .door-family-head h2[data-wc-no]::before{
  content:attr(data-wc-no) " / ";
}

.panel-web-set.wc-one-name .panel-web-set-head h2,
.door-family.wc-one-name .door-family-head h2{
  color:#D9A27B!important;
}
/* ===================== WC_SERIES_ONE_NAME 结束 ===================== */

/* ============================================================
   WC_COMPACT —— 手机 / 平板密度压缩（2026-10-11）
   ============================================================
   实测（390×844，中文）页面高度构成：
     墙面系统 3510px ＝ 首屏 658 ＋ 6 个系列 1010 ＋ CTA 325 ＋ **页脚 1505**
     产品目录 3922px ＝ 首屏 844 ＋ 品类区 1247 ＋ CTA 325 ＋ **页脚 1505**
   两处最占地方：

   ① **页脚 1505px，占全页 43%** —— styles.css 在 ≤500px 把
      `.footer-grid` 压成了 1 列（5 组链接竖着摞），实测 1137px。
      手机屏虽窄，但页脚都是短链接，2 列完全放得下（≤850px 本来就是 2 列，
      是 ≤500px 那条又给压回 1 列的）。

   ② **系列条目里「点击展开 ＋」独占一行**（46px）——
      桌面端是「名称 ｜ 按钮 ｜ 描述」三列同行，手机上被
      titlebar-unify.js 的 `@media(max-width:800px)` 改成了竖排。
      这里改回「名称 ＋ 按钮 同行 / 描述整行，描述仍占满宽度」。

   ③ 产品目录的品类卡同理：桌面是「序号+名称 ｜ 点击展开 ｜ 描述」同行，
      手机上四行竖排。改成「序号+名称 ＋ 按钮 同行 / 描述整行」。

   只作用于 ≤900px（手机 + 平板），桌面端一律不动。
   还原方法：删掉本块即可。
   ============================================================ */

/* ---------- ① 页脚：窄屏（手机 + 平板）保持两列 ---------- */
@media(max-width:900px){
  html body .footer{padding:38px 0 18px!important}
  html body .footer .footer-grid{
    grid-template-columns:1fr 1fr!important;
    gap:20px 18px!important;
    padding-bottom:24px!important;
  }
  /* 品牌那一组横跨两列，其余 4 组排成 2×2 */
  html body .footer .footer-grid>div:first-child{grid-column:1/-1!important}
  /* WC_FOOTER_PRODUCTS：窄屏时产品目录栏本身只占 2 列网格里的 1 格，
     内含的 9 项若再分两列会被挤成窄条，这里回退成单列竖排。 */
  html body .footer .footer-products .footer-col2{grid-template-columns:1fr!important;gap:0!important}
  html body .footer .footer-products .footer-col2 a{white-space:normal!important}
  html body .footer .footer-grid h3{margin-bottom:8px!important}
  html body .footer .footer-grid a{padding:4px 0!important;line-height:1.5!important}
  html body .footer .copyright{margin-top:6px!important}
}

/* ---------- ② 系列条目：展开按钮与系列名同行 ---------- */
@media(max-width:900px){
  html body .panel-web-set,
  html body .door-family{padding:12px 5vw!important}

  html body .panel-web-set .panel-web-set-head,
  html body .door-family .door-family-head{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-auto-rows:auto;
    gap:2px 10px!important;
    align-items:start!important;
  }
  /* 名称外层的 div 不再占一格 —— 让 h2 / 描述直接参与网格，
     这样描述可以整行铺满（description 有时在 div 内、有时是 head 的直接子元素，
     两种写法在这里都能落到同一行） */
  html body .panel-web-set .panel-web-set-head>div:first-child,
  html body .door-family .door-family-head>div:first-child{display:contents!important}

  html body .panel-web-set .panel-web-set-head h2,
  html body .door-family .door-family-head h2{grid-column:1!important;grid-row:1!important}

  html body .panel-web-set .panel-web-set-toggle,
  html body .door-family .door-family-toggle{
    grid-column:2!important;
    grid-row:1!important;
    justify-self:end!important;
    align-self:start!important;
    min-height:44px!important;
    padding:2px 0!important;
    margin:0!important;
    font-size:15px!important;
    line-height:1.2!important;
  }
  html body .panel-web-set .panel-web-set-toggle:after,
  html body .door-family .door-family-toggle:after{font-size:24px!important}

  html body .panel-web-set .panel-web-set-desc,
  html body .door-family .door-family-description{
    grid-column:1/-1!important;
    grid-row:2!important;
    margin-top:2px!important;
  }
}

/* ---------- ③ 产品目录：品类卡压成两行 ---------- */
@media(max-width:900px){
  html body .wc-cat-item{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:4px 12px!important;
    padding:14px 5vw!important;
    align-items:center!important;
  }
  html body .wc-cat-item .wc-cat-main{
    grid-column:1!important;
    grid-row:1!important;
    display:flex!important;
    align-items:baseline!important;
    gap:8px!important;
    min-width:0!important;
  }
  html body .wc-cat-item .wc-cat-no{
    display:block!important;
    margin:0!important;
    font-size:11px!important;
    flex:0 0 auto;
  }
  html body .wc-cat-item .wc-cat-cta{
    grid-column:2!important;
    grid-row:1!important;
    justify-content:flex-end!important;
    font-size:13px!important;
  }
  html body .wc-cat-item .wc-cat-desc{
    grid-column:1/-1!important;
    grid-row:2!important;
    font-size:13px!important;
    line-height:1.6!important;
  }
}
/* ===================== WC_COMPACT 结束 ===================== */

/* ============================================================
   WC_NAME_ACCENT —— 名称统一橙色 + 加粗放大 + 「点击展开」同色
   ============================================================
   改前实测（390×844）各处名称又小又不同色：
     · 系列名 h2        面板页 17px / 门页 19px（clamp 下限），字重 300 细体
     · 目录品类名       clamp(18px…) → 18px，字重 600，**深色** #1F2C28
     · 目录「点击展开」  #c98e68
     · 系列「点击展开」  **深色** #263a36
     · 系列名（上一轮）  #D9A27B
   一个页面里出现了 4 种「橙色/深色」的说法，主次也立不起来。

   统一到站点自己的设计变量 **--accent（#be6d47，陶土橙）**：
   它本来就是这个站的主强调色（按钮、kicker、目录条都在用），
   对浅底对比度约 3.7:1，比原来的 #D9A27B（约 2.1:1）更耐看也更容易达标。

   名称同时加粗到 600/700，窄屏字号提到 22px。
   想换橙色只改下面 --wc-orange 一处即可。
   还原方法：删掉本块。
   ============================================================ */
:root{--wc-orange:var(--accent,#be6d47)}

/* ---- 系列名：橙色 + 加粗 ---- */
html body .panel-web-set.wc-one-name .panel-web-set-head h2,
html body .door-family.wc-one-name .door-family-head h2{
  color:var(--wc-orange)!important;
  font-weight:600!important;
}

/* ---- 系列的「点击展开 ＋」：同色 ---- */
html body .panel-web-set .panel-web-set-toggle,
html body .door-family .door-family-toggle{
  color:var(--wc-orange)!important;
}

/* ---- 产品目录：品类名 + 序号 + 「点击展开」全部同色 ---- */
html body .wc-cat-item .wc-cat-main b{
  color:var(--wc-orange)!important;
  font-weight:700!important;
}
html body .wc-cat-item .wc-cat-no,
html body .wc-cat-item .wc-cat-cta{
  color:var(--wc-orange)!important;
}

/* ---- 窄屏（手机 / 平板）：名称再放大一档 ---- */
@media(max-width:900px){
  html body .panel-web-set.wc-one-name .panel-web-set-head h2,
  html body .door-family.wc-one-name .door-family-head h2{
    font-size:22px!important;
    line-height:1.2!important;
  }
  html body .wc-cat-item .wc-cat-main b{
    font-size:22px!important;
    line-height:1.22!important;
  }
  /* 名称变大后，与右侧「点击展开」之间的最小间距 */
  html body .wc-cat-item{gap:6px 14px!important}
}
/* ===================== WC_NAME_ACCENT 结束 ===================== */

/* ============================================================
   WC_INFO_BUBBLE —— 手机端右下角圆形按钮：图标换成「消息 / 短信」气泡
   ============================================================
   原来圆钮里是「＋」（由各页 HTML 里的 <span class="quote-dot">＋</span> 提供）。
   现在只换图标、**形状完全不变**（仍是 56×56 正圆、同一位置、同一橙色）。

   图标 = 对话气泡 + 三个点，就是通用的「短信 / 消息」图标。
   （上一版画的是「上点 + 下竖线」，实际看着像感叹号，已换掉。）

   做法：CSS 内联 SVG 作背景图 —— 不必改 15 个页面的 HTML，
   以后想换回「＋」删掉本块即可。
   桌面端（>800px）是带文字的胶囊，不受影响。
   ============================================================ */
@media(max-width:800px){
  .quote-bubble .quote-dot{display:none!important}
  .quote-bubble::before{
    content:"";
    display:block;
    width:26px;
    height:26px;
    flex:0 0 26px;
    background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 12.1c0 3.9-3.8 7.1-8.5 7.1-1 0-2-.15-2.9-.42L4.4 20.5l1.2-3.5C4.3 15.7 3.5 14 3.5 12.1c0-3.9 3.8-7.1 8.5-7.1s8.5 3.2 8.5 7.1z'/%3E%3Ccircle cx='8.4' cy='12.1' r='.95' fill='%23fff' stroke='none'/%3E%3Ccircle cx='12' cy='12.1' r='.95' fill='%23fff' stroke='none'/%3E%3Ccircle cx='15.6' cy='12.1' r='.95' fill='%23fff' stroke='none'/%3E%3C/svg%3E") center/26px 26px no-repeat;
  }
}
/* ===================== WC_INFO_BUBBLE 结束 ===================== */

/* ============================================================
   WC_SERIES_COUNT —— 系列款数行
   ============================================================
   格式：此处仅展示 {实际款数} 款，50+ 款完整目录点击下载
     · {实际款数} 由 wc-runtime.js 按页面真实展示的图片数自动填（.wc-series-shown）
     · 「50+」是三语节点里的普通文字 —— 后台「文案编辑」面板可直接按系列改
       （该面板扫描所有 [data-lang] 节点并自动同步英/阿）

   为什么全端都显示：手机端目录条折叠时不显示、展开时非首条也只剩按钮，
   款数会彻底看不到；桌面端则靠这一行把款数与「50+ 完整目录」讲清楚
   （目录条里原来那句「此处仅展示 N 款」已同步去掉，避免同一句说两遍）。

   还原方法：删掉本块 + 各页 HTML 里的 .wc-series-count。
   ============================================================ */
.wc-series-count{
  grid-column:1/-1;
  display:block;
  margin-top:5px;
  font-size:13px;
  line-height:1.55;
  color:var(--wc-orange,#be6d47);
  letter-spacing:.01em;
  cursor:pointer;
}
.wc-series-count b{font-weight:700}
/* 数字与两侧文字之间留一点空隙 —— 不能靠 HTML 里的空格，
   因为后台文案编辑器保存时会 trim，空格会丢（英文会变成「Only6」）。
   用 em 间距，不受语言影响。 */
.wc-series-count .wc-series-shown{margin:0 .2em}
.wc-series-count:hover{text-decoration:underline}
/* 刚在后台新建、还没传产品图的系列：帧数为 0，隐藏整行 ——
   否则会露出「此处仅展示 款，50+ 款…」这种半句话。传上图后前台自动恢复
   （由 wc-runtime.js 的 addSeriesCounts 切换这个类）。 */
.wc-series-count.wc-no-count{display:none!important}
@media(max-width:900px){
  .wc-series-count{
    grid-column:1/-1!important;
    margin-top:5px;
    font-size:12.5px;
  }
}
/* ===================== WC_SERIES_COUNT 结束 ===================== */

/* WC_VIDEO_PLACEHOLDER */
/* 后台删除视频位后：<video data-wc-novideo="1"> 的 source 被清空。
   原样会显示一个空的深色框（点不动，像坏了）。这里给个文字占位。 */
.wc-vid-box video[data-wc-novideo],
.wc-vid-box video:has(> source[src=""]){display:none}
.wc-vid-box:has(> video[data-wc-novideo])::after,
.wc-vid-box:has(> video > source[src=""])::after{
  content:"暂无视频 · Video coming soon";
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#8d968f;font-size:13px;letter-spacing:.5px;text-align:center;padding:16px;
}

/* WC_FIG_PH */
/* 图片位占位：后台把图删掉后，卡片里不能留一个空洞。
   用一层斜纹底 + 居中文字，高度与相邻卡片量级一致，不破坏网格对齐。 */
.wc-fig-ph{
  display:flex;align-items:center;justify-content:center;min-height:180px;
  background:repeating-linear-gradient(45deg,#f3f1ec,#f3f1ec 10px,#eeece6 10px,#eeece6 20px);
  border:1px dashed rgba(38,58,54,.18);border-radius:2px;margin:0;
}
.wc-fig-ph span{color:#8d968f;font-size:13px;letter-spacing:.5px}
.wc-fig-ph span[data-lang]{display:none}
body.lang-zh .wc-fig-ph span[data-lang="zh"],
body.lang-en .wc-fig-ph span[data-lang="en"],
body.lang-ar .wc-fig-ph span[data-lang="ar"],
html:not([data-lang]) .wc-fig-ph span[data-lang="zh"]{display:inline}

/* WC_VID_DURABLE */
/* ===== 快装系统视频：尺寸自适应（放在外部样式表的理由见文件头注释） =====
   实测（1400px 视口 / 2 列网格 → 每列 515px）：
     横屏 1280×720  → 铺满 515×290
     竖屏  720×1280 → 上限封顶 → 236×420（居中、不裁切）
   具体宽高由页面脚本按 videoWidth/videoHeight 显式计算并写成内联 style。
   本规则的作用：清掉页面内联样式里遗留的 aspect-ratio:16/9（它会把竖屏压扁）。 */
.wc-vid{margin:0}
.wc-vid-box{
  position:relative;background:#20211F;border-radius:2px;overflow:hidden;
  max-width:100%;display:flex;justify-content:center;align-items:center;
}
.wc-vid-box video{
  display:block;background:#20211F;object-fit:contain;
  width:auto;height:auto;max-width:100%;max-height:420px;
}
.wc-vid-badge{
  position:absolute;top:10px;left:10px;z-index:3;padding:5px 10px;font-size:11px;
  letter-spacing:.06em;color:#F4EEE3;background:rgba(38,58,54,.82);
  border-radius:2px;pointer-events:none;
}
.wc-vid.is-missing .wc-vid-badge{background:rgba(150,70,45,.9)}
/* 未上传 / 加载失败：固定 16:9 占位，避免 0 高 */
.wc-vid.is-missing .wc-vid-box{aspect-ratio:16/9}
.wc-vid.is-missing .wc-vid-box video{display:none}
@media(max-width:700px){ .wc-vid-box video{max-height:320px} }


/* ============================================================
   WC_AR_NAV_SPACING —— 阿语导航项之间的间距
   问题：导航全局有 letter-spacing:.04em（英文/中文下好看），但阿拉伯字母是连写的，
   加字距反而让词看着挤成一团；同时阿语标题更长，默认 gap 不够，几项会贴在一起。
   做法：阿语下取消字距、把 gap 与左右内边距放大，并让导航可以换行兜底。
   ============================================================ */
body.lang-ar .nav{letter-spacing:0!important}
body.lang-ar .header:not(.home-header) .nav{
  gap:clamp(26px,2.8vw,60px)!important;
  flex-wrap:wrap!important;
}
body.lang-ar .header:not(.home-header) .nav a{
  padding:14px 22px!important;
  letter-spacing:0!important;
  word-spacing:.08em!important;
}
body.lang-ar .home-header .nav{
  gap:clamp(14px,1.6vw,34px)!important;
  letter-spacing:0!important;
}
body.lang-ar .nav-text{letter-spacing:0!important}
@media(max-width:1100px){
  body.lang-ar .header:not(.home-header) .nav{gap:clamp(18px,2.2vw,34px)!important}
  body.lang-ar .header:not(.home-header) .nav a{padding:12px 16px!important}
}
/* ===================== WC_AR_NAV_SPACING 结束 ===================== */

/* ============================================================
   WC_EN_NAV_SPACING —— 英语导航项之间的间距
   英语标题比中文长（Quick-Install System / Product Catalogue），
   沿用中文那套 gap 会显得挤。做法与阿语一致：放大项间距与左右内边距，窄屏可换行。
   ============================================================ */
body.lang-en .header:not(.home-header) .nav{
  gap:clamp(24px,2.4vw,52px)!important;
  flex-wrap:wrap!important;
}
body.lang-en .header:not(.home-header) .nav a{
  padding:14px 20px!important;
}
body.lang-en .home-header .nav{
  gap:clamp(14px,1.5vw,32px)!important;
}
@media(max-width:1100px){
  body.lang-en .header:not(.home-header) .nav{gap:clamp(16px,2vw,30px)!important}
  body.lang-en .header:not(.home-header) .nav a{padding:12px 15px!important}
}
/* ===================== WC_EN_NAV_SPACING 结束 ===================== */

/* ============================================================
   WC_NAV_DROP_PERF —— 修「鼠标移到产品目录很卡」
   原因：.header:not(.home-header) 带 backdrop-filter:blur(12px)，
   而下拉菜单 .nav-sub 是 header 的子元素 —— 悬停时浏览器每帧都要重新模糊
   整条 header（底下还是整屏大图），于是明显掉帧。
   做法：鼠标/键盘进入任意下拉时，临时去掉 header 的背景模糊；
   离开后自动恢复（:has 不支持时退回原行为，不影响功能）。
   ============================================================ */
.header:has(.nav-drop:hover),
.header:has(.nav-drop:focus-within),
.header:has(.nav-sub:hover){
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
/* 下拉面板本身是纯白不透明的，不需要任何模糊 */
.nav-sub,.nav-drop .nav-sub{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  will-change:opacity;
}
/* 缩略图固定尺寸 + 异步解码，避免悬停时同步解码 7 张原图（1920px）造成的卡顿 */
.nav-sub a>img{
  width:60px!important;height:45px!important;
  object-fit:cover!important;
  contain:paint;
}
/* ===================== WC_NAV_DROP_PERF 结束 ===================== */

/* ============================================================
   WC_NAV_PERF_ROBUST —— 导航下拉卡顿（不依赖 :has 的版本）
   .header:not(.home-header) 带 backdrop-filter:blur(12px)，下拉是它的子元素，
   悬停时每帧都要重算整条 header 的模糊 → 明显掉帧。
   上一版用 :has() 判断，浏览器不支持就等于没改；这一版由 JS 打 .wc-drop-open 类。
   同时：下拉瞬时出现（去掉过渡帧）、全屏遮罩不做模糊。
   ============================================================ */
.header.wc-drop-open,
.header.wc-drop-open:not(.home-header),
.header.wc-drop-open.is-scrolled{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.nav-drop .nav-sub{
  transition:opacity .12s ease!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.wc-nav-scrim{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* ===================== WC_NAV_PERF_ROBUST 结束 ===================== */

/* ============================================================
   WC_NAV_GPU —— 下拉面板独立成层 + contain，杜绝悬停重绘
   实测：卡顿与首屏大图有关——下拉 opacity 动画时，浏览器会连同它底下
   整屏 hero 大图一起重排/重绘。这里把 .nav-sub 强制提到独立合成层，
   并用 contain 隔离布局，让动画只发生在面板自身，不碰首屏。
   ============================================================ */
.nav-sub{
  contain:layout style paint!important;
  will-change:transform,opacity!important;
  transform:translateZ(0)!important;
  backface-visibility:hidden!important;
}
/* 顺便：不要用 opacity 切换显示（会触发整层重绘），改 visible 即可 */
.nav-drop:hover .nav-sub,
.nav-drop.is-open .nav-sub,
.nav-drop:focus-within .nav-sub{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateX(-50%) translateY(0) translateZ(0)!important;
}
/* ===================== WC_NAV_GPU 结束 ===================== */

/* ============================================================
   WC_NAV_INSTANT —— 下拉「瞬时显示」，不放淡入动画
   opacity 从 0→1 的过渡在开 GPU 的机器上会让浏览器对底下整屏 hero 大图做
   图层合成，产生可感知卡顿。改成直接可见，零动画帧，彻底规避。
   ============================================================ */
.nav-sub{
  transition:none!important;
}
.nav-drop:hover .nav-sub,
.nav-drop.is-open .nav-sub,
.nav-drop:focus-within .nav-sub{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateX(-50%) translateY(0)!important;
  transition:none!important;
}
/* ===================== WC_NAV_INSTANT 结束 ===================== */

/* WC_HERO_CV —— 首屏大图 content-visibility 兜底（合成更省） */
.fullscreen-page-hero{content-visibility:auto!important;contain-intrinsic-size:100svh!important}

/* ===== CASE_GRID_4UP —— 工程案例：一行四张、3:4 竖版（2026-10-17 站长要求）=====
   为什么改
   --------
   上一版是 CASE_GRID_UNIFY 的「12 栏 7/5 交替 + 固定行高 + 图片绝对定位铺满」：
     · 桌面 1600 宽下每张只有 715×368（≈1.94:1），照片被裁成宽横条；
     · 结尾那张命中 `.case:last-child:nth-child(odd){grid-column:span 12}`，
       在同一个固定行高里只能露出一条横带 —— 新加的图看着就是「被压扁」；
     · 新增卡片被删后残留的空卡同样是整行宽，特别显眼。
   现在
   ----
   · 桌面一行四张（≤1240 三张、≤900 两张、≤640 一张）；
   · 每张固定 3:4 竖版（aspect-ratio:3/4 + object-fit:cover），行高跟着图片走，
     不再有固定行高，也不会再出现「整行宽」的卡片；
   · 缩略图只是裁切显示，**点击进灯箱看的仍是原图**（script.js 的灯箱取
     data-full / currentSrc，不受这里的 object-fit 影响）；
   · 手机上沿用既有做法：文字放在图片下方，不压在图上。 */
.case-grid{grid-auto-rows:auto!important;gap:18px!important}
@media(min-width:1101px){.case-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(min-width:861px) and (max-width:1100px){.case-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(min-width:601px) and (max-width:860px){.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.case-grid{grid-template-columns:1fr!important}}

/* 所有卡片一律等宽（清掉 7/5 与「最后一张整行」那套跨列规则），行高由图片决定 */
.case-grid .case,
.case-grid .case:nth-child(n),
.case-grid .case:first-child,
.case-grid .case:last-child,
.case-grid .case:last-child:nth-child(odd){grid-column:auto!important;height:auto!important;min-height:0!important;overflow:hidden!important;border-radius:3px!important;background:#1b2421!important}
.case-grid .case img{position:static!important;inset:auto!important;width:100%!important;height:auto!important;max-width:100%!important;aspect-ratio:3/4!important;object-fit:cover!important;object-position:center!important;display:block!important}

@media(min-width:601px){
  /* 四张一行后卡片变小，底部渐变加深一点，保证白字在亮图上仍看得清 */
  .case-grid .case:after{background:linear-gradient(0deg,rgba(9,14,12,.94) 0%,rgba(9,14,12,.72) 28%,rgba(9,14,12,.32) 58%,rgba(9,14,12,0) 86%)!important}
  .case-grid .case .case-label{position:absolute!important;left:16px!important;right:16px!important;bottom:14px!important;top:auto!important;padding:0!important;transform:none!important}
  .case-grid .case .case-label .kicker{font-size:10.5px!important;letter-spacing:.14em!important;margin:0 0 5px!important;color:#e6c3a2!important}
  .case-grid .case .case-label h3{font-size:clamp(15px,1.05vw,19px)!important;line-height:1.32!important;margin:0!important;color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.45);display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
  .case-grid .case .case-label p{margin:6px 0 0!important;font-size:12.5px!important;line-height:1.45!important;color:rgba(255,255,255,.8)!important;display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}
@media(max-width:600px){
  .case-grid .case:after,.case-grid .case:hover:after{display:none!important}
  .case-grid .case .case-label{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;padding:14px 16px 18px!important;transform:none!important}
  .case-grid .case .case-label h3{font-size:18px!important;display:block!important;overflow:visible!important}
  .case-grid .case .case-label p{display:block!important;overflow:visible!important}
}


/* ===== PROD_7PER：首页产品区「每个品类一行七格」（2026-10-17 站长要求）=====
   保留原来那套产品行（script.js 的 ROWS 运行时渲染），只是**每行补足到 7 格**：
   品类现有的图排前面，不足的格子由渲染时补上「待上传」占位图
   （media/pending-<品类>-<序号>.webp，是真实文件，后台可以逐格替换成你的图）。
   格子依旧是 1:1 方形（沿用 .prod-tile 的 aspect-ratio:1/1 + object-fit:cover）。 */
@media(min-width:1201px){
  #products .prod-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important;justify-content:stretch!important;gap:clamp(10px,1.05vw,18px)!important}
}
/* 待上传的占位格：鼠标不改手型、点开不放大（它不是真产品图） */
#products .prod-tile.is-pending{cursor:default}
#products .prod-tile.is-pending img{filter:none!important}

/* WC_PROD_ZOOM：产品格改回「点击放大 + 连续翻页」（2026-10-17 站长要求）。
   上面那两条 #products a.prod-tile{…} 是「跳分类页」时代给 <a> 用的
   （a 是行内元素，要显式 block 才吃得到 aspect-ratio 方块）；
   产品格现在回到 <figure>（默认 block），那两条已无对象，删掉。

   下面这条是**必需**的：.case-zoom（放大角标）的样式本站是按容器分开写的
   —— .case-grid .case / .materials-stack .material-card / .floor-tile 各一份，
   **偏偏没有产品格这一份**。不补的话角标会作为普通行内 span 挤进方格里，
   把 1:1 方格的布局撑坏。 */
#products .prod-tile .case-zoom{
  position:absolute;top:8px;right:8px;z-index:2;
  width:30px;height:30px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.55);border-radius:50%;
  background:rgba(24,33,31,.42);color:#fff;
  opacity:0;transform:scale(.86) translateY(-3px);
  transition:opacity .28s ease,transform .28s cubic-bezier(.22,.8,.24,1),background-color .25s ease;
  pointer-events:none;   /* 角标不吃点击，点它等于点格子 */
}
#products .prod-tile:hover .case-zoom,
#products .prod-tile:focus-visible .case-zoom{
  opacity:1;transform:scale(1) translateY(0);background:rgba(190,109,71,.78);
}
#products .prod-tile .case-zoom svg{width:14px;height:14px;display:block}
@media(min-width:1201px){
  /* 七列时单格更窄，角标跟着收一点 */
  #products .prod-tile .case-zoom{width:26px;height:26px;top:6px;right:6px}
  #products .prod-tile .case-zoom svg{width:12px;height:12px}
}

/* ===== PROD_NAME：首页产品格「底部的名字」（2026-10-17 站长要求）=====
   站长要：贴着图片底部加一排名字；名字在后台取景/选图那里可以改，中文自动翻译英/阿；
   还没上传真图的格子显示「待上传」。

   做法：每格包一层 .prod-cell（方格 + 名字），名字在方格下方另起一行。
   方格本身完全没动 —— 仍是 .prod-tile 的 1:1 方形，
   所以上面那十几处 .prod-grid 断点（≥1201 七列 / ≥1000 四列 / 641–999 两组各二列 / ≤640 二列）
   全部照旧生效，名字天然与各自的方格列对齐，不必复制任何一条列规则。

   三语显示**刻意不在这里写 CSS**：用 <span data-lang="zh|en|ar"> 走全站那套机制
   （[data-lang]:not(body){display:none!important} + body.lang-en / body.lang-ar），
   与同一区块里 prodHead() 生成的 h3 完全一致 —— 那边已验证可用，这里不重复实现。 */
#products .prod-cell{display:flex;flex-direction:column;gap:8px;min-width:0}
#products .prod-name{
  font-size:12.5px;
  line-height:1.4;
  color:#4a524e;
  text-align:center;
  letter-spacing:.01em;
  word-break:break-word;
}
/* 还没上传真图的格子：名字位置显示「待上传」，用弱化颜色区分（不加斜体 —— 阿语斜体会很难看） */
#products .prod-cell.is-pending .prod-name{color:#a3aaa5}
@media(min-width:1201px){
  /* 七列时单格窄，字号略收，减少名字换行把行高顶起来 */
  #products .prod-name{font-size:12px}
}
@media(max-width:640px){
  #products .prod-cell{gap:6px}
  #products .prod-name{font-size:11.5px}
}

/* ===== WC_PANEL_TILES：图册区块自动排版（2026-10-17 站长：「排版不对，排得合理一点」）=====
   由 wc-runtime.js 按每块图册自己的图片比例整齐度自动加 pg-tiled 或 pg-justified。
   两种模式**都不裁图**：
     · pg-tiled      比例整齐的系列 → 等比例格子（--pg-ar = 该系列比例中位数）+ contain，
                     行行对齐，序号按行从左到右读（吊顶灯具、吊顶铝型材）
     · pg-justified  横竖混排的系列 → 自适应满行：JS 按容器宽度把若干张凑成一行并算出行高，
                     每行正好铺满、不留竖洞，图宽按原比例（铝蜂窝）
   注意：titlebar-unify.js 展开时会注入 aspect-ratio:auto!important 等规则，
        所以下面统一用更高特异性（.panel-web-set .panel-web-pages.<mode> …）压住它。 */

/* —— 模式一：等比例格子 —— */
.panel-web-set .panel-web-pages.pg-tiled figure{display:flex!important;flex-direction:column!important}
.panel-web-set .panel-web-pages.pg-tiled img{aspect-ratio:var(--pg-ar,1.33)!important;height:auto!important;
  width:100%!important;object-fit:contain!important;object-position:center center!important;
  background:transparent!important;max-height:none!important}
.panel-web-set .panel-web-pages.pg-tiled figcaption{margin-top:10px!important}

/* —— 模式二：自适应满行（行高由 wc-runtime.js 按容器宽度算，这里只管骨架） —— */
.panel-web-set .panel-web-pages.pg-justified{display:flex!important;flex-wrap:wrap!important;
  align-items:flex-start!important;margin-top:30px!important;column-gap:24px!important;row-gap:26px!important}
.panel-web-set .panel-web-pages.pg-justified figure{flex:0 0 auto!important;max-width:100%!important;
  margin:0!important;display:flex!important;flex-direction:column!important;min-width:0!important}
.panel-web-set .panel-web-pages.pg-justified img{display:block!important;height:auto!important;width:100%!important;
  aspect-ratio:auto!important;object-fit:contain!important;object-position:center center!important;
  background:transparent!important;max-height:none!important}
.panel-web-set .panel-web-pages.pg-justified figcaption{margin-top:10px!important;line-height:1.35!important}
@media(max-width:760px){
  .panel-web-set .panel-web-pages.pg-justified{column-gap:14px!important;row-gap:16px!important}
}

/* WC_JUSTIFY_CENTER：图册末行不满时居中，避免右侧留一大片空白（2026-10-17 站长反馈地板页）
   满行本来就是精确铺满容器，居中对它们没有影响；只有末行不满时才看得出差别。 */
.panel-web-set .panel-web-pages.pg-justified{justify-content:center!important}

/* WC_HIDE_CLOSED_PAGES：图册收起时真正隐藏图片（原来只藏了目录条，图片照样显示，
   所以「点击收起」只换文字不生效 —— 2026-10-17 站长反馈）。 */
.panel-web-set:not(.is-open)>.panel-web-pages{display:none!important}

/* WC_COMPACT_CLOSED：图册收起时压缩行高（站长反馈「行高太高了」）。
   收起态实测 241px = 内边距28 + 头部111 + 目录条上间距24 + 目录条70 + 内边距7，
   其中图片已正确隐藏（高 0），多出来的都是空隙。这里收紧这些空隙。 */
.panel-web-set:not(.is-open){padding-bottom:0!important}
.panel-web-set:not(.is-open)>.wc-catalog-bar{margin-top:8px!important}
.panel-web-set:not(.is-open)>.panel-web-set-head{padding-top:0!important;padding-bottom:6px!important;row-gap:8px!important}

/* WC_COMPACT_ONEROW：收起态把「标题+款数 / 说明 / 展开按钮」排成一行。
   原来它们被注入样式强制 grid-column:1 堆成三行，头部高 105px。 */
.panel-web-set:not(.is-open)>.panel-web-set-head{display:flex!important;flex-wrap:wrap!important;align-items:center!important;column-gap:26px!important;row-gap:6px!important}
.panel-web-set:not(.is-open)>.panel-web-set-head>div:first-child{grid-column:auto!important;flex:0 0 auto!important}
.panel-web-set:not(.is-open)>.panel-web-set-desc{grid-column:auto!important;flex:1 1 300px!important;margin:0!important}
.panel-web-set:not(.is-open)>.panel-web-set-toggle{grid-column:auto!important;flex:0 0 auto!important;margin-left:auto!important}


/* ============================================================
   PROD_4PLUS3：首页产品区改「一行 4 张 + 第二行 3 张居中」
   ------------------------------------------------------------
   站长要求（2026-10-17）：每个品类 7 张图，横版排列，
   第一行 4 张，第二行 3 张居中，不再竖排堆叠。

   原布局问题：
     · 700px 左右时 .prod-rows 被设成 grid 2 列 → 7 个品类左右并排，
       每个品类只剩 320px 宽，组内 2 列 → 7 张图挤成 4 行，看着像竖排。
     · 各断点 .prod-grid 的列数是 2/4/7 混着写，7 张图排出来行数不固定。

   做法：.prod-grid 换成 flex + wrap + 居中，每格宽度锁 4 列，
   7 张自然排成 4 + 3，第二行 3 张自动居中（justify-content:center）。
   品类之间保持上下排列（.prod-rows 回到 flex column）。
   ============================================================ */
#products .prod-rows{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  gap:clamp(30px,3.4vw,54px)!important;
}
#products .prod-grid{
  --pg-gap:clamp(8px,0.9vw,16px);
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-items:flex-start!important;
  grid-template-columns:none!important;
  gap:var(--pg-gap)!important;
}
/* 每格占 1/4 宽（减掉 3 个间隙），7 张 = 第一行 4 张、第二行 3 张 */
#products .prod-grid>.prod-cell{
  flex:0 0 calc((100% - 3 * var(--pg-gap)) / 4)!important;
  max-width:calc((100% - 3 * var(--pg-gap)) / 4)!important;
  min-width:0!important;
}
#products .prod-grid>.prod-cell>.prod-tile{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
}
/* 手机竖屏同样保持 4 列 —— 站长明确要求「一行 4 张 + 第二行 3 张」，
   不要为了格子大而在手机上改成 3 列（会变成 3+3+1，与要求不符）。 */
/* 大屏：限制「整个网格」的最大宽度，而不是限制单格 ——
   限制单格宽度会让一行塞下 5 张（变成 5+2），必须锁死 4 等分。
   网格居中的同时，4 张一行、第二行 3 张居中的结构保持不变。 */
@media(min-width:1101px){
  #products .prod-grid{max-width:1080px!important;margin-inline:auto!important}
}
/* 名字跟着格子宽度走，避免长名字把格子撑变形 */
#products .prod-name{width:100%;overflow-wrap:anywhere}

/* ============================================================
   WC_MOBILE_HERO_STACK —— 手机端首屏：图片完整显示，不铺满裁切
   ------------------------------------------------------------
   站长要求（2026-10-17）：手机版不要全屏大图，图片完整显示即可。

   改前：.hero 固定 100svh，.hero-media 绝对定位铺满、图片 object-fit:cover
        裁掉两侧，文案用绝对定位叠在图片上 —— 手机上图片看不全、文案挤。
   改后（≤768px）：.hero 变普通流式布局
        ① 图片在上，按原比例完整显示（contain 语义 = width:100%、height:auto）
        ② 文案在下，跟着流走，深色字放在米白底上
        ③ 去掉压暗遮罩与文字阴影，不再需要「白字压深图」

   注：hero-type-scale.js 里同名标记会让手机端跳过定位计算，避免与本段打架。
   ============================================================ */
@media(max-width:768px){
  /* 1) hero 改成正常文档流，高度由内容决定 */
  .hero{
    height:auto!important;
    min-height:0!important;
    display:block!important;
    overflow:visible!important;
    background:#F4EEE3!important;
  }

  /* 2) 图片容器回到文档流，完整显示 */
  .hero .hero-media{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    opacity:1!important;
    display:block!important;
  }
  .hero .hero-media img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center top!important;
  }
  /* 3) 去掉压暗渐变 —— 图片已经不再承载文字 */
  .hero .hero-media:after{display:none!important}

  /* 4) 文案回到流式，深色字 */
  .hero .hero-content{
    position:relative!important;
    inset:auto!important;
    top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:20px 20px 30px!important;
    display:block!important;
    color:#1F2C28!important;
  }
  .hero .hero-content .eyebrow,
  .hero .hero-content .kicker{color:#BE6D47!important;text-shadow:none!important}
  .hero h1,.hero .h1{
    color:#1F2C28!important;
    text-shadow:none!important;
    margin-top:8px!important;
  }
  .hero h1 em{color:#C77A4A!important}
  .hero .lead,
  .hero .hero-content p{
    color:#4A524E!important;
    text-shadow:none!important;
  }
  .hero .hero-meta,
  .hero .hero-meta span{color:#7A8883!important;text-shadow:none!important}
}

/* ============================================================
   PROD_7UP_RESTORE：首页产品区改回「一行七张」（2026-10-17 站长确认）
   ------------------------------------------------------------
   另一个会话做的 PROD_4PLUS3 是「第一行 4 张 + 第二行 3 张居中」，
   与站长要求不符（站长：「电脑版打开首页不是一行七张了」）。
   这里只覆盖桌面（≥1001px）：七个格子一行排开、等宽、1:1 方形，
   名字仍然在格子下面（.prod-name 在 .prod-cell 里，不动）。
   ≤1000px 不干预，沿用原排版。
   ============================================================ */
@media(min-width:1001px){
  #products .prod-grid{
    display:grid!important;
    flex-wrap:nowrap!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    justify-content:stretch!important;
    align-items:start!important;
    max-width:none!important;
    margin-inline:0!important;
    gap:clamp(8px,0.9vw,16px)!important;
  }
  #products .prod-grid>.prod-cell{
    flex:none!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
  }
  #products .prod-grid>.prod-cell>.prod-tile{
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
  }
}
