/* 暖流 V5｜2026-10-15 页面实际集成统一视觉。
 * 暖流品牌橙／供水，蓝／回水；工程示意保留相应物理语义。
 */
:root{--wf-ink:#1a2c5f;--wf-muted:#637296;--wf-line:#dbe2ef;--wf-snow:#f6f9ff;--wf-orange:#f0870d;--wf-water:#1847ca}
body.v5-site .wf-cases-banner{
 min-height:clamp(540px,49vw,690px);
 padding:calc(var(--nav-h,70px) + 70px) 0 56px;
 background:
 radial-gradient(ellipse 65% 74% at 95% 12%,#e7efff 0%,transparent 78%),
 linear-gradient(112deg,#f9fbff 0%,#f1f5fd 61%,#e9effc 100%);
 display:block;overflow:hidden;border-bottom:1px solid var(--wf-line);
}
body.v5-site .wf-case-hero-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:36px;align-items:center;max-width:1260px;margin:0 auto}
body.v5-site .wf-case-banner-copy{position:relative;z-index:2;align-self:center}
body.v5-site .wf-hero-overline{display:inline-flex;gap:8px;align-items:center;font-size:12px;letter-spacing:.025em;color:#5a698c;font-weight:670}
body.v5-site .wf-hero-overline i{display:block;width:21px;height:1px;background:var(--wf-orange)}
body.v5-site .wf-case-banner h1{font-size:clamp(38px,3.55vw,58px);line-height:1.2;letter-spacing:-.045em;color:var(--wf-ink);margin:27px 0 20px;font-weight:750}
body.v5-site .wf-case-banner p{font-size:16px;line-height:2;color:#5a698c;max-width:440px;margin:0 0 28px}
body.v5-site .wf-case-banner-link{display:inline-block;text-decoration:none;padding:10px 0;border-bottom:1px solid #ec9331;color:#b76b11;font-size:14px;font-weight:670}
body.v5-site .wf-case-banner-link:hover{color:#e87d00}
body.v5-site .wf-case-banner-art{position:relative;min-width:0;transform:translateY(5px)}
body.v5-site .wf-case-art-sheet{position:relative;border-radius:19px;border:1px solid rgba(255,255,255,.93);background:rgba(255,255,255,.73);box-shadow:0 24px 65px rgba(54,79,148,.13);backdrop-filter:blur(16px);padding:17px 15px 8px}
body.v5-site .wf-case-art-sheet svg{display:block;width:100%;height:auto}
body.v5-site .wf-case-art-eyebrow{font-size:12px;color:#3b486d;display:flex;gap:9px;align-items:center;font-weight:670;padding:4px 13px}
body.v5-site .wf-case-art-eyebrow span:last-child{margin-left:auto;color:#97a1b7;font-weight:400;font-size:11px}
body.v5-site .wf-live-point{width:7px;height:7px;background:#f28c15;border-radius:50%;box-shadow:0 0 0 4px #fff3e7}
body.v5-site .wf-case-art-label{position:absolute;display:flex;gap:12px;align-items:center;font-size:12px;font-weight:650;background:rgba(255,255,255,.87);border:1px solid #fff;border-radius:11px;padding:10px 12px;box-shadow:0 11px 28px rgba(51,76,143,.11);backdrop-filter:blur(12px);color:#3b486d}
body.v5-site .wf-case-art-label span{color:#ed840f}
body.v5-site .wf-case-label-top{top:-12px;right:8%}
body.v5-site .wf-case-label-bottom{bottom:1%;left:-4%}
body.v5-site .wf-case-highlights{padding-top:76px}
body.v5-site .wf-featured-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
body.v5-site .wf-featured-three .pcard{border-color:#d6dff0;box-shadow:0 7px 32px rgba(35,56,113,.055)}
body.v5-site .wf-featured-three .pc-body{padding:21px 21px 26px}
body.v5-site .wf-featured-three .pc-body h3{font-size:20px;line-height:1.48;color:#253256}
body.v5-site .wf-featured-three .pc-img{aspect-ratio:1.75/1}
body.v5-site .wf-other-cases-label{color:#5a698c;font-weight:700;font-size:20px;margin:66px 0 22px}
body.v5-site .wf-other-cases .pcard{box-shadow:none}
body.v5-site .home-real-cases .vgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
body.v5-site .home-real-cases .sec-head .sec-desc{max-width:820px}

/* Product illustrations are distilled concepts, not screenshots of production system. */
body.v5-site #features .feature-row,body.v5-site .feature-row:has(.wf-product-ui){gap:clamp(28px,4vw,60px)}
body.v5-site .feature-row:has(.wf-product-ui){margin-top:80px}
body.v5-site .feature-row:has(.wf-product-ui) .feature-text h3{
 font-size:clamp(24px,2vw,31px);line-height:1.4;letter-spacing:-.025em
}
body.v5-site .feature-row:has(.wf-product-ui) .feature-text p{font-size:15px;line-height:1.88;color:#5a698c}
body.v5-site .wf-product-visual{
 border:0;box-shadow:none;border-radius:16px;min-width:0;overflow:visible;background:transparent;
}
body.v5-site .wf-product-ui{
 position:relative;width:100%;max-width:690px;min-width:0;box-sizing:border-box;
 border:1px solid #e1e7f3;border-radius:17px;
 background:linear-gradient(135deg,#f8faff,#ecf1fc);
 box-shadow:0 20px 54px rgba(34,59,127,.095);padding:18px;
 color:var(--wf-ink);overflow:hidden;
}
body.v5-site .wf-product-ui:before{
 content:"";position:absolute;pointer-events:none;width:55%;height:170px;right:-35px;top:-50px;
 background:radial-gradient(ellipse,rgba(180,199,237,.53),transparent 69%)
}
body.v5-site .wf-ui-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:1px 4px 13px;gap:5px;border-bottom:1px solid #dce3f0}
body.v5-site .wf-ui-brandmark{font-size:19px;letter-spacing:-.035em;font-weight:750;color:#1e3a87}
body.v5-site .wf-ui-brandmark small{color:#939fbb;font-size:10px;font-weight:520;letter-spacing:0;padding-left:9px}
body.v5-site .wf-ui-chip{font-size:11px;color:#5a698c;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
body.v5-site .wf-ui-chip i{width:6px;height:6px;border-radius:50%;background:#f28c13}
body.v5-site .wf-ui-network{position:relative;margin-top:13px;border:1px solid #e1e7f4;background:rgba(255,255,255,.72);border-radius:13px;padding:9px 10px 0}
body.v5-site .wf-ui-network svg{display:block;width:100%;height:auto}
body.v5-site .wf-ui-map-label{position:absolute;top:13px;left:17px;color:#717d98;font-size:11px;font-weight:640}
body.v5-site .wf-waterhammer{position:relative;z-index:2;margin:-5px 6px 0;background:rgba(255,255,255,.92);border:1px solid #dee5f2;box-shadow:0 13px 35px rgba(38,64,136,.10);border-radius:13px;padding:15px}
body.v5-site .wf-hammer-head{display:flex;align-items:center;justify-content:space-between;gap:6px}
body.v5-site .wf-hammer-head b{display:block;font-size:15px;color:#3b486d}
body.v5-site .wf-hammer-head span{display:block;font-size:10px;color:#717d98;margin-top:4px}
body.v5-site .wf-hammer-toggle{border:1px solid #cfd9ee;border-radius:6px;background:#f3f7ff;color:#5a698c;font-size:11px;padding:6px 10px;cursor:pointer;white-space:nowrap}
body.v5-site .wf-hammer-toggle:hover{border-color:#859eda}
body.v5-site .wf-hammer-toggle:focus-visible{outline:3px solid #3462cc;outline-offset:3px}
body.v5-site .wf-hammer-chart{margin-top:8px}
body.v5-site .wf-hammer-chart svg{display:block;width:100%;height:auto}
body.v5-site .wf-hammer-cursor{transition:transform .04s linear}
body.v5-site .wf-finsim-ui.wf-playing .wf-hammer-cursor{animation:wf-hammer-scan 5s linear infinite}
@keyframes wf-hammer-scan{from{transform:translateX(0)}to{transform:translateX(492px)}}
body.v5-site .wf-hammer-footer{display:flex;gap:15px;align-items:center;font-size:11px;color:#717d98;flex-wrap:wrap}
body.v5-site .wf-hammer-footer>span{display:inline-flex;gap:5px;align-items:center}
body.v5-site .wf-hammer-footer i{display:block;width:8px;height:8px;border-radius:50%}
body.v5-site .wf-hammer-footer i.wf-orange{background:#f28b14}
body.v5-site .wf-hammer-footer i.wf-blue{background:#2053c8}
body.v5-site .wf-hammer-footer .wf-hammer-caption{margin-left:auto}
body.v5-site .wf-ui-note{position:relative;margin-top:13px;color:#8c99b7;text-align:right;font-size:10px}
body.v5-site .wf-fingo-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:25px 0}
body.v5-site .wf-fingo-step{background:rgba(255,255,255,.95);border:1px solid #dae2f3;border-radius:11px;padding:14px 10px;display:flex;flex-direction:column;gap:9px;min-height:102px;position:relative}
body.v5-site .wf-fingo-step:not(:last-child):after{content:"›";position:absolute;right:-10px;top:40%;font-size:23px;color:#8798c1;z-index:2}
body.v5-site .wf-fingo-step>span{color:#717d98;font-size:11px}
body.v5-site .wf-fingo-step b{color:#3b486d;font-size:16px}
body.v5-site .wf-fingo-step small{color:#8994ae;font-size:10.5px;line-height:1.5}
body.v5-site .wf-fingo-highlight{background:linear-gradient(145deg,#fff9f1,#fff);border-color:#f2d8b4}
body.v5-site .wf-fingo-highlight b{color:#d7780a}
body.v5-site .wf-fingo-feedback{border:1px solid #dce3f2;border-radius:13px;padding:15px;background:rgba(255,255,255,.9)}
body.v5-site .wf-feedback-title{font-size:15px;font-weight:670;color:#3b486d}
body.v5-site .wf-feedback-pulse{display:inline-block;width:7px;height:7px;background:#27a798;border-radius:50%;vertical-align:middle;margin-right:7px}
body.v5-site .wf-feedback-line{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#8390af;margin-top:12px}
body.v5-site .wf-feedback-line b{font-weight:600;color:#cd7819}
body.v5-site .wf-fingo-feedback svg{display:block;width:100%;height:auto;margin:7px 0 0}
body.v5-site .wf-twin-stage{margin-top:18px;border:1px solid #e1e7f4;border-radius:12px;background:rgba(255,255,255,.78);padding:16px}
body.v5-site .wf-twin-stage svg{width:100%;display:block;height:auto}
body.v5-site .wf-twin-eyebrow{font-size:13px;color:#5a698c;font-weight:630}
body.v5-site .wf-twin-footer{display:flex;justify-content:space-between;align-items:center;gap:3px;margin:15px 2px 3px}
body.v5-site .wf-twin-footer span,body.v5-site .wf-twin-footer b{font-size:11px;color:#5a698c;white-space:nowrap}
body.v5-site .wf-twin-footer b{color:#d57e15}
body.v5-site .wf-twin-footer i{color:#dca56d;font-style:normal}

/* Editorial coherence: light inner-page banners, distinct per-page art. */
body.v5-site .pagehead.has-photo:not(.wf-cases-banner){
 background:linear-gradient(103deg,#f2f6fd,#e8eefa)!important;
 border-bottom:1px solid #e0e6f1;
}
body.v5-site .pagehead.has-photo:not(.wf-cases-banner) .ph-bg img{
 opacity:.32;object-position:65% center;filter:saturate(.7) contrast(.8);
}
body.v5-site .pagehead.has-photo:not(.wf-cases-banner) .ph-veil{
 background:linear-gradient(90deg,rgba(247,249,254,.96),rgba(247,250,255,.82) 53%,rgba(247,249,254,.16));
}
body.v5-site .pagehead.has-photo:not(.wf-cases-banner) h1{color:#253256!important;text-shadow:none!important;font-size:clamp(35px,3.1vw,47px);letter-spacing:-.045em}
body.v5-site .pagehead.has-photo:not(.wf-cases-banner) p{color:#5a698c!important;font-size:16px;max-width:650px}
body.v5-site .pagehead.has-photo:not(.wf-cases-banner) .pagehead-inner{padding-top:calc(var(--nav-h,70px) + 85px);padding-bottom:75px}

/* Scene images: purposeful material-specific scene photos, not one panorama split into four. */
body.v5-site .scenegrid .scene-card,body.v5-site .scenegrid>a{border-color:#dce4f3}
body.v5-site .scenegrid img{filter:saturate(.86) contrast(.99);object-fit:cover}
body.v5-site .scenegrid .scene-card:hover img{filter:saturate(1) contrast(1.02)}
@media(max-width:1000px){
 body.v5-site .wf-case-hero-grid{grid-template-columns:1fr;gap:28px}
 body.v5-site .wf-cases-banner{padding:calc(var(--nav-h,65px) + 45px) 0 45px}
 body.v5-site .wf-case-banner-copy{max-width:720px}
 body.v5-site .wf-case-banner h1{font-size:44px}
 body.v5-site .wf-case-banner-art{max-width:740px;width:100%;margin:auto}
 body.v5-site .wf-featured-three{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.v5-site .feature-row:has(.wf-product-ui){grid-template-columns:1fr;gap:24px}
 body.v5-site .feature-row:has(.wf-product-ui) .feature-text{order:0}
 body.v5-site .feature-row:has(.wf-product-ui) .feature-visual{order:1}
}
@media(max-width:767px){
 body.v5-site .wf-cases-banner{min-height:0;padding:calc(var(--nav-h,64px) + 32px) 0 40px}
 body.v5-site .wf-case-banner h1{font-size:clamp(34px,8.6vw,45px);margin:17px 0}
 body.v5-site .wf-case-banner p{font-size:14px;line-height:1.75;margin-bottom:16px}
 body.v5-site .wf-case-art-sheet{padding:8px}
 body.v5-site .wf-case-art-label{display:none}
 body.v5-site .wf-featured-three,.v5-site .wf-other-cases{grid-template-columns:1fr}
 body.v5-site .wf-other-cases-label{margin-top:45px}
 body.v5-site .wf-product-ui{padding:10px}
 body.v5-site .wf-ui-brandmark{font-size:17px}
 body.v5-site .wf-ui-brandmark small{font-size:9px}
 body.v5-site .wf-waterhammer{margin:-5px 0 0;padding:10px}
 body.v5-site .wf-hammer-footer{gap:7px;font-size:10px}
 body.v5-site .wf-hammer-footer .wf-hammer-caption{margin-left:0}
 body.v5-site .wf-fingo-panel{gap:5px}
 body.v5-site .wf-fingo-step{padding:9px 7px;min-height:100px}
 body.v5-site .wf-fingo-step b{font-size:13px}
 body.v5-site .wf-fingo-step>span{font-size:9px}
 body.v5-site .wf-fingo-step small{font-size:9px}
 body.v5-site .wf-twin-stage{padding:7px}
 body.v5-site .wf-twin-footer span,body.v5-site .wf-twin-footer b{font-size:9px}
 body.v5-site .pagehead.has-photo:not(.wf-cases-banner){min-height:325px}
 body.v5-site .pagehead.has-photo:not(.wf-cases-banner) .pagehead-inner{padding-top:calc(var(--nav-h,64px) + 62px);padding-bottom:46px}
}

/* Under deep-link and rapid scroll, older site-wide IntersectionObserver can
   leave mission-critical art and case cards at opacity:0. They must render. */
body.v5-site .home-real-cases .reveal,
body.v5-site .wf-case-highlights .reveal,
body.v5-site .feature-row:has(.wf-product-ui) .reveal{
 opacity:1!important;visibility:visible!important;transform:none!important;
}
body.v5-site .wf-product-ui,body.v5-site .wf-case-banner-art{content-visibility:visible!important}
/* Product visuals need the full lower viewport on mobile, not a fixed sales bar
   covering the essential diagram. Main navigation retains its consultation CTA. */
@media(max-width:767px){
 body.v5-site:has(.wf-finsim-ui) .mcta{display:none!important}
}
@media(prefers-reduced-motion:reduce){
 body.v5-site .wf-finsim-ui.wf-playing .wf-hammer-cursor{animation:none}
}
