/* contact-hero —— T7。改造为全宽背景图 banner，对齐 capability/industry/material
   归档页头的视觉规格（参考站 jcrapid.com /contact/ 实测：padding-top:200px/
   padding-bottom:100px，overlay-opacity:0.66）。
   HTML 从 e-con-boxed 改成 e-con-full，去掉 e-con-inner 层，加背景图 token
   内联注入（同 capability-archive-header.html 的做法）。 */

.jiesheng-contact-hero {
	max-width: 100%;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-color: var(--text-strong);
}
.jiesheng-contact-hero > .elementor-widget {
	position: relative;
	z-index: 1;
}
.jiesheng-contact-hero .elementor-image-box-content {
	text-align: center;
	max-width: 640px;
	margin: 0 auto;
}
.jiesheng-contact-hero .elementor-image-box-title {
	font-size: 72px;
	line-height: 1.2;
	color: #fff;
	margin: 0 0 20px;
}
.jiesheng-contact-hero .elementor-image-box-description {
	color: #fff;
	margin: 0;
}


/* === 自动抽取：参考站全局共享样式表（tools/extract-matching-css.py），按类名精确匹配抽取，minified 原文，未重新排版 === */
.elementor .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-theme-post-content) figure{margin:0}
.e-con-inner>.elementor-element.elementor-absolute,.e-con>.elementor-element.elementor-absolute,.elementor-widget-wrap>.elementor-element.elementor-absolute{position:absolute}
.e-con-inner>.elementor-element.elementor-fixed,.e-con>.elementor-element.elementor-fixed,.elementor-widget-wrap>.elementor-element.elementor-fixed{position:fixed}
.elementor-widget-wrap .elementor-element.elementor-widget__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget__width-initial{max-width:100%}
@media (max-width:1024px) {
.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-initial{max-width:100%}
}
@media (max-width:767px) {
.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-initial{max-width:100%}
}
.elementor-element.elementor-absolute,.elementor-element.elementor-fixed{z-index:1}
.elementor-element{--flex-direction:initial;--flex-wrap:initial;--justify-content:initial;--align-items:initial;--align-content:initial;--gap:initial;--flex-basis:initial;--flex-grow:initial;--flex-shrink:initial;--order:initial;--align-self:initial;align-self:var(--align-self);flex-basis:var(--flex-basis);flex-grow:var(--flex-grow);flex-shrink:var(--flex-shrink);order:var(--order)}
.elementor-element:where(.e-con-full,.elementor-widget){align-content:var(--align-content);align-items:var(--align-items);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);gap:var(--row-gap) var(--column-gap);justify-content:var(--justify-content)}
.elementor-widget-wrap>.elementor-element{width:100%}
.elementor-widget{position:relative}
.elementor-widget:not(:last-child){margin-block-end:var(--kit-widget-spacing,20px)}
.elementor-widget:not(:last-child).elementor-absolute,.elementor-widget:not(:last-child).elementor-widget__width-auto,.elementor-widget:not(:last-child).elementor-widget__width-initial{margin-block-end:0}
.e-con{--border-radius:0;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-style:initial;--border-color:initial;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--content-width:min(100%,var(--container-max-width,1140px));--width:100%;--min-height:initial;--height:auto;--text-align:initial;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--padding-top:var(--container-default-padding-top,10px);--padding-right:var(--container-default-padding-right,10px);--padding-bottom:var(--container-default-padding-bottom,10px);--padding-left:var(--container-default-padding-left,10px);--position:relative;--z-index:revert;--overflow:visible;--gap:var(--widgets-spacing,20px);--row-gap:var(--widgets-spacing-row,20px);--column-gap:var(--widgets-spacing-column,20px);--overlay-mix-blend-mode:initial;--overlay-opacity:1;--overlay-transition:0.3s;--e-con-grid-template-columns:repeat(3,1fr);--e-con-grid-template-rows:repeat(2,1fr);border-radius:var(--border-radius);height:var(--height);min-height:var(--min-height);min-width:0;overflow:var(--overflow);position:var(--position);width:var(--width);z-index:var(--z-index);--flex-wrap-mobile:wrap}
.e-con:where(:not(.e-div-block-base)){transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s)}
.e-con{--margin-block-start:var(--margin-top);--margin-block-end:var(--margin-bottom);--margin-inline-start:var(--margin-left);--margin-inline-end:var(--margin-right);--padding-inline-start:var(--padding-left);--padding-inline-end:var(--padding-right);--padding-block-start:var(--padding-top);--padding-block-end:var(--padding-bottom);--border-block-start-width:var(--border-top-width);--border-block-end-width:var(--border-bottom-width);--border-inline-start-width:var(--border-left-width);--border-inline-end-width:var(--border-right-width)}
body.rtl .e-con{--padding-inline-start:var(--padding-right);--padding-inline-end:var(--padding-left);--margin-inline-start:var(--margin-right);--margin-inline-end:var(--margin-left);--border-inline-start-width:var(--border-right-width);--border-inline-end-width:var(--border-left-width)}
.e-con{margin-block-end:var(--margin-block-end);margin-block-start:var(--margin-block-start);margin-inline-end:var(--margin-inline-end);margin-inline-start:var(--margin-inline-start);padding-inline-end:var(--padding-inline-end);padding-inline-start:var(--padding-inline-start)}
.e-con.e-flex{--flex-direction:column;--flex-basis:auto;--flex-grow:0;--flex-shrink:1;flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis)}
.e-con-full,.e-con>.e-con-inner{padding-block-end:var(--padding-block-end);padding-block-start:var(--padding-block-start);text-align:var(--text-align)}
.e-con-full.e-flex,.e-con.e-flex>.e-con-inner{flex-direction:var(--flex-direction)}
.e-con,.e-con>.e-con-inner{display:var(--display)}
.e-con.e-grid{--grid-justify-content:start;--grid-align-content:start;--grid-auto-flow:row}
.e-con.e-grid,.e-con.e-grid>.e-con-inner{align-content:var(--grid-align-content);align-items:var(--align-items);grid-auto-flow:var(--grid-auto-flow);grid-template-columns:var(--e-con-grid-template-columns);grid-template-rows:var(--e-con-grid-template-rows);justify-content:var(--grid-justify-content);justify-items:var(--justify-items)}
.e-con-boxed.e-flex{align-content:normal;align-items:normal;flex-direction:column;flex-wrap:nowrap;justify-content:normal}
.e-con-boxed.e-grid{grid-template-columns:1fr;grid-template-rows:1fr;justify-items:legacy}
.e-con-boxed{gap:initial;text-align:initial}
.e-con.e-flex>.e-con-inner{align-content:var(--align-content);align-items:var(--align-items);align-self:auto;flex-basis:auto;flex-grow:1;flex-shrink:1;flex-wrap:var(--flex-wrap);justify-content:var(--justify-content)}
.e-con.e-grid>.e-con-inner{align-items:var(--align-items);justify-items:var(--justify-items)}
.e-con>.e-con-inner{gap:var(--row-gap) var(--column-gap);height:100%;margin:0 auto;max-width:var(--content-width);padding-inline-end:0;padding-inline-start:0;width:100%}
:is(.elementor-section-wrap,[data-elementor-id])>.e-con{--margin-left:auto;--margin-right:auto;max-width:min(100%,var(--width))}
:is([data-widget_type="e-component.default"],[data-widget_type="e-component.default"]>.elementor-section-wrap)>.e-con{--margin-right:0px;--margin-left:0px}
.e-con .elementor-widget.elementor-widget{margin-block-end:0}
.e-con:before,.e-con>.elementor-background-slideshow:before,.e-con>.elementor-motion-effects-container>.elementor-motion-effects-layer:before,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);content:var(--background-overlay);display:block;height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));mix-blend-mode:var(--overlay-mix-blend-mode);opacity:var(--overlay-opacity);position:absolute;top:calc(0px - var(--border-top-width));transition:var(--overlay-transition,.3s);width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}
.e-con:before{transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s)}
.e-con>.elementor-background-slideshow,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));top:calc(0px - var(--border-top-width));width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}
@media (max-width:767px) {
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile{display:none}
}
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{z-index:1}
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-slideshow:before{z-index:2}
.e-con .elementor-widget{min-width:0}
.e-con .elementor-widget-empty,.e-con .elementor-widget-google_maps,.e-con .elementor-widget-video,.e-con .elementor-widget.e-widget-swiper{width:100%}
.e-con>.e-con-inner>.elementor-widget>.elementor-widget-container,.e-con>.elementor-widget>.elementor-widget-container{height:100%}
.e-con.e-con>.e-con-inner>.elementor-widget,.elementor.elementor .e-con>.elementor-widget{max-width:100%}
.e-con .elementor-widget:not(:last-child){--kit-widget-spacing:0px}
@media (max-width:767px) {
.e-con.e-flex{--width:100%;--flex-wrap:var(--flex-wrap-mobile)}
.e-con.e-flex .elementor-widget-archive-posts{width:100%}
}
.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .elementor-widget-container,.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.elementor-widget-container)){transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s)}
.elementor-element.elementor-button-info .elementor-button{background-color:#5bc0de}
.elementor-element.elementor-button-success .elementor-button{background-color:#5cb85c}
.elementor-element.elementor-button-warning .elementor-button{background-color:#f0ad4e}
.elementor-element.elementor-button-danger .elementor-button{background-color:#d9534f}
.e-transform .elementor-widget-container,.e-transform:not(:has(.elementor-widget-container)){transform:perspective(var(--e-transform-perspective,0)) rotate(var(--e-transform-rotateZ,0)) rotateX(var(--e-transform-rotateX,0)) rotateY(var(--e-transform-rotateY,0)) translate(var(--e-transform-translate,0)) translateX(var(--e-transform-translateX,0)) translateY(var(--e-transform-translateY,0)) scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1)))) scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1)))) skewX(var(--e-transform-skewX,0)) skewY(var(--e-transform-skewY,0));transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}
.e-con.e-transform{transform:perspective(var(--e-con-transform-perspective,0)) rotate(var(--e-con-transform-rotateZ,0)) rotateX(var(--e-con-transform-rotateX,0)) rotateY(var(--e-con-transform-rotateY,0)) translate(var(--e-con-transform-translate,0)) translateX(var(--e-con-transform-translateX,0)) translateY(var(--e-con-transform-translateY,0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX,0)) skewY(var(--e-con-transform-skewY,0));transform-origin:var(--e-con-transform-origin-y) var(--e-con-transform-origin-x)}
.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}
.e-container .elementor-element.elementor-sticky--active{padding-left:var(--padding-left);padding-right:var(--padding-right)}
.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}
.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}
.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9999}
.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}
.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}
.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}
.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}
.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}
.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}
.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}
.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}
.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}

