/*!
 * EcoComfort V111 — Service page components (Master Service Page, Phase 01: Furnace)
 * Additive, scoped under .eco-v111. Inherits the V111 design language; does not
 * modify the frozen Homepage baseline files. Reuses homepage components where safe
 * (.hero, .trust, .section, .dark, .pricing, .faq, .final-cta, .tool-card, .field,
 * .range-result, .plan-card, buttons, kicker, proofline, footer).
 */

/* ---- Section header pattern (kicker+H2 left, lead right) ---- */
.eco-v111 .svc-top{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:end;margin-bottom:38px}
.eco-v111 .svc-top .lead{margin-left:auto}

/* ---- Section tones (editorial separation between consecutive light bands) ---- */
.eco-v111 .svc-cover{background:linear-gradient(180deg,#FBFAF6,#F4F1E9)!important;border-top:1px solid rgba(199,169,106,.14)}
.eco-v111 .svc-decide{background:#FBFAF6!important}
.eco-v111 .svc-local{background:linear-gradient(180deg,#F4F1E9,#EFEBE1)!important}

/* ============ 01 · SERVICE HERO V2 — premium local, architectural ============ */
/* Controlled height, 45/55 split; H1 quieter; body a calm measure. */
.eco-v111 .svc-hero{padding-top:42px!important;padding-bottom:44px!important}
.eco-v111 .svc-hero .svc-hero-grid{grid-template-columns:45% 55%!important;gap:40px!important;align-items:center!important}
.eco-v111 .svc-hero .hero-copy h1{font-size:66px!important;line-height:1.08!important;letter-spacing:-.035em!important;margin:0 0 18px!important;max-width:470px}
/* CTA proportions — refined, not chunky */
.eco-v111 .svc-hero .hero-actions .btn{padding:13px 24px!important;font-size:13px!important}
/* designed hero -> trust transition */
.eco-v111 .svc-hero{position:relative}
.eco-v111 .svc-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:80px;background:linear-gradient(180deg,transparent,rgba(6,11,30,.35));pointer-events:none}
.eco-v111 .trust{border-top:1px solid rgba(199,169,106,.2)!important}
.eco-v111 .svc-hero .hero-copy h1 em{font-style:normal;color:#49a857}
.eco-v111 .svc-hero .hero-copy p{max-width:520px!important;font-size:17px!important;line-height:1.62!important;color:#b9c3d8}
/* proof line — quieter, cleaner (no badge wall) */
.eco-v111 .svc-hero .svc-proofline{display:flex!important;flex-wrap:wrap!important;gap:10px 20px!important;margin:18px 0 26px!important}
.eco-v111 .svc-hero .svc-proofline span{font-size:11px!important;letter-spacing:.13em!important;color:#7f8ba3!important;opacity:.9}
.eco-v111 .svc-hero .svc-proofline span+span{position:relative;padding-left:20px}
.eco-v111 .svc-hero .svc-proofline span+span::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:rgba(199,169,106,.5);transform:translateY(-50%)}
/* right visual: NO card — fades into the navy hero field */
.eco-v111 .svc-hero-stage{position:relative!important;min-height:auto!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;overflow:visible!important;display:grid;place-items:center}
/* kill the frozen stage's internal grid + glow so the composition is NOT a panel — it bleeds into the hero */
.eco-v111 .svc-hero-stage::before,.eco-v111 .svc-hero-stage::after{display:none!important}
.eco-v111 .svc-hero-visual{position:relative;width:100%;display:grid;place-items:center;padding:0}
.eco-v111 .svc-hero-visual svg{width:100%;max-width:560px;height:auto}
/* building volume — subtle planes + gentle shadow (light from left) */
.eco-v111 .svh-roofplane{fill:rgba(255,255,255,.018)}
.eco-v111 .svh-slab{fill:rgba(255,255,255,.03)}
.eco-v111 .svh-accent{stroke:rgba(199,169,106,.4);stroke-width:1}
.eco-v111 .svh-accent.soft{stroke:rgba(199,169,106,.16)}
.eco-v111 .svh-fore{opacity:1}
.eco-v111 .svh-room{opacity:.9}
.eco-v111 .svh-mech{opacity:1}
.eco-v111 .svh-wallshade{opacity:.9}
/* architectural structure — thin linework, gold roof accent */
.eco-v111 .svh-roof{fill:none;stroke:rgba(199,169,106,.5);stroke-width:1.6;stroke-linejoin:round}
.eco-v111 .svh-struct{fill:none;stroke:rgba(197,208,232,.24);stroke-width:1.2;stroke-linecap:round}
.eco-v111 .svh-struct.soft{stroke:rgba(197,208,232,.12)}
.eco-v111 .svh-ground{fill:none;stroke:rgba(197,208,232,.14);stroke-width:1.2;stroke-dasharray:2 9}
.eco-v111 .svh-glow{mix-blend-mode:screen}
.eco-v111 .svh-win{fill:rgba(244,201,138,.08);stroke:rgba(244,201,138,.22);stroke-width:1}
.eco-v111 .svh-win.lit{fill:rgba(244,201,138,.24);stroke:rgba(244,201,138,.4)}
/* furnace / air handler — recognizable, not a product render */
.eco-v111 .svh-unit{stroke:rgba(199,169,106,.26);stroke-width:1}
.eco-v111 .svh-unit-top{fill:rgba(199,169,106,.5)}
.eco-v111 .svh-unit-line{stroke:rgba(197,208,232,.2);stroke-width:1}
.eco-v111 .svh-unit-shadow{fill:rgba(0,0,0,.32)}
.eco-v111 .svh-status{fill:#4fbf5e;filter:drop-shadow(0 0 4px rgba(67,182,73,.5))}
.eco-v111 .svh-pulse{fill:rgba(67,182,73,.08);transform-box:fill-box;transform-origin:center;animation:svhpulse 7.5s ease-in-out infinite}
/* ducts — quiet, integrated */
.eco-v111 .svh-duct{fill:none;stroke:rgba(197,208,232,.16);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .svh-duct.soft{stroke:rgba(197,208,232,.1)}
/* airflow — supply barely visible, return even quieter; motion is secondary */
.eco-v111 .svh-supply{fill:none;stroke:#57c265;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 20;opacity:.45;animation:svhflow 10s linear infinite}
.eco-v111 .svh-supply:nth-of-type(2){animation-duration:12s;animation-delay:-3s;opacity:.34}
.eco-v111 .svh-return{fill:none;stroke:#6f9bff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 22;opacity:.2;animation:svhflow 15s linear infinite}
@keyframes svhflow{to{stroke-dashoffset:-250}}
@keyframes svhpulse{0%,100%{transform:scale(.72);opacity:.05}50%{transform:scale(1.04);opacity:.16}}
.eco-v111 .svh-lbl{fill:rgba(176,192,220,.44);font-size:12px;letter-spacing:.24em;font-weight:700}

/* ---- 02 · Trust strip — lighter, continuous editorial (service page only) ---- */
.eco-v111 .trust .trust-grid div{padding:16px 16px!important}
.eco-v111 .trust .trust-grid div+div{border-left:1px solid rgba(199,169,106,.14)!important}
.eco-v111 .trust .trust-grid small{color:rgba(150,132,96,.92)!important;font-size:9.5px!important;letter-spacing:.16em!important;font-weight:700}
.eco-v111 .trust .trust-grid strong{margin-top:6px!important;font-size:15px!important;letter-spacing:-.01em}

/* ---- 03 · What we cover (editorial grid, not cards) ---- */
.eco-v111 .svc-cover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
.eco-v111 .svc-cover-grid article{padding:26px 0;border-top:1px solid rgba(23,32,68,.12)}
.eco-v111 .svc-cover-grid .c-idx{color:#B29A6A;font-size:12px;font-weight:800;letter-spacing:.16em}
.eco-v111 .svc-cover-grid h3{margin:10px 0 8px;font-size:19px;letter-spacing:-.02em;color:#161d3d}
.eco-v111 .svc-cover-grid p{margin:0;color:#5f6b82;font-size:14px;line-height:1.65}
.eco-v111 .svc-note{margin-top:26px;color:#7A8398;font-size:13px;line-height:1.6}

/* ---- 04 · System-first factors (dark, editorial) ---- */
.eco-v111 .svc-factors{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}
.eco-v111 .svc-factors article{padding:26px 0;border-top:1px solid rgba(255,255,255,.12)}
.eco-v111 .svc-factors .f-idx{color:var(--gold-2);font-size:12px;font-weight:800;letter-spacing:.16em}
.eco-v111 .svc-factors h3{margin:10px 0 8px;font-size:22px;letter-spacing:-.03em;color:#fff}
.eco-v111 .svc-factors p{margin:0;color:#AEB9D1;font-size:14px;line-height:1.7}

/* ---- 05 · Repair vs replace signature ---- */
.eco-v111 .decide-shell{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}

/* ---- 06 · Pricing band ---- */
.eco-v111 .svc-price-band{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;padding:30px 0;border-top:1px solid rgba(23,32,68,.12);border-bottom:1px solid rgba(23,32,68,.12)}
.eco-v111 .price-figure small{display:block;color:#9A875F;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.eco-v111 .price-figure b{display:block;margin-top:6px;font-size:clamp(48px,7vw,84px);line-height:.9;letter-spacing:-.05em;color:#141C3D}
.eco-v111 .price-factors>span{display:block;color:#5f6b82;font-size:14px;margin-bottom:12px}
.eco-v111 .price-factors ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px}
.eco-v111 .price-factors li{position:relative;padding-left:18px;color:#3A445E;font-size:14px}
.eco-v111 .price-factors li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* ---- 07 · Local city list ---- */
.eco-v111 .svc-city-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.eco-v111 .svc-city-list a{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border:1px solid rgba(23,32,68,.12);border-radius:16px;background:#fff;transition:.18s ease}
.eco-v111 .svc-city-list a:hover{border-color:rgba(199,169,106,.4);transform:translateY(-2px);box-shadow:0 14px 30px rgba(18,24,60,.08)}
.eco-v111 .svc-city-list span{font-size:18px;font-weight:750;letter-spacing:-.02em;color:#161d3d}
.eco-v111 .svc-city-list small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8f9ab1}

/* ---- 08 · Credentials rail (dark) ---- */
.eco-v111 .svc-creds-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,.12)}
.eco-v111 .svc-creds-rail div{padding:22px 22px 22px 0}
.eco-v111 .svc-creds-rail div+div{padding-left:24px;border-left:1px solid rgba(255,255,255,.10)}
.eco-v111 .svc-creds-rail small{display:block;color:#9A875F;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.eco-v111 .svc-creds-rail b{display:block;margin-top:8px;color:#EAF0FF;font-size:15px;line-height:1.35}

/* ---- 10 · Estimate request (self-contained; phone/email are the working path) ---- */
.eco-v111 .svc-estimate .wrap{display:grid;gap:22px}
.eco-v111 .svc-request{padding:28px 30px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(199,169,106,.18);color:#cdd6e6}
.eco-v111 .svc-request h3{margin:12px 0 0;color:#fff;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em}
.eco-v111 .svc-request p{margin:10px 0 0;color:#b7c1d6;line-height:1.7;font-size:15px;max-width:640px}
.eco-v111 .svc-request-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 14px}
.eco-v111 .svc-request-note{margin:0;color:#8795ab!important;font-size:12px!important;letter-spacing:.08em;text-transform:uppercase}

/* ---- Responsive ---- */
@media (max-width:1024px){
  .eco-v111 .decide-shell{grid-template-columns:1fr}
  .eco-v111 .svc-cover-grid{grid-template-columns:repeat(2,1fr);gap:0 32px}
}
@media (max-width:900px){
  .eco-v111 .svc-top{grid-template-columns:1fr;gap:14px}
  .eco-v111 .svc-top .lead{margin-left:0}
  .eco-v111 .svc-factors{grid-template-columns:1fr;gap:0}
  .eco-v111 .svc-price-band{grid-template-columns:1fr;gap:20px}
  .eco-v111 .svc-city-list{grid-template-columns:repeat(2,1fr)}
  .eco-v111 .svc-creds-rail{grid-template-columns:1fr 1fr}
  .eco-v111 .svc-creds-rail div+div{border-left:0}
  .eco-v111 .svc-creds-rail div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)}
  .eco-v111 .svc-hero-stage{min-height:360px!important;margin-top:8px}
}
@media (max-width:640px){
  .eco-v111 .svc-cover-grid{grid-template-columns:1fr}
  .eco-v111 .price-factors ul{grid-template-columns:1fr}
  .eco-v111 .svc-city-list{grid-template-columns:1fr}
  .eco-v111 .svc-request-fields{grid-template-columns:1fr}
  .eco-v111 .price-figure b{font-size:56px}
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  .eco-v111 .svh-supply,.eco-v111 .svh-return,.eco-v111 .svh-pulse{animation:none!important}
  .eco-v111 .svc-city-list a{transition:none!important}
}

/* ---- Hero: stack copy over visual, controlled sizes ---- */
@media (max-width:960px){
  .eco-v111 .svc-hero .svc-hero-grid{grid-template-columns:1fr!important;gap:24px!important}
  .eco-v111 .svc-hero .hero-copy h1{font-size:52px!important}
  .eco-v111 .svc-hero .hero-copy p{max-width:none!important}
  .eco-v111 .svc-hero-visual svg{max-width:460px}
}
@media (max-width:640px){
  .eco-v111 .svc-hero .hero-copy h1{font-size:40px!important;line-height:1.08!important}
  .eco-v111 .svc-hero-visual svg{max-width:360px}
  .eco-v111 .svh-return{opacity:.24}
  .eco-v111 .svh-supply:nth-of-type(2){animation:none!important;opacity:.45}
}

/* ---- Repair vs replace: right side = editorial signal list (not mini-cards) ---- */
.eco-v111 .decide-signals{align-self:start;padding-top:4px}
.eco-v111 .decide-signals h3{margin:10px 0 6px;font-size:22px;letter-spacing:-.03em;color:#161d3d}
.eco-v111 .signal-list{margin:14px 0 26px}
.eco-v111 .signal-list article{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding:22px 0;border-top:1px solid rgba(23,32,68,.12)}
.eco-v111 .signal-list article:first-child{border-top:0}
.eco-v111 .signal-list .s-idx{color:#B29A6A;font-size:12px;font-weight:800;letter-spacing:.16em;padding-top:3px}
.eco-v111 .signal-list strong{display:block;font-size:18px;letter-spacing:-.02em;color:#161d3d}
.eco-v111 .signal-list p{margin:6px 0 0;color:#5f6b82;font-size:14px;line-height:1.65}

/* ---- Age helper note + full-width field in the 2-col form grid ---- */
.eco-v111 .field-note{color:#8d98ae;font-size:12px;line-height:1.5;letter-spacing:.01em;text-transform:none;font-weight:600}
.eco-v111 .decide-shell .form-grid .field-full{grid-column:1/-1}

/* ======= SERVICE MINI ATLAS V2.2 — local premium cartographic service map ======= */
.eco-v111 .svc-atlas3{background:linear-gradient(180deg,#FBFAF6,#F1EDE3)!important;border-top:1px solid rgba(199,169,106,.14)}
/* One dark cartographic panel: left local directory + large map field */
.eco-v111 .atlas3{display:grid;grid-template-columns:25% 1fr;grid-template-rows:660px;height:660px;border-radius:24px;overflow:hidden;border:1px solid rgba(199,169,106,.2);background:linear-gradient(155deg,#0a1230,#0c1638 60%,#070d22);box-shadow:0 40px 100px rgba(5,9,26,.32)}
/* trim excess whitespace around the atlas band */
.eco-v111 .svc-atlas3{padding-top:72px!important;padding-bottom:72px!important}
.eco-v111 .svc-atlas3 .svc-top{margin-bottom:30px}

/* ---- LEFT: location navigation rail ---- */
.eco-v111 .atlas3-nav{display:flex;flex-direction:column;min-width:0;min-height:0;padding:18px 15px 13px;border-right:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%)}
.eco-v111 .atlas3-nav-head{font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin-bottom:11px}
.eco-v111 .atlas3-filter-wrap{position:relative;margin-bottom:12px}
.eco-v111 .atlas3-filter-ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:14px;height:14px;fill:none;stroke:#6f7c98;stroke-width:2;stroke-linecap:round;pointer-events:none}
.eco-v111 .atlas3-filter{width:100%;font-family:inherit;-webkit-appearance:none;appearance:none;padding:8px 12px 8px 32px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(6,11,30,.6);color:#dbe3f1;font-size:12.5px;letter-spacing:.01em}
.eco-v111 .atlas3-filter::placeholder{color:#6f7c98}
.eco-v111 .atlas3-filter:focus{outline:none;border-color:rgba(67,182,73,.6);box-shadow:0 0 0 3px rgba(67,182,73,.16)}
.eco-v111 .atlas3-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:6px;margin-right:-6px}
.eco-v111 .atlas3-scroll::-webkit-scrollbar{width:6px}
.eco-v111 .atlas3-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:6px}
.eco-v111 .atlas3-group{margin-bottom:12px}
.eco-v111 .atlas3-group-head{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8090ab;margin:0 0 6px 2px}
.eco-v111 .atlas3-group-head .tdot{width:8px;height:8px;border-radius:50%;background:#8090ab}
.eco-v111 .atlas3-group-head.t1 .tdot{background:var(--green);box-shadow:0 0 8px rgba(67,182,73,.6)}
.eco-v111 .atlas3-group-head.t2 .tdot{background:var(--gold-2)}
.eco-v111 .atlas3-group-head.t3 .tdot{background:#7f8aa3}
.eco-v111 .atlas3-list{display:flex;flex-direction:column;gap:2px}
.eco-v111 .atlas3-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;width:100%;text-align:left;font-family:inherit;-webkit-appearance:none;appearance:none;cursor:pointer;padding:7px 11px;border-radius:9px;border:1px solid transparent;background:transparent;transition:background .15s ease,border-color .15s ease}
.eco-v111 .atlas3-row .row-dot{width:8px;height:8px;border-radius:50%;background:transparent;border:1.5px solid #5b6884;box-sizing:border-box}
.eco-v111 .atlas3-row.t1 .row-dot{border-color:var(--green)}
.eco-v111 .atlas3-row.t2 .row-dot{border-color:var(--gold-2)}
.eco-v111 .atlas3-row.t3 .row-dot{border-color:#7f8aa3}
.eco-v111 .atlas3-row .row-name{font-size:13px;font-weight:650;color:#c4cee0;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eco-v111 .atlas3-row .row-name em{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.1em;color:var(--gold-2);vertical-align:middle;margin-left:6px;padding:1px 5px;border:1px solid rgba(199,169,106,.4);border-radius:5px}
.eco-v111 .atlas3-row .row-tier{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f7c98}
.eco-v111 .atlas3-row:hover{background:rgba(255,255,255,.04)}
.eco-v111 .atlas3-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* quiet selected row: subtle fill + thin green signal bar, no neon border/glow */
.eco-v111 .atlas3-row.active{background:rgba(255,255,255,.05);box-shadow:inset 2px 0 0 var(--green)}
.eco-v111 .atlas3-row.active .row-dot{background:var(--green);border-color:var(--green)}
.eco-v111 .atlas3-row.active .row-name{color:#fff}
.eco-v111 .atlas3-row.active .row-tier{color:#9fe0a4}
.eco-v111 .atlas3-row[hidden]{display:none}
.eco-v111 .atlas3-noresult{color:#7f8aa3;font-size:13px;padding:6px 12px;margin:0}

/* ---- RIGHT: map field ---- */
.eco-v111 .atlas3-stage{position:relative;min-width:0;overflow:hidden}
.eco-v111 .atlas3-stage::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:1}
.eco-v111 .atlas3-map{position:absolute;inset:0;width:100%;height:100%}
/* geography — quiet cartographic */
.eco-v111 .atlas3-land{fill:rgba(28,44,84,.34);stroke:none}
.eco-v111 .atlas3-regions path{fill:none;stroke:rgba(199,169,106,.16);stroke-width:1;stroke-dasharray:2 9;stroke-linecap:round}
.eco-v111 .atlas3-corridors path{fill:none;stroke:rgba(150,170,210,.07);stroke-width:1.3;stroke-linecap:round}
.eco-v111 .atlas3-lake{opacity:.92}
.eco-v111 .atlas3-shore{fill:none;stroke:rgba(120,175,230,.34);stroke-width:1.4}
.eco-v111 .geo-region{fill:rgba(176,192,220,.20);font-size:12.5px;font-weight:700;letter-spacing:.26em}
.eco-v111 .geo-region.strong{fill:rgba(199,169,106,.32);letter-spacing:.24em}
.eco-v111 .geo-water{fill:rgba(120,170,225,.3);font-size:11.5px;font-weight:600;letter-spacing:.32em;font-style:italic}
/* HQ service rings (tighter footprint) */
.eco-v111 .atlas3-hqring{fill:none;stroke:rgba(67,182,73,.15);stroke-width:1.1}
.eco-v111 .atlas3-hqring.r2{stroke:rgba(199,169,106,.12);stroke-dasharray:3 11}
/* selected route: faint gold under-trace + fine green */
.eco-v111 .atlas3-route-under{fill:none;stroke:var(--gold-2);stroke-width:2.8;stroke-linecap:round;opacity:.12;transition:stroke-dashoffset .62s cubic-bezier(.22,.61,.36,1)}
.eco-v111 .atlas3-route{fill:none;stroke:var(--green);stroke-width:1.6;stroke-linecap:round;opacity:.8;filter:drop-shadow(0 0 2px rgba(67,182,73,.3));transition:stroke-dashoffset .62s cubic-bezier(.22,.61,.36,1)}
/* travel signal + destination pulse */
.eco-v111 .atlas3-tracer{fill:#eafff0;opacity:0;filter:drop-shadow(0 0 4px rgba(67,182,73,.65))}
.eco-v111 .atlas3-tracer.run{animation:atlasTravel 4.6s ease-in-out infinite}
.eco-v111 .atlas3-destpulse{fill:none;stroke:var(--green);stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center}
.eco-v111 .atlas3-destpulse.run{animation:atlasDest 4.6s ease-in-out infinite}
@keyframes atlasTravel{0%{offset-distance:0%;opacity:0}5%{opacity:.95}16%{offset-distance:100%;opacity:.95}22%{opacity:0}100%{offset-distance:100%;opacity:0}}
@keyframes atlasDest{0%,14%{transform:scale(.5);opacity:0}18%{opacity:.55}32%{transform:scale(1.7);opacity:0}100%{transform:scale(1.7);opacity:0}}
/* markers */
.eco-v111 .atlas3-mk{cursor:pointer}
.eco-v111 .atlas3-mk .pt{fill:#0c1638;stroke:#6d7896;stroke-width:1.6;transition:.18s ease}
.eco-v111 .atlas3-mk.t1 .pt{stroke:var(--green);fill:#0e2033}
.eco-v111 .atlas3-mk.t2 .pt{stroke:var(--gold-2)}
.eco-v111 .atlas3-mk.t3 .pt{stroke:#59647e;opacity:.85}
.eco-v111 .atlas3-mk .lbl{fill:#c1cbdf;font-size:12.5px;font-weight:620;letter-spacing:.01em;paint-order:stroke;stroke:#070d22;stroke-width:3.2px}
.eco-v111 .atlas3-mk.t1 .lbl{fill:#dbe4f2}
.eco-v111 .atlas3-mk:not(.lbl-on) .lbl{opacity:0;transition:opacity .18s ease}
.eco-v111 .atlas3-mk.t3 .lbl{font-size:11.5px;fill:#a8b3cc}
.eco-v111 .atlas3-mk:hover .lbl,.eco-v111 .atlas3-mk.active .lbl{opacity:1}
.eco-v111 .atlas3-mk:hover .pt{stroke:#fff}
.eco-v111 .atlas3-mk.active .pt{fill:var(--green);stroke:#fff;r:5.8;filter:drop-shadow(0 0 4px rgba(67,182,73,.5));animation:mkpop .5s ease;transform-box:fill-box;transform-origin:center}
.eco-v111 .atlas3-mk.active .lbl{fill:#fff;font-weight:740}
/* HQ home-base node: navy disc + logomark + gold rim + green halo + slow breathing */
.eco-v111 .atlas3-mk.hq{cursor:default}
.eco-v111 .atlas3-mk.hq .hq-disc{fill:#0a1024;stroke:rgba(255,255,255,.07);stroke-width:1}
.eco-v111 .atlas3-mk.hq .hq-rim{fill:none;stroke:rgba(199,169,106,.6);stroke-width:1.4}
.eco-v111 .atlas3-mk.hq .hqhalo{fill:none;stroke:rgba(67,182,73,.4);stroke-width:1.5}
.eco-v111 .atlas3-mk.hq .hqpulse{fill:rgba(67,182,73,.12);transform-box:fill-box;transform-origin:center;animation:hqpulse 6.2s ease-in-out infinite}
.eco-v111 .atlas3-mk.hq .hq-logo{pointer-events:none}
.eco-v111 .atlas3-mk.hq .lbl{fill:#fff;font-weight:800;opacity:1;font-size:15px;letter-spacing:.015em}
@keyframes hqpulse{0%,100%{transform:scale(.72);opacity:.5}50%{transform:scale(1.22);opacity:.04}}
@keyframes mkpop{0%{transform:scale(.6)}60%{transform:scale(1.32)}100%{transform:scale(1)}}

/* ---- selected-location card (one, compact) ---- */
.eco-v111 .atlas3-card{position:absolute;left:20px;bottom:20px;z-index:3;width:min(248px,calc(100% - 40px));padding:16px 17px 15px;border-radius:14px;background:rgba(7,12,30,.9);border:1px solid rgba(199,169,106,.24);backdrop-filter:blur(12px);color:#dbe3f1;box-shadow:0 20px 54px rgba(4,8,22,.5);overflow:hidden}
.eco-v111 .atlas3-card::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),var(--gold-2) 70%,transparent)}
.eco-v111 .atlas3-card .ai-tier{font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.eco-v111 .atlas3-card h3{margin:7px 0 8px;font-size:23px;letter-spacing:-.03em;color:#fff;line-height:1.05}
.eco-v111 .atlas3-card .ai-svcs{list-style:none;margin:0 0 11px;padding:0;display:grid;gap:4px}
.eco-v111 .atlas3-card .ai-svcs li{position:relative;padding-left:15px;font-size:12.5px;color:#b7c1d6}
.eco-v111 .atlas3-card .ai-svcs li::before{content:"";position:absolute;left:0;top:6px;width:5px;height:5px;border-radius:50%;background:var(--green)}
.eco-v111 .atlas3-card .ai-note{margin:0 0 11px;font-size:11.5px;line-height:1.5;color:#a7b4cd}
/* CTA — readable off-white outlined treatment (secondary to the green estimate CTA) */
.eco-v111 .atlas3-cta.btn.line{display:block;width:100%;text-align:center;color:#fff;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.04);font-weight:700;letter-spacing:.01em;padding:9px 14px;font-size:12.5px}
.eco-v111 .atlas3-cta.btn.line:hover{border-color:var(--green);background:rgba(67,182,73,.14);color:#fff}

/* ---- responsive ---- */
@media (max-width:1024px){
  .eco-v111 .atlas3{grid-template-columns:1fr;grid-template-rows:none;height:auto}
  .eco-v111 .atlas3-nav{border-right:0;border-bottom:1px solid rgba(255,255,255,.07)}
}
@media (max-width:900px){
  /* heading -> per-tier horizontal strips -> large map -> card */
  .eco-v111 .atlas3-scroll{overflow:visible;padding:0;margin:0}
  .eco-v111 .atlas3-group{margin:0 0 14px}
  .eco-v111 .atlas3-group-head{margin-bottom:7px}
  .eco-v111 .atlas3-list{flex-direction:row;gap:7px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .eco-v111 .atlas3-list::-webkit-scrollbar{height:0}
  .eco-v111 .atlas3-row{flex:0 0 auto;width:auto;grid-template-columns:auto auto;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.03)}
  .eco-v111 .atlas3-row .row-tier{display:none}
  .eco-v111 .atlas3-stage{min-height:0}
  .eco-v111 .atlas3-map{position:relative;inset:auto;height:420px}
  .eco-v111 .atlas3-card{position:relative;right:auto;bottom:auto;width:auto;border-radius:0;border:0;border-top:1px solid rgba(199,169,106,.24);background:rgba(7,12,30,.9);backdrop-filter:none;box-shadow:none}
}
@media (max-width:640px){
  .eco-v111 .atlas3-map{height:400px}
  .eco-v111 .atlas3-mk .lbl{font-size:15px}
  .eco-v111 .geo-region{font-size:15px}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .atlas3-mk.hq .hqpulse{animation:none!important}
  .eco-v111 .atlas3-mk.active .pt{animation:none!important}
  .eco-v111 .atlas3-route,.eco-v111 .atlas3-route-under{transition:none!important}
  .eco-v111 .atlas3-tracer.run,.eco-v111 .atlas3-destpulse.run{animation:none!important}
  .eco-v111 .atlas3-tracer,.eco-v111 .atlas3-destpulse{opacity:0!important}
  .eco-v111 .atlas3-row{transition:none!important}
}

/* =========================================================================
 * V111 MULTI-SERVICE ADDITIONS (AC / Heat Pump / Boiler / Snow Melt)
 * Heroes, signature variants, Decision Studio section, assessment pricing,
 * contextual sticky conversion bar. Scoped under .eco-v111.
 * ====================================================================== */

/* ---- Shared new hero motifs (reuse svh-* base; add service accents) ---- */
.eco-v111 .ac-cond,.eco-v111 .hp-unit,.eco-v111 .bo-boiler{stroke:rgba(150,180,220,.5);stroke-width:1}
.eco-v111 .ac-cond-top,.eco-v111 .hp-unit-top,.eco-v111 .bo-boiler-top{fill:rgba(120,150,200,.5)}
.eco-v111 .ac-louver{stroke:rgba(150,180,220,.4);stroke-width:1}
.eco-v111 .ac-fan-ring{fill:none;stroke:rgba(150,190,220,.55);stroke-width:1.4}
.eco-v111 .ac-blade{fill:rgba(180,215,235,.5)}
.eco-v111 .ac-fan-hub{fill:rgba(200,225,240,.8)}
.eco-v111 .ac-fan{animation:ecoacspin 9s linear infinite;transform-box:view-box}
.eco-v111 .ac-ring{fill:none;stroke:rgba(127,214,230,.5);stroke-width:1.4;stroke-linecap:round}
.eco-v111 .ac-ring.soft{stroke:rgba(127,214,230,.28)}
.eco-v111 .ac-lineset{fill:none;stroke:rgba(150,180,210,.45);stroke-width:1.4;stroke-dasharray:2 4}
.eco-v111 .ac-reg{fill:rgba(150,190,220,.55)}
.eco-v111 .ac-cool{fill:none;stroke:rgba(127,214,230,.7);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:20 46;animation:ecocoolflow 5.5s linear infinite}
.eco-v111 .ac-cool.soft{stroke:rgba(127,214,230,.4);animation-duration:7s}

/* Heat pump: warm + cool bidirectional, sun + snow */
.eco-v111 .hp-sun-rays line{stroke:rgba(243,192,136,.7);stroke-width:1.6;stroke-linecap:round}
.eco-v111 .hp-flake line{stroke:rgba(160,205,230,.7);stroke-width:1.4;stroke-linecap:round}
.eco-v111 .hp-flake.soft line{stroke:rgba(160,205,230,.4)}
.eco-v111 .hp-warm{fill:none;stroke:rgba(243,192,136,.8);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:16 40;animation:ecocoolflow 5s linear infinite}
.eco-v111 .hp-cool{fill:none;stroke:rgba(136,207,230,.7);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:16 40;animation:ecocoolflow 6s linear infinite reverse}
.eco-v111 .hp-warm-dot{fill:rgba(243,203,150,.9)}
.eco-v111 .hp-cool-dot{fill:rgba(150,214,235,.9)}
.eco-v111 .hp-sun{opacity:.9}

/* Boiler: supply/return loop, radiator, radiant floor */
.eco-v111 .bo-flue{stroke:rgba(140,170,210,.4);stroke-width:2;stroke-linecap:round}
.eco-v111 .bo-supply{fill:none;stroke:rgba(224,138,110,.75);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .bo-return{fill:none;stroke:rgba(120,170,220,.6);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .bo-riser{fill:none;stroke:rgba(224,138,110,.55);stroke-width:1.6;stroke-linecap:round}
.eco-v111 .bo-rad{fill:rgba(30,50,90,.5);stroke:rgba(150,180,220,.5);stroke-width:1}
.eco-v111 .bo-rad-fin{stroke:rgba(224,160,120,.55);stroke-width:2}
.eco-v111 .bo-radiant path{fill:none;stroke:rgba(240,176,106,.55);stroke-width:1.6;stroke-linecap:round}
.eco-v111 .bo-flow{fill:rgba(240,170,130,.95);animation:ecoflowdot 3.4s linear infinite}
.eco-v111 .bo-flow-r{fill:rgba(150,195,235,.9);animation:ecoflowdot 4s linear infinite}
@keyframes ecoflowdot{0%{opacity:0}12%{opacity:1}88%{opacity:1}100%{opacity:0}}

/* Snow melt: falling snow, melt glow, slab grid */
.eco-v111 .dw-flake line{stroke:rgba(180,210,235,.8);stroke-width:1.5;stroke-linecap:round}
.eco-v111 .dw-flake.soft line{stroke:rgba(180,210,235,.5)}
.eco-v111 .dw-snow .dw-flake{opacity:.85;animation:ecosnow 7s ease-in infinite}
.eco-v111 .dw-snow .dw-flake:nth-child(2){animation-duration:9s;animation-delay:1.2s}
.eco-v111 .dw-snow .dw-flake:nth-child(3){animation-duration:8s;animation-delay:.6s}
.eco-v111 .dw-snow .dw-flake:nth-child(4){animation-duration:10s;animation-delay:2s}
.eco-v111 .dw-vapor{fill:none;stroke:rgba(240,176,106,.4);stroke-width:1.4;stroke-linecap:round;animation:ecovapor 4.5s ease-in-out infinite}
.eco-v111 .dw-vapor.soft{stroke:rgba(240,176,106,.24);animation-duration:6s}
.eco-v111 .dw-slab-top{stroke:rgba(150,180,220,.4);stroke-width:1}
.eco-v111 .dw-slab-face{stroke:rgba(120,150,200,.3);stroke-width:1}
.eco-v111 .dw-slab-edge{stroke:rgba(160,190,225,.5);stroke-width:1.2}
.eco-v111 .dw-slab-edge.soft{stroke:rgba(120,150,200,.3)}
.eco-v111 .dw-grid circle{fill:rgba(240,176,106,.8)}
.eco-v111 .dw-loop{fill:none;stroke:rgba(240,176,106,.5);stroke-width:1.4}
.eco-v111 .dw-sensor{fill:rgba(40,60,100,.7);stroke:rgba(160,190,225,.5);stroke-width:1}
.eco-v111 .dw-sensor-stem{stroke:rgba(140,170,210,.45);stroke-width:1.4}
.eco-v111 .svh-roofplane.soft{opacity:.5}

@keyframes ecoacspin{to{transform:rotate(360deg)}}
@keyframes ecocoolflow{to{stroke-dashoffset:-66}}
@keyframes ecosnow{0%{opacity:.5;transform:translateY(-10px)}25%{opacity:1}80%{opacity:.6}100%{opacity:.3;transform:translateY(70px)}}
@keyframes ecovapor{0%,100%{opacity:.2}50%{opacity:.7}}

/* ---- SIGNATURE variants (share .svc-decide / .decide-shell / .tool-card) ---- */
.eco-v111 .tool-card.sig-frame h3{margin-bottom:16px}
.eco-v111 .sig-rows{display:grid;gap:0}
.eco-v111 .sig-row{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:14px 0;border-top:1px solid rgba(23,32,68,.1)}
.eco-v111 .sig-row:first-child{border-top:0}
.eco-v111 .sig-k{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green);padding-top:2px}
.eco-v111 .sig-row p{margin:0;font-size:13.5px;line-height:1.55;color:#3a445e}
/* readiness checklist (heat pump) */
.eco-v111 .sig-check{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:12px}
.eco-v111 .sig-check li{position:relative;padding-left:30px}
.eco-v111 .sig-check li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--green);background:radial-gradient(circle at 50% 50%,rgba(67,182,73,.18),transparent 70%)}
.eco-v111 .sig-check li::after{content:"";position:absolute;left:6px;top:7px;width:6px;height:9px;border:2px solid var(--green);border-top:0;border-left:0;transform:rotate(40deg)}
.eco-v111 .sig-check strong{display:block;font-size:14px;color:#161d3d}
.eco-v111 .sig-check span{display:block;font-size:13px;line-height:1.5;color:#3a445e;margin-top:2px}
.eco-v111 .sig-foot{margin:4px 0 0;font-size:13px;line-height:1.55;color:#3a445e;padding-top:14px;border-top:1px solid rgba(23,32,68,.1)}
.eco-v111 .sig-foot strong{color:#161d3d}
/* comparison cards (boiler / driveway) */
.eco-v111 .sig-compare3,.eco-v111 .sig-compare2{display:grid;gap:14px}
.eco-v111 .sig-compare3{grid-template-columns:1fr}
.eco-v111 .sig-opt{padding:14px 16px;border:1px solid rgba(23,32,68,.12);border-radius:12px;background:#fbfaf6}
.eco-v111 .sig-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#08260d;background:linear-gradient(90deg,var(--green),#7fce87);padding:4px 10px;border-radius:999px;margin-bottom:8px}
.eco-v111 .sig-opt p{margin:0;font-size:13.5px;line-height:1.55;color:#3a445e}
.eco-v111 .sig-fit{display:block;margin-top:8px;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--gold);text-transform:none}

/* ---- DECISION STUDIO section band ---- */
.eco-v111 .svc-studio-sec{background:#f1efe7}
.eco-v111 .svc-studio-sec .eco-studio{margin-top:22px}

/* ---- Assessment pricing (no $ figure) ---- */
.eco-v111 .price-figure.assess b{font-size:30px;letter-spacing:-.01em;line-height:1.1}
.eco-v111 .svc-price-band.assess .price-figure.assess small{color:var(--gold)}

/* ---- Contextual sticky conversion bar ---- */
.eco-v111 .svc-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(120%);transition:transform .34s cubic-bezier(.22,.61,.36,1);background:rgba(12,18,42,.94);backdrop-filter:blur(8px);border-top:1px solid var(--gold-line);box-shadow:0 -12px 40px rgba(8,12,30,.28)}
.eco-v111 .svc-sticky.show{transform:translateY(0)}
.eco-v111 .svc-sticky-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.eco-v111 .svc-sticky .ss-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.eco-v111 .svc-sticky .ss-svc{font-size:14px;font-weight:750;color:#fff;letter-spacing:-.01em}
.eco-v111 .svc-sticky .ss-price{font-size:11.5px;font-weight:600;letter-spacing:.02em;color:rgba(224,199,143,.9)}
.eco-v111 .svc-sticky .ss-actions{display:flex;gap:10px;flex:0 0 auto}
.eco-v111 .svc-sticky .btn{padding:10px 18px;font-size:12.5px}
.eco-v111 .svc-sticky .btn.ghost{color:#fff;border-color:rgba(255,255,255,.28)}
@media (max-width:640px){
  .eco-v111 .svc-sticky .ss-price{display:none}
  .eco-v111 .svc-sticky .btn.ghost{display:none}
  .eco-v111 .svc-sticky-in{padding:10px 0}
  .eco-v111 .svc-sticky .btn.primary{flex:1}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .ac-fan,.eco-v111 .ac-cool,.eco-v111 .hp-warm,.eco-v111 .hp-cool,.eco-v111 .bo-flow,.eco-v111 .bo-flow-r,.eco-v111 .dw-snow .dw-flake,.eco-v111 .dw-vapor{animation:none}
  .eco-v111 .svc-sticky{transition:none}
}

/* ---- EVIDENCE / PROOF-READY section ---- */
.eco-v111 .svc-evidence{background:#fff}
.eco-v111 .evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}
.eco-v111 .ev-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:5px 11px;border-radius:999px;margin-bottom:14px;color:#6b7488;background:rgba(23,32,68,.06);border:1px solid rgba(23,32,68,.12)}
.eco-v111 .ev-tag.on{color:#08260d;background:linear-gradient(90deg,var(--green),#7fce87);border-color:transparent}
.eco-v111 .ev-live ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.eco-v111 .ev-live li{position:relative;padding-left:20px;font-size:14px;line-height:1.55;color:#3a445e}
.eco-v111 .ev-live li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.eco-v111 .ev-live strong{color:#161d3d}
.eco-v111 .ev-slots{display:grid;gap:12px}
.eco-v111 .ev-slot{display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;column-gap:12px;padding:14px 16px;border:1px dashed rgba(23,32,68,.22);border-radius:12px;background:#fbfaf6}
.eco-v111 .ev-slot .ev-ic{grid-row:1/3;font-size:20px;color:var(--gold);line-height:1}
.eco-v111 .ev-slot b{font-size:13.5px;color:#161d3d}
.eco-v111 .ev-slot small{font-size:12.5px;line-height:1.5;color:#7a8398}

/* ---- PREMIUM SERVICE COMPARISON ---- */
.eco-v111 .compare-grid{margin-top:22px;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden}
.eco-v111 .compare-head,.eco-v111 .compare-row{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr 1.5fr 1.4fr;align-items:center;gap:10px;padding:14px 20px}
.eco-v111 .compare-head{background:rgba(255,255,255,.05);font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.eco-v111 .compare-row{border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.82);font-size:13.5px;text-decoration:none;transition:background .15s ease}
.eco-v111 .compare-row:hover{background:rgba(255,255,255,.04)}
.eco-v111 .compare-row .cr-svc{font-weight:750;color:#fff}
.eco-v111 .compare-row .cr-svc em{display:inline-block;margin-left:6px;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#08260d;background:linear-gradient(90deg,var(--green),#7fce87);padding:2px 7px;border-radius:999px;vertical-align:middle}
.eco-v111 .compare-row.current{background:rgba(67,182,73,.1)}
.eco-v111 .compare-row.current:hover{background:rgba(67,182,73,.14)}
@media (max-width:820px){
  .eco-v111 .compare-head{display:none}
  .eco-v111 .compare-grid{border:0;border-radius:0;display:grid;gap:14px}
  .eco-v111 .compare-row{grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px;gap:8px 12px}
  .eco-v111 .compare-row .cr-svc{grid-column:1/3;font-size:16px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1)}
  .eco-v111 .compare-row span[data-lbl]::before{content:attr(data-lbl);display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:2px}
}
@media (max-width:640px){
  .eco-v111 .evidence-grid{grid-template-columns:1fr;gap:18px}
}

/* =========================================================================
 * HERO v3 — architectural art-direction pass: shared motion + label + H1 rebalance
 * ====================================================================== */
.eco-v111 .hv{display:block;width:100%;height:auto}
.eco-v111 .hv .hv-lbl{fill:rgba(176,192,220,.5);font-size:11px;letter-spacing:.22em;font-weight:700}
/* restrained motion */
.eco-v111 .hv .hv-spin{animation:hvspin 14s linear infinite;transform-box:view-box}
.eco-v111 .hv .hv-flow{stroke-dasharray:14 42;animation:hvflow 7s linear infinite}
.eco-v111 .hv .hv-flow.rev{animation-direction:reverse;animation-duration:8.5s}
.eco-v111 .hv .hv-flow-dot{animation:hvflowdot 3.6s linear infinite}
.eco-v111 .hv .hv-shimmer{animation:hvshimmer 7s ease-in-out infinite}
.eco-v111 .hv .hv-breathe{animation:hvbreathe 9s ease-in-out infinite;transform-box:view-box;transform-origin:center}
.eco-v111 .hv .hv-snow .hv-flake{animation:hvsnow 9s linear infinite}
.eco-v111 .hv .hv-snow .hv-flake:nth-child(2){animation-duration:11s;animation-delay:1.5s}
.eco-v111 .hv .hv-snow .hv-flake:nth-child(3){animation-duration:10s;animation-delay:.8s}
.eco-v111 .hv .hv-snow .hv-flake:nth-child(4){animation-duration:12s;animation-delay:2.2s}
.eco-v111 .hv .hv-snow .hv-flake:nth-child(5){animation-duration:9.5s;animation-delay:3s}
.eco-v111 .hv .hv-snow .hv-flake:nth-child(6){animation-duration:11.5s;animation-delay:1.1s}
@keyframes hvspin{to{transform:rotate(360deg)}}
@keyframes hvflow{to{stroke-dashoffset:-112}}
@keyframes hvflowdot{0%{opacity:0}15%{opacity:1}85%{opacity:1}100%{opacity:0}}
@keyframes hvshimmer{0%,100%{opacity:.35}50%{opacity:.85}}
@keyframes hvbreathe{0%,100%{opacity:.72;transform:scale(.99)}50%{opacity:1;transform:scale(1.03)}}
@keyframes hvsnow{0%{opacity:0;transform:translateY(-8px)}15%{opacity:.9}100%{opacity:0;transform:translateY(300px)}}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hv .hv-spin,.eco-v111 .hv .hv-flow,.eco-v111 .hv .hv-flow-dot,.eco-v111 .hv .hv-shimmer,.eco-v111 .hv .hv-breathe,.eco-v111 .hv .hv-snow .hv-flake{animation:none}
}
/* H1 / hero scale rebalance — less dominant headline, more negative space + air */
.eco-v111 .svc-hero{padding-top:124px!important;padding-bottom:64px!important}
.eco-v111 .svc-hero .svc-hero-grid{grid-template-columns:43% 57%!important;gap:48px!important}
.eco-v111 .svc-hero .hero-copy h1{font-size:50px!important;line-height:1.12!important;letter-spacing:-.03em!important;max-width:420px!important;margin:0 0 20px!important}
.eco-v111 .svc-hero .hero-copy p{font-size:16px!important;line-height:1.66!important;max-width:440px!important}
.eco-v111 .svc-hero .svc-hero-visual svg{max-width:600px}
/* stack copy over visual on tablet/phone (must override the 43/57 desktop grid above).
   minmax(0,1fr) + min-width:0 stops the single track from refusing to shrink below
   the copy's min-content (which was forcing horizontal overflow at phone widths). */
@media (max-width:960px){
  .eco-v111 .svc-hero .svc-hero-grid{grid-template-columns:minmax(0,1fr)!important;gap:22px!important}
  .eco-v111 .svc-hero .hero-copy,.eco-v111 .svc-hero .svc-hero-stage,.eco-v111 .svc-hero .svc-hero-visual{min-width:0!important}
  .eco-v111 .svc-hero .hero-copy h1{font-size:44px!important;max-width:100%!important}
  .eco-v111 .svc-hero .hero-copy p{max-width:none!important}
  .eco-v111 .svc-hero-visual svg{width:100%!important;max-width:520px}
}
@media (max-width:640px){
  .eco-v111 .svc-hero{padding-top:104px!important;padding-bottom:40px!important}
  .eco-v111 .svc-hero .hero-copy h1{font-size:34px!important;line-height:1.1!important;letter-spacing:-.02em!important}
  .eco-v111 .svc-hero-visual svg{max-width:420px}
  .eco-v111 .svc-hero-stage{margin-top:4px!important}
  /* override the frozen 1fr 1fr mobile grid — the fuller service buttons overflow it; stack instead */
  .eco-v111 .svc-hero .hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .eco-v111 .svc-hero .hero-actions .btn{width:100%!important;box-sizing:border-box!important;justify-content:center!important;text-align:center}
}
@media (max-width:400px){
  .eco-v111 .svc-hero .hero-copy h1{font-size:31px!important}
  .eco-v111 .svc-hero-visual svg{max-width:340px}
}

/* =========================================================================
 * PRE-STAGING BUGFIX — scrolled service-header contrast (SERVICE-SCOPED ONLY)
 * The service header stays dark on scroll (kept dark via service !important),
 * but the frozen .header.scrolled rules turn nav/phone/menu text DARK (built for
 * a light scrolled header) -> dark-on-dark. Force those back to light here.
 * Does NOT touch any frozen file.
 * ====================================================================== */
.eco-v111 .header.scrolled .nav a,
.eco-v111 .header.scrolled .nav button,
.eco-v111 .header.scrolled .top-phone{color:#fff!important}
.eco-v111 .header.scrolled .nav a:hover,
.eco-v111 .header.scrolled .nav button:hover{color:var(--gold-2)!important}
.eco-v111 .header.scrolled .header-cta{background:rgba(255,255,255,.08)!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important}
.eco-v111 .header.scrolled .header-cta:hover{background:var(--green)!important;color:#08260d!important;border-color:var(--green)!important}
.eco-v111 .header.scrolled .menu-toggle{color:#fff!important;background:transparent!important;border-color:rgba(255,255,255,.2)!important}
/* keep the active-link underline/gold accent visible on the dark scrolled header */
.eco-v111 .header.scrolled .nav a::after{background:var(--gold)!important}

/* =========================================================================
 * ATLAS V3 — hover-first interaction, alive HQ, richer card (staging upgrade)
 * ====================================================================== */
/* Directory rows: clearer, smoother hover + active states */
.eco-v111 .atlas3-row{transition:background .18s ease, border-color .18s ease, transform .18s ease}
.eco-v111 .atlas3-row:hover{background:rgba(255,255,255,.05)}
.eco-v111 .atlas3-row:hover .row-name{color:#fff}
.eco-v111 .atlas3-row.active{background:rgba(67,182,73,.12)}
.eco-v111 .atlas3-row.active .row-name{color:#fff}
.eco-v111 .atlas3-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
/* markers: premium highlight on active + hover */
.eco-v111 .atlas3-mk .pt{transition:r .2s ease, fill .2s ease}
.eco-v111 .atlas3-mk:hover .pt,.eco-v111 .atlas3-mk.active .pt{r:6.5;fill:#7fce87}
.eco-v111 .atlas3-mk.active .lbl,.eco-v111 .atlas3-mk:hover .lbl{fill:#fff}
/* HQ mark — alive: gentle continuous breathing + one dispatch signal per activation */
.eco-v111 .atlas3-mk.hq .hqpulse{transform-box:fill-box;transform-origin:center;animation:atlasHQbreathe 4.6s ease-in-out infinite}
.eco-v111 .atlas3-mk.hq .hqhalo{transform-box:fill-box;transform-origin:center}
.eco-v111 .atlas3-mk.hq.signal .hqhalo{animation:atlasHQsignal 1.15s cubic-bezier(.22,.61,.36,1) 1}
@keyframes atlasHQbreathe{0%,100%{transform:scale(.94);opacity:.5}50%{transform:scale(1.06);opacity:.85}}
@keyframes atlasHQsignal{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.5);opacity:0}}
/* richer card: tier-meaning line + gentle refresh cue */
.eco-v111 .atlas3-card .ai-mean{margin:2px 0 12px;font-size:12px;line-height:1.5;color:#9fb0cc}
.eco-v111 .atlas3-card .ai-note{color:#7f8ba3}
.eco-v111 .atlas3-card.refresh{animation:atlasCardRefresh .32s ease}
@keyframes atlasCardRefresh{0%{opacity:.55;transform:translateY(3px)}100%{opacity:1;transform:translateY(0)}}
/* subtle home-territory wash behind the primary area (GTA relevance) */
.eco-v111 .atlas3-territory{opacity:.9}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .atlas3-mk.hq .hqpulse,.eco-v111 .atlas3-mk.hq.signal .hqhalo,.eco-v111 .atlas3-card.refresh{animation:none}
}

/* =========================================================================
 * FURNACE MASTER SURGERY — pricing scope-movers, repair/replace next step,
 * FAQ rhythm, final-CTA "what happens next"
 * ====================================================================== */
/* ---- Pricing: what moves the scope (editorial, not cards) ---- */
.eco-v111 .scope-movers{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;margin-top:0;padding-top:40px;border-top:0}
/* the price band already draws a rule; avoid a second hairline + dead gap */
.eco-v111 .svc-price-band:has(+ .scope-movers){border-bottom:0;padding-bottom:22px}
.eco-v111 .scope-movers .sm-head h3{margin:10px 0 10px;font-size:26px;letter-spacing:-.03em;color:#161d3d;max-width:16ch}
.eco-v111 .scope-movers .sm-head p{margin:0;font-size:14px;line-height:1.65;color:#5f6b82;max-width:46ch}
.eco-v111 .sm-list{display:grid;gap:0}
.eco-v111 .sm-list article{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:16px 0;border-top:1px solid rgba(23,32,68,.09)}
.eco-v111 .sm-list article:first-child{border-top:0;padding-top:0}
.eco-v111 .sm-idx{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--gold);padding-top:3px}
.eco-v111 .sm-list strong{display:block;font-size:15px;letter-spacing:-.01em;color:#161d3d;margin-bottom:4px}
.eco-v111 .sm-list p{margin:0;font-size:13.5px;line-height:1.6;color:#5f6b82}

/* ---- Repair vs replace: next-step block turns the aid into advice ---- */
/* .rr-next lives inside the dark guidance panel — all colours must be light-on-dark */
.eco-v111 .range-result .rr-next{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.eco-v111 .range-result .rr-nlabel{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2,#E0C78F);margin-bottom:8px}
.eco-v111 .range-result .rr-next p{margin:0 0 14px;font-size:13.5px;line-height:1.65;color:rgba(255,255,255,.82)}
.eco-v111 .rr-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.eco-v111 .rr-actions .btn{padding:11px 18px;font-size:12.5px}
.eco-v111 .range-result .rr-actions .btn.line{color:#fff;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.06)}
.eco-v111 .range-result .rr-actions .btn.line:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.5)}

/* ---- FAQ rhythm: calmer spacing, smoother open state ---- */
.eco-v111 .svc-faq .faq-list details{border-top:1px solid rgba(23,32,68,.1);padding:4px 0}
.eco-v111 .svc-faq .faq-list summary{padding:18px 0;font-size:16px;letter-spacing:-.01em;cursor:pointer;list-style:none;transition:color .16s ease}
.eco-v111 .svc-faq .faq-list summary::-webkit-details-marker{display:none}
.eco-v111 .svc-faq .faq-list summary:hover{color:var(--green)}
.eco-v111 .svc-faq .faq-list details[open] summary{color:#111838}
.eco-v111 .svc-faq .faq-list .answer{padding:0 0 20px;max-width:64ch;font-size:14px;line-height:1.7;color:#5f6b82;animation:faqOpen .26s ease}
@keyframes faqOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ---- Final CTA: what happens next ---- */
.eco-v111 .cta-next{margin-top:34px;padding-top:30px;border-top:1px solid rgba(255,255,255,.12)}
.eco-v111 .cn-label{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2);margin-bottom:18px}
.eco-v111 .cn-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.eco-v111 .cn-steps li{display:grid;grid-template-columns:38px 1fr;gap:12px}
.eco-v111 .cn-n{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--gold);padding-top:3px}
.eco-v111 .cn-steps strong{display:block;font-size:15px;color:#fff;letter-spacing:-.01em;margin-bottom:5px}
.eco-v111 .cn-steps p{margin:0;font-size:13.5px;line-height:1.62;color:#AEB9D1}

@media (max-width:900px){
  .eco-v111 .scope-movers{grid-template-columns:1fr;gap:26px}
  .eco-v111 .cn-steps{grid-template-columns:1fr;gap:20px}
}

/* =========================================================================
 * FURNACE MASTER SURGERY · PASS 2 — INSTALLATION ANATOMY (System Thinking)
 * Left rail + center narrative + right technical visual. Dark canvas.
 * Green = active signal only. Champagne = micro labels. No bordered cards.
 * ========================================================================= */
.eco-v111 .svc-system .sysx{display:grid;grid-template-columns:216px 1fr 1.08fr;gap:0;margin-top:40px;align-items:stretch}
/* LEFT RAIL */
.eco-v111 .sysx-rail{display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.09);padding-right:26px}
.eco-v111 .sysx-step{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:12px;width:100%;text-align:left;background:none;border:0;border-top:1px solid rgba(255,255,255,.08);padding:16px 4px;cursor:pointer;color:#aeb9d0;transition:color .25s ease}
.eco-v111 .sysx-step:first-child{border-top:0}
.eco-v111 .sysx-no{font-size:11px;font-weight:800;letter-spacing:.12em;color:#6f7c98;transition:color .25s ease}
.eco-v111 .sysx-lbl{font-size:14.5px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.eco-v111 .sysx-step:hover{color:#fff}
.eco-v111 .sysx-step:hover .sysx-no{color:var(--gold-2,#E0C78F)}
.eco-v111 .sysx-step.active{color:#fff}
.eco-v111 .sysx-step.active .sysx-no{color:#5fd06e}
.eco-v111 .sysx-step.active{position:relative}
.eco-v111 .sysx-step.active::before{content:"";position:absolute;left:-27px;top:14px;bottom:14px;width:2px;background:linear-gradient(180deg,#43B649,#2f8f3a);border-radius:2px}
.eco-v111 .sysx-step:focus-visible{outline:2px solid rgba(95,208,110,.6);outline-offset:2px;border-radius:4px}
/* CENTER NARRATIVE */
.eco-v111 .sysx-narr{padding:4px 46px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.eco-v111 .sysx-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2,#E0C78F);margin-bottom:16px}
.eco-v111 .sysx-head{font-size:29px;line-height:1.16;letter-spacing:-.025em;color:#fff;margin:0 0 16px;max-width:20ch;transition:opacity .3s ease}
.eco-v111 .sysx-body{font-size:15.5px;line-height:1.68;color:#bcc6da;margin:0 0 24px;max-width:44ch;transition:opacity .3s ease}
.eco-v111 .sysx-why{border-top:1px solid rgba(255,255,255,.1);padding-top:16px;max-width:44ch}
.eco-v111 .sysx-why-lbl{display:block;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7f8ba3;margin-bottom:7px}
.eco-v111 .sysx-why p{margin:0;font-size:13.5px;line-height:1.6;color:#9aa6bf}
.eco-v111 .sysx-narr.swap .sysx-head,.eco-v111 .sysx-narr.swap .sysx-body{opacity:.0}
/* RIGHT VISUAL — architectural documentation: 3 line-weight tiers */
.eco-v111 .sysx-viz{position:relative;display:grid;place-items:center;padding-left:20px;min-width:0}
.eco-v111 .sysx-viz svg{width:100%;max-width:540px;height:auto;overflow:visible}
.eco-v111 .sysx-viz text.syTag{font-size:9px;font-weight:700;letter-spacing:.12em;fill:#8fa0c0}
.eco-v111 .sysx-viz text.syTag.strong{fill:var(--gold-2,#E0C78F)}
/* tier 3 · inactive background context */
.eco-v111 .syCtx .ctx-line,.eco-v111 .syCtx .ctx-div,.eco-v111 .syCtx .ctx-env,.eco-v111 .syCtx .ctx-roof{stroke:rgba(197,208,232,.26);stroke-width:1.2;fill:none;stroke-linejoin:round}
.eco-v111 .syCtx .ctx-slab{stroke:rgba(206,174,110,.42);stroke-width:1.6}
.eco-v111 .syCtx .ctx-slab2{stroke:rgba(206,174,110,.14);stroke-width:1}
.eco-v111 .syCtx .ctx-floor{stroke:rgba(206,174,110,.5);stroke-width:1.6}
/* base furnace */
.eco-v111 .syFurnace .syFurnaceEdge{stroke:rgba(206,174,110,.4);stroke-width:1.2}
.eco-v111 .syFurnace .syLed{fill:#5fd06e}
.eco-v111 .syFurnace .syGlass{fill:rgba(247,201,138,.08);stroke:rgba(247,201,138,.55);stroke-width:1.4}
/* tier 1 · primary active layer (drawn in), tier 2 · secondary */
.eco-v111 .syLayer{opacity:0;transition:opacity .28s ease}
.eco-v111 .sysx-viz[data-emph="house"] #syHouse,
.eco-v111 .sysx-viz[data-emph="size"] #sySize,
.eco-v111 .sysx-viz[data-emph="air"] #syAir,
.eco-v111 .sysx-viz[data-emph="vent"] #syVent,
.eco-v111 .sysx-viz[data-emph="comm"] #syComm{opacity:1;transition:opacity .42s ease .08s}
.eco-v111 .syLayer .pri{stroke:#5fd06e;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .syLayer .pri.warm{stroke:#f2c184}
.eco-v111 .syLayer .pri.cool{stroke:#8fb4ea}
.eco-v111 .syLayer .sec{stroke:rgba(197,208,232,.55);stroke-width:1.4;fill:none;stroke-linejoin:round}
.eco-v111 .syLayer .sec.warm{stroke:rgba(247,211,160,.5);fill:rgba(247,201,138,.05)}
.eco-v111 .syLayer .lead{stroke:rgba(224,199,143,.6);stroke-width:1}
.eco-v111 .syLayer .reg{fill:rgba(160,186,228,.7)}
.eco-v111 .syLayer .term{fill:none;stroke:#5fd06e;stroke-width:1.6}
.eco-v111 .syLayer .term.dim{stroke:rgba(197,208,232,.5)}
.eco-v111 .syLayer .ticks line{stroke:rgba(197,208,232,.5);stroke-width:1.4}
.eco-v111 .syLayer .syNeedle{stroke:#5fd06e;stroke-width:2.6;stroke-linecap:round;transform-box:view-box;transform-origin:400px 386px;transform:rotate(-60deg);transition:transform .7s cubic-bezier(.3,.7,.3,1) .1s}
.eco-v111 .sysx-viz[data-emph="size"] #sySize .syNeedle{transform:rotate(22deg)}
.eco-v111 .syLayer .chk{fill:rgba(67,182,73,.12);stroke:#43B649;stroke-width:1.5}
.eco-v111 .syLayer .tick{stroke:#5fd06e;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .syLayer .syNode{fill:#5fd06e;stroke:rgba(95,208,110,.35);stroke-width:6}
/* signature motion per activation: old layer fades, new layer draws, one node responds */
.eco-v111 .syLayer .syDraw{stroke-dasharray:1200;stroke-dashoffset:1200}
.eco-v111 .sysx-viz[data-emph="house"] #syHouse .syDraw,
.eco-v111 .sysx-viz[data-emph="size"] #sySize .syDraw,
.eco-v111 .sysx-viz[data-emph="air"] #syAir .syDraw,
.eco-v111 .sysx-viz[data-emph="vent"] #syVent .syDraw,
.eco-v111 .sysx-viz[data-emph="comm"] #syComm .syDraw{animation:syDraw .6s cubic-bezier(.3,.6,.2,1) .06s forwards}
.eco-v111 .sysx-viz[data-emph="house"] #syHouse .syNode,
.eco-v111 .sysx-viz[data-emph="size"] #sySize .syNode,
.eco-v111 .sysx-viz[data-emph="air"] #syAir .syNode,
.eco-v111 .sysx-viz[data-emph="vent"] #syVent .syNode,
.eco-v111 .sysx-viz[data-emph="comm"] #syComm .syNode{animation:syNode .9s ease-out .45s 1}
@keyframes syDraw{to{stroke-dashoffset:0}}
@keyframes syNode{0%{stroke-width:6}40%{stroke-width:18;stroke-opacity:.5}100%{stroke-width:6}}
/* LOWER COMMISSIONING STRIP */
.eco-v111 .sysx-commit{margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.eco-v111 .sysx-commit-lbl{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-2,#E0C78F)}
.eco-v111 .sysx-commit ul{display:flex;flex-wrap:wrap;gap:10px 30px;list-style:none;margin:0;padding:0}
.eco-v111 .sysx-commit li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:#cdd6e6}
.eco-v111 .sysx-commit .cc-dot{width:6px;height:6px;border-radius:50%;background:#43B649;flex:none}
.eco-v111 .sysx-commit-note{margin:0;font-size:12.5px;color:#8592ab;text-align:right;max-width:22ch}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .syLayer .syDraw,.eco-v111 .syLayer .syNode,.eco-v111 .sysx-viz[data-emph="air"] #syAir .syFlowUp,.eco-v111 .sysx-viz[data-emph="air"] #syAir .syFlowDown{animation:none!important;stroke-dashoffset:0!important}
  .eco-v111 .syLayer .syNeedle{transition:none}
  .eco-v111 .syLayer,.eco-v111 .sysx-head,.eco-v111 .sysx-body{transition:none}
}
@media (max-width:1024px){
  .eco-v111 .svc-system .sysx{grid-template-columns:200px 1fr;gap:24px 30px}
  .eco-v111 .sysx-viz{grid-column:1 / -1;padding-left:0;margin-top:8px}
  .eco-v111 .sysx-narr{padding:4px 0}
  .eco-v111 .sysx-viz svg{max-width:560px}
}
@media (max-width:720px){
  .eco-v111 .svc-system .sysx{grid-template-columns:1fr;gap:20px}
  .eco-v111 .sysx-rail{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding:0 0 2px;gap:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .eco-v111 .sysx-rail::-webkit-scrollbar{display:none}
  .eco-v111 .sysx-step{flex:0 0 auto;border-top:0;border-bottom:2px solid transparent;padding:12px 16px 12px 4px;grid-template-columns:auto;gap:4px}
  .eco-v111 .sysx-step .sysx-lbl{font-size:13px;white-space:nowrap}
  .eco-v111 .sysx-step.active{border-bottom-color:#43B649}
  .eco-v111 .sysx-step.active::before{display:none}
  .eco-v111 .sysx-head{font-size:24px}
  .eco-v111 .sysx-commit{grid-template-columns:1fr;gap:14px}
  .eco-v111 .sysx-commit-note{text-align:left;max-width:none}
}

/* =========================================================================
 * FURNACE MASTER SURGERY · PASS 2 — EVIDENCE (visual proof zone + trust + strip)
 * Dark canvas. Real proof only; the visual is an honest placeholder, not a photo.
 * ========================================================================= */
.eco-v111 .svc-evidence .ev2{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;margin-top:40px;align-items:stretch}
.eco-v111 .ev2-visual{position:relative;margin:0;border-radius:16px;overflow:hidden;border:1px solid rgba(199,169,106,.22);box-shadow:0 30px 80px rgba(4,8,22,.4);display:flex;flex-direction:column;background:#0b1226}
.eco-v111 .ev2-visual svg{width:100%;height:auto;display:block}
.eco-v111 .ev2-cap{padding:18px 20px 20px;font-size:13px;line-height:1.6;color:#aab5cd;background:rgba(7,12,30,.7)}
.eco-v111 .ev2-cap-tag{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2,#E0C78F);margin-bottom:7px}
.eco-v111 .ev2-trust{display:flex;flex-direction:column;justify-content:center}
.eco-v111 .ev2-trust-lbl{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#9c8038;margin-bottom:6px}
.eco-v111 .ev2-row{padding:16px 0;border-top:1px solid rgba(23,32,68,.1)}
.eco-v111 .ev2-row:first-of-type{border-top:0}
.eco-v111 .ev2-row strong{display:block;font-size:15px;letter-spacing:-.01em;color:#161d3d;margin-bottom:5px}
.eco-v111 .ev2-row p{margin:0;font-size:13.5px;line-height:1.6;color:#5f6b82;max-width:46ch}
.eco-v111 .ev2-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:34px;padding-top:22px;border-top:1px solid rgba(23,32,68,.12)}
.eco-v111 .ev2-strip span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3a445e;padding:7px 14px;border:1px solid rgba(199,169,106,.5);border-radius:999px;background:rgba(199,169,106,.06)}
@media (max-width:860px){
  .eco-v111 .svc-evidence .ev2{grid-template-columns:1fr;gap:24px}
}

/* =========================================================================
 * FURNACE MASTER — HERO SCENE MODE (one composition, copy inside the scene)
 * Hero height tracks width (2:1 = the scene viewBox) so the floor plane stays
 * at 83% of the hero and the CTAs sit on it at every desktop width.
 * ========================================================================= */
.eco-v111 .svc-hero.hero-scene-mode{--hero-h:clamp(640px,50vw,780px);min-height:var(--hero-h)!important;padding:0!important;overflow:hidden}
.eco-v111 .hero-scene{position:absolute;inset:0;z-index:0;pointer-events:none}
.eco-v111 .hero-scene svg.hs{width:100%;height:100%;display:block}
.eco-v111 .svc-hero.hero-scene-mode::after{height:120px;background:linear-gradient(180deg,transparent,rgba(6,11,30,.28))}
.eco-v111 .svc-hero.hero-scene-mode .svc-hero-grid{position:relative;z-index:1;min-height:var(--hero-h);align-items:end!important;grid-template-columns:44% 56%!important;gap:0!important}
.eco-v111 .svc-hero.hero-scene-mode .hero-copy{padding:118px 0 calc(var(--hero-h)*.172);min-width:0}
.eco-v111 .svc-hero.hero-scene-mode .hero-copy h1{font-size:50px!important;line-height:1.1!important;letter-spacing:-.03em!important;max-width:520px!important;margin:0 0 18px!important}
.eco-v111 .svc-hero.hero-scene-mode .hero-copy p{font-size:16px!important;line-height:1.66!important;max-width:430px!important;color:#b9c3d8}
.eco-v111 .svc-hero.hero-scene-mode .svc-proofline{margin:18px 0 24px!important}
.eco-v111 .svc-hero.hero-scene-mode .hero-actions{margin:0!important}
.eco-v111 .svc-hero.hero-scene-mode .svc-hero-stage{display:none}
/* parallax layers (mouse-driven, desktop only, tiny) */
.eco-v111 .hs .hs-bg,.eco-v111 .hs .hs-mid,.eco-v111 .hs .hs-fg{transform-box:view-box;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.eco-v111 .hero-scene-mode.hs-live .hs-bg{transform:translate(calc(var(--hpx,0)*-5px),calc(var(--hpy,0)*-3px))}
.eco-v111 .hero-scene-mode.hs-live .hs-mid{transform:translate(calc(var(--hpx,0)*-9px),calc(var(--hpy,0)*-6px))}
.eco-v111 .hero-scene-mode.hs-live .hs-fg{transform:translate(calc(var(--hpx,0)*-14px),calc(var(--hpy,0)*-9px))}
.eco-v111 .hs .hv-lbl{font-size:11px;font-weight:700;letter-spacing:.2em;fill:rgba(199,169,106,.7)}
@media (max-width:1280px){
  .eco-v111 .svc-hero.hero-scene-mode .hero-copy h1{font-size:44px!important;max-width:460px!important}
  .eco-v111 .svc-hero.hero-scene-mode .hero-copy p{font-size:15px!important}
}
@media (max-width:960px){
  .eco-v111 .svc-hero.hero-scene-mode{--hero-h:auto;min-height:0!important;padding:104px 0 0!important}
  .eco-v111 .hero-scene{display:none}
  .eco-v111 .svc-hero.hero-scene-mode .svc-hero-grid{grid-template-columns:minmax(0,1fr)!important;min-height:0;align-items:start!important;gap:8px!important}
  .eco-v111 .svc-hero.hero-scene-mode .hero-copy{padding:0 0 8px}
  .eco-v111 .svc-hero.hero-scene-mode .svc-hero-stage{display:grid;place-items:center;margin:0 -24px;overflow:hidden}
  .eco-v111 .svc-hero.hero-scene-mode .hs-mobile{width:100%;max-width:640px;height:auto;display:block}
}
@media (max-width:640px){
  .eco-v111 .svc-hero.hero-scene-mode .hero-copy h1{font-size:34px!important;line-height:1.1!important;max-width:100%!important}
  .eco-v111 .svc-hero.hero-scene-mode .hs-mobile{max-width:520px}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hero-scene-mode.hs-live .hs-bg,.eco-v111 .hero-scene-mode.hs-live .hs-mid,.eco-v111 .hero-scene-mode.hs-live .hs-fg{transform:none;transition:none}
}
@media (max-width:420px){ .eco-v111 .svc-hero .kicker{font-size:9.5px!important;letter-spacing:.12em!important} }

/* =========================================================================
 * FURNACE MASTER — ATLAS SIGNATURE EXPERIENCE
 * Stronger geography, HQ micro-moment, territory field on interaction,
 * editorial briefing (typography, not widget chrome).
 * ========================================================================= */
/* geography presence (+) */
.eco-v111 .atlas3-land{fill:rgba(34,54,100,.42)}
.eco-v111 .atlas3-lake{opacity:1}
.eco-v111 .atlas3-shore{stroke:rgba(130,185,240,.46);stroke-width:1.6}
.eco-v111 .atlas3-regions path{stroke:rgba(199,169,106,.24);stroke-dasharray:3 8}
.eco-v111 .atlas3-corridors path{stroke:rgba(150,170,210,.11)}
.eco-v111 .geo-region{fill:rgba(176,192,220,.3);font-size:13px}
.eco-v111 .geo-region.strong{fill:rgba(224,199,143,.5)}
.eco-v111 .geo-water{fill:rgba(130,185,240,.42)}
.eco-v111 .atlas3-hqring{stroke:rgba(67,182,73,.22)}
.eco-v111 .atlas3-hqring.r2{stroke:rgba(199,169,106,.2)}
/* territory field: quiet at rest, apparent during interaction */
.eco-v111 .atlas3-territory{opacity:.75;transition:opacity .5s ease}
.eco-v111 .atlas3-territory-hot{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.92);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.6,.2,1)}
.eco-v111 .svc-atlas3:hover .atlas3-territory,.eco-v111 .svc-atlas3.is-remote .atlas3-territory{opacity:1}
.eco-v111 .svc-atlas3:hover .atlas3-territory-hot,.eco-v111 .svc-atlas3.is-remote .atlas3-territory-hot{opacity:1;transform:scale(1)}
/* HQ micro-moment: compress, then release, as the route launches */
.eco-v111 .atlas3-mk.hq .hq-disc,.eco-v111 .atlas3-mk.hq .hq-rim,.eco-v111 .atlas3-mk.hq .hq-logo{transform-box:fill-box;transform-origin:center}
.eco-v111 .atlas3-mk.hq.signal .hq-disc,.eco-v111 .atlas3-mk.hq.signal .hq-rim,.eco-v111 .atlas3-mk.hq.signal .hq-logo{animation:atlasHQpress .62s cubic-bezier(.3,.7,.3,1) 1}
@keyframes atlasHQpress{0%{transform:scale(1)}35%{transform:scale(.88)}100%{transform:scale(1)}}
.eco-v111 .atlas3-mk.hq .hq-rim{stroke:rgba(224,199,143,.75);stroke-width:1.6}
/* routes: thin, controlled, one signal */
.eco-v111 .atlas3-route{stroke-width:1.5;opacity:.9}
.eco-v111 .atlas3-route-under{stroke-width:3.4;opacity:.16}
/* directory: editorial rows */
.eco-v111 .atlas3-nav{padding:22px 18px 14px;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 60%)}
.eco-v111 .atlas3-nav-head{font-size:10.5px;letter-spacing:.2em}
.eco-v111 .atlas3-group-head{font-size:9.5px;letter-spacing:.16em;margin:6px 0 4px 2px}
.eco-v111 .atlas3-row{padding:8px 10px;border-radius:8px;gap:10px}
.eco-v111 .atlas3-row .row-name{font-size:13.5px;font-weight:600}
.eco-v111 .atlas3-row .row-tier{font-size:8.5px;letter-spacing:.1em;color:#5f6b86}
.eco-v111 .atlas3-row.active{background:rgba(67,182,73,.08);box-shadow:inset 2px 0 0 var(--green)}
/* briefing: typography-led, minimal chrome */
.eco-v111 .atlas3-card{left:22px;bottom:22px;width:min(272px,calc(100% - 44px));padding:18px 20px 18px 22px;border-radius:6px;background:rgba(6,10,26,.78);border:0;box-shadow:0 24px 60px rgba(4,8,22,.55);backdrop-filter:blur(14px)}
.eco-v111 .atlas3-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,var(--green),var(--gold-2))}
.eco-v111 .atlas3-card .ai-tier{font-size:9.5px;letter-spacing:.18em;color:var(--gold-2)}
.eco-v111 .atlas3-card h3{font-size:28px;letter-spacing:-.035em;margin:6px 0 8px;line-height:1}
.eco-v111 .atlas3-card .ai-mean{margin:0 0 12px;font-size:12.5px;line-height:1.55;color:#aeb9cf}
.eco-v111 .atlas3-card .ai-svcs{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px}
.eco-v111 .atlas3-card .ai-svcs li{padding-left:11px;font-size:12px;color:#cdd6e6}
.eco-v111 .atlas3-card .ai-svcs li::before{top:7px;width:4px;height:4px}
.eco-v111 .atlas3-card .ai-note{font-size:11px;color:#7f8ba3;margin:0 0 12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.eco-v111 .atlas3-cta.btn.line{display:inline-flex;width:auto;align-items:center;gap:8px;padding:4px 0 6px;line-height:1.2;border:0;background:none;color:#fff;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;font-weight:800;border-bottom:1px solid rgba(255,255,255,.35);border-radius:0}
.eco-v111 .atlas3-cta.btn.line::after{content:"\2192";font-size:14px;transition:transform .25s ease}
.eco-v111 .atlas3-cta.btn.line:hover{background:none;border-bottom-color:var(--green);color:#9fe0a4}
.eco-v111 .atlas3-cta.btn.line:hover::after{transform:translateX(4px)}
@media (max-width:900px){
  .eco-v111 .atlas3-card{border-radius:0;box-shadow:none;background:rgba(6,10,26,.94);width:auto;left:auto;bottom:auto}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .atlas3-mk.hq.signal .hq-disc,.eco-v111 .atlas3-mk.hq.signal .hq-rim,.eco-v111 .atlas3-mk.hq.signal .hq-logo{animation:none}
  .eco-v111 .atlas3-territory-hot{transition:none}
}
.eco-v111 .atlas3-cta.btn.line{min-height:0!important;height:auto!important;padding:2px 0 5px!important;border-radius:0!important}

/* =========================================================================
 * FURNACE MASTER — DESIGN SYSTEM NORMALIZATION + LESS-CARD PASS
 * One radius scale, one hairline, one motion vocabulary. Cards only where a
 * plate is the focal point (guidance verdict, atlas briefing, proof canvas).
 * ========================================================================= */
.eco-v111{--r-sm:6px;--r-md:12px;--r-lg:20px;--hair:rgba(23,32,68,.12);--hair-d:rgba(255,255,255,.1);--ink:#161d3d;--muted:#5f6b82;--muted-d:#aab5cd;--t-fast:.25s;--t-mid:.45s;--t-slow:.9s;--ease:cubic-bezier(.2,.6,.2,1)}
/* section rhythm: one vertical scale */
.eco-v111 .section{padding-top:96px!important;padding-bottom:96px!important}
.eco-v111 .svc-cover{padding-top:84px!important}
.eco-v111 .svc-top{margin-bottom:0}
/* Repair/Replace: no white container — the dark guidance plate is the only card */
.eco-v111 .svc-decide .tool-card{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
.eco-v111 .svc-decide .decide-shell{gap:56px;margin-top:36px;padding-top:36px;border-top:1px solid var(--hair)}
.eco-v111 .svc-decide .form-grid select{border-radius:var(--r-sm)!important;background:#fff!important}
.eco-v111 .svc-decide .range-result{border-radius:var(--r-md)!important;margin-top:26px!important}
.eco-v111 .svc-decide .range-tags{display:none}
.eco-v111 .decide-signals .btn{display:none}
/* Final CTA: one deliberate conclusion, no boxes */
.eco-v111 .svc-estimate .cta-box{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0 0 34px!important;display:grid!important;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end;border-bottom:1px solid var(--hair-d)!important}
.eco-v111 .svc-estimate .cta-box h2{font-size:54px!important;line-height:1.02!important;letter-spacing:-.035em!important;max-width:11ch}
.eco-v111 .svc-estimate .cta-box p{max-width:44ch}
.eco-v111 .svc-estimate .cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;align-self:end}
.eco-v111 .svc-estimate .v106-cta-proof{grid-column:1 / -1;margin-top:8px!important}
.eco-v111 .svc-estimate .cta-next{margin-top:36px;padding-top:0;border-top:0}
.eco-v111 .svc-estimate .cta-close{margin:40px 0 0;padding-top:24px;border-top:1px solid var(--hair-d);font-size:13.5px;line-height:1.6;color:#aab5cd;max-width:70ch}
.eco-v111 .svc-estimate .cta-close span{display:block;margin-top:6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7f8ba3}
/* Comparison: a table, not a box */
.eco-v111 .svc-compare table,.eco-v111 .svc-compare .cmp-table,.eco-v111 .svc-compare .compare-table{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.eco-v111 .svc-compare th{border-bottom:1px solid rgba(255,255,255,.18)!important}
.eco-v111 .svc-compare td{border-bottom:1px solid var(--hair-d)!important}
/* Studio: quieter shell so the RESULT is the plate, not the form */
.eco-v111 .eco-studio{border-radius:var(--r-md)!important}
/* buttons: one scale */
.eco-v111 .btn{border-radius:999px;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}
.eco-v111 .btn.primary,.eco-v111 .btn.ghost,.eco-v111 .btn.line{transition:transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.eco-v111 .btn.primary:hover{transform:translateY(-1px)}
/* headings: one scale */
.eco-v111 .h2.sm{font-size:clamp(34px,3.6vw,52px)!important;line-height:1.02!important;letter-spacing:-.035em!important}
.eco-v111 .lead{font-size:17px!important;line-height:1.62!important}
/* trust strip: keep, but as a quiet ledger line */
.eco-v111 .trust{padding:0!important}
.eco-v111 .v110-trust-grid div{border-color:var(--hair)!important}
@media (max-width:900px){
  .eco-v111 .svc-estimate .cta-box{grid-template-columns:1fr;gap:20px}
  .eco-v111 .svc-estimate .cta-actions{justify-content:flex-start}
  .eco-v111 .svc-estimate .cta-box h2{font-size:38px!important}
  .eco-v111 .section{padding-top:72px!important;padding-bottom:72px!important}
}
.eco-v111 .final-cta.svc-estimate{padding-top:150px!important;padding-bottom:110px!important}
.eco-v111 .svc-estimate .cta-box .kicker.light{color:var(--gold-2)!important;opacity:1!important}
.eco-v111 .scope-movers .sm-head{position:sticky;top:112px;align-self:start}
@media (max-width:720px){ .eco-v111 .scope-movers .sm-head{position:static} }
/* phones: all five stages visible as a 2-column selector (no hidden horizontal scroll) */
@media (max-width:720px){
  .eco-v111 .sysx-rail{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;overflow:visible;border-bottom:0;padding:0}
  .eco-v111 .sysx-step{grid-template-columns:auto 1fr;gap:8px;padding:10px 4px;border-top:1px solid rgba(255,255,255,.08);border-bottom:0}
  .eco-v111 .sysx-step .sysx-lbl{white-space:normal;font-size:12.5px;line-height:1.25}
  .eco-v111 .sysx-step.active{background:rgba(67,182,73,.08);border-radius:6px;border-top-color:transparent}
  .eco-v111 .sysx-step.active::before{display:block;left:0;top:8px;bottom:8px}
  .eco-v111 .sysx-step:nth-child(-n+2){border-top:0}
}
@media (max-width:720px){ .eco-v111 .sysx-step{min-height:44px;align-items:center} }

/* =========================================================================
 * ATLAS — REAL GEOGRAPHY (luxury dark cartography) + camera
 * ========================================================================= */
.eco-v111 .atlas3-land{fill:rgba(38,58,104,.38)}
.eco-v111 .geo-urban{fill:rgba(247,211,160,.075)}
.eco-v111 .geo-river{fill:none;stroke:rgba(120,175,230,.2);stroke-width:1}
.eco-v111 .geo-road{fill:none;stroke-linecap:round;stroke-linejoin:round}
.eco-v111 .geo-road.minor{stroke:rgba(150,170,210,.11);stroke-width:1}
.eco-v111 .geo-road.major{stroke:rgba(196,210,238,.3);stroke-width:1.7}
.eco-v111 .geo-lake{fill:#06132f}
.eco-v111 .geo-shore{fill:none;stroke:rgba(130,185,240,.5);stroke-width:1.5}
.eco-v111 .geo-rl rect{fill:#0c1638;stroke:rgba(196,210,238,.42);stroke-width:1}
.eco-v111 .geo-rl text{fill:rgba(214,224,240,.85);font-size:9px;font-weight:800;letter-spacing:.02em}
.eco-v111 .atlas3-cityglow{opacity:.9}
.eco-v111 .atlas3-skyline rect{fill:rgba(214,224,240,.34)}
.eco-v111 .atlas3-skyline .cn{stroke:rgba(214,224,240,.6);stroke-width:1.8}
.eco-v111 .atlas3-skyline .cn-pod{fill:rgba(214,224,240,.6)}
.eco-v111 .geo-water.sm{font-size:10.5px}
.eco-v111 .atlas3-north line,.eco-v111 .atlas3-north path{stroke:rgba(224,199,143,.7);fill:none;stroke-width:1.2}
.eco-v111 .atlas3-north text{fill:rgba(224,199,143,.85);font-size:10px;font-weight:800;letter-spacing:.1em}
/* remove the old hand-drawn layers if any remain */
.eco-v111 .atlas3-regions,.eco-v111 .atlas3-corridors{display:none}
/* camera: calm ease, transform on the whole geography+markers group */
.eco-v111 .atlas3-cam{transform-box:view-box;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion: reduce){ .eco-v111 .atlas3-cam{transition:none} }
/* HQ label sits right of the mark; keep it crisp above the lake tint */
.eco-v111 .atlas3-mk.hq .lbl{paint-order:stroke;stroke:#070d22;stroke-width:4px}
/* briefing card to the top-right (Durham/Simcoe corner is quiet) */
.eco-v111 .atlas3-card{left:auto;right:22px;top:22px;bottom:auto}
@media (max-width:900px){ .eco-v111 .atlas3-card{position:relative;right:auto;top:auto} }

/* =========================================================================
 * HERO · NIGHT CARTOGRAPHY MODE — real map backdrop, cinematic drift
 * ========================================================================= */
.eco-v111 .svc-hero.hero-scene-mode .hero-map{opacity:1}
.eco-v111 .hero-map svg.hs-map{width:100%;height:100%}
.eco-v111 .hero-map svg.hs-map-m{display:none}
.eco-v111 .hero-map .hm-drift{transform-box:view-box;transform-origin:52% 55%;animation:hmDrift 46s ease-in-out infinite alternate}
@keyframes hmDrift{0%{transform:scale(1) translate(0,0)}100%{transform:scale(1.07) translate(-14px,-8px)}}
.eco-v111 .hero-map .hm-ring{transform-box:fill-box;transform-origin:center;animation:hmRing 4.2s ease-out infinite}
@keyframes hmRing{0%{transform:scale(.6);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.eco-v111 .hero-map .hm-lbl{fill:#fff;font-size:15px;font-weight:800;letter-spacing:.01em;paint-order:stroke;stroke:#070d22;stroke-width:4px}
/* legibility veil: dark on the copy side, clear on the map side */
.eco-v111 .hero-map::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,12,33,.97) 0%,rgba(7,12,33,.92) 34%,rgba(7,12,33,.3) 56%,rgba(7,12,33,0) 74%),linear-gradient(180deg,rgba(7,12,33,.55),transparent 22%,transparent 72%,rgba(7,12,33,.75))}
.eco-v111 .hero-map .geo-road.major{stroke:rgba(210,222,245,.5);stroke-width:2}
.eco-v111 .hero-map .geo-road.minor{stroke:rgba(150,170,210,.16)}
.eco-v111 .hero-map .geo-urban{fill:rgba(247,211,160,.12)}
.eco-v111 .hero-map .geo-lake{fill:#040d24}
.eco-v111 .hero-map .geo-shore{stroke:rgba(140,195,250,.6)}
.eco-v111 .hero-map .geo-region,.eco-v111 .hero-map .geo-water{opacity:.9}
@media (max-width:960px){
  .eco-v111 .svc-hero.hero-scene-mode .hero-map{display:block;position:absolute}
  .eco-v111 .svc-hero.hero-scene-mode{min-height:720px!important;padding-bottom:40px!important}
  .eco-v111 .hero-map::after{background:linear-gradient(180deg,rgba(7,12,33,.96) 0%,rgba(7,12,33,.9) 48%,rgba(7,12,33,.12) 72%,rgba(7,12,33,.45) 100%)}
  .eco-v111 .hero-map svg.hs-map:not(.hs-map-m){display:none}
  .eco-v111 .hero-map svg.hs-map-m{display:block}
  .eco-v111 .svc-hero.hero-scene-mode .svc-hero-stage:empty{display:none}
}
@media (prefers-reduced-motion: reduce){ .eco-v111 .hero-map .hm-drift,.eco-v111 .hero-map .hm-ring{animation:none} }

/* =========================================================================
 * LUXURY MOTION PASS — hero intro, logo motion, field notes, road light,
 * atlas entrance, scroll reveal, filmic grain
 * ========================================================================= */
/* grain on dark canvases */
.eco-v111 .svc-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");mask-image:none!important;background-size:180px 180px}
.eco-v111 .section.dark{position:relative}
.eco-v111 .section.dark::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");background-size:180px 180px}
.eco-v111 .section.dark > .wrap{position:relative}
/* hero intro: roads draw, water fades, mark lands, copy rises */
.eco-v111 .hero-map .geo-road.major{stroke-dasharray:2400;stroke-dashoffset:2400}
.eco-v111 .svc-hero.is-in .hero-map .geo-road.major{animation:hmDraw 2.2s cubic-bezier(.3,.6,.2,1) .2s forwards}
@keyframes hmDraw{to{stroke-dashoffset:0}}
.eco-v111 .hero-map .geo-lake,.eco-v111 .hero-map .geo-shore,.eco-v111 .hero-map .geo-urban,.eco-v111 .hero-map .geo-road.minor,.eco-v111 .hero-map .atlas3-skyline,.eco-v111 .hero-map .atlas3-geo,.eco-v111 .hero-map .geo-rl{opacity:0;transition:opacity 1.4s ease .4s}
.eco-v111 .svc-hero.is-in .hero-map .geo-lake,.eco-v111 .svc-hero.is-in .hero-map .geo-shore,.eco-v111 .svc-hero.is-in .hero-map .geo-urban,.eco-v111 .svc-hero.is-in .hero-map .geo-road.minor,.eco-v111 .svc-hero.is-in .hero-map .atlas3-skyline,.eco-v111 .svc-hero.is-in .hero-map .atlas3-geo,.eco-v111 .svc-hero.is-in .hero-map .geo-rl{opacity:1}
.eco-v111 .hero-map .hm-mark{transform-box:fill-box;transform-origin:center;opacity:0;transform:scale(2.2)}
.eco-v111 .svc-hero.is-in .hero-map .hm-mark{animation:hmLand 1.1s cubic-bezier(.2,.8,.2,1) 1.3s forwards}
@keyframes hmLand{0%{opacity:0;transform:scale(2.2)}60%{opacity:1;transform:scale(.92)}100%{opacity:1;transform:scale(1)}}
.eco-v111 .hero-map .hm-mark .hm-ring{transform-box:fill-box;transform-origin:center}
.eco-v111 .svc-hero.is-in .hero-map .hm-mark .hm-ring.r1{animation:hmRing 4.2s ease-out 2.4s infinite}
.eco-v111 .svc-hero.is-in .hero-map .hm-mark .hm-ring.r2{animation:hmRing 4.2s ease-out 4.5s infinite}
.eco-v111 .hero-map .hm-mark image{transform-box:fill-box;transform-origin:center;animation:hmBreathe 5.6s ease-in-out 2.6s infinite}
@keyframes hmBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.eco-v111 .hero-map .hm-lbl{opacity:0;transition:opacity .8s ease 2.1s}
.eco-v111 .svc-hero.is-in .hero-map .hm-lbl{opacity:1}
.eco-v111 .hero-map .hm-beacon{opacity:0;transition:opacity 1.6s ease 1.6s}
.eco-v111 .svc-hero.is-in .hero-map .hm-beacon{opacity:1}
/* light travelling along the 400-series (hero + atlas) */
.eco-v111 .hero-map .geo-road.r404,.eco-v111 .hero-map .geo-road.r407,.eco-v111 .hero-map .geo-road.r401,.eco-v111 .hero-map .geo-road.r400{stroke-dasharray:2400}
.eco-v111 .svc-hero.is-in .hero-map .geo-road.r404,.eco-v111 .svc-hero.is-in .hero-map .geo-road.r407,.eco-v111 .svc-hero.is-in .hero-map .geo-road.r401,.eco-v111 .svc-hero.is-in .hero-map .geo-road.r400{animation:hmDraw 2.2s cubic-bezier(.3,.6,.2,1) .2s forwards}
.eco-v111 .hero-map .hm-drift{animation-delay:2.6s}
/* copy rises */
.eco-v111 .svc-hero.hero-scene-mode .hero-copy > *{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > *{opacity:1;transform:none}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > :nth-child(1){transition-delay:.15s}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > :nth-child(2){transition-delay:.3s}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > :nth-child(3){transition-delay:.4s}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > :nth-child(4){transition-delay:.5s}
.eco-v111 .svc-hero.hero-scene-mode.is-in .hero-copy > :nth-child(5){transition-delay:.6s}
/* field notes: one at a time, bottom-right over the lake */
.eco-v111 .hm-notes{position:absolute;right:56px;bottom:56px;z-index:2;width:300px;color:#fff;opacity:0;transition:opacity 1s ease 2.6s}
.eco-v111 .svc-hero.is-in .hm-notes{opacity:1}
.eco-v111 .hm-note{position:absolute;left:0;right:0;bottom:14px;opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.eco-v111 .hm-note.is-on{opacity:1;transform:none}
.eco-v111 .hm-nk{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin-bottom:8px}
.eco-v111 .hm-note b{display:block;font-size:30px;letter-spacing:-.03em;line-height:1;margin-bottom:8px}
.eco-v111 .hm-note p{margin:0;font-size:12.5px;line-height:1.55;color:#b9c3d8;max-width:38ch}
.eco-v111 .hm-notes{padding-bottom:0;min-height:130px}
.eco-v111 .hm-prog{position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.14)}
.eco-v111 .hm-prog i{position:absolute;left:0;top:0;height:1px;width:0;background:linear-gradient(90deg,var(--green),var(--gold-2))}
.eco-v111 .hm-prog.run i{animation:hmProg 6s linear forwards}
@keyframes hmProg{to{width:100%}}
@media (max-width:1100px){ .eco-v111 .hm-notes{display:none} }
/* atlas entrance: roads draw, markers pop, when the section enters */
.eco-v111 .svc-atlas3 .geo-road.major{stroke-dasharray:2400;stroke-dashoffset:2400}
.eco-v111 .svc-atlas3.is-in .geo-road.major{animation:hmDraw 2.4s cubic-bezier(.3,.6,.2,1) .1s forwards}
.eco-v111 .svc-atlas3 .atlas3-mk:not(.hq){opacity:0}
.eco-v111 .svc-atlas3.is-in .atlas3-mk:not(.hq){animation:mkIn .6s cubic-bezier(.2,.8,.2,1) forwards}
.eco-v111 .svc-atlas3.is-in .atlas3-mk:not(.hq){animation-delay:calc(.9s + var(--i,0) * .045s)}
@keyframes mkIn{from{opacity:0}to{opacity:1}}
.eco-v111 .svc-atlas3 .atlas3-card{opacity:0;transform:translateY(10px);transition:opacity .7s ease 1.4s,transform .7s ease 1.4s}
.eco-v111 .svc-atlas3.is-in .atlas3-card{opacity:1;transform:none}
/* scroll reveal, gentle, once */
.eco-v111 .rv{opacity:0;transform:translateY(14px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}
.eco-v111 .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hero-map .geo-road.major,.eco-v111 .svc-atlas3 .geo-road.major{stroke-dasharray:none;stroke-dashoffset:0;animation:none!important}
  .eco-v111 .hero-map .geo-lake,.eco-v111 .hero-map .geo-shore,.eco-v111 .hero-map .geo-urban,.eco-v111 .hero-map .geo-road.minor,.eco-v111 .hero-map .atlas3-skyline,.eco-v111 .hero-map .atlas3-geo,.eco-v111 .hero-map .geo-rl,.eco-v111 .hero-map .hm-mark,.eco-v111 .hero-map .hm-lbl,.eco-v111 .hero-map .hm-beacon,.eco-v111 .hm-notes,.eco-v111 .svc-hero.hero-scene-mode .hero-copy > *,.eco-v111 .svc-atlas3 .atlas3-mk:not(.hq),.eco-v111 .svc-atlas3 .atlas3-card,.eco-v111 .rv{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .eco-v111 .hero-map .hm-mark image,.eco-v111 .hero-map .hm-ring{animation:none!important}
  .eco-v111 .hm-prog i{animation:none}
}

/* =========================================================================
 * HERO v3 — perspective cartography, upright HQ pin, haze, road light
 * ========================================================================= */
.eco-v111 .hero-map{perspective:1500px;perspective-origin:62% 40%}
.eco-v111 .hero-map svg.hs-map:not(.hs-map-m){transform:rotateX(24deg) scale(1.22) translateY(9%);transform-origin:56% 60%;transform-style:preserve-3d;will-change:transform}
.eco-v111 .hero-map .hm-mark,.eco-v111 .hero-map .hm-lbl{display:none}  /* replaced by the upright HTML pin */
/* haze: slow atmospheric light drifting over the far map */
.eco-v111 .hm-haze{position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(60% 40% at 70% 30%,rgba(120,150,210,.16),transparent 60%),radial-gradient(40% 30% at 30% 70%,rgba(67,182,73,.06),transparent 60%);filter:blur(30px);animation:hmHaze 38s ease-in-out infinite alternate;z-index:1}
@keyframes hmHaze{0%{transform:translate(0,0)}100%{transform:translate(4%,-3%)}}
/* upright pin: beam + base ring + floating mark + label; positioned by JS at the projected HQ point */
.eco-v111 .hm-pin{position:absolute;left:0;top:0;z-index:3;pointer-events:none;transform:translate(-50%,-100%);opacity:0;transition:opacity .9s ease 1.6s}
.eco-v111 .svc-hero.is-in .hm-pin{opacity:1}
.eco-v111 .hm-pin-base{position:absolute;left:50%;bottom:0;width:26px;height:10px;margin-left:-13px;border-radius:50%;border:1.5px solid rgba(95,208,110,.9);box-shadow:0 0 18px rgba(67,182,73,.55),inset 0 0 8px rgba(67,182,73,.4)}
.eco-v111 .hm-pin-base::after{content:"";position:absolute;left:50%;top:50%;width:64px;height:24px;margin:-12px 0 0 -32px;border-radius:50%;border:1px solid rgba(95,208,110,.35);animation:hmBase 3.6s ease-out 2.4s infinite}
@keyframes hmBase{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.eco-v111 .hm-pin-beam{position:absolute;left:50%;bottom:5px;width:2px;height:96px;margin-left:-1px;background:linear-gradient(180deg,rgba(95,208,110,0),rgba(95,208,110,.9) 40%,rgba(95,208,110,.95));box-shadow:0 0 14px rgba(67,182,73,.5);transform-origin:bottom;transform:scaleY(0);transition:transform .9s cubic-bezier(.2,.8,.2,1) 1.9s}
.eco-v111 .svc-hero.is-in .hm-pin-beam{transform:scaleY(1)}
.eco-v111 .hm-pin-mark{position:absolute;left:50%;bottom:98px;width:52px;height:52px;margin-left:-26px;border-radius:50%;background:#0a1024;border:1.6px solid rgba(224,199,143,.9);box-shadow:0 18px 40px rgba(3,6,18,.7),0 0 0 8px rgba(67,182,73,.12),0 0 30px rgba(67,182,73,.35);display:grid;place-items:center;transform:translateY(-40px) scale(.6);opacity:0;transition:transform 1s cubic-bezier(.2,.8,.2,1) 2.2s,opacity .6s ease 2.2s;animation:hmFloat 5.2s ease-in-out 3.3s infinite}
.eco-v111 .svc-hero.is-in .hm-pin-mark{transform:none;opacity:1}
@keyframes hmFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
.eco-v111 .hm-pin-mark img{width:34px;height:34px;display:block}
.eco-v111 .hm-pin-lbl{position:absolute;left:38px;bottom:106px;white-space:nowrap;color:#fff;font-size:15px;font-weight:800;letter-spacing:.01em;text-shadow:0 2px 12px rgba(3,6,18,.9);opacity:0;transition:opacity .8s ease 2.8s}
.eco-v111 .svc-hero.is-in .hm-pin-lbl{opacity:1}
.eco-v111 .hm-pin-lbl small{display:block;font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--gold-2);margin-top:4px}
/* road light: travellers along the real 400-series (hero + atlas) */
.eco-v111 .geo-car{fill:#fff;opacity:0;offset-rotate:0deg;filter:drop-shadow(0 0 3px rgba(255,255,255,.8))}
.eco-v111 .geo-car.gold{fill:#f2c184;filter:drop-shadow(0 0 3px rgba(242,193,132,.8))}
.eco-v111 .is-in .geo-car{animation:carRun var(--dur,26s) linear var(--delay,0s) infinite}
@keyframes carRun{0%{offset-distance:0%;opacity:0}4%{opacity:.9}96%{opacity:.9}100%{offset-distance:100%;opacity:0}}
/* hero copy: quieter kicker, stronger headline presence */
.eco-v111 .svc-hero.hero-scene-mode .hero-copy h1{font-size:54px!important;line-height:1.06!important;letter-spacing:-.035em!important}
.eco-v111 .svc-hero.hero-scene-mode .hero-copy h1 em{background:linear-gradient(90deg,#5fd06e,#43B649);-webkit-background-clip:text;background-clip:text;color:transparent}
.eco-v111 .svc-hero .btn.primary{position:relative;overflow:hidden}
.eco-v111 .svc-hero .btn.primary::after{content:"";position:absolute;top:-40%;left:-60%;width:40%;height:180%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .7s ease}
.eco-v111 .svc-hero .btn.primary:hover::after{left:130%}
@media (max-width:960px){
  .eco-v111 .hero-map{perspective:none}
  .eco-v111 .hm-pin,.eco-v111 .hm-haze{display:none}
  .eco-v111 .hero-map .hm-mark,.eco-v111 .hero-map .hm-lbl{display:block}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hm-haze,.eco-v111 .hm-pin-base::after,.eco-v111 .hm-pin-mark,.eco-v111 .is-in .geo-car{animation:none!important}
  .eco-v111 .geo-car{display:none}
  .eco-v111 .hm-pin,.eco-v111 .hm-pin-beam,.eco-v111 .hm-pin-mark,.eco-v111 .hm-pin-lbl{opacity:1!important;transform:none!important;transition:none!important}
}

/* ATLAS v3 — light perspective, destination tag, HQ beam */
.eco-v111 .atlas3-stage{perspective:1800px;perspective-origin:50% 30%}
.eco-v111 .atlas3-map{transform:rotateX(12deg) scale(1.1) translateY(2%);transform-origin:50% 62%;will-change:transform}
.eco-v111 .atlas3-tag{transition:opacity .35s ease,transform .5s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.eco-v111 .atlas3-tag rect{fill:rgba(6,10,26,.92);stroke:rgba(224,199,143,.45);stroke-width:1}
.eco-v111 .atlas3-tag .tg-name{fill:#fff;font-size:12.5px;font-weight:800;letter-spacing:-.01em}
.eco-v111 .atlas3-tag .tg-tier{fill:var(--gold-2);font-size:7.5px;font-weight:800;letter-spacing:.14em}
.eco-v111 .atlas3-mk.hq .hq-beam{stroke:rgba(95,208,110,.85);stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(67,182,73,.6));opacity:0;transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:opacity .6s ease 1.2s,transform .8s cubic-bezier(.2,.8,.2,1) 1.2s}
.eco-v111 .svc-atlas3.is-in .atlas3-mk.hq .hq-beam{opacity:1;transform:scaleY(1)}
.eco-v111 .atlas3-mk.hq .lbl{transform:translateY(-52px)}
@media (max-width:900px){ .eco-v111 .atlas3-stage{perspective:none;min-height:420px} .eco-v111 .atlas3-map{transform:scale(1.9);transform-origin:44% 60%} .eco-v111 .atlas3-mk .lbl{font-size:11px} .eco-v111 .geo-region{font-size:11px} }
@media (prefers-reduced-motion: reduce){ .eco-v111 .atlas3-mk.hq .hq-beam{opacity:1;transform:none;transition:none} }
.eco-v111 .svc-atlas3.is-remote .atlas3-mk.active:not(.hq) .lbl{opacity:0}

/* =========================================================================
 * v4 — city lights on the real urban footprint, radar sweep, ambient routes
 * ========================================================================= */
.eco-v111 .geo-lights{fill:none;stroke-linecap:round}
.eco-v111 .geo-lights.a{stroke:rgba(247,211,160,.55);stroke-width:1.3}
.eco-v111 .geo-lights.b{stroke:rgba(255,255,255,.5);stroke-width:1.7}
.eco-v111 .svc-atlas3 .geo-lights.a{stroke:rgba(247,211,160,.42);stroke-width:1.2}
.eco-v111 .svc-atlas3 .geo-lights.b{stroke:rgba(255,255,255,.4);stroke-width:1.5}
.eco-v111 .geo-lights.b{animation:lightsTwinkle 6s ease-in-out infinite}
@keyframes lightsTwinkle{0%,100%{opacity:.75}50%{opacity:1}}
/* radar sweep once on atlas entrance */
.eco-v111 .atlas3-radar{transform-box:view-box;transform-origin:500px 450px;opacity:0}
.eco-v111 .atlas3-radar .radar-sector{fill:url(#atlasRadar)}
.eco-v111 .svc-atlas3.is-in .atlas3-radar{animation:radarSweep 2.6s cubic-bezier(.4,0,.2,1) .4s 1}
@keyframes radarSweep{0%{opacity:0;transform:rotate(0deg)}12%{opacity:.85}88%{opacity:.85}100%{opacity:0;transform:rotate(360deg)}}
/* hero ambient route: HQ -> a primary city, draw, travel, fade (JS-driven) */
.eco-v111 .hm-route{stroke:#5fd06e;stroke-width:1.4;stroke-linecap:round;opacity:0;filter:drop-shadow(0 0 3px rgba(67,182,73,.5));transition:opacity .5s ease}
.eco-v111 .hm-route.on{opacity:.9}
.eco-v111 .hm-route-dot{fill:#eafff0;opacity:0;offset-rotate:0deg;filter:drop-shadow(0 0 5px rgba(67,182,73,.8))}
.eco-v111 .hm-route-dot.run{animation:hmRouteDot 2.6s ease-in-out forwards}
@keyframes hmRouteDot{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
/* pin mark: subtle cursor tilt */
.eco-v111 .hm-pin-mark{transform-style:preserve-3d}
.eco-v111 .hs-live .hm-pin-mark img{transform:rotateY(calc(var(--hpx,0)*14deg)) rotateX(calc(var(--hpy,0)*-10deg));transition:transform .6s ease}
@media (prefers-reduced-motion: reduce){ .eco-v111 .geo-lights.b,.eco-v111 .atlas3-radar,.eco-v111 .hm-route-dot{animation:none!important} .eco-v111 .atlas3-radar{display:none} }

/* =========================================================================
 * HERO · IMAGE MODE — approved reference photo (furnace + AC + tankless).
 * Copy on navy left, full-bleed premium scene on the right.
 * ========================================================================= */
.eco-v111 .svc-hero.hero-image-mode{position:relative;overflow:hidden;min-height:clamp(600px,46vw,760px);padding:0!important;background:linear-gradient(120deg,#070f22 0%,#0c1738 52%,#0a1330 100%)!important}
.eco-v111 .svc-hero.hero-image-mode::before,.eco-v111 .svc-hero.hero-image-mode::after{display:none!important}
/* full-bleed photo pinned to the right */
.eco-v111 .hero-image-mode .hero-photo{position:absolute;top:0;right:0;bottom:0;width:58%;z-index:0}
.eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:46% 42%}
/* seam scrim: navy fade over the photo's left edge so it blends into the copy side */
.eco-v111 .hero-image-mode .hero-photo-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a1330 0%,rgba(10,19,48,.7) 9%,rgba(10,19,48,.12) 26%,rgba(10,19,48,0) 44%),linear-gradient(180deg,rgba(8,15,34,.22),transparent 20%,transparent 80%,rgba(8,15,34,.3))}
/* copy column */
.eco-v111 .hero-image-mode .svc-hero-grid{position:relative;z-index:2;display:block!important;min-height:inherit;padding:128px 0 76px}
.eco-v111 .hero-image-mode .hero-copy{max-width:560px;min-width:0}
.eco-v111 .hero-image-mode .hero-stage{display:none!important}
.eco-v111 .hero-image-mode .kicker.light{color:var(--gold-2,#E0C78F)!important;opacity:1!important}
.eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(40px,4.4vw,60px)!important;line-height:1.02!important;letter-spacing:-.035em!important;margin:14px 0 16px!important;max-width:12ch}
.eco-v111 .hero-image-mode .hero-copy h1 em{font-style:normal;background:linear-gradient(90deg,#5fd06e,#43B649);-webkit-background-clip:text;background-clip:text;color:transparent}
.eco-v111 .hero-image-mode .hero-lead{font-size:clamp(18px,1.7vw,23px)!important;line-height:1.32!important;color:#eaf0fb!important;font-weight:600;letter-spacing:-.01em;margin:0 0 14px!important;max-width:20ch}
.eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead){font-size:16px!important;line-height:1.66!important;color:#b9c3d8!important;max-width:44ch;margin:0 0 22px!important}
.eco-v111 .hero-image-mode .svc-proofline{margin:0 0 26px!important}
.eco-v111 .hero-image-mode .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0!important}
.eco-v111 .hero-image-mode .hero-actions .btn{padding:15px 26px!important;font-size:12.5px!important}
.eco-v111 .hero-image-mode .btn.primary{position:relative;overflow:hidden;box-shadow:0 16px 40px rgba(67,182,73,.34)}
.eco-v111 .hero-image-mode .btn.primary::after{content:"";position:absolute;top:-40%;left:-60%;width:40%;height:180%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);transition:left .7s ease}
.eco-v111 .hero-image-mode .btn.primary:hover::after{left:130%}
.eco-v111 .hero-image-mode .btn.ghost{border-color:rgba(255,255,255,.4)!important;color:#fff!important;background:rgba(255,255,255,.04)!important;backdrop-filter:blur(4px)}
/* entrance: photo eases in, copy rises (reuses .is-in on the section) */
.eco-v111 .hero-image-mode .hero-photo{opacity:0;transform:scale(1.05);transition:opacity 1.2s ease,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.eco-v111 .hero-image-mode.is-in .hero-photo{opacity:1;transform:none}
.eco-v111 .hero-image-mode .hero-copy > *{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.eco-v111 .hero-image-mode.is-in .hero-copy > *{opacity:1;transform:none}
.eco-v111 .hero-image-mode.is-in .hero-copy > :nth-child(2){transition-delay:.12s}
.eco-v111 .hero-image-mode.is-in .hero-copy > :nth-child(3){transition-delay:.22s}
.eco-v111 .hero-image-mode.is-in .hero-copy > :nth-child(4){transition-delay:.34s}
.eco-v111 .hero-image-mode.is-in .hero-copy > :nth-child(5){transition-delay:.46s}
.eco-v111 .hero-image-mode.is-in .hero-copy > :nth-child(6){transition-delay:.58s}
/* tablet */
@media (max-width:1180px){
  .eco-v111 .hero-image-mode .hero-photo{width:52%}
  .eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(36px,4.6vw,50px)!important}
}
/* stack on phones/tablets: copy over photo */
@media (max-width:960px){
  .eco-v111 .svc-hero.hero-image-mode{min-height:0!important}
  .eco-v111 .hero-image-mode .svc-hero-grid{padding:104px 0 0}
  .eco-v111 .hero-image-mode .hero-photo{position:relative;width:auto;margin:22px -24px 0;height:auto}
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{height:auto;aspect-ratio:16/12;object-position:50% 46%}
  .eco-v111 .hero-image-mode .hero-photo-scrim{background:linear-gradient(180deg,rgba(10,19,48,.5),transparent 20%,transparent 82%,rgba(8,15,34,.5))}
  .eco-v111 .hero-image-mode .hero-copy{max-width:none}
}
@media (max-width:640px){
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{aspect-ratio:4/3}
  .eco-v111 .hero-image-mode .hero-actions .btn{flex:1 1 auto;justify-content:center;box-sizing:border-box}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hero-image-mode .hero-photo,.eco-v111 .hero-image-mode .hero-copy > *{opacity:1!important;transform:none!important;transition:none!important}
}

/* =========================================================================
 * HERO IMAGE MODE — polish pass: tightened rhythm, live system-thinking
 * overlays, shorter mobile crop, sticky-bar clearance.
 * ========================================================================= */
/* desktop copy rhythm — tighter, still readable */
.eco-v111 .hero-image-mode .hero-copy h1{margin:12px 0 12px!important}
.eco-v111 .hero-image-mode .hero-lead{margin:0 0 12px!important;max-width:24ch}
.eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead):not(.hero-micro){margin:0 0 20px!important;max-width:46ch}
.eco-v111 .hero-image-mode .hero-actions{margin:0 0 18px!important}
.eco-v111 .hero-micro{margin:0!important;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#8a97b2;line-height:1.7;max-width:46ch}
/* ---- live overlays on the artwork ---- */
.eco-v111 .hero-ov{position:absolute;inset:0;z-index:2;pointer-events:none;color:#fff}
.eco-v111 .hero-ov .ov-house{position:absolute;left:5%;top:15%;width:108px;height:auto;opacity:.5}
.eco-v111 .hero-ov .ov-house path,.eco-v111 .hero-ov .ov-house rect{stroke:rgba(255,255,255,.65);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.eco-v111 .hero-ov .ov-house .ov-house-flow{stroke:#f2a355;stroke-width:1.8}
.eco-v111 .hero-ov .ov-sizing{position:absolute;left:5%;top:33%;max-width:210px}
.eco-v111 .hero-ov .ov-k{margin:0 0 14px;font-size:11.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;line-height:1.5;color:#fff;text-shadow:0 2px 10px rgba(4,9,24,.85)}
.eco-v111 .hero-ov .ov-k::after{content:"";display:block;width:26px;height:2px;margin-top:9px;background:var(--gold-2,#E0C78F)}
.eco-v111 .hero-ov .ov-check{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.eco-v111 .hero-ov .ov-check li{position:relative;padding-left:27px;font-size:13.5px;font-weight:600;letter-spacing:-.005em;color:#f2f6ff;text-shadow:0 2px 10px rgba(4,9,24,.9)}
.eco-v111 .hero-ov .ov-check li::before{content:"";position:absolute;left:0;top:50%;width:17px;height:17px;margin-top:-8.5px;border-radius:50%;border:1.5px solid #5fd06e;background:rgba(67,182,73,.16)}
.eco-v111 .hero-ov .ov-check li::after{content:"";position:absolute;left:5px;top:50%;width:5px;height:8px;margin-top:-5px;border:solid #5fd06e;border-width:0 1.8px 1.8px 0;transform:rotate(42deg)}
.eco-v111 .hero-ov .ov-warm{position:absolute;left:5%;bottom:13%;margin:0;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;line-height:1.75;color:rgba(255,255,255,.88);text-shadow:0 2px 10px rgba(4,9,24,.85)}
.eco-v111 .hero-ov .ov-warm::before{content:"";display:block;width:22px;height:2px;margin-bottom:9px;background:var(--gold-2,#E0C78F);opacity:.8}
.eco-v111 .hero-ov .ov-values{position:absolute;right:5%;top:11%;display:grid;gap:5px;text-align:right}
.eco-v111 .hero-ov .ov-values span{font-size:10.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.92);text-shadow:0 2px 12px rgba(30,20,10,.75)}
.eco-v111 .hero-ov .ov-values::after{content:"";display:block;justify-self:end;width:30px;height:2px;margin-top:7px;background:var(--gold-2,#E0C78F)}
/* legibility scrim behind the left overlay column + top-right stack */
.eco-v111 .hero-image-mode .hero-photo-scrim{background:
  linear-gradient(90deg,#0a1330 0%,rgba(10,19,48,.72) 10%,rgba(10,19,48,.42) 24%,rgba(10,19,48,.12) 38%,rgba(10,19,48,0) 52%),
  radial-gradient(60% 48% at 92% 14%,rgba(24,16,8,.42),transparent 70%),
  linear-gradient(180deg,rgba(8,15,34,.24),transparent 20%,transparent 78%,rgba(8,15,34,.34))}
/* overlays fade in with the hero */
.eco-v111 .hero-image-mode .hero-ov > *{opacity:0;transform:translateY(10px);transition:opacity .8s ease,transform .8s ease}
.eco-v111 .hero-image-mode.is-in .hero-ov > *{opacity:1;transform:none}
.eco-v111 .hero-image-mode.is-in .hero-ov .ov-sizing{transition-delay:.5s}
.eco-v111 .hero-image-mode.is-in .hero-ov .ov-house{transition-delay:.4s}
.eco-v111 .hero-image-mode.is-in .hero-ov .ov-values{transition-delay:.62s}
.eco-v111 .hero-image-mode.is-in .hero-ov .ov-warm{transition-delay:.74s}
@media (max-width:1180px){
  .eco-v111 .hero-ov .ov-house{width:88px;top:13%}
  .eco-v111 .hero-ov .ov-sizing{top:31%;max-width:180px}
  .eco-v111 .hero-ov .ov-check li{font-size:12.5px}
}
@media (max-width:1024px){
  .eco-v111 .hero-ov .ov-house,.eco-v111 .hero-ov .ov-warm{display:none}
  .eco-v111 .hero-ov .ov-sizing{top:26%}
  .eco-v111 .hero-ov .ov-values{top:8%}
}
/* ---- mobile: shorter crop, earlier H1, sticky-bar clearance ---- */
@media (max-width:960px){
  .eco-v111 .hero-image-mode .svc-hero-grid{padding:96px 0 0}
  .eco-v111 .hero-image-mode .hero-photo{margin:16px -24px 0}
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{aspect-ratio:16/10.5;object-position:50% 44%}
  .eco-v111 .hero-ov .ov-sizing{left:6%;top:auto;bottom:8%;max-width:none;display:flex;align-items:center;gap:14px;right:6%}
  .eco-v111 .hero-ov .ov-k{margin:0;font-size:10px;max-width:7.5em}
  .eco-v111 .hero-ov .ov-k::after{display:none}
  .eco-v111 .hero-ov .ov-check{grid-template-columns:repeat(2,auto);gap:4px 14px}
  .eco-v111 .hero-ov .ov-check li{font-size:11.5px;padding-left:20px}
  .eco-v111 .hero-ov .ov-check li::before{width:13px;height:13px;margin-top:-6.5px}
  .eco-v111 .hero-ov .ov-check li::after{left:4px;width:4px;height:6px;margin-top:-4px}
  .eco-v111 .hero-ov .ov-values{display:none}
}
@media (max-width:640px){
  .eco-v111 .hero-image-mode .svc-hero-grid{padding:88px 0 0}
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{aspect-ratio:16/10;object-position:50% 44%}
  .eco-v111 .hero-image-mode .hero-copy h1{margin:10px 0 10px!important}
  .eco-v111 .hero-image-mode .hero-lead{font-size:17px!important;margin:0 0 10px!important;max-width:none}
  .eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead):not(.hero-micro){font-size:15px!important;margin:0 0 18px!important}
  /* one clear primary CTA; call becomes a quieter outline */
  .eco-v111 .hero-image-mode .hero-actions{gap:10px}
  .eco-v111 .hero-image-mode .hero-actions .btn{flex:1 1 100%;justify-content:center;box-sizing:border-box}
  .eco-v111 .hero-image-mode .hero-actions .btn.ghost{background:transparent!important;border-color:rgba(255,255,255,.28)!important;color:#cdd6e6!important}
  .eco-v111 .hero-micro{font-size:9.5px;letter-spacing:.13em}
  /* clear the sticky conversion bar so it never crushes hero content */
  .eco-v111 .svc-hero.hero-image-mode{padding-bottom:92px!important}
  .eco-v111 .hero-ov .ov-check li{font-size:10.5px}
  .eco-v111 .hero-ov .ov-k{font-size:9px}
}
@media (prefers-reduced-motion: reduce){
  .eco-v111 .hero-image-mode .hero-ov > *{opacity:1!important;transform:none!important;transition:none!important}
}
/* micro trust line sits under the CTAs, quiet */
.eco-v111 .hero-image-mode .hero-actions{margin:0 0 16px!important}
.eco-v111 .hero-micro{font-size:9.5px;letter-spacing:.14em;color:#7e8ba6;line-height:1.85;max-width:40ch}
/* H1 breaks in three lines like the reference */
.eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(38px,3.9vw,54px)!important;max-width:15ch;line-height:1.04!important}
.eco-v111 .hero-image-mode .hero-copy{max-width:600px}
.eco-v111 .hero-image-mode .hero-lead{font-size:clamp(17px,1.55vw,21px)!important;max-width:30ch}
/* final typography lock: 3-line H1 like the reference, quiet micro line */
.eco-v111 .hero-image-mode .hero-copy{max-width:570px}
.eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(36px,3.6vw,50px)!important;max-width:none!important;letter-spacing:-.034em!important}
.eco-v111 .hero-image-mode .hero-lead{max-width:34ch}
.eco-v111 .hero-image-mode .hero-micro{font-size:9.5px!important;letter-spacing:.14em!important;line-height:1.9!important;color:#7e8ba6!important;font-weight:800!important;max-width:none!important;margin:0!important}
.eco-v111 .hero-image-mode .svc-hero-grid{padding-bottom:64px}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{font-size:9.5px!important;letter-spacing:.14em!important;line-height:1.9!important;font-weight:800!important;color:#7e8ba6!important;max-width:none!important;margin:0!important;text-transform:uppercase!important}
@media (max-width:640px){ .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{font-size:9px!important;letter-spacing:.12em!important} }
/* phones: artwork stays clean — overlays are for tablet/desktop only */
@media (max-width:720px){
  .eco-v111 .hero-image-mode .hero-ov{display:none}
  .eco-v111 .hero-image-mode .svc-hero .kicker,.eco-v111 .hero-image-mode .kicker.light{font-size:9px!important;letter-spacing:.12em!important}
}
/* tablet: compact single-row checklist, no clipping */
@media (min-width:721px) and (max-width:960px){
  .eco-v111 .hero-ov .ov-sizing{left:5%;right:5%;bottom:7%;top:auto;align-items:center}
  .eco-v111 .hero-ov .ov-check{grid-template-columns:repeat(5,auto);gap:0 14px}
}
/* tablet 721–960: shorter artwork, checklist only (no cramped label), sticky clearance */
@media (min-width:721px) and (max-width:960px){
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{aspect-ratio:16/9}
  .eco-v111 .hero-ov .ov-k{display:none}
  .eco-v111 .hero-ov .ov-sizing{justify-content:center;gap:0}
  .eco-v111 .hero-ov .ov-check{grid-template-columns:repeat(5,auto);gap:0 20px}
  .eco-v111 .hero-ov .ov-check li{font-size:12px}
}
@media (max-width:960px){
  .eco-v111 .svc-hero.hero-image-mode{padding-bottom:104px!important}
}
/* 961–1180: keep the copy inside the navy column, drop overlays that would collide */
@media (min-width:961px) and (max-width:1180px){
  .eco-v111 .hero-image-mode .hero-copy{max-width:min(46vw,470px)}
  .eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(32px,3.5vw,42px)!important}
  .eco-v111 .hero-image-mode .hero-lead{font-size:16px!important;max-width:none}
  .eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead):not(.hero-micro){font-size:14.5px!important;max-width:none}
  .eco-v111 .hero-ov .ov-values{display:none}
  .eco-v111 .hero-ov .ov-sizing{left:6%;top:30%;max-width:170px}
  .eco-v111 .hero-ov .ov-check li{font-size:12px}
  .eco-v111 .hero-image-mode .svc-hero-grid{padding:112px 0 56px}
  /* nav stays on one line */
  .eco-v111 .header .nav{gap:18px!important}
  .eco-v111 .header .nav a{font-size:12.5px!important;white-space:nowrap}
  .eco-v111 .header .top-phone{font-size:12px!important;white-space:nowrap}
}
/* "Richmond Hill" never splits — gives the reference's clean 3-line H1 */
.eco-v111 .hero-image-mode .hero-copy h1 em{white-space:nowrap}
@media (min-width:961px) and (max-width:1180px){
  .eco-v111 .hero-image-mode .hero-copy{max-width:min(43vw,432px)}
  .eco-v111 .hero-image-mode .hero-copy h1{font-size:clamp(30px,3.2vw,38px)!important}
  .eco-v111 .hero-ov .ov-sizing{left:14%;top:32%}
  .eco-v111 .header .nav{gap:13px!important}
  .eco-v111 .header .nav a{font-size:11.5px!important}
}
@media (min-width:961px) and (max-width:1180px){
  /* both CTAs stay on one row */
  .eco-v111 .hero-image-mode .hero-actions .btn{padding:13px 17px!important;font-size:11.5px!important}
  .eco-v111 .hero-image-mode .kicker.light{font-size:9.5px!important;letter-spacing:.12em!important}
  /* nav fits one line */
  .eco-v111 .header .nav{gap:10px!important}
  .eco-v111 .header .nav a{font-size:11px!important}
  .eco-v111 .header .header-cta{padding:9px 14px!important;font-size:10.5px!important}
  .eco-v111 .header .top-phone{font-size:11px!important}
}

/* =========================================================================
 * GOLDEN-MASTER GEOMETRY (fidelity pass) — every value derived by measuring
 * the approved reference at 1672x941 and scaling to the 1440 viewport
 * (scale 0.86124). Header 80->69, hero band 744->640, trust strip 116->100.
 * ========================================================================= */
.eco-v111 .svc-hero.hero-image-mode{height:clamp(560px,44.44vw,780px);min-height:0!important;padding:0!important;overflow:hidden;position:relative}
/* artwork: crop starts at golden x=925 -> viewport 55.35%, so width = 44.65% */
.eco-v111 .hero-image-mode .hero-photo{position:absolute;top:0;right:0;bottom:0;left:auto;width:44.65%;margin:0;height:auto;z-index:0}
.eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:left center;aspect-ratio:auto}
.eco-v111 .hero-image-mode .hero-photo-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a1530 0%,rgba(10,21,48,.88) 5%,rgba(10,21,48,.45) 13%,rgba(10,21,48,.12) 22%,rgba(10,21,48,0) 32%)}
/* the transition band: navy that carries the overlay module, blending to the artwork */
.eco-v111 .hero-image-mode::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(38% 60% at 47% 42%,rgba(28,48,96,.42),transparent 72%)}
/* copy column: golden left margin 60/1440 = 4.17% */
.eco-v111 .hero-image-mode .svc-hero-grid{position:relative;z-index:3;display:block!important;max-width:none!important;width:100%!important;height:100%;padding:9.5% 0 0 4.17%!important;margin:0!important}
.eco-v111 .hero-image-mode .hero-copy{max-width:none;width:45.5%;min-width:0}
/* eyebrow: golden cap-top y63, ends x567 */
.eco-v111 .hero-image-mode .kicker.light{font-size:.764vw!important;letter-spacing:.155em!important;color:var(--gold-2,#E0C78F)!important;opacity:1!important;margin:0 0 2.1% 0!important;line-height:1.2!important}
/* H1: golden cap height 51px, line-height 58px, line1 width 577px @1440 */
.eco-v111 .hero-image-mode .hero-copy h1{font-size:4.86vw!important;line-height:.83!important;letter-spacing:-.035em!important;font-weight:800!important;margin:0 0 0 0!important;max-width:none!important}
.eco-v111 .hero-image-mode .hero-copy h1 em{font-style:normal;color:#5fd06e;background:none;-webkit-text-fill-color:#5fd06e;white-space:nowrap}
/* lead: golden 2 lines, cap 18, line-height 30 */
.eco-v111 .hero-image-mode .hero-lead{font-size:1.74vw!important;line-height:1.2!important;font-weight:600!important;color:#e9eefb!important;letter-spacing:-.008em!important;margin:1.45% 0 0 0!important;max-width:none!important}
/* body: golden 4 lines, line-height 22.7 @1440 */
.eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead):not(.hero-micro){font-size:1.25vw!important;line-height:1.58!important;color:#aeb9d2!important;margin:.95% 0 0 0!important;max-width:none!important}
/* CTAs: golden block height 56 @1440, top y468 */
.eco-v111 .hero-image-mode .hero-actions{display:flex!important;gap:1.18vw!important;margin:1.6% 0 0 0!important}
.eco-v111 .hero-image-mode .hero-actions .btn{padding:0 2.15vw!important;height:3.89vw;min-height:0!important;display:inline-flex;align-items:center;justify-content:center;font-size:.9vw!important;letter-spacing:.07em!important;border-radius:999px!important;box-sizing:border-box}
.eco-v111 .hero-image-mode .btn.primary{background:#43c95a!important;color:#06280f!important;border:0!important;box-shadow:0 .9vw 2.2vw rgba(67,201,90,.3)}
.eco-v111 .hero-image-mode .btn.ghost{background:transparent!important;border:1px solid rgba(255,255,255,.5)!important;color:#fff!important}
/* micro trust line: golden cap-top y556 */
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{font-size:.695vw!important;letter-spacing:.135em!important;line-height:1.6!important;font-weight:800!important;color:#8593ae!important;margin:2.1% 0 0 0!important;max-width:none!important}
/* ---- overlay module, positioned at the golden coordinates ---- */
.eco-v111 .hero-image-mode .hero-ov{position:absolute;inset:0;z-index:2;pointer-events:none;color:#fff}
.eco-v111 .hero-image-mode .hero-ov .ov-house{position:absolute;left:41.25%;top:15.9%;width:17.01%;height:auto;opacity:.55}
.eco-v111 .hero-image-mode .hero-ov .ov-sizing{position:absolute;left:44.93%;top:40%;max-width:none;display:block;right:auto;bottom:auto}
.eco-v111 .hero-image-mode .hero-ov .ov-k{margin:0 0 .85vw 0;font-size:.9vw;font-weight:800;letter-spacing:.11em;text-transform:uppercase;line-height:1.45;color:#fff;text-shadow:0 2px 10px rgba(4,9,24,.9)}
.eco-v111 .hero-image-mode .hero-ov .ov-k::after{content:"";display:block;width:2.1vw;height:2px;margin-top:.62vw;background:var(--gold-2,#E0C78F)}
.eco-v111 .hero-image-mode .hero-ov .ov-check{display:grid;gap:0;grid-template-columns:1fr}
.eco-v111 .hero-image-mode .hero-ov .ov-check li{height:1.86vw;display:flex;align-items:center;padding-left:2.15vw;font-size:1.04vw;font-weight:600;color:#f4f7ff;text-shadow:0 2px 10px rgba(4,9,24,.9)}
.eco-v111 .hero-image-mode .hero-ov .ov-check li::before{width:1.32vw;height:1.32vw;margin-top:-.66vw;border:1.5px solid #4ec964;background:rgba(67,182,73,.14)}
.eco-v111 .hero-image-mode .hero-ov .ov-check li::after{left:.42vw;width:.36vw;height:.6vw;margin-top:-.36vw;border-color:#4ec964;border-width:0 1.6px 1.6px 0}
.eco-v111 .hero-image-mode .hero-ov .ov-warm{position:absolute;left:41.25%;top:77.97%;bottom:auto;margin:0;font-size:.764vw;font-weight:800;letter-spacing:.135em;text-transform:uppercase;line-height:1.72;color:rgba(255,255,255,.9)}
.eco-v111 .hero-image-mode .hero-ov .ov-warm::before{width:1.6vw;height:2px;margin-bottom:.62vw;background:var(--gold-2,#E0C78F);opacity:.9}
.eco-v111 .hero-image-mode .hero-ov .ov-values{position:absolute;right:1.81%;top:6.72%;left:auto;display:grid;gap:0;text-align:right}
.eco-v111 .hero-image-mode .hero-ov .ov-values span{font-size:.833vw;font-weight:800;letter-spacing:.13em;text-transform:uppercase;line-height:1.75;color:rgba(255,255,255,.94);text-shadow:0 2px 12px rgba(30,20,10,.8)}
.eco-v111 .hero-image-mode .hero-ov .ov-values::after{width:2.1vw;height:2px;margin-top:.5vw;background:var(--gold-2,#E0C78F)}
/* trust strip: golden height 116 -> 100 @1440 */
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{min-height:6.94vw}

/* =========================================================================
 * FIDELITY CORRECTION — all values measured from the Golden Master
 * (1672x941, scale to 1440 = 0.86124). Header stays as-is; the hero BAND is
 * offset below it so the composition below the header matches A exactly.
 * band = 640px @1440 = 44.44vw   |   header = 79px
 * ========================================================================= */
.eco-v111 .svc-hero.hero-image-mode{--hdr:79px;--band:44.44vw;height:calc(var(--hdr) + var(--band))!important;min-height:0!important}
.eco-v111 .hero-image-mode .hero-photo{top:var(--hdr)!important;bottom:auto!important;height:var(--band)!important;width:44.65%!important;right:0!important;left:auto!important}
.eco-v111 .hero-image-mode::after{top:var(--hdr);background:radial-gradient(40% 58% at 46% 40%,rgba(30,52,102,.38),transparent 72%)}
/* copy column — golden left margin 60px, eyebrow cap-top at band y63 */
.eco-v111 .hero-image-mode .svc-hero-grid{padding:calc(var(--hdr) + 4.24vw) 0 0 4.17%!important;height:auto!important}
.eco-v111 .hero-image-mode .hero-copy{width:50%!important;max-width:none!important}
.eco-v111 .hero-image-mode .kicker.light{font-size:.77vw!important;letter-spacing:.15em!important;margin:0 0 1.81vw 0!important}
/* H1 — golden: 3 forced lines, line-height 58px, line1 width ~577px */
.eco-v111 .hero-image-mode .hero-copy h1{font-size:4.5vw!important;line-height:.895!important;letter-spacing:-.05em!important;margin:0 0 1.32vw 0!important}
.eco-v111 .hero-image-mode .hero-copy h1 br.h1br{display:inline}
/* lead — golden 2 lines, line-height 30px */
.eco-v111 .hero-image-mode .hero-lead{font-size:1.74vw!important;line-height:1.2!important;max-width:42vw!important;margin:0 0 .42vw 0!important}
/* body — golden 4 lines, line spacing 22.8px */
.eco-v111 .hero-image-mode .hero-copy > p:not(.hero-lead):not(.hero-micro){font-size:1.14vw!important;line-height:1.39!important;max-width:41.25vw!important;margin:0 0 1.25vw 0!important}
/* CTAs — golden block height 56px @1440 */
.eco-v111 .hero-image-mode .hero-actions{gap:1.39vw!important;margin:0 0 2.01vw 0!important}
.eco-v111 .hero-image-mode .hero-actions .btn{height:3.89vw!important;padding:0 2.15vw!important;font-size:.833vw!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{font-size:.695vw!important;letter-spacing:.135em!important;margin:0!important;line-height:1.6!important}
/* ---- overlay module: positioned against the HERO, at golden coordinates ---- */
.eco-v111 .hero-image-mode .hero-ov{position:absolute;inset:0;z-index:2}
.eco-v111 .hero-image-mode .hero-ov .ov-house{left:41.25%!important;top:calc(var(--hdr) + 7.08vw)!important;width:17.01%!important}
.eco-v111 .hero-image-mode .hero-ov .ov-sizing{left:44.93%!important;top:calc(var(--hdr) + 17.78vw)!important;bottom:auto!important;right:auto!important}
.eco-v111 .hero-image-mode .hero-ov .ov-warm{left:41.25%!important;top:calc(var(--hdr) + 34.65vw)!important;bottom:auto!important}
.eco-v111 .hero-image-mode .hero-ov .ov-values{right:1.81%!important;top:calc(var(--hdr) + 2.99vw)!important;left:auto!important}
/* trust strip — golden 116px -> 100px @1440 */
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{min-height:6.94vw;align-items:center}
/* --- fidelity loop 2: typography locked to Golden Master metrics --- */
.eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{font-size:4.75vw!important;line-height:.848!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{font-size:1.74vw!important;line-height:1.2!important;max-width:none!important;width:auto!important;font-weight:600!important;color:#e9eefb!important;margin:0 0 .42vw 0!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p:not(.hero-lead):not(.hero-micro){font-size:1.14vw!important;line-height:1.585!important;max-width:none!important;margin:0 0 1.25vw 0!important}
.eco-v111 .hero-image-mode .hero-copy .brk{display:inline}
/* trust strip: golden 100px @1440 */
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{min-height:0!important;height:6.94vw;align-items:center;padding:0!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div{padding:0 1.2vw!important}
/* --- fidelity loop 3: lead + body metrics matched to Golden Master --- */
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{font-size:1.55vw!important;line-height:1.345!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p:not(.hero-lead):not(.hero-micro){font-size:1.18vw!important;line-height:1.335!important}
/* --- fidelity loop 3b: scrim, house outline, trust strip --- */
/* scrim: thin blend edge only — the garden must read bright from ~x800 like the Golden Master */
.eco-v111 .hero-image-mode .hero-photo-scrim{background:linear-gradient(90deg,rgba(10,21,48,.94) 0%,rgba(10,21,48,.5) 3%,rgba(10,21,48,.16) 8%,rgba(10,21,48,0) 15%),linear-gradient(180deg,rgba(8,15,34,.2),transparent 18%,transparent 82%,rgba(8,15,34,.28))!important}
/* house outline: architectural linework + warm system path (Golden Master) */
.eco-v111 .hero-image-mode .hero-ov .ov-house{opacity:.62!important}
.eco-v111 .hero-ov .ov-house path,.eco-v111 .hero-ov .ov-house rect,.eco-v111 .hero-ov .ov-house circle{stroke:rgba(214,226,248,.6);stroke-width:1.3;fill:none;stroke-linejoin:round;stroke-linecap:round}
.eco-v111 .hero-ov .ov-house .ov-house-unit{stroke:rgba(214,226,248,.75);stroke-width:1.5}
.eco-v111 .hero-ov .ov-house .ov-house-flow{stroke:#f79c42;stroke-width:2.6;filter:drop-shadow(0 0 4px rgba(247,156,66,.75))}
.eco-v111 .hero-ov .ov-house .ov-house-dot{stroke:none;fill:#f79c42;filter:drop-shadow(0 0 5px rgba(247,156,66,.9))}
/* trust strip: navy, five columns, hairline dividers, gold icons (Golden Master) */
.eco-v111 .svc-hero.hero-image-mode + .trust{background:#0a1530!important;border:0!important;padding:0!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .wrap{max-width:none!important;width:100%!important;padding:0 2.8vw!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{display:grid!important;grid-template-columns:repeat(5,1fr)!important;height:6.94vw;align-items:center;gap:0!important;border:0!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.9vw;padding:0 1.5vw!important;border:0!important;border-left:1px solid rgba(255,255,255,.1)!important;min-height:3.6vw}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:first-child{border-left:0!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div::before{content:"";grid-row:1 / span 2;width:1.95vw;height:1.95vw;background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.95}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(1)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E3C271' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l7 3v6c0 4.4-3 8.3-7 9-4-0.7-7-4.6-7-9V6z'/><path d='M9 12l2 2 4-4'/></svg>")}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(2)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E3C271' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s7-6.2 7-11a7 7 0 10-14 0c0 4.8 7 11 7 11z'/><circle cx='12' cy='10' r='2.6'/></svg>")}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(3)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E3C271' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='12' cy='6' rx='7' ry='2.6'/><path d='M5 6v5c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6V6'/><path d='M5 11v5c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6v-5'/></svg>")}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(4)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E3C271' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M14 3H7a2 2 0 00-2 2v14a2 2 0 002 2h10a2 2 0 002-2V8z'/><path d='M14 3v5h5'/><path d='M9 13h6M9 17h4'/></svg>")}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(5)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E3C271' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='3.2'/><path d='M12 2.5v2.6M12 18.9v2.6M21.5 12h-2.6M5.1 12H2.5M18.7 5.3l-1.9 1.9M7.2 16.8l-1.9 1.9M18.7 18.7l-1.9-1.9M7.2 7.2L5.3 5.3'/></svg>")}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid small{grid-column:2;font-size:.66vw!important;font-weight:800!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#8d9ab4!important;line-height:1.5!important;margin:0!important}
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid strong,.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid b{grid-column:2;font-size:1.04vw!important;font-weight:600!important;color:#eef2fa!important;line-height:1.3!important;letter-spacing:-.01em!important}
/* --- fidelity loop 4: house + module positions matched to Golden Master --- */
.eco-v111 .hero-image-mode .hero-ov .ov-house{left:42.15%!important;top:calc(var(--hdr) + 6.32vw)!important;width:13.06%!important;opacity:.7!important}
.eco-v111 .hero-ov .ov-house .hl path,.eco-v111 .hero-ov .ov-house .hl rect{stroke:rgba(206,222,248,.55);stroke-width:1.1;fill:none;stroke-linejoin:round;stroke-linecap:round}
.eco-v111 .hero-ov .ov-house .ov-house-flow{stroke:#f79c42!important;stroke-width:3!important;fill:none!important;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(247,156,66,.85))}
/* label sits 20px under the house; gold rule then checklist, per Golden spacing */
.eco-v111 .hero-image-mode .hero-ov .ov-sizing{top:calc(var(--hdr) + 17.01vw)!important}
.eco-v111 .hero-image-mode .hero-ov .ov-k{margin:0 0 2.92vw 0!important}
.eco-v111 .hero-image-mode .hero-ov .ov-k::after{margin-top:.97vw!important}
/* trust strip: values stay on one line */
.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid strong,.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid b{font-size:.97vw!important;white-space:nowrap}
/* --- fidelity loop 5: final 11px / 9px alignment --- */
.eco-v111 .hero-image-mode .hero-ov .ov-house{top:calc(var(--hdr) + 7.08vw)!important}
.eco-v111 .hero-image-mode .hero-ov .ov-k::after{margin-top:.35vw!important}
/* --- fidelity loop 6: seam softness, checklist weight, warm block, values scale --- */
/* softer navy->artwork ramp (Golden has a dark door-frame band, not a hard seam) */
.eco-v111 .hero-image-mode .hero-photo-scrim{background:linear-gradient(90deg,rgba(10,21,48,.96) 0%,rgba(10,21,48,.72) 4%,rgba(10,21,48,.4) 9%,rgba(10,21,48,.16) 15%,rgba(10,21,48,.05) 21%,rgba(10,21,48,0) 27%),linear-gradient(180deg,rgba(8,15,34,.2),transparent 18%,transparent 82%,rgba(8,15,34,.28))!important}
/* checklist: Golden weight is lighter */
.eco-v111 .hero-image-mode .hero-ov .ov-check li{font-weight:500!important;color:#e7edfa!important;font-size:1.01vw!important}
/* "A warmer tomorrow / starts at home": aligned with the checklist, 3 lines like Golden */
.eco-v111 .hero-image-mode .hero-ov .ov-warm{left:44.93%!important;max-width:7.6vw!important;font-size:.73vw!important;line-height:1.62!important}
/* top-right values stack: Golden scale */
.eco-v111 .hero-image-mode .hero-ov .ov-values span{font-size:.76vw!important;line-height:1.72!important}
/* house linework: finer, closer to the Golden architectural sketch */
.eco-v111 .hero-ov .ov-house .hl path,.eco-v111 .hero-ov .ov-house .hl rect{stroke-width:.95!important;stroke:rgba(210,226,250,.5)!important}
.eco-v111 .hero-ov .ov-house .ov-house-flow{stroke-width:2.6!important}
/* house: Golden line delicacy */
.eco-v111 .hero-image-mode .hero-ov .ov-house{opacity:.62!important}
.eco-v111 .hero-ov .ov-house .hl path,.eco-v111 .hero-ov .ov-house .hl rect{stroke-width:.9!important;stroke:rgba(206,222,248,.45)!important}
.eco-v111 .hero-ov .ov-house .ov-house-flow{stroke-width:2.3!important;stroke:#f2953a!important;filter:drop-shadow(0 0 3px rgba(242,149,58,.7))!important}
.eco-v111 .hero-image-mode .hero-ov .ov-warm{max-width:9.4vw!important}

/* =========================================================================
 * MOBILE / TABLET — rebuilt on top of the golden desktop geometry.
 * Copy first (H1 early), artwork below, readable type, no sticky overlap.
 * ========================================================================= */
@media (max-width:960px){
  .eco-v111 .svc-hero.hero-image-mode{height:auto!important;display:flex!important;flex-direction:column!important;padding:0 0 104px!important}
  .eco-v111 .hero-image-mode::after{display:none}
  .eco-v111 .hero-image-mode .svc-hero-grid{order:1;position:static;padding:calc(var(--hdr) + 26px) 24px 0!important;width:100%!important;height:auto!important}
  .eco-v111 .hero-image-mode .hero-copy{width:100%!important}
  .eco-v111 .hero-image-mode .hero-photo{order:2;position:relative!important;top:auto!important;right:auto!important;width:auto!important;height:auto!important;margin:22px 0 0!important}
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{height:auto!important;aspect-ratio:16/10.5;object-position:52% 46%!important}
  .eco-v111 .hero-image-mode .hero-photo-scrim{background:linear-gradient(180deg,rgba(10,21,48,.42),transparent 22%,transparent 80%,rgba(8,15,34,.42))!important}
  .eco-v111 .hero-image-mode .hero-ov{position:absolute;inset:auto 0 0 0;height:auto}
  /* typography: back to readable absolute sizes */
  .eco-v111 .hero-image-mode .kicker.light{font-size:9.5px!important;letter-spacing:.13em!important;margin:0 0 12px 0!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{font-size:clamp(34px,6.6vw,48px)!important;line-height:1.02!important;letter-spacing:-.035em!important;margin:0 0 14px 0!important}
  .eco-v111 .hero-image-mode .hero-copy h1 br.h1br{display:none}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{font-size:clamp(16px,3.6vw,20px)!important;line-height:1.3!important;margin:0 0 12px 0!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p:not(.hero-lead):not(.hero-micro){font-size:clamp(14px,3.3vw,16px)!important;line-height:1.55!important;margin:0 0 20px 0!important}
  .eco-v111 .hero-image-mode .hero-copy .brk{display:none}
  .eco-v111 .hero-image-mode .hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin:0 0 16px 0!important}
  .eco-v111 .hero-image-mode .hero-actions .btn{height:52px!important;padding:0 20px!important;font-size:12.5px!important;width:100%!important;box-sizing:border-box!important}
  .eco-v111 .hero-image-mode .btn.ghost{border-color:rgba(255,255,255,.3)!important;color:#cdd6e6!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{font-size:9px!important;letter-spacing:.12em!important;line-height:1.75!important;margin:0!important}
  /* trust strip: 2 columns, comfortable */
  .eco-v111 .svc-hero.hero-image-mode + .trust .wrap{padding:0 24px!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{grid-template-columns:1fr 1fr!important;height:auto!important;padding:18px 0!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div{padding:12px 8px!important;border-left:0!important;border-top:1px solid rgba(255,255,255,.08)!important;column-gap:10px;min-height:0}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(-n+2){border-top:0!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div::before{width:20px;height:20px}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid small{font-size:8.5px!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid strong,.eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid b{font-size:13px!important;white-space:normal!important}
  /* overlay: compact checklist strip over the artwork bottom */
  .eco-v111 .hero-image-mode .hero-ov .ov-house,.eco-v111 .hero-image-mode .hero-ov .ov-warm,.eco-v111 .hero-image-mode .hero-ov .ov-values{display:none!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-sizing{position:absolute!important;left:0!important;right:0!important;top:auto!important;bottom:14px!important;display:flex;align-items:center;justify-content:center;gap:14px;padding:0 16px}
  .eco-v111 .hero-image-mode .hero-ov .ov-k{display:none}
  .eco-v111 .hero-image-mode .hero-ov .ov-check{grid-template-columns:repeat(5,auto)!important;gap:0 12px!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li{height:auto!important;font-size:10.5px!important;padding-left:15px!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li::before{width:10px!important;height:10px!important;margin-top:-5px!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li::after{left:3px!important;width:3px!important;height:5px!important;margin-top:-3px!important;border-width:0 1.4px 1.4px 0!important}
}
@media (max-width:640px){
  .eco-v111 .hero-image-mode .hero-photo picture,.eco-v111 .hero-image-mode .hero-photo img{aspect-ratio:16/11}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li{font-size:9.5px!important;padding-left:13px!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check{gap:0 8px!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid{grid-template-columns:1fr!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:nth-child(-n+2){border-top:1px solid rgba(255,255,255,.08)!important}
  .eco-v111 .svc-hero.hero-image-mode + .trust .v110-trust-grid div:first-child{border-top:0!important}
}
@media (max-width:960px){
  .eco-v111 .hero-image-mode .svc-hero-grid,.eco-v111 .svc-hero.hero-image-mode + .trust .wrap{box-sizing:border-box!important}
}

/* ── QA FIX: content-box + width:100% + padding caused desktop horizontal overflow
   (.trust .wrap 1521px and .svc-hero-grid 1500px at a 1440 viewport). Border-box at
   every width; the mobile-scoped copy of this rule is now redundant but harmless. ── */
.eco-v111 .hero-image-mode .svc-hero-grid,
.eco-v111 .svc-hero.hero-image-mode + .trust .wrap{box-sizing:border-box!important}

/* ── GOLDEN-MASTER TRANSITION BAND ────────────────────────────────────────────
   In the approved reference the navy does not meet the artwork on a hard edge:
   the glass-door column, the garden behind it and the warm floor spill bleed
   leftwards into the copy field, so the eye travels COPY → HOME → SYSTEM.
   Reproduced from the approved artwork itself (the door/garden column, mirrored,
   blurred and alpha-ramped) plus two light spills — no new imagery, no inpainting. */
.eco-v111 .hero-image-mode .hero-bleed,
.eco-v111 .hero-image-mode .hero-floorglow{position:absolute;pointer-events:none;z-index:1;display:block}
.eco-v111 .hero-image-mode .hero-bleed{
  top:var(--hdr);height:var(--band);right:44.65%;width:14.05vw;
  background:url("../img/v111/hero-bleed.webp") right center / cover no-repeat;
}
/* warm floor spill + a breath of garden bokeh in the lower-left, as in the reference */
.eco-v111 .hero-image-mode .hero-floorglow{
  top:var(--hdr);height:var(--band);left:0;right:44.65%;
  background:
    radial-gradient(64% 46% at 78% 104%, rgba(255,203,138,.20), rgba(255,203,138,.07) 42%, transparent 72%),
    radial-gradient(38% 30% at 10% 96%,  rgba(126,196,124,.13), rgba(126,196,124,.04) 50%, transparent 78%);
}
.eco-v111 .hero-image-mode .svc-hero-grid{z-index:3}
.eco-v111 .hero-image-mode .hero-ov{z-index:4}
@media (max-width:960px){
  .eco-v111 .hero-image-mode .hero-bleed,
  .eco-v111 .hero-image-mode .hero-floorglow{display:none!important}
}

/* ── GOLDEN-MASTER OVERLAY FIDELITY (loop 3: art direction) ───────────────────
   Measured against the reference render at 1440: the checklist sat 28px low,
   its pitch was 26.8px instead of 28.4px, the check marks were hairline rings
   instead of lit discs, and the accent rules were tan rather than gold. */
.eco-v111 .hero-image-mode .hero-ov .ov-k{margin:0 0 1.15vw 0!important}
.eco-v111 .hero-image-mode .hero-ov .ov-k::after{width:1.55vw!important;height:3px!important;margin-top:.76vw!important;background:#F2C94C!important;opacity:1!important}
.eco-v111 .hero-image-mode .hero-ov .ov-check li{height:1.97vw!important;color:#fff!important;font-weight:500!important}
.eco-v111 .hero-image-mode .hero-ov .ov-check li::before{
  width:1.32vw!important;height:1.32vw!important;margin-top:-.66vw!important;
  background:#3ddc63!important;border:1.5px solid #74f38f!important;
  box-shadow:0 0 .62vw rgba(61,220,99,.55)!important}
.eco-v111 .hero-image-mode .hero-ov .ov-check li::after{
  left:.40vw!important;width:.40vw!important;height:.64vw!important;margin-top:-.38vw!important;
  border-color:#fff!important;border-width:0 2px 2px 0!important}
.eco-v111 .hero-image-mode .hero-ov .ov-warm{top:calc(var(--hdr) + 32.91vw)!important;color:rgba(255,255,255,.97)!important}
.eco-v111 .hero-image-mode .hero-ov .ov-warm::before{width:1.55vw!important;height:3px!important;background:#F2C94C!important;opacity:1!important}
.eco-v111 .hero-image-mode .hero-ov .ov-values::after{width:1.55vw!important;height:3px!important;background:#F2C94C!important;opacity:1!important}
@media (max-width:960px){
  .eco-v111 .hero-image-mode .hero-ov .ov-check li{height:auto!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li::before{box-shadow:none!important;border-width:1px!important}
  .eco-v111 .hero-image-mode .hero-ov .ov-check li::after{border-width:0 1.4px 1.4px 0!important;width:3px!important;height:5px!important;left:3px!important;margin-top:-3px!important}
}

/* ── GOLDEN-MASTER LEFT-COLUMN RHYTHM (loop 2: typography) ────────────────────
   Measured ink bands in the reference render at 1440 vs this build:
   H1 l1 174-222 / 189-238, lead l1 369-384 / 385-400, CTA text 561-571 / 577-585,
   micro 625-630 / 641-646 — the whole column sat ~16px low and the H1 leading was
   3px tighter than the reference. */
.eco-v111 .hero-image-mode .svc-hero-grid{padding-top:calc(var(--hdr) + 3.09vw)!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{line-height:.892!important;margin:0 0 .62vw 0!important}
.eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{font-weight:500!important;color:#eef2fc!important}

/* CTAs: the reference pairs a leading arrow with the estimate button and a handset
   with the phone button, and runs both wider (≈300 / ≈236px at 1440). */
.eco-v111 .hero-image-mode .hero-actions .btn{gap:.76vw;padding:0 2.5vw!important}
.eco-v111 .hero-image-mode .hero-actions .btn.primary{min-width:20.8vw}
.eco-v111 .hero-image-mode .hero-actions .btn.ghost{min-width:16.4vw}
.eco-v111 .hero-image-mode .hero-actions .btn .btn-ico{width:1.18vw;height:1.18vw;flex:0 0 auto;background-repeat:no-repeat;background-position:center;background-size:contain;position:relative;z-index:2}
.eco-v111 .hero-image-mode .hero-actions .btn .btn-t{position:relative;z-index:2}
.eco-v111 .hero-image-mode .hero-actions .btn .ico-arrow{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c2a15' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 12h15'/><path d='M13 6l6 6-6 6'/></svg>")}
.eco-v111 .hero-image-mode .hero-actions .btn .ico-phone{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.9v3a2 2 0 01-2.2 2 19.8 19.8 0 01-8.6-3.1 19.5 19.5 0 01-6-6A19.8 19.8 0 012.1 4.2 2 2 0 014.1 2h3a2 2 0 012 1.7c.1 1 .4 1.9.7 2.8a2 2 0 01-.5 2.1L8.1 9.9a16 16 0 006 6l1.3-1.2a2 2 0 012.1-.5c.9.3 1.8.6 2.8.7a2 2 0 011.7 2z'/></svg>")}
@media (max-width:960px){
  .eco-v111 .hero-image-mode .svc-hero-grid{padding-top:calc(var(--hdr) + 26px)!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{margin:0 0 14px 0!important}
  .eco-v111 .hero-image-mode .hero-actions .btn{min-width:0!important;padding:0 20px!important;gap:8px}
  .eco-v111 .hero-image-mode .hero-actions .btn .btn-ico{width:15px;height:15px}
}
/* final overlay nudge: checklist measured 11px below the reference after the disc change */
.eco-v111 .hero-image-mode .hero-ov .ov-k{margin:0 0 .39vw 0!important}
.eco-v111 .hero-image-mode .hero-ov .ov-warm{top:calc(var(--hdr) + 33.26vw)!important}

/* ═══════════════════════════════════════════════════════════════════════════
   GOLDEN-MASTER BUILD · SECTION PASS (System Thinking, Atlas, Evidence, CTA/Footer)
   Same brand system as the approved hero: navy canvases, champagne micro-labels,
   green as active signal, gold hairline accents, contained "designed" panels.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Headings must not hide behind the sticky header when anchored/scrolled into view */
.eco-v111 #approach,.eco-v111 #areas,.eco-v111 #why,.eco-v111 #evidence,
.eco-v111 #faq,.eco-v111 #contact,.eco-v111 #pricing,.eco-v111 #decide{scroll-margin-top:96px}

/* ── 04 · SYSTEM THINKING ──────────────────────────────────────────────────── */
.eco-v111 .svc-system{position:relative;overflow:hidden}
.eco-v111 .svc-system::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(70% 90% at 82% 8%, rgba(67,182,73,.10), transparent 60%),
    radial-gradient(60% 80% at 6% 100%, rgba(224,199,143,.06), transparent 55%)}
.eco-v111 .svc-system .wrap{position:relative;z-index:1}

/* align columns to the top so nothing floats in a void; give the visual real width */
.eco-v111 .svc-system .sysx{grid-template-columns:232px minmax(0,1fr) minmax(0,1.18fr)!important;
  align-items:start!important;margin-top:44px!important;gap:0!important}

/* left rail — a little more presence */
.eco-v111 .svc-system .sysx-rail{padding-right:30px}
.eco-v111 .svc-system .sysx-step{padding:17px 4px}
.eco-v111 .svc-system .sysx-lbl{font-size:15px}

/* centre narrative — align to top, add a quiet leading number for scale */
.eco-v111 .svc-system .sysx-narr{justify-content:flex-start!important;padding:2px 44px 2px 40px!important}
.eco-v111 .svc-system .sysx-eyebrow{margin-bottom:14px}
.eco-v111 .svc-system .sysx-head{font-size:31px;line-height:1.14;margin:0 0 18px}
.eco-v111 .svc-system .sysx-why{margin-top:6px}

/* RIGHT VISUAL — contained premium schematic panel (no more floating diagram) */
.eco-v111 .svc-system .sysx-viz{
  place-items:stretch!important;padding:0!important;align-self:stretch;
  position:relative;border-radius:22px;
  background:linear-gradient(158deg,rgba(255,255,255,.055),rgba(255,255,255,.012) 55%,rgba(6,11,28,.25));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 80px rgba(4,9,26,.38),inset 0 1px 0 rgba(255,255,255,.06);
  overflow:hidden;min-height:430px}
.eco-v111 .svc-system .sysx-viz::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:36px 36px;mask-image:radial-gradient(120% 100% at 70% 30%,#000 40%,transparent 88%)}
.eco-v111 .svc-system .sysx-viz::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:2;
  background:linear-gradient(90deg,var(--green,#43B649),var(--gold-2,#E0C78F) 60%,transparent)}
.eco-v111 .svc-system .sysx-viz svg{position:relative;z-index:1;max-width:520px;margin:auto;padding:34px 30px 30px;box-sizing:border-box}
/* panel caption */
.eco-v111 .svc-system .sysx-viz .viz-cap{position:absolute;left:20px;bottom:16px;z-index:3;
  font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#8090ab}
.eco-v111 .svc-system .sysx-viz .viz-cap b{color:var(--gold-2,#E0C78F);font-weight:800}

/* commissioning strip — a touch more premium */
.eco-v111 .svc-system .sysx-commit{margin-top:48px;padding-top:28px}
@media (max-width:900px){
  .eco-v111 .svc-system .sysx{grid-template-columns:200px 1fr!important;gap:24px 30px!important}
  .eco-v111 .svc-system .sysx-narr{padding:2px 0!important}
  .eco-v111 .svc-system .sysx-viz{grid-column:1 / -1;min-height:0;margin-top:6px}
  .eco-v111 .svc-system .sysx-viz svg{max-width:560px;padding:26px 22px}
}
@media (max-width:640px){
  .eco-v111 .svc-system .sysx{grid-template-columns:1fr!important;gap:18px!important}
  .eco-v111 .svc-system .sysx-viz svg{padding:22px 16px 18px}
  .eco-v111 .svc-system .sysx-viz .viz-cap{left:16px;bottom:12px;font-size:9px}
}

/* ── 09b · EVIDENCE — verification panel (real, checkable proof as a designed artifact) ── */
.eco-v111 .svc-evidence .ev2{grid-template-columns:1.02fr 1fr!important;align-items:stretch!important}
.eco-v111 .ev2-visual{border:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.eco-v111 .ev2-panel{position:relative;overflow:hidden;border-radius:20px;
  background:linear-gradient(158deg,#101a38,#0a1226 62%,#070d20);
  border:1px solid rgba(199,169,106,.24);
  box-shadow:0 34px 90px rgba(4,8,22,.42),inset 0 1px 0 rgba(255,255,255,.05);
  padding:26px 28px 24px}
.eco-v111 .ev2-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--green,#43B649),var(--gold-2,#E0C78F) 62%,transparent)}
.eco-v111 .ev2-panel::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 82% 8%,rgba(224,199,143,.10),transparent 60%)}
.eco-v111 .ev2-panel > *{position:relative;z-index:1}
.eco-v111 .ev2-panel-wm{position:absolute;right:-14px;bottom:-14px;z-index:0;opacity:.06;pointer-events:none}
.eco-v111 .ev2-panel-wm img{width:150px;height:150px;display:block;filter:grayscale(1) brightness(2)}

.eco-v111 .ev2-panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.eco-v111 .ev2-panel-kick{font-size:10.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-2,#E0C78F)}
.eco-v111 .ev2-verify{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7ee08a;padding:4px 10px;border:1px solid rgba(67,182,73,.34);border-radius:999px;background:rgba(67,182,73,.1)}
.eco-v111 .ev2-verify-dot{width:6px;height:6px;border-radius:50%;background:#43B649;box-shadow:0 0 8px rgba(67,182,73,.7)}

.eco-v111 .ev2-reg{margin:22px 0 6px}
.eco-v111 .ev2-reg-lbl{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8090ab;margin-bottom:6px}
.eco-v111 .ev2-reg-no{display:block;font-size:44px;line-height:1;font-weight:800;letter-spacing:.01em;color:#fff;font-variant-numeric:tabular-nums}
.eco-v111 .ev2-reg-note{display:block;margin-top:10px;font-size:13px;line-height:1.55;color:#aab5cd;max-width:34ch}

.eco-v111 .ev2-creds{margin:22px 0 4px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09)}
.eco-v111 .ev2-creds-lbl{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8090ab;margin-bottom:11px}
.eco-v111 .ev2-chips{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.eco-v111 .ev2-chips li{font-size:12px;font-weight:700;letter-spacing:.04em;color:#e7edfa;padding:7px 14px;border-radius:8px;border:1px solid rgba(199,169,106,.34);background:rgba(224,199,143,.08)}
.eco-v111 .ev2-creds-note{margin:0;font-size:12.5px;line-height:1.55;color:#95a1ba;max-width:40ch}

.eco-v111 .ev2-panel-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.09)}
.eco-v111 .ev2-foot-lbl{display:block;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7f8ba3;margin-bottom:5px}
.eco-v111 .ev2-foot-val{display:block;font-size:13px;font-weight:600;color:#dbe3f1;line-height:1.4}

.eco-v111 .ev2-visual .ev2-cap{margin-top:14px;padding:16px 18px;border-radius:14px;background:#f4f2ea;border:1px solid rgba(23,32,68,.08);color:#5f6b82}
.eco-v111 .ev2-visual .ev2-cap-tag{color:#9c8038}

/* right ledger — leading gold index rule per row for a more designed feel */
.eco-v111 .ev2-trust-lbl{margin-bottom:10px}
.eco-v111 .ev2-row{position:relative;padding:17px 0 17px 0}
.eco-v111 .ev2-row strong{font-size:15.5px}

@media (max-width:820px){
  .eco-v111 .ev2-panel-foot{grid-template-columns:1fr;gap:12px}
  .eco-v111 .ev2-reg-no{font-size:38px}
}
@media (max-width:820px){
  .eco-v111 .svc-evidence .ev2{grid-template-columns:1fr!important;gap:22px!important}
}

/* ── 11 · FINAL CTA — contact panel fills the right column; stronger, denser close ── */
.eco-v111 .svc-estimate .cta-box{grid-template-columns:1.1fr .9fr!important;align-items:stretch!important;gap:48px!important}
.eco-v111 .svc-estimate .cta-lede{display:flex;flex-direction:column;justify-content:center}
.eco-v111 .svc-estimate .cta-lede .v106-cta-proof{margin-top:26px!important}

/* the panel */
.eco-v111 .svc-estimate .cta-panel{position:relative;overflow:hidden;align-self:stretch;
  display:flex;flex-direction:column;justify-content:center;
  padding:30px 30px 28px;border-radius:20px;
  background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(255,255,255,.015) 60%,rgba(6,11,28,.3));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 80px rgba(4,9,26,.4),inset 0 1px 0 rgba(255,255,255,.06)}
.eco-v111 .svc-estimate .cta-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--green,#43B649),var(--gold-2,#E0C78F) 60%,transparent)}
.eco-v111 .svc-estimate .cta-panel-lbl{font-size:10.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-2,#E0C78F);margin-bottom:14px}
.eco-v111 .svc-estimate .cta-phone{display:inline-block;font-size:40px;line-height:1;font-weight:800;letter-spacing:-.02em;color:#fff;text-decoration:none;transition:color .18s ease}
.eco-v111 .svc-estimate .cta-phone:hover{color:#7ee08a}
.eco-v111 .svc-estimate .cta-panel-meta{display:grid;grid-template-columns:1fr auto;gap:14px 20px;margin:20px 0 22px;padding:18px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.eco-v111 .svc-estimate .cpm-lbl{display:block;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7f8ba3;margin-bottom:5px}
.eco-v111 .svc-estimate .cpm-val{display:block;font-size:14px;font-weight:600;color:#e4eaf6;text-decoration:none}
.eco-v111 .svc-estimate a.cpm-val:hover{color:#7ee08a}
.eco-v111 .svc-estimate .cta-panel .cta-actions{justify-content:stretch;gap:12px;margin:0}
.eco-v111 .svc-estimate .cta-panel .cta-actions .btn{flex:1 1 auto;justify-content:center;text-align:center}

@media (max-width:820px){
  .eco-v111 .svc-estimate .cta-box{grid-template-columns:1fr!important;gap:26px!important}
  .eco-v111 .svc-estimate .cta-phone{font-size:34px}
  .eco-v111 .svc-estimate .cta-panel{padding:24px 22px}
}

/* footer: giant wordmark sits fully behind the columns, never clipping the last row */
.eco-v111 .footer::before{bottom:-40px!important;font-size:clamp(90px,15vw,200px)!important;white-space:nowrap;color:rgba(255,255,255,.022)!important}
.eco-v111 .footer-grid{align-items:start}

/* footer: fill the row — the frozen grid declares a 5th column with no child.
   Desktop-only so the frozen responsive breakpoints (1180/900/640) still govern below. */
@media (min-width:1181px){
  .eco-v111 .footer-grid{grid-template-columns:1.5fr repeat(3,1fr)!important}
}

/* ==========================================================================
 * ECOCOMFORT GOLDEN MASTER · REF 04 + REF 06 · AUTHORITATIVE PATCH 2026-09-18
 * Separate editorial System Thinking from interactive System Steps.
 * ========================================================================== */
.eco-v111 .gm-thinking,.eco-v111 .gm-steps{position:relative;isolation:isolate;overflow:hidden;color:#f8fbff;background:#03192c}
.eco-v111 .gm-thinking::before,.eco-v111 .gm-steps::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(65% 80% at 75% 20%,rgba(25,87,128,.24),transparent 70%),linear-gradient(180deg,#03192c 0%,#04182a 62%,#031629 100%)}
.eco-v111 .gm-thinking::after,.eco-v111 .gm-steps::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:rgba(94,157,197,.24)}
.eco-v111 .gm-wide{width:min(1450px,calc(100% - 64px));margin:0 auto}
.eco-v111 .gm-kicker{display:flex;align-items:center;gap:16px;font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:#dce7f1;margin-bottom:24px}
.eco-v111 .gm-kicker>span{width:24px;height:3px;background:#f2d321;border-radius:99px;display:block;flex:none}
.eco-v111 .gm-thinking{padding:54px 0 0}
.eco-v111 .gm-thinking__main{display:grid;grid-template-columns:minmax(340px,.88fr) minmax(520px,1.35fr) minmax(250px,.62fr);gap:34px;align-items:center;min-height:650px}
.eco-v111 .gm-thinking__copy{padding:20px 0 42px}
.eco-v111 .gm-thinking__copy h2,.eco-v111 .gm-steps__left h2{margin:0;color:#fff;font-size:clamp(44px,4.35vw,68px);line-height:.99;letter-spacing:-.045em;font-weight:800}
.eco-v111 .gm-thinking__copy h2 em,.eco-v111 .gm-steps__left h2 em{font-style:normal;color:#4dea77}
.eco-v111 .gm-thinking__copy>p{font-size:17px;line-height:1.5;color:#d4deea;max-width:38ch;margin:25px 0 0}
.eco-v111 .gm-thinking__actions{display:flex;align-items:center;gap:30px;margin-top:34px}
.eco-v111 .gm-btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:60px;padding:0 30px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;text-decoration:none!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.eco-v111 .gm-btn:hover{transform:translateY(-2px)}
.eco-v111 .gm-btn--green{background:#50ed79;color:#071a28!important;box-shadow:0 14px 40px rgba(80,237,121,.18)}
.eco-v111 .gm-btn--green span,.eco-v111 .gm-btn--outline span{font-size:24px;line-height:1}
.eco-v111 .gm-btn--outline{min-height:48px;padding:0 22px;border:1px solid rgba(230,240,250,.72);color:#fff!important;background:rgba(5,21,38,.28);margin-top:24px}
.eco-v111 .gm-play{display:flex;align-items:center;gap:14px;color:#fff!important;text-decoration:none!important;font-size:13px;line-height:1.35;font-weight:650}
.eco-v111 .gm-play__disc{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1.5px solid #4abcf4;color:#fff;padding-left:3px;flex:none}
.eco-v111 .gm-thinking__visual{margin:0;align-self:stretch;min-height:650px;display:flex;align-items:flex-end;justify-content:center;position:relative}
.eco-v111 .gm-thinking__visual::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#03192c 0%,transparent 12%,transparent 88%,#03192c 100%);pointer-events:none}
.eco-v111 .gm-thinking__visual img{width:100%;height:650px;object-fit:cover;object-position:center bottom;display:block;filter:saturate(.96) contrast(1.03)}
.eco-v111 .gm-thinking__side{padding:10px 0 26px}
.eco-v111 .gm-side-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.eco-v111 .gm-thinking__side h3{font-size:36px;line-height:1.04;letter-spacing:-.035em;margin:0 0 14px;color:#fff}
.eco-v111 .gm-system-list{border-top:1px solid rgba(255,255,255,.08)}
.eco-v111 .gm-system-item{display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.eco-v111 .gm-system-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid #25c1ed;color:#4bec7a;font-size:25px;line-height:1}
.eco-v111 .gm-system-item:nth-child(even) .gm-system-icon{color:#5ec8ff}
.eco-v111 .gm-system-item strong{display:block;color:#fff;font-size:14px;margin-bottom:5px}
.eco-v111 .gm-system-item p{margin:0;color:#c6d2df;font-size:12px;line-height:1.45}
.eco-v111 .gm-benefits{display:grid;border-top:1px solid rgba(255,255,255,.11);border-bottom:1px solid rgba(255,255,255,.08);margin-top:0}
.eco-v111 .gm-benefits--five{grid-template-columns:repeat(5,1fr)}
.eco-v111 .gm-benefits--four{grid-template-columns:repeat(4,1fr) .8fr;margin-top:34px}
.eco-v111 .gm-benefits>div{position:relative;min-height:142px;padding:34px 24px 24px 66px;border-right:1px solid rgba(255,255,255,.10)}
.eco-v111 .gm-benefits>div:last-child{border-right:0}
.eco-v111 .gm-benefit-icon{position:absolute;left:20px;top:35px;color:#4dea77;font-size:33px;line-height:1}
.eco-v111 .gm-benefits strong{display:block;color:#fff;font-size:14px;margin-bottom:7px}
.eco-v111 .gm-benefits p{margin:0;color:#b9c7d5;font-size:12.5px;line-height:1.45}
.eco-v111 .gm-thinking__footer{display:flex;justify-content:space-between;align-items:center;min-height:82px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#aab8c6}
.eco-v111 .gm-thinking__footer span:first-child::before,.eco-v111 .gm-thinking__footer span:last-child::before{content:"";display:inline-block;width:22px;height:2px;background:#f0d227;margin-right:16px;vertical-align:middle}
.eco-v111 .gm-thinking__footer span:last-child::before{background:#4dea77}

/* Ref 06 · Interactive System Steps */
.eco-v111 .gm-steps{padding:52px 0 0;background:#03182b}
.eco-v111 .gm-steps__shell.sysx{display:grid!important;grid-template-columns:minmax(360px,.93fr) minmax(290px,.72fr) minmax(500px,1.22fr)!important;gap:40px!important;align-items:stretch!important;margin:0!important}
.eco-v111 .gm-steps__left{padding:0 0 22px}
.eco-v111 .gm-steps__left h2{font-size:clamp(42px,4vw,62px);max-width:10ch}
.eco-v111 .gm-steps__intro{font-size:15.5px;line-height:1.5;color:#cbd7e4;max-width:43ch;margin:20px 0 18px}
.eco-v111 .gm-steps .sysx-rail{display:flex!important;flex-direction:column!important;gap:3px!important;border:0!important;padding:0!important;margin-top:14px!important;overflow:visible!important}
.eco-v111 .gm-steps .sysx-step{position:relative!important;display:grid!important;grid-template-columns:44px 36px 1fr!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:56px!important;padding:8px 14px 8px 8px!important;border:1px solid transparent!important;border-radius:999px!important;background:transparent!important;color:#fff!important;text-align:left!important;box-shadow:none!important}
.eco-v111 .gm-steps .sysx-step::before{display:none!important}
.eco-v111 .gm-steps .sysx-step.active{border-color:#37d68f!important;background:linear-gradient(90deg,rgba(29,111,101,.32),rgba(12,42,63,.52))!important}
.eco-v111 .gm-steps .sysx-no{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #77a8c6;color:#fff;font-size:13px;font-weight:800}
.eco-v111 .gm-steps .sysx-step.active .sysx-no{border-color:#49ed86}
.eco-v111 .gm-step-mark{font-size:23px;line-height:1;color:#4dbfff;text-align:center}
.eco-v111 .gm-steps .sysx-step.active .gm-step-mark{color:#4dea77}
.eco-v111 .gm-step-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.eco-v111 .gm-step-text strong{font-size:14px;line-height:1.15;color:#fff}
.eco-v111 .gm-step-text small{font-size:12px;line-height:1.25;color:#aebdcb;white-space:normal}
.eco-v111 .gm-steps .sysx-narr{align-self:center!important;display:flex!important;flex-direction:column!important;justify-content:center!important;padding:0 0 0 0!important;min-width:0}
.eco-v111 .gm-steps .sysx-eyebrow{font-size:11px!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#d3dfeb!important;margin:0 0 14px!important}
.eco-v111 .gm-steps .sysx-eyebrow::first-letter{color:#4dea77}
.eco-v111 .gm-steps .sysx-head{font-size:40px!important;line-height:1.02!important;letter-spacing:-.035em!important;color:#fff!important;margin:0 0 6px!important}
.eco-v111 .gm-steps .sysx-lead{font-size:16px;line-height:1.35;color:#dbe5ee;margin:0 0 22px}
.eco-v111 .gm-steps .sysx-body{font-size:14.5px!important;line-height:1.55!important;color:#cad6e2!important;margin:0!important}
.eco-v111 .gm-steps .sysx-why{position:relative!important;margin:24px 0 0!important;padding:20px 0 0 42px!important;border-top:1px solid rgba(255,255,255,.16)!important}
.eco-v111 .gm-steps .sysx-why::before{content:"✦";position:absolute;left:0;top:18px;color:#4dea77;font-size:26px}
.eco-v111 .gm-steps .sysx-why-lbl{display:block!important;color:#4dea77!important;font-size:14px!important;font-weight:800!important;margin-bottom:5px!important}
.eco-v111 .gm-steps .sysx-why p{margin:0!important;color:#cbd7e3!important;font-size:13.5px!important;line-height:1.5!important}
.eco-v111 .gm-steps .sysx-viz{position:relative!important;display:block!important;min-height:700px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;overflow:hidden!important;align-self:stretch!important}
.eco-v111 .gm-steps .sysx-viz::before{content:""!important;position:absolute!important;inset:0!important;z-index:1!important;background:linear-gradient(90deg,#03182b 0%,transparent 15%,transparent 100%)!important;pointer-events:none!important}
.eco-v111 .gm-steps .sysx-viz::after{display:none!important}
.eco-v111 .gm-steps .sysx-viz img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;filter:saturate(.98) contrast(1.02)}
.eco-v111 .gm-signature{display:flex!important;flex-direction:column;justify-content:center;align-items:center;padding:20px!important;color:#fff;font-family:"Brush Script MT","Segoe Script",cursive;font-size:30px!important;line-height:.9!important;transform:rotate(-6deg)}
.eco-v111 .gm-signature span{font-size:34px}

@media (max-width:1240px){
  .eco-v111 .gm-wide{width:min(1180px,calc(100% - 40px))}
  .eco-v111 .gm-thinking__main{grid-template-columns:minmax(330px,.9fr) minmax(430px,1.2fr);gap:26px}
  .eco-v111 .gm-thinking__side{grid-column:1 / -1;display:grid;grid-template-columns:250px 1fr;gap:24px;align-items:start;padding:0 0 30px}
  .eco-v111 .gm-system-list{display:grid;grid-template-columns:repeat(5,1fr);border-top:0}
  .eco-v111 .gm-system-item{grid-template-columns:44px 1fr;padding:12px;border:1px solid rgba(255,255,255,.08);border-right:0}
  .eco-v111 .gm-system-icon{width:40px;height:40px;font-size:20px}
  .eco-v111 .gm-system-item p{display:none}
  .eco-v111 .gm-steps__shell.sysx{grid-template-columns:minmax(330px,.9fr) minmax(280px,.72fr) minmax(420px,1.08fr)!important;gap:24px!important}
}
@media (max-width:980px){
  .eco-v111 .gm-wide{width:min(900px,calc(100% - 32px))}
  .eco-v111 .gm-thinking__main{grid-template-columns:1fr 1.15fr;min-height:0}
  .eco-v111 .gm-thinking__visual{min-height:560px}.eco-v111 .gm-thinking__visual img{height:560px}
  .eco-v111 .gm-thinking__side{display:block}.eco-v111 .gm-system-list{grid-template-columns:repeat(2,1fr)}
  .eco-v111 .gm-benefits--five{grid-template-columns:repeat(2,1fr)}
  .eco-v111 .gm-benefits--five>div:last-child{grid-column:1 / -1}
  .eco-v111 .gm-steps__shell.sysx{grid-template-columns:1fr 1fr!important;gap:30px!important}
  .eco-v111 .gm-steps__visual{grid-column:1 / -1;min-height:620px!important}
  .eco-v111 .gm-benefits--four{grid-template-columns:repeat(2,1fr)}
  .eco-v111 .gm-signature{grid-column:1 / -1;min-height:100px!important}
}
@media (max-width:720px){
  .eco-v111 .gm-thinking,.eco-v111 .gm-steps{padding-top:38px}
  .eco-v111 .gm-wide{width:calc(100% - 28px)}
  .eco-v111 .gm-thinking__main{display:flex;flex-direction:column;gap:22px}
  .eco-v111 .gm-thinking__copy{padding:0}
  .eco-v111 .gm-thinking__copy h2,.eco-v111 .gm-steps__left h2{font-size:42px;line-height:1.01}
  .eco-v111 .gm-thinking__copy>p{font-size:15px;margin-top:18px}
  .eco-v111 .gm-thinking__actions{align-items:flex-start;flex-direction:column;gap:18px}
  .eco-v111 .gm-thinking__visual{width:100%;min-height:520px}.eco-v111 .gm-thinking__visual img{height:520px}
  .eco-v111 .gm-thinking__side{width:100%;padding:0 0 22px}.eco-v111 .gm-thinking__side h3{font-size:32px}
  .eco-v111 .gm-system-list{grid-template-columns:1fr}.eco-v111 .gm-system-item p{display:block}
  .eco-v111 .gm-benefits,.eco-v111 .gm-benefits--five,.eco-v111 .gm-benefits--four{grid-template-columns:1fr;margin-top:20px}
  .eco-v111 .gm-benefits>div,.eco-v111 .gm-benefits--five>div:last-child{grid-column:auto;min-height:100px;padding:24px 18px 20px 62px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .eco-v111 .gm-benefit-icon{top:25px}
  .eco-v111 .gm-thinking__footer{align-items:flex-start;flex-direction:column;justify-content:center;gap:8px;line-height:1.5;padding:18px 0}
  .eco-v111 .gm-steps__shell.sysx{display:flex!important;flex-direction:column!important;gap:28px!important}
  .eco-v111 .gm-steps .sysx-rail{margin-top:18px!important}
  .eco-v111 .gm-steps .sysx-step{grid-template-columns:40px 32px 1fr!important;min-height:58px!important}
  .eco-v111 .gm-steps .sysx-head{font-size:34px!important}
  .eco-v111 .gm-steps .sysx-viz{min-height:560px!important;width:100%}
  .eco-v111 .gm-signature{grid-column:auto!important}
}
@media (max-width:480px){
  .eco-v111 .gm-thinking__copy h2,.eco-v111 .gm-steps__left h2{font-size:36px}
  .eco-v111 .gm-thinking__visual{min-height:430px}.eco-v111 .gm-thinking__visual img{height:430px;object-position:54% bottom}
  .eco-v111 .gm-steps .sysx-viz{min-height:470px!important}
}


/* ================================================================
   GM06 POLISH-01 — Reference 06 geometry lock
   Scope: standalone #system-steps only. No Header/Hero/GM04 changes.
   Desktop geometry measured against 06-system-steps-golden-master.png.
   ================================================================ */
@media (min-width:1241px){
  .eco-v111 #system-steps.gm-steps .gm-wide{
    width:calc(100% - 80px)!important;
    max-width:none!important;
    margin-left:80px!important;
    margin-right:0!important;
  }
  .eco-v111 #system-steps .gm-steps__shell.sysx{
    grid-template-columns:430px 320px minmax(0,1fr)!important;
    column-gap:40px!important;
    row-gap:0!important;
    align-items:stretch!important;
  }
  .eco-v111 #system-steps .gm-steps__left{
    padding:0 0 28px!important;
    min-width:0!important;
  }
  .eco-v111 #system-steps .gm-steps__left h2{
    width:430px!important;
    max-width:430px!important;
    font-size:50px!important;
    line-height:.94!important;
    letter-spacing:-.043em!important;
    margin:0!important;
  }
  .eco-v111 #system-steps .gm-steps__intro{
    max-width:420px!important;
    margin:20px 0 16px!important;
    font-size:15px!important;
    line-height:1.45!important;
  }
  .eco-v111 #system-steps .sysx-rail{
    width:400px!important;
    max-width:400px!important;
    margin-top:12px!important;
  }
  .eco-v111 #system-steps .sysx-step{
    min-height:56px!important;
  }
  .eco-v111 #system-steps .sysx-narr{
    width:320px!important;
    max-width:320px!important;
    align-self:center!important;
  }
  .eco-v111 #system-steps .sysx-head{
    font-size:39px!important;
    line-height:1.02!important;
  }
  .eco-v111 #system-steps .sysx-lead{
    font-size:15.5px!important;
    margin-bottom:20px!important;
  }
  .eco-v111 #system-steps .sysx-body{
    font-size:14px!important;
    line-height:1.52!important;
  }
  .eco-v111 #system-steps .sysx-viz{
    min-height:700px!important;
  }
  .eco-v111 #system-steps .sysx-viz img{
    object-position:50% 50%!important;
  }
}

/* 1440-class desktops: preserve four-line headline and full step rail. */
@media (min-width:981px) and (max-width:1240px){
  .eco-v111 #system-steps .gm-steps__shell.sysx{
    grid-template-columns:minmax(360px,430px) minmax(285px,320px) minmax(420px,1fr)!important;
    gap:26px!important;
  }
  .eco-v111 #system-steps .gm-steps__left h2{
    max-width:430px!important;
    font-size:48px!important;
    line-height:.95!important;
  }
}

/* ================================================================
   GM06 POLISH-02 — Reference 06 final desktop composition
   Scope: #system-steps only. Keeps mobile/tablet rules untouched.
   ================================================================ */
@media (min-width:1241px){
  .eco-v111 #system-steps.gm-steps{padding-top:52px!important}
  .eco-v111 #system-steps .gm-steps__shell.sysx{position:relative!important;display:grid!important;grid-template-columns:420px 330px minmax(0,1fr)!important;column-gap:48px!important;min-height:700px!important;align-items:start!important;overflow:visible!important}
  .eco-v111 #system-steps .gm-steps__left,.eco-v111 #system-steps .sysx-narr{position:relative!important;z-index:3!important}
  .eco-v111 #system-steps .gm-steps__left h2{width:420px!important;max-width:420px!important;font-size:50px!important;line-height:.94!important}
  .eco-v111 #system-steps .gm-steps__intro{width:410px!important;max-width:410px!important}
  .eco-v111 #system-steps .sysx-rail{width:400px!important;max-width:400px!important}
  .eco-v111 #system-steps .sysx-narr{width:330px!important;max-width:330px!important;align-self:center!important}
  .eco-v111 #system-steps .sysx-viz{position:absolute!important;top:-52px!important;right:0!important;bottom:auto!important;left:auto!important;width:50vw!important;height:752px!important;min-height:752px!important;z-index:1!important;align-self:auto!important}
  .eco-v111 #system-steps .sysx-viz::before{background:linear-gradient(90deg,#03182b 0%,rgba(3,24,43,.96) 7%,rgba(3,24,43,.76) 13%,rgba(3,24,43,.28) 21%,transparent 31%)!important}
  .eco-v111 #system-steps .sysx-viz img{object-position:50% 50%!important}
  .eco-v111 #system-steps .gm-benefits--four{position:relative!important;z-index:4!important;margin-top:0!important}
  .eco-v111 #system-steps .gm-step-mark{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;font-size:0!important}
  .eco-v111 #system-steps .gm-step-mark svg{display:block!important;width:25px!important;height:25px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
  .eco-v111 #system-steps .sysx-why::before{content:""!important;width:23px!important;height:23px!important;top:18px!important;border:1.7px solid #4dea77!important;border-radius:50%!important;box-shadow:inset 0 0 0 5px #03182b!important}
}

/* ================================================================
   GM06 POLISH-03 — final Golden Master alignment
   Scope: desktop #system-steps only.
   Purpose: match Ref 06 artwork bleed + narrative vertical rhythm.
   ================================================================ */
@media (min-width:1241px){
  /* Golden Master artwork begins behind the narrative, not as a third-column card. */
  .eco-v111 #system-steps .sysx-viz{
    width:64vw!important;
  }

  /* Keep the text readable while allowing the house artwork to bleed underneath it. */
  .eco-v111 #system-steps .sysx-viz::before{
    background:linear-gradient(90deg,
      #03182b 0%,
      rgba(3,24,43,.98) 8%,
      rgba(3,24,43,.90) 15%,
      rgba(3,24,43,.62) 23%,
      rgba(3,24,43,.22) 31%,
      transparent 39%)!important;
  }

  /* Ref 06 places the active-step narrative lower, beside the active rail region. */
  .eco-v111 #system-steps .sysx-narr{
    transform:translateY(78px)!important;
  }

  /* Golden Master uses a light-bulb mark for the Why-it-matters callout. */
  .eco-v111 #system-steps .sysx-why::before{
    content:""!important;
    width:30px!important;
    height:30px!important;
    top:16px!important;
    left:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-size:28px 28px!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%234dea77' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.2 21.2c-2.2-1.8-3.7-4.5-3.7-7.6A9.5 9.5 0 0 1 16 4a9.5 9.5 0 0 1 9.5 9.6c0 3.1-1.5 5.8-3.8 7.6-1.3 1-2 2.2-2.2 3.6h-7c-.2-1.4-1-2.6-2.3-3.6Z'/%3E%3Cpath d='M12.7 27h6.6M13.8 30h4.4M16 1v1.4M4.7 5.2l1 1M27.3 5.2l-1 1M1.8 15.5h1.5M28.7 15.5h1.5'/%3E%3C/svg%3E")!important;
  }
}

/* =========================================================================
 * REF06 RECONCILED — PROCESS-ONLY SYSTEM STEPS (.stepx)
 * Ref04 remains the editorial System Thinking story. This section is a
 * separate procedural interaction with no duplicated house artwork/content.
 * ========================================================================= */
.eco-v111 .svc-steps{position:relative;overflow:hidden;background:linear-gradient(180deg,#081027 0%,#0a1330 55%,#070f22 100%)}
.eco-v111 .svc-steps::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(148,182,210,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(148,182,210,.055) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse at 62% 18%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse at 62% 18%,#000 0%,transparent 72%)}
.eco-v111 .svc-steps::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(244,197,45,.55),rgba(86,239,124,.45),transparent)}
.eco-v111 .svc-steps .wrap{position:relative;z-index:1}
.eco-v111 .stepx-top{max-width:720px;margin:0 0 38px}
.eco-v111 .stepx-top .h2{margin:10px 0 10px}
.eco-v111 .stepx-intro{margin:0;color:#aebdcd;font-size:16px;letter-spacing:.01em}
.eco-v111 .stepx{display:grid;grid-template-columns:332px minmax(0,1fr);gap:0;align-items:stretch;max-width:1120px}
.eco-v111 .stepx-rail{display:flex;flex-direction:column;border-right:1px solid rgba(172,200,218,.16);padding-right:26px}
.eco-v111 .stepx-step{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;padding:18px 6px;border:0;background:none;border-bottom:1px solid rgba(172,200,218,.12);color:#cfe0ee;transition:color .16s ease,background .16s ease}
.eco-v111 .stepx-step:last-child{border-bottom:0}
.eco-v111 .stepx-step::before{content:"";position:absolute;left:-26px;top:10px;bottom:10px;width:2px;background:#56ef7c;opacity:0;transition:opacity .16s ease}
.eco-v111 .stepx-step:hover{color:#f3f8ff}
.eco-v111 .stepx-step.active{color:#fff}
.eco-v111 .stepx-step.active::before{opacity:1}
.eco-v111 .stepx-step:focus-visible{outline:2px solid rgba(86,239,124,.72);outline-offset:2px;border-radius:8px}
.eco-v111 .stepx-no{font-size:13px;font-weight:700;letter-spacing:.12em;color:#7d93a8;font-variant-numeric:tabular-nums}
.eco-v111 .stepx-step.active .stepx-no{color:#f4c52d}
.eco-v111 .stepx-lbl{font-size:15.5px;font-weight:650;letter-spacing:-.008em;line-height:1.25}
.eco-v111 .stepx-panel{padding:6px 0 6px 42px;min-width:0}
.eco-v111 .stepx-meta{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}
.eco-v111 .stepx-pno{font-size:12px;font-weight:700;letter-spacing:.18em;color:#f4c52d;font-variant-numeric:tabular-nums}
.eco-v111 .stepx-ptitle{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#93a7bd}
.eco-v111 .stepx-sub{margin:0 0 14px;font-size:clamp(22px,2.1vw,30px);line-height:1.18;letter-spacing:-.022em;color:#f7fbff;font-weight:700;max-width:22ch}
.eco-v111 .stepx-body{margin:0 0 20px;color:#bccbdb;font-size:16px;line-height:1.62;max-width:62ch}
.eco-v111 .stepx-why{position:relative;padding:16px 18px 16px 20px;margin:0 0 22px;max-width:62ch;border:1px solid rgba(172,200,218,.18);border-radius:12px;background:linear-gradient(180deg,rgba(86,239,124,.05),rgba(255,255,255,.012))}
.eco-v111 .stepx-why::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;background:linear-gradient(180deg,#f4c52d,#56ef7c);border-radius:2px}
.eco-v111 .stepx-why-lbl{display:block;font-size:10.5px;font-weight:750;letter-spacing:.17em;text-transform:uppercase;color:#f4c52d;margin:0 0 6px}
.eco-v111 .stepx-why-body{margin:0;color:#dbe6f2;font-size:15px;line-height:1.55}
.eco-v111 .stepx-cta{display:inline-flex;align-items:center}
.eco-v111 .stepx-cta.btn.line{color:#fff;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.06);font-weight:700;letter-spacing:.04em}
.eco-v111 .stepx-cta.btn.line:hover,.eco-v111 .stepx-cta.btn.line:focus-visible{border-color:rgba(86,239,124,.6);background:rgba(86,239,124,.10);color:#fff}
@media(max-width:1100px){.eco-v111 .stepx{grid-template-columns:270px minmax(0,1fr)}.eco-v111 .stepx-panel{padding-left:30px}}
@media(max-width:900px){.eco-v111 .stepx{grid-template-columns:minmax(0,1fr);gap:22px}.eco-v111 .stepx-rail{flex-direction:row;overflow-x:auto;gap:8px;border-right:0;border-bottom:1px solid rgba(172,200,218,.16);padding:0 0 10px;-webkit-overflow-scrolling:touch}.eco-v111 .stepx-step{flex:0 0 auto;width:auto;grid-template-columns:auto;gap:4px;border-bottom:0;padding:10px 14px;border:1px solid rgba(172,200,218,.16);border-radius:999px}.eco-v111 .stepx-step::before{display:none}.eco-v111 .stepx-step.active{border-color:rgba(86,239,124,.55);background:rgba(86,239,124,.08)}.eco-v111 .stepx-lbl{font-size:13px}.eco-v111 .stepx-panel{padding:0}}
@media(prefers-reduced-motion:reduce){.eco-v111 .stepx-step{transition:none!important}}

/* =========================================================================
 * REF06 TECHBOARD-02 — architectural commissioning map
 * Stronger desktop composition: technical house/system schematic, not radial UI.
 * Driven by existing .stepx[data-active]; no JS changes.
 * ========================================================================= */
.eco-v111 #system-steps{scroll-margin-top:116px}
@media (min-width:1180px){
  .eco-v111 #system-steps .stepx{grid-template-columns:280px minmax(430px,1fr) 430px;column-gap:28px;max-width:none;align-items:stretch}
  .eco-v111 #system-steps .stepx-panel{padding:8px 10px 8px 34px}
}
.eco-v111 .stepx-techboard{position:relative;align-self:stretch;min-height:500px;padding:18px 18px 14px;border:1px solid rgba(151,183,210,.14);border-radius:22px;overflow:hidden;background:linear-gradient(155deg,rgba(255,255,255,.035),rgba(255,255,255,.012) 50%,rgba(86,239,124,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 28px 70px rgba(2,7,22,.24)}
.eco-v111 .stepx-techboard::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(157,190,216,.038) 1px,transparent 1px),linear-gradient(90deg,rgba(157,190,216,.038) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 92%);mask-image:linear-gradient(180deg,#000,transparent 92%)}
.eco-v111 .stepx-techboard::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#e7c35a,#56ef7c 55%,transparent 92%)}
.eco-v111 .tb-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 2px 10px;font-size:9.5px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#8da0b5}
.eco-v111 .tb-head span{display:flex;align-items:center;gap:8px;color:#aab9c9}.eco-v111 .tb-head span i{width:6px;height:6px;border-radius:50%;background:#56ef7c;box-shadow:0 0 0 4px rgba(86,239,124,.08)}
.eco-v111 .tb-head b{font-size:9px;color:#d9bd5b;letter-spacing:.14em}
.eco-v111 .tb-stage{position:relative;z-index:1;min-height:388px;display:grid;place-items:center}
.eco-v111 .tb-svg{width:100%;height:auto;max-width:410px;display:block;overflow:visible}
.eco-v111 .tb-grid path{fill:none;stroke:rgba(151,183,210,.055);stroke-width:1}
.eco-v111 .tb-shell,.eco-v111 .tb-floor,.eco-v111 .tb-room{fill:none;stroke:rgba(190,208,226,.24);stroke-width:1.3;stroke-linejoin:round}
.eco-v111 .tb-floor{stroke:rgba(231,195,90,.28)}.eco-v111 .tb-room{stroke:rgba(190,208,226,.14)}
.eco-v111 .tb-unit{fill:rgba(11,24,52,.9);stroke:rgba(231,195,90,.38);stroke-width:1.2}.eco-v111 .tb-led{fill:#56ef7c;filter:drop-shadow(0 0 5px rgba(86,239,124,.6))}
.eco-v111 .tb-flow path{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:8 10;opacity:.68}.eco-v111 .tb-flow circle{opacity:.9}.eco-v111 .tb-flow.warm path{stroke:url(#tbWarm)}.eco-v111 .tb-flow.warm circle{fill:#f3b563}.eco-v111 .tb-flow.cool path{stroke:url(#tbCool)}.eco-v111 .tb-flow.cool circle{fill:#7db2ff}
.eco-v111 .tb-step{opacity:.34;transition:opacity .2s ease}.eco-v111 .tb-node{fill:#09152d;stroke:rgba(132,164,192,.6);stroke-width:1.4}.eco-v111 .tb-mark{fill:none;stroke:#8fa6bb;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.eco-v111 .tb-lead{fill:none;stroke:rgba(132,164,192,.26);stroke-width:1.1;stroke-dasharray:3 6}.eco-v111 .tb-n{fill:#667f98;font-size:9px;font-weight:800;letter-spacing:.15em;text-anchor:middle}.eco-v111 .tb-label{fill:#71879d;font-size:8px;font-weight:800;letter-spacing:.14em;text-anchor:start}.eco-v111 .tb-label.right{text-anchor:end}.eco-v111 .tb-label.center{text-anchor:middle}
.eco-v111 .stepx[data-active="0"] .tb-step.s0,.eco-v111 .stepx[data-active="1"] .tb-step.s1,.eco-v111 .stepx[data-active="2"] .tb-step.s2,.eco-v111 .stepx[data-active="3"] .tb-step.s3,.eco-v111 .stepx[data-active="4"] .tb-step.s4{opacity:1}
.eco-v111 .stepx[data-active="0"] .tb-step.s0 .tb-node,.eco-v111 .stepx[data-active="1"] .tb-step.s1 .tb-node,.eco-v111 .stepx[data-active="2"] .tb-step.s2 .tb-node,.eco-v111 .stepx[data-active="3"] .tb-step.s3 .tb-node,.eco-v111 .stepx[data-active="4"] .tb-step.s4 .tb-node{fill:rgba(86,239,124,.10);stroke:#56ef7c;filter:drop-shadow(0 0 10px rgba(86,239,124,.24))}
.eco-v111 .stepx[data-active="0"] .tb-step.s0 .tb-mark,.eco-v111 .stepx[data-active="1"] .tb-step.s1 .tb-mark,.eco-v111 .stepx[data-active="2"] .tb-step.s2 .tb-mark,.eco-v111 .stepx[data-active="3"] .tb-step.s3 .tb-mark,.eco-v111 .stepx[data-active="4"] .tb-step.s4 .tb-mark{stroke:#56ef7c}.eco-v111 .stepx[data-active="0"] .tb-step.s0 .tb-n,.eco-v111 .stepx[data-active="1"] .tb-step.s1 .tb-n,.eco-v111 .stepx[data-active="2"] .tb-step.s2 .tb-n,.eco-v111 .stepx[data-active="3"] .tb-step.s3 .tb-n,.eco-v111 .stepx[data-active="4"] .tb-step.s4 .tb-n{fill:#e7c35a}.eco-v111 .stepx[data-active="0"] .tb-step.s0 .tb-label,.eco-v111 .stepx[data-active="1"] .tb-step.s1 .tb-label,.eco-v111 .stepx[data-active="2"] .tb-step.s2 .tb-label,.eco-v111 .stepx[data-active="3"] .tb-step.s3 .tb-label,.eco-v111 .stepx[data-active="4"] .tb-step.s4 .tb-label{fill:#eef6ff}
.eco-v111 .tb-core rect{fill:#0a1730;stroke:rgba(86,239,124,.34);stroke-width:1}.eco-v111 .tb-core circle{fill:#56ef7c;filter:drop-shadow(0 0 5px rgba(86,239,124,.55))}.eco-v111 .tb-core text{fill:#dbe8f4;font-size:7.8px;font-weight:800;letter-spacing:.12em}
.eco-v111 .tb-foot{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:8px;margin-top:2px;padding:12px 2px 0;border-top:1px solid rgba(151,183,210,.10)}
.eco-v111 .tb-foot div{display:flex;flex-direction:column;gap:2px;min-width:0}.eco-v111 .tb-foot span{font-size:8px;font-weight:800;letter-spacing:.14em;color:#60788f}.eco-v111 .tb-foot b{font-size:9.5px;font-weight:700;color:#a8b8c8;white-space:nowrap}.eco-v111 .tb-foot i{height:1px;background:linear-gradient(90deg,rgba(151,183,210,.12),rgba(86,239,124,.28))}
@media (min-width:901px) and (max-width:1179px){.eco-v111 .stepx-techboard{display:none}}
@media (max-width:900px){.eco-v111 .stepx-techboard{display:none}}
@media (prefers-reduced-motion:reduce){.eco-v111 .tb-step{transition:none!important}}

/* =========================================================================
 * ATLAS · GOLDEN SHELL-01
 * Visual-shell upgrade only. Keeps the existing atlas DOM, city data, map,
 * routes, filters, markers and JS behaviour intact.
 * ========================================================================= */
.eco-v111 .svc-atlas3{
  position:relative;isolation:isolate;overflow:hidden;
  padding:68px 0 58px!important;
  background:
    radial-gradient(circle at 58% 38%,rgba(39,99,73,.18),transparent 28%),
    radial-gradient(circle at 78% 28%,rgba(43,86,133,.16),transparent 34%),
    linear-gradient(135deg,#03182b 0%,#06172c 48%,#071226 100%)!important;
  border-top:1px solid rgba(87,214,120,.18)!important;
  color:#eef6ff;
}
.eco-v111 .svc-atlas3::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 32%,#000 88%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 32%,#000 88%,transparent);
}
.eco-v111 .svc-atlas3>.wrap{
  width:min(1460px,calc(100% - 56px));max-width:none;margin:0 auto;
  display:grid;grid-template-columns:minmax(350px,.76fr) minmax(760px,1.72fr);
  grid-template-areas:"intro atlas" "note atlas";
  column-gap:34px;align-items:start;
}
.eco-v111 .svc-atlas3 .svc-top{
  grid-area:intro;display:block!important;margin:0!important;padding:28px 0 0!important;
}
.eco-v111 .svc-atlas3 .svc-top>div{max-width:410px}
.eco-v111 .svc-atlas3 .svc-top .kicker{
  color:#e7c35a!important;font-size:10px!important;letter-spacing:.2em!important;margin-bottom:18px!important;
}
.eco-v111 .svc-atlas3 .svc-top .kicker::before{background:#e7c35a!important}
.eco-v111 .svc-atlas3 .svc-top .h2{
  margin:0!important;max-width:10.2ch;color:#fff!important;
  font-size:clamp(46px,4.15vw,64px)!important;line-height:.98!important;letter-spacing:-.045em!important;
}
.eco-v111 .svc-atlas3 .svc-top .lead{
  margin:22px 0 0!important;max-width:39ch!important;color:#c7d3e1!important;
  font-size:16px!important;line-height:1.62!important;
}
.eco-v111 .svc-atlas3 .svc-note{
  grid-area:note;margin:28px 0 0!important;max-width:44ch;
  padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  color:#8fa2b8!important;font-size:12.5px!important;line-height:1.65!important;
}
.eco-v111 .svc-atlas3 .svc-note a{color:#62ef7d!important;font-weight:750;text-decoration:none}

.eco-v111 .svc-atlas3 .atlas3{
  grid-area:atlas;display:grid!important;
  grid-template-columns:minmax(0,1fr) 282px!important;grid-template-rows:720px!important;
  width:100%;height:720px!important;min-height:720px;
  border-radius:26px!important;overflow:hidden!important;
  border:1px solid rgba(126,173,206,.18)!important;
  background:linear-gradient(155deg,#08132f,#091735 58%,#050d21)!important;
  box-shadow:0 42px 110px rgba(0,4,18,.42),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.eco-v111 .svc-atlas3 .atlas3-stage{
  order:1;min-width:0;min-height:720px!important;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 52% 44%,rgba(52,139,72,.10),transparent 36%),
    #07132d;
}
.eco-v111 .svc-atlas3 .atlas3-map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
.eco-v111 .svc-atlas3 .atlas3-nav{
  order:2;min-width:0;min-height:0;padding:22px 18px 16px!important;
  border-right:0!important;border-left:1px solid rgba(255,255,255,.08)!important;
  background:linear-gradient(180deg,rgba(9,22,48,.98),rgba(6,16,38,.96))!important;
}
.eco-v111 .svc-atlas3 .atlas3-nav-head{
  color:#e7c35a!important;font-size:9.5px!important;letter-spacing:.2em!important;margin-bottom:12px!important;
}
.eco-v111 .svc-atlas3 .atlas3-filter{
  border-color:rgba(255,255,255,.14)!important;background:rgba(2,10,27,.55)!important;color:#eef5ff!important;
}
.eco-v111 .svc-atlas3 .atlas3-filter::placeholder{color:#71829c!important}
.eco-v111 .svc-atlas3 .atlas3-scroll{padding-right:5px!important}
.eco-v111 .svc-atlas3 .atlas3-group-head{font-size:8.8px!important;letter-spacing:.14em!important;margin-top:2px}
.eco-v111 .svc-atlas3 .atlas3-row{padding:8px 9px!important;border-radius:10px!important}
.eco-v111 .svc-atlas3 .atlas3-row .row-name{font-size:12.5px!important}
.eco-v111 .svc-atlas3 .atlas3-row .row-tier{font-size:8px!important;letter-spacing:.08em!important}
.eco-v111 .svc-atlas3 .atlas3-row.active{
  background:linear-gradient(90deg,rgba(68,188,86,.14),rgba(68,188,86,.04))!important;
  box-shadow:inset 2px 0 0 #56ef7c!important;
}
.eco-v111 .svc-atlas3 .atlas3-card{
  left:22px!important;right:auto!important;top:22px!important;bottom:auto!important;
  width:min(270px,calc(100% - 44px))!important;
  padding:18px 18px 16px!important;border-radius:16px!important;
  background:rgba(4,13,31,.86)!important;border:1px solid rgba(199,169,106,.24)!important;
  box-shadow:0 24px 60px rgba(0,3,16,.38)!important;
  backdrop-filter:blur(14px)!important;
}
.eco-v111 .svc-atlas3 .atlas3-card h3{font-size:26px!important;margin:8px 0 9px!important}
.eco-v111 .svc-atlas3 .atlas3-card .ai-tier{color:#e7c35a!important;letter-spacing:.16em!important}
.eco-v111 .svc-atlas3 .atlas3-card .ai-mean{color:#c1cede!important}
.eco-v111 .svc-atlas3 .atlas3-card .ai-svcs li{color:#d7e1ee!important}
.eco-v111 .svc-atlas3 .atlas3-card .ai-note{color:#8497ae!important}
.eco-v111 .svc-atlas3 .atlas3-cta.btn.line{
  border-color:rgba(255,255,255,.38)!important;background:rgba(255,255,255,.045)!important;color:#fff!important;
}
.eco-v111 .svc-atlas3 .atlas3-mk.hq .lbl{font-size:16px!important;paint-order:stroke;stroke:#06112a;stroke-width:5px}
.eco-v111 .svc-atlas3 .atlas3-mk .lbl{paint-order:stroke;stroke:#06112a;stroke-width:4px}

@media (max-width:1220px){
  .eco-v111 .svc-atlas3>.wrap{grid-template-columns:minmax(310px,.7fr) minmax(650px,1.55fr);column-gap:24px}
  .eco-v111 .svc-atlas3 .atlas3{grid-template-columns:minmax(0,1fr) 250px!important}
  .eco-v111 .svc-atlas3 .svc-top .h2{font-size:48px!important}
}
@media (max-width:1024px){
  .eco-v111 .svc-atlas3>.wrap{display:block;width:min(940px,calc(100% - 36px))}
  .eco-v111 .svc-atlas3 .svc-top{padding:0!important;margin-bottom:28px!important}
  .eco-v111 .svc-atlas3 .svc-top>div{max-width:720px}
  .eco-v111 .svc-atlas3 .svc-top .h2{max-width:14ch;font-size:46px!important}
  .eco-v111 .svc-atlas3 .svc-top .lead{max-width:60ch!important}
  .eco-v111 .svc-atlas3 .svc-note{margin-top:20px!important;max-width:none}
  .eco-v111 .svc-atlas3 .atlas3{grid-template-columns:1fr!important;grid-template-rows:auto!important;height:auto!important;min-height:0}
  .eco-v111 .svc-atlas3 .atlas3-stage{order:2;min-height:560px!important}
  .eco-v111 .svc-atlas3 .atlas3-nav{order:1;border-left:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important}
}
@media (max-width:640px){
  .eco-v111 .svc-atlas3{padding:48px 0 42px!important}
  .eco-v111 .svc-atlas3>.wrap{width:calc(100% - 24px)}
  .eco-v111 .svc-atlas3 .svc-top .h2{font-size:38px!important;max-width:12ch}
  .eco-v111 .svc-atlas3 .svc-top .lead{font-size:15px!important}
  .eco-v111 .svc-atlas3 .atlas3-stage{min-height:430px!important}
  .eco-v111 .svc-atlas3 .atlas3-card{position:relative!important;left:auto!important;top:auto!important;width:auto!important;margin:0!important;border-radius:0!important;backdrop-filter:none!important}
}


/* =========================================================================
 * NIGHT PREP · HERO SURGERY-01
 * Furnace image hero only. Unifies copy + artwork into one composition,
 * removes the busy technical overlay, and keeps the hero conversion-focused.
 * Prepared against the 2026-09-18 staging baseline. No production deployment.
 * ========================================================================= */
@media (min-width:961px){
  .eco-v111 section.svc-hero.hero-image-mode{
    --hero-copy-w:min(42vw,650px);
    --hero-photo-left:34.5%;
    position:relative!important;
    overflow:hidden!important;
    background:
      radial-gradient(52% 72% at 12% 58%,rgba(20,48,74,.22),transparent 72%),
      linear-gradient(90deg,#06182b 0%,#07182d 36%,#08172c 100%)!important;
  }
  /* One scene: artwork deliberately overlaps the copy field; the scrim makes
     the blend, so there is no visible left/right divider. */
  .eco-v111 .hero-image-mode .hero-photo{
    left:var(--hero-photo-left)!important;right:0!important;width:auto!important;
    top:var(--hdr)!important;height:var(--band)!important;bottom:auto!important;
    overflow:hidden!important;
  }
  .eco-v111 .hero-image-mode .hero-photo picture,
  .eco-v111 .hero-image-mode .hero-photo img{
    width:100%!important;height:100%!important;object-fit:cover!important;
    object-position:54% 47%!important;transform:none!important;
  }
  .eco-v111 .hero-image-mode .hero-photo-scrim{
    background:
      linear-gradient(90deg,#06182b 0%,rgba(6,24,43,.98) 10%,rgba(6,24,43,.92) 18%,rgba(6,24,43,.72) 28%,rgba(6,24,43,.40) 39%,rgba(6,24,43,.12) 49%,rgba(6,24,43,0) 60%),
      linear-gradient(180deg,rgba(4,12,28,.22),transparent 18%,transparent 76%,rgba(4,12,28,.34))!important;
  }
  /* Old bridge/overlay elements are the source of the three-column feeling. */
  .eco-v111 .hero-image-mode .hero-ov,
  .eco-v111 .hero-image-mode .hero-bleed,
  .eco-v111 .hero-image-mode .hero-floorglow{display:none!important}

  .eco-v111 .hero-image-mode .svc-hero-grid{
    position:relative!important;z-index:3!important;width:100%!important;max-width:none!important;
    min-height:inherit!important;height:auto!important;
    padding:calc(var(--hdr) + 4.6vw) 0 0 4.2vw!important;margin:0!important;
  }
  .eco-v111 .hero-image-mode .hero-copy{width:var(--hero-copy-w)!important;max-width:var(--hero-copy-w)!important}
  .eco-v111 .hero-image-mode .kicker.light{
    margin:0 0 1.5vw!important;font-size:.73vw!important;letter-spacing:.16em!important;color:#e7c35a!important
  }
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{
    max-width:9.9ch!important;margin:0 0 1.3vw!important;
    font-size:clamp(54px,4.45vw,74px)!important;line-height:.92!important;
    letter-spacing:-.052em!important;font-weight:800!important
  }
  .eco-v111 .hero-image-mode .hero-copy h1 em{white-space:nowrap!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{
    max-width:31ch!important;margin:0 0 1.65vw!important;
    font-size:clamp(18px,1.45vw,24px)!important;line-height:1.32!important;
    font-weight:500!important;color:#eef3fb!important
  }
  .eco-v111 .hero-image-mode .hero-actions{
    display:flex!important;align-items:center!important;gap:14px!important;
    margin:0 0 1.55vw!important
  }
  .eco-v111 .hero-image-mode .hero-actions .btn{
    min-height:56px!important;padding:0 30px!important;font-size:12.5px!important;
    letter-spacing:.08em!important
  }
  .eco-v111 .hero-image-mode .hero-actions .btn.primary{min-width:286px!important}
  .eco-v111 .hero-image-mode .hero-actions .btn.ghost{min-width:236px!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{
    max-width:62ch!important;margin:0!important;font-size:9.5px!important;
    line-height:1.7!important;letter-spacing:.135em!important;color:#8090a7!important
  }
}
@media (min-width:961px) and (max-width:1220px){
  .eco-v111 section.svc-hero.hero-image-mode{--hero-copy-w:min(45vw,520px);--hero-photo-left:39%}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{font-size:clamp(46px,4.6vw,60px)!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{font-size:18px!important}
  .eco-v111 .hero-image-mode .hero-actions .btn.primary{min-width:250px!important}
  .eco-v111 .hero-image-mode .hero-actions .btn.ghost{min-width:210px!important}
}
@media (max-width:960px){
  /* Mobile/tablet stays stacked, but the same simplification applies: no
     checklist overlay, no extra body paragraph, clean image after CTAs. */
  .eco-v111 .hero-image-mode .hero-ov,
  .eco-v111 .hero-image-mode .hero-bleed,
  .eco-v111 .hero-image-mode .hero-floorglow{display:none!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{max-width:34ch!important}
  .eco-v111 .hero-image-mode .hero-photo-scrim{
    background:linear-gradient(180deg,rgba(6,24,43,.28),transparent 22%,transparent 78%,rgba(5,13,30,.42))!important
  }
}

/* =========================================================================
 * HERO POLISH-02 — premium composition lock
 * Keeps Surgery-01 simplification, restores brand presence, rebalances the
 * headline to the intended 3-line hierarchy, and gives the artwork more air.
 * ========================================================================= */
@media (min-width:1221px){
  .eco-v111 section.svc-hero.hero-image-mode{
    --hero-copy-w:min(47vw,720px);
    --hero-photo-left:38.5%;
    height:clamp(640px,44vw,710px)!important;
    min-height:640px!important;
    background:
      radial-gradient(54% 76% at 13% 54%,rgba(24,64,86,.24),transparent 70%),
      radial-gradient(34% 48% at 70% 16%,rgba(199,169,106,.055),transparent 72%),
      linear-gradient(90deg,#05172a 0%,#071a30 38%,#08172c 100%)!important;
  }
  .eco-v111 .hero-image-mode .hero-photo{
    left:var(--hero-photo-left)!important;
    top:0!important;height:100%!important;
  }
  .eco-v111 .hero-image-mode .hero-photo picture,
  .eco-v111 .hero-image-mode .hero-photo img{
    object-position:49% 49%!important;
  }
  .eco-v111 .hero-image-mode .hero-photo-scrim{
    background:
      linear-gradient(90deg,#05172a 0%,rgba(5,23,42,.995) 8%,rgba(5,23,42,.96) 17%,rgba(5,23,42,.82) 28%,rgba(5,23,42,.52) 40%,rgba(5,23,42,.22) 51%,rgba(5,23,42,0) 64%),
      linear-gradient(180deg,rgba(3,10,24,.18),transparent 22%,transparent 74%,rgba(3,10,24,.38))!important;
  }
  /* Small branded equipment plaque — a quiet replacement for the removed
     overlay module, not another information block. */
  .eco-v111 .hero-image-mode .hero-photo::before{
    content:"ECO COMFORT";
    position:absolute;z-index:5;right:34px;top:32px;
    display:flex;align-items:center;min-height:36px;
    padding:0 13px 0 44px;border-radius:999px;
    border:1px solid rgba(255,255,255,.16);
    background-image:url('../img/v111/ecocomfort-logomark.png'),linear-gradient(180deg,rgba(4,15,30,.76),rgba(4,15,30,.58));
    background-repeat:no-repeat,no-repeat;background-position:11px 50%,0 0;background-size:25px 25px,100% 100%;
    box-shadow:0 10px 30px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter:blur(10px);
    color:rgba(245,250,255,.92);font-size:9.5px;font-weight:800;letter-spacing:.16em;
    pointer-events:none;
  }
  .eco-v111 .hero-image-mode .svc-hero-grid{
    padding:68px 0 0 4.2vw!important;
  }
  .eco-v111 .hero-image-mode .hero-copy{
    width:var(--hero-copy-w)!important;max-width:var(--hero-copy-w)!important;
  }
  .eco-v111 .hero-image-mode .kicker.light{
    display:block!important;visibility:visible!important;opacity:1!important;
    position:relative;z-index:5;
    margin:0 0 18px!important;font-size:10.5px!important;line-height:1.2!important;
    letter-spacing:.155em!important;color:#e7c35a!important;
  }
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{
    max-width:none!important;width:100%!important;
    margin:0 0 20px!important;
    font-size:clamp(54px,3.82vw,64px)!important;line-height:.98!important;
    letter-spacing:-.046em!important;
  }
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-lead{
    max-width:34ch!important;margin:0 0 24px!important;
    font-size:clamp(18px,1.28vw,21px)!important;line-height:1.42!important;
    color:#e9f0fa!important;
  }
  .eco-v111 .hero-image-mode .hero-actions{
    gap:12px!important;margin:0 0 20px!important;
  }
  .eco-v111 .hero-image-mode .hero-actions .btn{
    min-height:52px!important;padding:0 26px!important;font-size:12px!important;
  }
  .eco-v111 .hero-image-mode .hero-actions .btn.primary{min-width:276px!important}
  .eco-v111 .hero-image-mode .hero-actions .btn.ghost{min-width:226px!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{
    max-width:none!important;white-space:nowrap!important;
    font-size:9px!important;line-height:1.6!important;letter-spacing:.125em!important;
    color:#8192aa!important;
  }
}
@media (min-width:961px) and (max-width:1220px){
  .eco-v111 section.svc-hero.hero-image-mode{
    --hero-copy-w:min(48vw,560px);--hero-photo-left:40%;
    height:clamp(610px,52vw,650px)!important;min-height:610px!important;
  }
  .eco-v111 .hero-image-mode .svc-hero-grid{padding:58px 0 0 4.2vw!important}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy h1{
    max-width:none!important;font-size:clamp(44px,4.15vw,52px)!important;line-height:1!important;
  }
  .eco-v111 .hero-image-mode .kicker.light{display:block!important;visibility:visible!important;opacity:1!important;font-size:9.5px!important;margin-bottom:15px!important}
  .eco-v111 .hero-image-mode .hero-photo::before{right:24px;top:24px;transform:scale(.94);transform-origin:100% 0}
  .eco-v111 section.svc-hero.hero-image-mode .hero-copy p.hero-micro{white-space:normal!important;max-width:58ch!important}
}
@media (max-width:960px){
  /* Keep brand presence on mobile without reintroducing the old overlay. */
  .eco-v111 .hero-image-mode .hero-photo{position:relative!important}
  .eco-v111 .hero-image-mode .hero-photo::before{
    content:"ECO COMFORT";position:absolute;z-index:4;right:16px;top:16px;
    min-height:32px;padding:0 11px 0 39px;border-radius:999px;
    display:flex;align-items:center;border:1px solid rgba(255,255,255,.16);
    background-image:url('../img/v111/ecocomfort-logomark.png'),linear-gradient(180deg,rgba(4,15,30,.74),rgba(4,15,30,.56));
    background-repeat:no-repeat,no-repeat;background-position:9px 50%,0 0;background-size:23px 23px,100% 100%;
    color:#f4f8ff;font-size:8.5px;font-weight:800;letter-spacing:.14em;pointer-events:none;
  }
}

/* =========================================================================
 * HERO ASSET V3 — approved wide cinematic equipment scene
 * Uses the new 1672×941 wide asset without zooming it in. Desktop/tablet use
 * a full-hero photo layer with contain/right alignment; the asset's own navy
 * falloff becomes the bridge behind copy. Mobile keeps a dedicated square crop.
 * ========================================================================= */
@media (min-width:961px){
  .eco-v111 section.svc-hero.hero-image-mode{
    --hero-photo-left:0%;
  }
  .eco-v111 .hero-image-mode .hero-photo{
    left:0!important;right:0!important;width:100%!important;
    top:0!important;height:100%!important;bottom:auto!important;
    overflow:hidden!important;
  }
  .eco-v111 .hero-image-mode .hero-photo picture,
  .eco-v111 .hero-image-mode .hero-photo img{
    width:100%!important;height:100%!important;
    object-fit:contain!important;object-position:right center!important;
    transform:none!important;background:transparent!important;
  }
  /* The asset already carries the navy fade. Keep only a light tonal bridge
     so the copy remains crisp without flattening the warm room. */
  .eco-v111 .hero-image-mode .hero-photo-scrim{
    background:
      linear-gradient(90deg,rgba(5,23,42,.18) 0%,rgba(5,23,42,.11) 30%,rgba(5,23,42,.045) 44%,rgba(5,23,42,0) 58%),
      linear-gradient(180deg,rgba(3,10,24,.06),transparent 22%,transparent 76%,rgba(3,10,24,.14))!important;
  }
  /* Keep the EcoComfort signature visible but off the mini-split head. */
  .eco-v111 .hero-image-mode .hero-photo::before{
    top:176px!important;right:34px!important;
  }
}
@media (min-width:961px) and (max-width:1220px){
  .eco-v111 section.svc-hero.hero-image-mode{
    height:clamp(550px,55vw,620px)!important;min-height:550px!important;
  }
  .eco-v111 .hero-image-mode .hero-photo::before{
    top:150px!important;right:24px!important;
  }
}
@media (max-width:960px){
  .eco-v111 .hero-image-mode .hero-photo picture,
  .eco-v111 .hero-image-mode .hero-photo img{
    width:100%!important;height:auto!important;
    aspect-ratio:1/1!important;object-fit:cover!important;object-position:50% 50%!important;
  }
  .eco-v111 .hero-image-mode .hero-photo-scrim{
    background:linear-gradient(180deg,rgba(6,24,43,.16),transparent 20%,transparent 80%,rgba(5,13,30,.26))!important;
  }
}

/* =========================================================================
 * HERO BG WIDEN-01 — widen left navy field and soften image transition
 * HERO ONLY. Asset/HTML/Ref04/Ref06/Atlas untouched.
 * ========================================================================= */
.eco-v111 .svc-hero.hero-image-mode .hero-photo-scrim{
  left:0;
  top:0;
  bottom:0;
  width:64%;
  max-width:1080px;
  background:linear-gradient(90deg,
    rgba(5,16,38,.98) 0%,
    rgba(6,20,46,.96) 18%,
    rgba(7,24,54,.92) 34%,
    rgba(8,28,62,.82) 50%,
    rgba(9,32,70,.62) 66%,
    rgba(10,36,78,.34) 82%,
    rgba(10,36,78,.12) 92%,
    rgba(10,36,78,0) 100%) !important;
}

.eco-v111 .hero-image-mode .hero-floorglow{
  left:0;
  right:32%;
  opacity:.88;
}

@media (max-width:1280px){
  .eco-v111 .svc-hero.hero-image-mode .hero-photo-scrim{width:69%;}
}

@media (max-width:1024px){
  .eco-v111 .svc-hero.hero-image-mode .hero-photo-scrim{width:74%;max-width:none;}
}

@media (max-width:767px){
  .eco-v111 .svc-hero.hero-image-mode .hero-photo-scrim{
    width:100%;
    background:linear-gradient(180deg,
      rgba(5,16,38,.92) 0%,
      rgba(6,20,46,.84) 38%,
      rgba(8,28,62,.58) 68%,
      rgba(10,36,78,.14) 100%) !important;
  }
}

/* =========================================================================
 * HERO FINAL — remove legacy floating EcoComfort plaque.
 * Branding now lives directly on the furnace / mini-split in the hero asset.
 * ========================================================================= */
.eco-v111 .hero-image-mode .hero-photo::before{
  content:none !important;
  display:none !important;
  background:none !important;
}

/* =========================================================================
 * ATLAS · FINAL POLISH-02
 * Goal: calmer editorial intro, more dominant map, lighter city directory,
 * smaller selected-city card. No DOM/JS/data changes.
 * ========================================================================= */
@media (min-width:1221px){
  .eco-v111 .svc-atlas3{
    padding:62px 0 56px!important;
  }

  .eco-v111 .svc-atlas3>.wrap{
    width:min(1480px,calc(100% - 48px))!important;
    grid-template-columns:minmax(292px,.58fr) minmax(860px,1.92fr)!important;
    column-gap:28px!important;
  }

  .eco-v111 .svc-atlas3 .svc-top{
    padding:22px 0 0!important;
  }

  .eco-v111 .svc-atlas3 .svc-top>div{
    max-width:365px!important;
  }

  .eco-v111 .svc-atlas3 .svc-top .kicker{
    margin-bottom:16px!important;
  }

  .eco-v111 .svc-atlas3 .svc-top .h2{
    max-width:12.2ch!important;
    font-size:clamp(44px,3.55vw,54px)!important;
    line-height:1.015!important;
    letter-spacing:-.042em!important;
  }

  .eco-v111 .svc-atlas3 .svc-top .lead{
    margin-top:20px!important;
    max-width:36ch!important;
    font-size:15.5px!important;
    line-height:1.58!important;
  }

  .eco-v111 .svc-atlas3 .svc-note{
    margin-top:24px!important;
    max-width:38ch!important;
    padding-top:18px!important;
    font-size:12px!important;
    line-height:1.58!important;
  }

  .eco-v111 .svc-atlas3 .atlas3{
    grid-template-columns:minmax(0,1fr) 250px!important;
    grid-template-rows:700px!important;
    height:700px!important;
    min-height:700px!important;
    border-radius:24px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-stage{
    min-height:700px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-map{
    filter:brightness(1.055) saturate(1.04);
  }

  .eco-v111 .svc-atlas3 .atlas3-nav{
    padding:18px 14px 14px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-nav-head{
    margin-bottom:10px!important;
    font-size:9px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-filter{
    min-height:36px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
    font-size:12px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-group-head{
    margin-top:1px!important;
    font-size:8.2px!important;
    letter-spacing:.135em!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-row{
    padding:6.5px 8px!important;
    min-height:34px!important;
    border-radius:9px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-row .row-name{
    font-size:12px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-row .row-tier{
    font-size:7.5px!important;
    letter-spacing:.075em!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card{
    left:18px!important;
    top:18px!important;
    width:min(244px,calc(100% - 36px))!important;
    padding:15px 16px 14px!important;
    border-radius:14px!important;
    background:rgba(4,13,31,.84)!important;
    box-shadow:0 18px 46px rgba(0,3,16,.34)!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card h3{
    margin:7px 0 7px!important;
    font-size:23px!important;
    line-height:1.05!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card .ai-tier{
    font-size:8px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card .ai-mean{
    font-size:12px!important;
    line-height:1.45!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card .ai-svcs{
    margin-top:10px!important;
    margin-bottom:10px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card .ai-svcs li{
    font-size:11.5px!important;
    line-height:1.4!important;
    margin-bottom:4px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card .ai-note{
    font-size:10.5px!important;
    line-height:1.45!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-cta.btn.line{
    min-height:38px!important;
    padding:9px 12px!important;
    font-size:11px!important;
  }
}

@media (min-width:1025px) and (max-width:1220px){
  .eco-v111 .svc-atlas3>.wrap{
    grid-template-columns:minmax(286px,.62fr) minmax(690px,1.65fr)!important;
    column-gap:22px!important;
  }

  .eco-v111 .svc-atlas3 .svc-top .h2{
    font-size:44px!important;
    max-width:12ch!important;
  }

  .eco-v111 .svc-atlas3 .atlas3{
    grid-template-columns:minmax(0,1fr) 236px!important;
  }

  .eco-v111 .svc-atlas3 .atlas3-card{
    width:min(232px,calc(100% - 32px))!important;
    left:16px!important;
    top:16px!important;
  }
}


/* =========================================================================
 * WHY ECOCOMFORT · FINAL POLISH-01
 * Make the proof section feel intentional and premium without changing
 * content, claims, DOM, links or data.
 * ========================================================================= */

.eco-v111 .svc-evidence{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(54% 72% at 8% 10%,rgba(224,199,143,.09),transparent 64%),
    linear-gradient(180deg,#fbfaf6 0%,#f7f6f2 58%,#fbfaf7 100%)!important;
}

.eco-v111 .svc-evidence::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(199,169,106,.42) 30%,rgba(67,182,73,.32) 70%,transparent);
  pointer-events:none;
}

.eco-v111 .svc-evidence .wrap{
  position:relative;
  z-index:1;
}

@media (min-width:1025px){
  .eco-v111 .svc-evidence{
    padding-top:74px!important;
    padding-bottom:72px!important;
  }

  .eco-v111 .svc-evidence .svc-top{
    grid-template-columns:minmax(0,.94fr) minmax(420px,.86fr)!important;
    gap:72px!important;
    align-items:end!important;
    margin-bottom:40px!important;
  }

  .eco-v111 .svc-evidence .svc-top .h2{
    max-width:12.5ch!important;
    font-size:clamp(48px,4.1vw,60px)!important;
    line-height:1.01!important;
    letter-spacing:-.045em!important;
  }

  .eco-v111 .svc-evidence .svc-top .lead{
    max-width:52ch!important;
    font-size:16px!important;
    line-height:1.62!important;
    color:#66738b!important;
  }

  .eco-v111 .svc-evidence .ev2{
    grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr)!important;
    gap:44px!important;
    align-items:start!important;
  }

  .eco-v111 .ev2-panel{
    border-radius:22px!important;
    padding:28px 30px 26px!important;
    box-shadow:
      0 32px 76px rgba(8,14,34,.20),
      inset 0 1px 0 rgba(255,255,255,.05)!important;
  }

  .eco-v111 .ev2-reg-no{
    font-size:48px!important;
    letter-spacing:.015em!important;
  }

  .eco-v111 .ev2-visual .ev2-cap{
    margin-top:12px!important;
    padding:14px 16px!important;
    border-radius:12px!important;
    background:rgba(241,238,228,.86)!important;
    border-color:rgba(23,32,68,.07)!important;
    font-size:12.5px!important;
    line-height:1.55!important;
  }

  .eco-v111 .ev2-trust{
    counter-reset:eco-proof;
    padding:2px 0 0 8px!important;
  }

  .eco-v111 .ev2-trust-lbl{
    margin:0 0 12px!important;
    color:#a88635!important;
    font-size:10px!important;
    letter-spacing:.18em!important;
  }

  .eco-v111 .ev2-row{
    counter-increment:eco-proof;
    position:relative;
    padding:18px 14px 18px 52px!important;
    border-top:1px solid rgba(23,32,68,.10)!important;
    transition:background .18s ease,border-color .18s ease!important;
  }

  .eco-v111 .ev2-row:last-child{
    border-bottom:1px solid rgba(23,32,68,.10)!important;
  }

  .eco-v111 .ev2-row::before{
    content:"0" counter(eco-proof);
    position:absolute;
    left:2px;
    top:20px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.16em;
    color:#b39147;
  }

  .eco-v111 .ev2-row::after{
    content:"";
    position:absolute;
    left:31px;
    top:24px;
    width:8px;
    height:1px;
    background:linear-gradient(90deg,#c8a75a,rgba(200,167,90,.12));
  }

  .eco-v111 .ev2-row:hover{
    background:rgba(23,32,68,.025)!important;
    border-color:rgba(23,32,68,.14)!important;
  }

  .eco-v111 .ev2-row strong{
    display:block;
    margin-bottom:7px!important;
    font-size:16px!important;
    line-height:1.25!important;
    color:#142043!important;
  }

  .eco-v111 .ev2-row p{
    margin:0!important;
    max-width:48ch!important;
    font-size:13.5px!important;
    line-height:1.58!important;
    color:#68758d!important;
  }

  .eco-v111 .ev2-strip{
    margin-top:30px!important;
    padding-top:17px!important;
    gap:10px 20px!important;
    border-top:1px solid rgba(23,32,68,.09)!important;
  }

  .eco-v111 .ev2-strip span{
    font-size:9.5px!important;
    letter-spacing:.13em!important;
    color:#7d879a!important;
  }
}

@media (max-width:1024px){
  .eco-v111 .svc-evidence{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }

  .eco-v111 .svc-evidence .svc-top{
    margin-bottom:28px!important;
  }

  .eco-v111 .svc-evidence .ev2{
    gap:24px!important;
  }
}

@media (max-width:640px){
  .eco-v111 .svc-evidence{
    padding-top:46px!important;
    padding-bottom:46px!important;
  }

  .eco-v111 .svc-evidence .svc-top .h2{
    font-size:38px!important;
    line-height:1.04!important;
  }

  .eco-v111 .ev2-panel{
    padding:22px 20px!important;
    border-radius:18px!important;
  }

  .eco-v111 .ev2-reg-no{
    font-size:36px!important;
  }

  .eco-v111 .ev2-row{
    padding-left:42px!important;
  }
}


/* =========================================================================
 * DECISION STUDIO · FINAL POLISH-01
 * Premium planning chamber. CSS only — no questions, scoring, JS or data change.
 * ========================================================================= */

.eco-v111 .svc-studio-sec{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(54% 78% at 88% 16%,rgba(44,67,142,.18),transparent 67%),
    radial-gradient(38% 60% at 6% 92%,rgba(31,194,98,.055),transparent 72%),
    linear-gradient(135deg,#09122f 0%,#0d173d 46%,#101946 100%)!important;
}

.eco-v111 .svc-studio-sec::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:58px 58px;
  mask-image:linear-gradient(90deg,transparent 3%,#000 42%,#000 92%,transparent);
}

.eco-v111 .svc-studio-sec>.wrap{
  position:relative;
  z-index:1;
}

@media (min-width:1025px){
  .eco-v111 .svc-studio-sec{
    padding-top:70px!important;
    padding-bottom:72px!important;
  }

  .eco-v111 .svc-studio-sec .svc-top{
    grid-template-columns:minmax(0,.95fr) minmax(430px,.8fr)!important;
    gap:72px!important;
    align-items:end!important;
    margin-bottom:0!important;
  }

  .eco-v111 .svc-studio-sec .svc-top .h2{
    max-width:13ch!important;
    font-size:clamp(47px,3.85vw,58px)!important;
    line-height:1.02!important;
    letter-spacing:-.043em!important;
  }

  .eco-v111 .svc-studio-sec .svc-top .lead{
    max-width:50ch!important;
    font-size:16px!important;
    line-height:1.62!important;
    color:#aab6cf!important;
  }

  .eco-v111 .svc-studio-sec .eco-studio:not(:has(.studio-result)){
    position:relative!important;
    margin-top:32px!important;
    padding:28px 30px 26px!important;
    border:1px solid rgba(255,255,255,.105)!important;
    border-radius:20px!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.012))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.025),
      0 28px 70px rgba(2,5,18,.18)!important;
    overflow:hidden;
  }

  .eco-v111 .svc-studio-sec .eco-studio:not(:has(.studio-result))::before{
    content:"";
    position:absolute;
    left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg,var(--gold-2),var(--green) 48%,rgba(95,208,110,0) 86%);
    opacity:.92;
  }

  .eco-v111 .svc-studio-sec .studio-head{
    max-width:none!important;
    margin-bottom:24px!important;
  }

  .eco-v111 .svc-studio-sec .studio-steplbl{
    margin-bottom:12px!important;
    color:var(--gold-2)!important;
    font-size:10px!important;
    letter-spacing:.17em!important;
  }

  .eco-v111 .svc-studio-sec .studio-prog{
    height:2px!important;
    background:rgba(255,255,255,.105)!important;
  }

  .eco-v111 .svc-studio-sec .studio-body{
    max-width:none!important;
  }

  .eco-v111 .svc-studio-sec .studio-step{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:0 34px!important;
  }

  .eco-v111 .svc-studio-sec .studio-legend{
    grid-column:1 / -1!important;
    margin-bottom:17px!important;
    font-size:21px!important;
    letter-spacing:-.025em!important;
  }

  .eco-v111 .svc-studio-sec .studio-q{
    padding:17px 0 14px!important;
    border-top:1px solid rgba(255,255,255,.085)!important;
  }

  .eco-v111 .svc-studio-sec .studio-q:first-of-type{
    border-top:1px solid rgba(255,255,255,.085)!important;
  }

  .eco-v111 .svc-studio-sec .studio-qlabel{
    margin-bottom:11px!important;
    font-size:13px!important;
    color:#edf2fb!important;
  }

  .eco-v111 .svc-studio-sec .studio-opts{
    gap:8px!important;
  }

  .eco-v111 .svc-studio-sec .studio-opt{
    min-height:42px!important;
    padding:9px 13px!important;
    border-radius:8px!important;
    border-color:rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.028)!important;
    color:#d8e0ef!important;
    font-size:12.5px!important;
  }

  .eco-v111 .svc-studio-sec .studio-opt:hover{
    background:rgba(255,255,255,.065)!important;
    border-color:rgba(255,255,255,.31)!important;
  }

  .eco-v111 .svc-studio-sec .studio-opt.sel{
    background:var(--green)!important;
    border-color:var(--green)!important;
    color:#07250d!important;
    box-shadow:0 7px 24px rgba(52,204,85,.12)!important;
  }

  .eco-v111 .svc-studio-sec .studio-nav{
    margin-top:24px!important;
    padding-top:20px!important;
    border-top:1px solid rgba(255,255,255,.085)!important;
  }

  .eco-v111 .svc-studio-sec .studio-btn{
    min-height:44px!important;
    padding:10px 22px!important;
  }

  .eco-v111 .svc-studio-sec .studio-btn.primary{
    min-width:104px!important;
    box-shadow:0 12px 28px rgba(52,204,85,.12)!important;
  }

  .eco-v111 .svc-studio-sec .studio-btn.ghost{
    min-width:92px!important;
  }

  /* Result state remains the existing two-column planning profile,
     only tighten its relationship to the section. */
  .eco-v111 .svc-studio-sec .eco-studio:has(.studio-result){
    margin-top:32px!important;
  }

  .eco-v111 .svc-studio-sec .studio-result{
    border-radius:18px!important;
    border-color:rgba(255,255,255,.085)!important;
  }
}

@media (max-width:1024px){
  .eco-v111 .svc-studio-sec{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }

  .eco-v111 .svc-studio-sec .eco-studio:not(:has(.studio-result)){
    margin-top:26px!important;
    padding:24px 22px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.018)!important;
  }
}

@media (max-width:900px){
  .eco-v111 .svc-studio-sec .studio-step{
    display:block!important;
  }

  .eco-v111 .svc-studio-sec .studio-q:first-of-type{
    border-top:0!important;
  }
}

@media (max-width:640px){
  .eco-v111 .svc-studio-sec{
    padding-top:46px!important;
    padding-bottom:46px!important;
  }

  .eco-v111 .svc-studio-sec .svc-top .h2{
    font-size:38px!important;
    line-height:1.04!important;
  }

  .eco-v111 .svc-studio-sec .eco-studio:not(:has(.studio-result)){
    padding:20px 17px!important;
    border-radius:16px!important;
  }

  .eco-v111 .svc-studio-sec .studio-nav{
    gap:9px!important;
  }
}


/* =========================================================================
 * PRICING · FINAL POLISH-01
 * Editorial premium treatment. CSS only — pricing/content/links unchanged.
 * ========================================================================= */

.eco-v111 .svc-pricing{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(44% 70% at 6% 14%,rgba(216,190,132,.09),transparent 70%),
    linear-gradient(180deg,#fbfaf7 0%,#f8f7f3 54%,#fbfaf7 100%)!important;
}

.eco-v111 .svc-pricing::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(194,165,100,.42) 30%,rgba(67,182,73,.28) 70%,transparent);
  pointer-events:none;
}

.eco-v111 .svc-pricing>.wrap{
  position:relative;
  z-index:1;
}

@media (min-width:1025px){
  .eco-v111 .svc-pricing{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }

  .eco-v111 .svc-pricing .svc-top{
    grid-template-columns:minmax(0,.96fr) minmax(430px,.78fr)!important;
    gap:72px!important;
    align-items:end!important;
    margin-bottom:30px!important;
  }

  .eco-v111 .svc-pricing .svc-top .h2{
    max-width:14ch!important;
    font-size:clamp(48px,4vw,60px)!important;
    line-height:1.02!important;
    letter-spacing:-.045em!important;
  }

  .eco-v111 .svc-pricing .svc-top .lead{
    max-width:53ch!important;
    font-size:16px!important;
    line-height:1.63!important;
    color:#69768d!important;
  }

  .eco-v111 .svc-pricing .svc-price-band{
    position:relative;
    grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr)!important;
    gap:46px!important;
    align-items:center!important;
    padding:26px 30px 28px!important;
    border:1px solid rgba(23,32,68,.085)!important;
    border-radius:18px!important;
    background:
      linear-gradient(135deg,rgba(255,255,255,.72),rgba(248,246,239,.80))!important;
    box-shadow:
      0 22px 52px rgba(20,28,61,.075),
      inset 0 1px 0 rgba(255,255,255,.76)!important;
    overflow:hidden;
  }

  .eco-v111 .svc-pricing .svc-price-band::before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;width:3px;
    background:linear-gradient(180deg,var(--gold-2,#E0C78F),var(--green,#43B649));
  }

  .eco-v111 .svc-pricing .price-figure{
    padding-right:28px!important;
    border-right:1px solid rgba(23,32,68,.09)!important;
  }

  .eco-v111 .svc-pricing .price-figure small{
    color:#9b8250!important;
    font-size:10px!important;
    letter-spacing:.17em!important;
  }

  .eco-v111 .svc-pricing .price-figure b{
    margin-top:7px!important;
    font-size:clamp(66px,6.2vw,86px)!important;
    line-height:.88!important;
    letter-spacing:-.06em!important;
    color:#121c42!important;
  }

  .eco-v111 .svc-pricing .price-factors.lean{
    max-width:780px!important;
  }

  .eco-v111 .svc-pricing .price-factors.lean>span{
    margin-bottom:9px!important;
    font-size:12px!important;
    font-weight:700!important;
    color:#6b7890!important;
  }

  .eco-v111 .svc-pricing .price-factors.lean p{
    margin:0!important;
    max-width:68ch!important;
    font-size:14.5px!important;
    line-height:1.62!important;
    color:#263352!important;
  }

  .eco-v111 .svc-pricing .scope-movers{
    grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr)!important;
    gap:46px!important;
    padding-top:38px!important;
  }

  .eco-v111 .svc-pricing .scope-movers .sm-head{
    padding-right:24px!important;
  }

  .eco-v111 .svc-pricing .scope-movers .sm-head h3{
    margin:10px 0 11px!important;
    max-width:15ch!important;
    font-size:27px!important;
    line-height:1.12!important;
    letter-spacing:-.035em!important;
  }

  .eco-v111 .svc-pricing .scope-movers .sm-head p{
    max-width:34ch!important;
    font-size:13.5px!important;
    line-height:1.65!important;
  }

  .eco-v111 .svc-pricing .sm-list{
    counter-reset:eco-price-mover;
  }

  .eco-v111 .svc-pricing .sm-list article{
    counter-increment:eco-price-mover;
    position:relative;
    grid-template-columns:42px 1fr!important;
    gap:14px!important;
    padding:15px 0 15px!important;
    border-top:1px solid rgba(23,32,68,.085)!important;
  }

  .eco-v111 .svc-pricing .sm-list article:first-child{
    border-top:0!important;
    padding-top:0!important;
  }

  .eco-v111 .svc-pricing .sm-idx{
    color:#b49042!important;
    font-size:10.5px!important;
    letter-spacing:.16em!important;
  }

  .eco-v111 .svc-pricing .sm-list strong{
    margin-bottom:4px!important;
    font-size:15.5px!important;
    color:#162143!important;
  }

  .eco-v111 .svc-pricing .sm-list p{
    max-width:70ch!important;
    font-size:13.5px!important;
    line-height:1.58!important;
    color:#68758c!important;
  }

  .eco-v111 .svc-pricing .pricing-foot{
    margin-top:32px!important;
    padding-top:22px!important;
    border-top:1px solid rgba(23,32,68,.08)!important;
  }

  .eco-v111 .svc-pricing .price-note{
    max-width:72ch!important;
    font-size:12.5px!important;
    line-height:1.58!important;
    color:#7a8598!important;
  }
}

@media (max-width:1024px){
  .eco-v111 .svc-pricing{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }

  .eco-v111 .svc-pricing .svc-price-band{
    border:1px solid rgba(23,32,68,.08)!important;
    border-radius:16px!important;
    padding:24px!important;
    background:rgba(255,255,255,.56)!important;
  }
}

@media (max-width:720px){
  .eco-v111 .svc-pricing{
    padding-top:46px!important;
    padding-bottom:46px!important;
  }

  .eco-v111 .svc-pricing .svc-top .h2{
    font-size:38px!important;
    line-height:1.04!important;
  }

  .eco-v111 .svc-pricing .svc-price-band{
    grid-template-columns:1fr!important;
    gap:20px!important;
  }

  .eco-v111 .svc-pricing .price-figure{
    padding-right:0!important;
    padding-bottom:18px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(23,32,68,.08)!important;
  }

  .eco-v111 .svc-pricing .scope-movers{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
}


/* =========================================================================
 * REPAIR / REPLACE · FINAL POLISH-01
 * Editorial diagnostic tool. CSS only — form logic, result logic and content unchanged.
 * ========================================================================= */

.eco-v111 .svc-decide{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(42% 72% at 3% 8%,rgba(222,195,135,.08),transparent 70%),
    linear-gradient(180deg,#fbfaf7 0%,#f7f5ef 100%)!important;
}

.eco-v111 .svc-decide::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(196,167,101,.42) 34%,rgba(67,182,73,.24) 72%,transparent);
  pointer-events:none;
}

.eco-v111 .svc-decide>.wrap{
  position:relative;
  z-index:1;
}

@media (min-width:1025px){
  .eco-v111 .svc-decide{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }

  .eco-v111 .svc-decide .svc-top{
    grid-template-columns:minmax(0,.96fr) minmax(430px,.82fr)!important;
    gap:72px!important;
    align-items:end!important;
  }

  .eco-v111 .svc-decide .svc-top .h2{
    max-width:13ch!important;
    font-size:clamp(48px,4vw,60px)!important;
    line-height:1.02!important;
    letter-spacing:-.045em!important;
  }

  .eco-v111 .svc-decide .svc-top .lead{
    max-width:51ch!important;
    font-size:16px!important;
    line-height:1.62!important;
    color:#69768d!important;
  }

  .eco-v111 .svc-decide .decide-shell{
    grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr)!important;
    gap:62px!important;
    margin-top:34px!important;
    padding-top:34px!important;
    border-top:1px solid rgba(23,32,68,.09)!important;
  }

  .eco-v111 .svc-decide .tool-card{
    position:relative!important;
  }

  .eco-v111 .svc-decide .tool-card>h3{
    margin:10px 0 18px!important;
    font-size:25px!important;
    line-height:1.12!important;
    letter-spacing:-.035em!important;
    color:#162143!important;
  }

  .eco-v111 .svc-decide .form-grid{
    gap:14px 16px!important;
  }

  .eco-v111 .svc-decide .field{
    gap:8px!important;
  }

  .eco-v111 .svc-decide .field label{
    font-size:10.5px!important;
    letter-spacing:.14em!important;
    color:#8a97ad!important;
  }

  .eco-v111 .svc-decide .form-grid select{
    min-height:52px!important;
    padding:0 16px!important;
    border:1px solid rgba(23,32,68,.12)!important;
    border-radius:8px!important;
    color:#1d294b!important;
    box-shadow:0 5px 18px rgba(18,27,59,.035)!important;
    transition:border-color .18s ease,box-shadow .18s ease!important;
  }

  .eco-v111 .svc-decide .form-grid select:focus{
    outline:none!important;
    border-color:rgba(67,182,73,.62)!important;
    box-shadow:0 0 0 3px rgba(67,182,73,.10)!important;
  }

  .eco-v111 .svc-decide .field-note{
    margin-top:0!important;
    font-size:11.5px!important;
    line-height:1.55!important;
    color:#8c97ab!important;
  }

  .eco-v111 .svc-decide .range-result{
    position:relative;
    overflow:hidden;
    margin-top:24px!important;
    padding:25px 26px 24px!important;
    border-radius:16px!important;
    background:
      linear-gradient(135deg,#0b1537 0%,#121d4c 100%)!important;
    border:1px solid rgba(255,255,255,.075)!important;
    box-shadow:0 24px 55px rgba(11,18,48,.16)!important;
  }

  .eco-v111 .svc-decide .range-result::before{
    content:"";
    position:absolute;
    left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg,var(--gold-2,#E0C78F),var(--green,#43B649) 52%,transparent 90%);
  }

  .eco-v111 .svc-decide .range-result .eyebrow,
  .eco-v111 .svc-decide .range-result .range-label{
    color:var(--gold-2,#E0C78F)!important;
    font-size:10px!important;
    letter-spacing:.16em!important;
  }

  .eco-v111 .svc-decide .range-result h3,
  .eco-v111 .svc-decide .range-result h4{
    letter-spacing:-.035em!important;
  }

  .eco-v111 .svc-decide .decide-signals{
    padding-top:0!important;
  }

  .eco-v111 .svc-decide .decide-signals h3{
    margin:10px 0 8px!important;
    font-size:24px!important;
  }

  .eco-v111 .svc-decide .signal-list{
    margin:16px 0 0!important;
  }

  .eco-v111 .svc-decide .signal-list article{
    grid-template-columns:38px 1fr!important;
    gap:14px!important;
    padding:20px 0!important;
    border-top:1px solid rgba(23,32,68,.09)!important;
  }

  .eco-v111 .svc-decide .signal-list article:first-child{
    border-top:0!important;
    padding-top:8px!important;
  }

  .eco-v111 .svc-decide .signal-list .s-idx{
    padding-top:4px!important;
    color:#b49042!important;
    font-size:10.5px!important;
  }

  .eco-v111 .svc-decide .signal-list strong{
    font-size:16.5px!important;
    line-height:1.25!important;
    color:#162143!important;
  }

  .eco-v111 .svc-decide .signal-list p{
    margin-top:6px!important;
    max-width:48ch!important;
    font-size:13.5px!important;
    line-height:1.58!important;
    color:#69768d!important;
  }
}

@media (max-width:1024px){
  .eco-v111 .svc-decide{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }

  .eco-v111 .svc-decide .decide-shell{
    gap:34px!important;
  }

  .eco-v111 .svc-decide .range-result{
    border-radius:15px!important;
  }
}

@media (max-width:720px){
  .eco-v111 .svc-decide{
    padding-top:46px!important;
    padding-bottom:46px!important;
  }

  .eco-v111 .svc-decide .svc-top .h2{
    font-size:38px!important;
    line-height:1.04!important;
  }

  .eco-v111 .svc-decide .decide-shell{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }

  .eco-v111 .svc-decide .range-result{
    padding:22px 18px!important;
  }
}


/* =========================================================================
 * FURNACE MASTER · FINAL CLOSEOUT-01
 * FAQ + Final CTA + Footer + sticky/anchor/responsive QA.
 * No service data, prices, claims, map data, studio scoring or page logic.
 * ========================================================================= */

/* ---- clean anchor landings beneath sticky site header ---- */
.eco-v111 .svc-system,
.eco-v111 .svc-steps,
.eco-v111 .svc-studio-sec,
.eco-v111 .svc-pricing,
.eco-v111 .svc-atlas3,
.eco-v111 .svc-evidence,
.eco-v111 .svc-faq,
.eco-v111 .svc-estimate{
  scroll-margin-top:112px!important;
}

/* ---- hero: allow premium lead copy to wrap naturally ---- */
.eco-v111 .svc-hero .hero-lead{
  max-width:47ch!important;
  text-wrap:pretty;
}

/* =========================================================================
 * FAQ · premium editorial accordion
 * ========================================================================= */
.eco-v111 .svc-faq{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(42% 72% at 4% 12%,rgba(222,195,135,.07),transparent 70%),
    linear-gradient(180deg,#fbfaf7 0%,#f7f6f2 100%)!important;
}
.eco-v111 .svc-faq::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(196,167,101,.40) 33%,rgba(67,182,73,.24) 72%,transparent);
  pointer-events:none;
}
.eco-v111 .svc-faq>.wrap{position:relative;z-index:1}

@media (min-width:1025px){
  .eco-v111 .svc-faq{
    padding-top:72px!important;
    padding-bottom:76px!important;
  }
  .eco-v111 .svc-faq .faq-grid{
    grid-template-columns:minmax(300px,.62fr) minmax(0,1.38fr)!important;
    gap:78px!important;
    align-items:start!important;
  }
  .eco-v111 .svc-faq .faq-intro{
    position:sticky;
    top:132px;
    align-self:start;
  }
  .eco-v111 .svc-faq .faq-intro .h2{
    max-width:11.5ch!important;
    margin-top:12px!important;
    font-size:clamp(46px,3.7vw,56px)!important;
    line-height:1.02!important;
    letter-spacing:-.045em!important;
  }
  .eco-v111 .svc-faq .faq-intro .lead{
    max-width:37ch!important;
    margin-top:14px!important;
    font-size:14.5px!important;
    line-height:1.62!important;
    color:#6d798e!important;
  }
  .eco-v111 .svc-faq .faq-list{
    border-bottom:1px solid rgba(23,32,68,.10);
  }
  .eco-v111 .svc-faq .faq-list details{
    padding:0!important;
    border-top:1px solid rgba(23,32,68,.10)!important;
  }
  .eco-v111 .svc-faq .faq-list summary{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:22px!important;
    align-items:center!important;
    min-height:74px!important;
    padding:18px 0!important;
    font-size:17px!important;
    line-height:1.32!important;
    font-weight:750!important;
    color:#162143!important;
  }
  .eco-v111 .svc-faq .faq-list summary::after{
    content:"+";
    display:grid;
    place-items:center;
    justify-self:end;
    width:36px;height:36px;
    border-radius:50%;
    border:1px solid rgba(23,32,68,.14);
    background:rgba(255,255,255,.46);
    color:#66738b;
    font-size:22px;
    font-weight:400;
    line-height:1;
    transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
  }
  .eco-v111 .svc-faq .faq-list details[open] summary::after{
    content:"−";
    background:#121c42;
    border-color:#121c42;
    color:#fff;
  }
  .eco-v111 .svc-faq .faq-list summary:hover::after{
    border-color:rgba(67,182,73,.52);
    color:var(--green);
  }
  .eco-v111 .svc-faq .faq-list .answer{
    max-width:67ch!important;
    padding:0 64px 24px 0!important;
    font-size:14px!important;
    line-height:1.72!important;
    color:#66738b!important;
  }
}

/* =========================================================================
 * FINAL CTA · cinematic close, using the approved branded hero asset
 * ========================================================================= */
.eco-v111 .final-cta.svc-estimate{
  position:relative;
  overflow:hidden;
  padding-top:96px!important;
  padding-bottom:88px!important;
  background:
    linear-gradient(90deg,rgba(5,16,38,.99) 0%,rgba(7,20,46,.97) 43%,rgba(8,23,48,.89) 64%,rgba(5,14,32,.83) 100%),
    url("../img/v111/hero-furnace.webp") right center / cover no-repeat!important;
}
.eco-v111 .final-cta.svc-estimate::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(45% 85% at 8% 0%,rgba(45,191,91,.075),transparent 68%),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 26%,rgba(0,0,0,.16));
}
.eco-v111 .final-cta.svc-estimate>.wrap{position:relative;z-index:1}

@media (min-width:1025px){
  .eco-v111 .svc-estimate .cta-box{
    grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr)!important;
    gap:64px!important;
    padding-bottom:40px!important;
    border-bottom-color:rgba(255,255,255,.13)!important;
  }
  .eco-v111 .svc-estimate .cta-lede .kicker{
    margin-bottom:15px!important;
  }
  .eco-v111 .svc-estimate .cta-box h2{
    max-width:10.5ch!important;
    font-size:clamp(52px,4.45vw,66px)!important;
    line-height:.99!important;
    letter-spacing:-.048em!important;
    color:#fff!important;
  }
  .eco-v111 .svc-estimate .cta-lede>p{
    max-width:45ch!important;
    margin-top:18px!important;
    font-size:15.5px!important;
    line-height:1.65!important;
    color:#b8c3d8!important;
  }
  .eco-v111 .svc-estimate .v106-cta-proof{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px 20px!important;
    margin-top:25px!important;
    padding-top:18px!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
  }
  .eco-v111 .svc-estimate .v106-cta-proof span{
    font-size:9.5px!important;
    letter-spacing:.13em!important;
    color:#8f9bb2!important;
  }
  .eco-v111 .svc-estimate .cta-panel{
    padding:31px 32px 29px!important;
    border-radius:20px!important;
    background:linear-gradient(150deg,rgba(19,32,72,.90),rgba(9,18,43,.82))!important;
    border-color:rgba(255,255,255,.13)!important;
    backdrop-filter:blur(7px);
    box-shadow:0 34px 84px rgba(0,5,20,.38),inset 0 1px 0 rgba(255,255,255,.06)!important;
  }
  .eco-v111 .svc-estimate .cta-phone{
    font-size:42px!important;
    letter-spacing:-.035em!important;
  }
  .eco-v111 .svc-estimate .cta-next{
    margin-top:34px!important;
    padding-top:0!important;
  }
  .eco-v111 .svc-estimate .cn-label{
    margin-bottom:20px!important;
  }
  .eco-v111 .svc-estimate .cn-steps{
    gap:42px!important;
  }
  .eco-v111 .svc-estimate .cn-steps li{
    grid-template-columns:38px 1fr!important;
    gap:14px!important;
  }
  .eco-v111 .svc-estimate .cn-steps strong{
    font-size:15.5px!important;
  }
  .eco-v111 .svc-estimate .cn-steps p{
    max-width:37ch!important;
    color:#aab6cd!important;
  }
  .eco-v111 .svc-estimate .cta-close{
    margin-top:36px!important;
    padding-top:22px!important;
    max-width:64ch!important;
    color:#8996ae!important;
  }
}

/* =========================================================================
 * FOOTER · stronger brand close, still using existing safe link structure
 * ========================================================================= */
.eco-v111 .footer{
  position:relative;
  overflow:hidden;
  padding-top:68px!important;
  padding-bottom:28px!important;
  background:
    radial-gradient(48% 90% at 6% 8%,rgba(34,185,82,.045),transparent 72%),
    linear-gradient(180deg,#071126 0%,#050d1f 100%)!important;
  border-top:1px solid rgba(224,199,143,.18)!important;
}
.eco-v111 .footer::after{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(224,199,143,.44),rgba(67,182,73,.30),transparent);
  pointer-events:none;
}
.eco-v111 .footer-grid,
.eco-v111 .footer-bottom{position:relative;z-index:1}

@media (min-width:1181px){
  .eco-v111 .footer-grid{
    grid-template-columns:1.55fr .95fr .95fr .92fr!important;
    gap:56px!important;
    padding-bottom:46px!important;
  }
}
.eco-v111 .footer-brand img{
  width:220px!important;
  height:auto!important;
  margin-bottom:18px!important;
}
.eco-v111 .footer-brand>p{
  max-width:39ch!important;
  font-size:13.5px!important;
  line-height:1.72!important;
  color:#9eabc2!important;
}
.eco-v111 .footer-nap{
  margin-top:20px!important;
  font-size:13px!important;
  line-height:1.75!important;
  color:#b3bdd0!important;
}
.eco-v111 .footer-nap a{
  color:#dce4f1!important;
  text-decoration:none!important;
}
.eco-v111 .footer-col b{
  display:block!important;
  margin-bottom:18px!important;
  color:var(--gold-2,#E0C78F)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.17em!important;
  text-transform:uppercase!important;
}
.eco-v111 .footer-col a{
  display:block!important;
  margin:0 0 12px!important;
  color:#c4cddd!important;
  font-size:13.5px!important;
  line-height:1.45!important;
  text-decoration:none!important;
  transition:color .16s ease,transform .16s ease!important;
}
.eco-v111 .footer-col a:hover{
  color:#69d977!important;
  transform:translateX(2px);
}
.eco-v111 .footer-bottom{
  padding-top:23px!important;
  border-top:1px solid rgba(255,255,255,.085)!important;
  color:#738099!important;
  font-size:11px!important;
  letter-spacing:.025em!important;
}

/* ---- sticky bar: quieter, safe-area aware ---- */
.eco-v111 .svc-sticky{
  background:rgba(7,15,35,.92)!important;
  backdrop-filter:blur(12px)!important;
  border-top-color:rgba(224,199,143,.19)!important;
}
.eco-v111 .svc-sticky-in{
  min-height:64px;
  padding-top:9px!important;
  padding-bottom:calc(9px + env(safe-area-inset-bottom))!important;
}
.eco-v111 .svc-sticky .btn{
  min-height:42px!important;
}

/* =========================================================================
 * RESPONSIVE CLOSEOUT
 * ========================================================================= */
@media (max-width:1024px){
  .eco-v111 .svc-faq{
    padding-top:58px!important;
    padding-bottom:62px!important;
  }
  .eco-v111 .svc-faq .faq-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .eco-v111 .svc-faq .faq-intro{
    position:static!important;
  }
  .eco-v111 .final-cta.svc-estimate{
    padding-top:70px!important;
    padding-bottom:68px!important;
    background:
      linear-gradient(90deg,rgba(5,16,38,.985),rgba(7,20,46,.94)),
      url("../img/v111/hero-furnace.webp") 72% center / cover no-repeat!important;
  }
  .eco-v111 .footer-grid{
    grid-template-columns:1.35fr 1fr 1fr!important;
    gap:36px!important;
  }
  .eco-v111 .footer-brand{
    grid-column:1 / -1;
    max-width:620px;
  }
}

@media (max-width:720px){
  .eco-v111 .svc-system,
  .eco-v111 .svc-steps,
  .eco-v111 .svc-studio-sec,
  .eco-v111 .svc-pricing,
  .eco-v111 .svc-atlas3,
  .eco-v111 .svc-evidence,
  .eco-v111 .svc-faq,
  .eco-v111 .svc-estimate{
    scroll-margin-top:92px!important;
  }
  .eco-v111 .svc-faq{
    padding-top:46px!important;
    padding-bottom:50px!important;
  }
  .eco-v111 .svc-faq .faq-intro .h2{
    font-size:38px!important;
    line-height:1.04!important;
  }
  .eco-v111 .svc-faq .faq-list summary{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 34px!important;
    gap:14px!important;
    padding:17px 0!important;
    font-size:15.5px!important;
  }
  .eco-v111 .svc-faq .faq-list summary::after{
    content:"+";
    display:grid;
    place-items:center;
    width:30px;height:30px;
    border-radius:50%;
    border:1px solid rgba(23,32,68,.14);
  }
  .eco-v111 .svc-faq .faq-list details[open] summary::after{
    content:"−";
    background:#121c42;
    color:#fff;
  }
  .eco-v111 .svc-faq .faq-list .answer{
    padding:0 42px 20px 0!important;
  }
  .eco-v111 .final-cta.svc-estimate{
    padding-top:56px!important;
    padding-bottom:54px!important;
    background:linear-gradient(180deg,#07152d,#091631)!important;
  }
  .eco-v111 .svc-estimate .cta-box h2{
    font-size:40px!important;
  }
  .eco-v111 .svc-estimate .cta-panel{
    padding:23px 19px!important;
  }
  .eco-v111 .svc-estimate .cta-phone{
    font-size:31px!important;
  }
  .eco-v111 .svc-estimate .cta-panel-meta{
    grid-template-columns:1fr!important;
  }
  .eco-v111 .footer{
    padding-top:52px!important;
    padding-bottom:92px!important;
  }
  .eco-v111 .footer-grid{
    grid-template-columns:1fr 1fr!important;
    gap:34px 24px!important;
  }
  .eco-v111 .footer-brand{
    grid-column:1 / -1!important;
  }
  .eco-v111 .footer-bottom{
    display:grid!important;
    gap:7px!important;
  }
  .eco-v111 .svc-sticky .ss-info{
    display:none!important;
  }
  .eco-v111 .svc-sticky-in{
    justify-content:stretch!important;
  }
  .eco-v111 .svc-sticky .ss-actions{
    width:100%!important;
  }
  .eco-v111 .svc-sticky .btn.primary{
    width:100%!important;
  }
}

@media (max-width:480px){
  .eco-v111 .footer-grid{
    grid-template-columns:1fr!important;
  }
  .eco-v111 .footer-brand{
    grid-column:auto!important;
  }
}


/* =========================================================================
 * SYSTEM THINKING · AIRFLOW MOTION-01
 * Subtle warm/cool air movement over the approved Golden Master house art.
 * ========================================================================= */
.eco-v111 .gm-thinking__visual{
  position:relative!important;
  overflow:hidden!important;
}
.eco-v111 .gm-thinking__visual>img{
  position:relative;
  z-index:1;
  display:block;
}
.eco-v111 .gm-air-motion{
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
  opacity:.88;
}
.eco-v111 .gm-air-stream{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  animation-play-state:paused!important;
}
.eco-v111 .gm-air-stream--warm{
  stroke:#f2b46a;
  stroke-width:2.05;
  stroke-dasharray:.9 8.1;
  filter:url(#gmAirGlowWarm);
  opacity:.78;
  animation:gmAirWarmFlow 5.4s linear infinite;
}
.eco-v111 .gm-air-stream--warm-high{
  animation-duration:5.9s;
  animation-delay:-1.7s;
  opacity:.68;
}
.eco-v111 .gm-air-stream--cool{
  stroke:#67c8ff;
  stroke-width:2.15;
  stroke-dasharray:.8 7.8;
  filter:url(#gmAirGlowCool);
  opacity:.80;
  animation:gmAirCoolFlow 5.8s linear infinite;
}
.eco-v111 .gm-air-stream--cool-low{
  animation-duration:6.25s;
  animation-delay:-2.1s;
  opacity:.70;
}
.eco-v111 .gm-air-port{
  vector-effect:non-scaling-stroke;
  transform-box:fill-box;
  transform-origin:center;
  animation:gmAirPortPulse 3.8s ease-in-out infinite;
  animation-play-state:paused!important;
}
.eco-v111 .gm-air-port--warm{
  fill:#ffd08b;
  stroke:rgba(255,205,139,.36);
  stroke-width:5;
  filter:url(#gmAirGlowWarm);
}
.eco-v111 .gm-air-port--cool{
  fill:#7cd4ff;
  stroke:rgba(124,212,255,.34);
  stroke-width:5;
  filter:url(#gmAirGlowCool);
}
.eco-v111 .gm-air-port--delay{
  animation-delay:-1.9s;
}
.eco-v111 .gm-thinking.is-air-active .gm-air-stream,
.eco-v111 .gm-thinking.is-air-active .gm-air-port{
  animation-play-state:running!important;
}
@keyframes gmAirWarmFlow{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-18}
}
@keyframes gmAirCoolFlow{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:18}
}
@keyframes gmAirPortPulse{
  0%,100%{opacity:.34;transform:scale(.82)}
  45%{opacity:.92;transform:scale(1.12)}
  68%{opacity:.58;transform:scale(.96)}
}
@media (max-width:767px){
  .eco-v111 .gm-air-motion{display:none!important}
}
@media (prefers-reduced-motion:reduce){
  .eco-v111 .gm-air-stream,
  .eco-v111 .gm-air-port{
    animation:none!important;
  }
  .eco-v111 .gm-air-motion{opacity:.36}
}

/* =========================================================================
 * SYSTEM MOTION SYNC-02
 * Stronger airflow + synchronized System Thinking pulses + live Techboard.
 * ========================================================================= */

/* ---------- System Thinking: stronger visible airflow ---------- */
.eco-v111 .gm-air-motion{
  opacity:1!important;
}

.eco-v111 .gm-air-stream--warm{
  stroke-width:2.9!important;
  stroke-dasharray:1.45 5.7!important;
  opacity:.96!important;
  animation-duration:3.9s!important;
  filter:url(#gmAirGlowWarm) drop-shadow(0 0 4px rgba(242,180,106,.62))!important;
}

.eco-v111 .gm-air-stream--warm-high{
  animation-duration:4.35s!important;
  animation-delay:-1.25s!important;
  opacity:.88!important;
}

.eco-v111 .gm-air-stream--cool{
  stroke-width:3.05!important;
  stroke-dasharray:1.35 5.45!important;
  opacity:.98!important;
  animation-duration:4.05s!important;
  filter:url(#gmAirGlowCool) drop-shadow(0 0 4.5px rgba(103,200,255,.68))!important;
}

.eco-v111 .gm-air-stream--cool-low{
  animation-duration:4.5s!important;
  animation-delay:-1.55s!important;
  opacity:.90!important;
}

.eco-v111 .gm-air-port{
  animation-duration:2.7s!important;
}

.eco-v111 .gm-air-port--warm{
  stroke-width:7!important;
  filter:url(#gmAirGlowWarm) drop-shadow(0 0 5px rgba(255,208,139,.72))!important;
}

.eco-v111 .gm-air-port--cool{
  stroke-width:7!important;
  filter:url(#gmAirGlowCool) drop-shadow(0 0 5px rgba(124,212,255,.76))!important;
}

@keyframes gmAirWarmFlow{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-26}
}

@keyframes gmAirCoolFlow{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:26}
}

@keyframes gmAirPortPulse{
  0%,100%{opacity:.42;transform:scale(.78)}
  42%{opacity:1;transform:scale(1.22)}
  70%{opacity:.66;transform:scale(.98)}
}

/* ---------- System Thinking: synchronized right-side pulse ---------- */
.eco-v111 .gm-system-item{
  position:relative;
  border-radius:12px;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}

.eco-v111 .gm-thinking.is-air-active .gm-system-item{
  animation:gmSystemItemPulse 10s ease-in-out infinite;
}

.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(1){animation-delay:0s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(2){animation-delay:1.7s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(3){animation-delay:3.4s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(4){animation-delay:5.1s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(5){animation-delay:6.8s}

.eco-v111 .gm-thinking.is-air-active .gm-system-item .gm-system-icon{
  animation:gmSystemIconPulse 10s ease-in-out infinite;
}

.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(1) .gm-system-icon{animation-delay:0s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(2) .gm-system-icon{animation-delay:1.7s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(3) .gm-system-icon{animation-delay:3.4s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(4) .gm-system-icon{animation-delay:5.1s}
.eco-v111 .gm-thinking.is-air-active .gm-system-item:nth-child(5) .gm-system-icon{animation-delay:6.8s}

@keyframes gmSystemItemPulse{
  0%,12%,100%{
    background:transparent;
    transform:translateX(0);
  }
  4%,8%{
    background:linear-gradient(90deg,rgba(86,239,124,.065),rgba(86,239,124,0));
    transform:translateX(2px);
  }
}

@keyframes gmSystemIconPulse{
  0%,12%,100%{
    box-shadow:none;
    border-color:rgba(61,198,255,.72);
  }
  4%,8%{
    box-shadow:0 0 0 5px rgba(86,239,124,.07),0 0 22px rgba(86,239,124,.18);
    border-color:#56ef7c;
  }
}

/* ---------- System Thinking benefits: soft sequential glow ---------- */
.eco-v111 .gm-thinking.is-air-active .gm-benefits>div{
  animation:gmBenefitGlow 12.5s ease-in-out infinite;
}

.eco-v111 .gm-thinking.is-air-active .gm-benefits>div:nth-child(1){animation-delay:0s}
.eco-v111 .gm-thinking.is-air-active .gm-benefits>div:nth-child(2){animation-delay:2.2s}
.eco-v111 .gm-thinking.is-air-active .gm-benefits>div:nth-child(3){animation-delay:4.4s}
.eco-v111 .gm-thinking.is-air-active .gm-benefits>div:nth-child(4){animation-delay:6.6s}
.eco-v111 .gm-thinking.is-air-active .gm-benefits>div:nth-child(5){animation-delay:8.8s}

@keyframes gmBenefitGlow{
  0%,14%,100%{background:transparent}
  5%,9%{background:linear-gradient(180deg,rgba(86,239,124,.045),rgba(86,239,124,0))}
}

/* ---------- System Steps Techboard: make it actually feel LIVE ---------- */
.eco-v111 .stepx.is-tech-live .tb-flow path{
  animation:tbFlowTravel 3.8s linear infinite;
}

.eco-v111 .stepx.is-tech-live .tb-flow.warm path{
  animation-direction:normal;
  filter:drop-shadow(0 0 4px rgba(247,169,79,.34));
}

.eco-v111 .stepx.is-tech-live .tb-flow.cool path{
  animation-direction:reverse;
  filter:drop-shadow(0 0 4px rgba(118,167,255,.34));
}

.eco-v111 .stepx.is-tech-live .tb-flow circle{
  animation:tbParticlePulse 2.6s ease-in-out infinite;
}

.eco-v111 .stepx.is-tech-live .tb-flow.cool circle{
  animation-delay:-1.2s;
}

.eco-v111 .stepx.is-tech-live .tb-led,
.eco-v111 .stepx.is-tech-live .tb-core circle{
  animation:tbLedPulse 2.2s ease-in-out infinite;
}

.eco-v111 .stepx.is-tech-live .tb-core{
  animation:tbCoreGlow 4.6s ease-in-out infinite;
}

.eco-v111 .stepx.is-tech-live .stepx-techboard .tb-stage::after{
  content:"";
  position:absolute;
  z-index:3;
  left:6%;
  right:6%;
  top:12%;
  height:1px;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,transparent,rgba(86,239,124,.38),rgba(118,167,255,.34),transparent);
  box-shadow:0 0 14px rgba(86,239,124,.14);
  animation:tbScan 6.8s ease-in-out infinite;
}

.eco-v111 .stepx.is-tech-live .tb-foot i{
  background:linear-gradient(90deg,rgba(151,183,210,.08),rgba(86,239,124,.55),rgba(151,183,210,.08))!important;
  background-size:220% 100%!important;
  animation:tbConnector 3.4s linear infinite;
}

.eco-v111 .stepx.is-tech-live .tb-step .tb-node{
  transition:filter .25s ease,fill .25s ease,stroke .25s ease;
}

.eco-v111 .stepx.is-tech-live[data-active="0"] .tb-step.s0 .tb-node,
.eco-v111 .stepx.is-tech-live[data-active="1"] .tb-step.s1 .tb-node,
.eco-v111 .stepx.is-tech-live[data-active="2"] .tb-step.s2 .tb-node,
.eco-v111 .stepx.is-tech-live[data-active="3"] .tb-step.s3 .tb-node,
.eco-v111 .stepx.is-tech-live[data-active="4"] .tb-step.s4 .tb-node{
  animation:tbActiveNode 2.4s ease-in-out infinite;
}

@keyframes tbFlowTravel{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-36}
}

@keyframes tbParticlePulse{
  0%,100%{opacity:.38;transform:scale(.82)}
  50%{opacity:1;transform:scale(1.35)}
}

@keyframes tbLedPulse{
  0%,100%{opacity:.48;filter:drop-shadow(0 0 3px rgba(86,239,124,.28))}
  50%{opacity:1;filter:drop-shadow(0 0 9px rgba(86,239,124,.78))}
}

@keyframes tbCoreGlow{
  0%,100%{filter:none}
  50%{filter:drop-shadow(0 0 9px rgba(86,239,124,.12))}
}

@keyframes tbActiveNode{
  0%,100%{filter:drop-shadow(0 0 6px rgba(86,239,124,.18))}
  50%{filter:drop-shadow(0 0 15px rgba(86,239,124,.42))}
}

@keyframes tbScan{
  0%,10%{top:12%;opacity:0}
  18%{opacity:.65}
  72%{opacity:.34}
  88%,100%{top:84%;opacity:0}
}

@keyframes tbConnector{
  from{background-position:120% 0}
  to{background-position:-120% 0}
}

/* ---------- tablet keeps it calmer ---------- */
@media (max-width:1180px){
  .eco-v111 .gm-thinking.is-air-active .gm-system-item,
  .eco-v111 .gm-thinking.is-air-active .gm-system-item .gm-system-icon,
  .eco-v111 .gm-thinking.is-air-active .gm-benefits>div{
    animation-duration:12s!important;
  }
}

/* mobile stays light */
@media (max-width:767px){
  .eco-v111 .gm-air-motion{display:none!important}
  .eco-v111 .gm-system-item,
  .eco-v111 .gm-system-item .gm-system-icon,
  .eco-v111 .gm-benefits>div{
    animation:none!important;
  }
}

/* accessibility */
@media (prefers-reduced-motion:reduce){
  .eco-v111 .gm-air-stream,
  .eco-v111 .gm-air-port,
  .eco-v111 .gm-system-item,
  .eco-v111 .gm-system-item .gm-system-icon,
  .eco-v111 .gm-benefits>div,
  .eco-v111 .tb-flow path,
  .eco-v111 .tb-flow circle,
  .eco-v111 .tb-led,
  .eco-v111 .tb-core,
  .eco-v111 .tb-core circle,
  .eco-v111 .stepx-techboard .tb-stage::after,
  .eco-v111 .tb-foot i,
  .eco-v111 .tb-step .tb-node{
    animation:none!important;
  }
}

/* =========================================================================
 * ECOCOMFORT FURNACE · LAUNCH READY-01
 * Footer sister-company attribution + final live-safe footer behaviour.
 * ========================================================================= */
.eco-v111 .footer-bottom{
  gap:18px 28px!important;
  flex-wrap:wrap!important;
}
.eco-v111 .footer-bottom .footer-sister{
  color:#4bd366!important;
  font-weight:700!important;
  text-decoration:none!important;
  white-space:nowrap;
}
.eco-v111 .footer-bottom .footer-sister:hover{
  color:#72e486!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}
@media (max-width:720px){
  .eco-v111 .footer-bottom .footer-sister{
    white-space:normal;
  }
}
/* ECOCOMFORT_FURNACE_LAUNCH_READY01 */