/* === 追加：Elementor image-box widget 官方样式（本地已安装的 elementor 插件
   assets/css/widget-image-box.min.css，非 jcrapid.com 归档——参考站归档没有
   抓到这份按需加载的 widget 专属 CSS，但类名本身已经在 contact/index.html
   真实出现，见 verify-snapshots.php 的类名字典判定；这份是 Elementor 官方
   源码，不是自己臆造的规则 === */
.elementor-widget-image-box .elementor-image-box-content{width:100%}@media (min-width:768px){.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper,.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{display:flex}.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{flex-direction:row-reverse;text-align:end}[dir=rtl] .elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{flex-direction:row}.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{flex-direction:row;text-align:start}[dir=rtl] .elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{flex-direction:row-reverse}.elementor-widget-image-box.elementor-position-top .elementor-image-box-img{margin:auto}.elementor-widget-image-box.elementor-vertical-align-top .elementor-image-box-wrapper{align-items:flex-start}.elementor-widget-image-box.elementor-vertical-align-middle .elementor-image-box-wrapper{align-items:center}.elementor-widget-image-box.elementor-vertical-align-bottom .elementor-image-box-wrapper{align-items:flex-end}}@media (max-width:767px){.elementor-widget-image-box .elementor-image-box-img{margin-inline:auto!important;margin-bottom:15px}}.elementor-widget-image-box .elementor-image-box-img{display:inline-block}.elementor-widget-image-box .elementor-image-box-img img{display:block;line-height:0}.elementor-widget-image-box .elementor-image-box-title a{color:inherit}.elementor-widget-image-box .elementor-image-box-wrapper{text-align:center}.elementor-widget-image-box .elementor-image-box-description{margin:0}


/* ── 页头 banner 背景/遮罩覆盖 ──
   jcrapid.com contact 页实测：padding-top:200px / padding-bottom:100px。
   🐛 2026-09-04 修复：光放文件末尾不够——contact 页同时加载了 contact-hero.css/
   contact-info.css/contact-form.css 三份独立文件，每份都各自"自动抽取"了一份
   `.e-con{--padding-top:var(--container-default-padding-top,10px)...}`
   （单class选择器）。这三份文件按 <link> 顺序层叠，谁最后加载谁的 `.e-con`
   副本就把 `--padding-top` 这类自定义属性重置回默认值——不管前面哪份文件
   把覆盖写在"文件末尾"都没用，"末尾"只在同一份文件内有意义，档不住后加载的
   另一份文件里同名的 `.e-con` 规则。用 probe 实测过：改之前这里的 padding-top
   算出来是 10px（框架默认值），不是这里写的 200px。
   真正的修法是把选择器精度提到比单 class 的 `.e-con` 更高（补上标签名），
   这样无论哪份文件先加载、`.e-con` 规则出现在文件里的哪个位置，都赢定了，
   不用再靠"文件顺序"这种脆弱假设。 */
div.jiesheng-contact-hero {
	padding-top: 200px;
	padding-bottom: 100px;
	padding-left: 40px;
	padding-right: 40px;
}
div.jiesheng-contact-hero:before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(8, 8, 8, 0.7);
}
