/* ---------- edificio (tema Vetro, approvato in R5) ---------- */
:root{
  --b-slab:url(#gSlab); --b-slab-l:#e3e7ed; --b-slab-r:#d4dae2; --b-roof:#f6f7f9; --b-edge:rgba(40,52,72,.2);
  --b-wall:rgba(232,237,244,.5); --b-wall-e:rgba(40,52,72,.09);
  --b-fac-l:url(#gFacL); --b-fac-r:url(#gFacR); --b-fac-e:rgba(110,130,160,.4); --b-mul:rgba(110,130,160,.26); --b-spec:url(#gSpec);
  --b-col-t:#fff; --b-col-l:#e9ecf1; --b-col-r:#dce1e8;
  --b-eq-e:rgba(40,52,72,.24);
  --b-nt:#f1f3f6; --b-pv:#bccce4; --b-door:rgba(255,255,255,.55);
  --b-pl-t:#faf9f7; --b-pl-l:#e6e3dd; --b-pl-r:#d9d5ce; --b-park:rgba(32,32,34,.16);
  --b-shd:rgba(30,45,70,.2); --b-fshd:rgba(30,45,70,.12);
  --b-txt:#202022; --b-txt-2:#6b7078; --b-halo:#F2F0EC;
}
.bld{font-synthesis:none}
.bld polygon{stroke-linejoin:round;stroke-width:1;transition:fill .5s,stroke .4s,opacity .4s}
.bld .slab-t{fill:var(--b-slab);stroke:var(--b-edge)} .bld .roof-t{fill:var(--b-roof);stroke:var(--b-edge)}
.bld .slab-l,.bld .par-l{fill:var(--b-slab-l);stroke:var(--b-edge)} .bld .slab-r,.bld .par-r{fill:var(--b-slab-r);stroke:var(--b-edge)}
.bld .par-t{fill:#fff;stroke:var(--b-edge)} .bld .par-in{fill:#eef1f5;stroke:var(--b-edge)}
.bld .wall{fill:var(--b-wall);stroke:var(--b-wall-e)}
.bld .fac-l{fill:var(--b-fac-l);stroke:var(--b-fac-e)} .bld .fac-r{fill:var(--b-fac-r);stroke:var(--b-fac-e)}
.bld .mul{fill:none;stroke:var(--b-mul);stroke-width:.8}
.bld .spec{fill:var(--b-spec);stroke:none;opacity:.7}
.bld .door{fill:var(--b-door);stroke:var(--b-fac-e)}
.bld .col-t{fill:var(--b-col-t);stroke:var(--b-wall-e)} .bld .col-l{fill:var(--b-col-l);stroke:var(--b-wall-e)} .bld .col-r{fill:var(--b-col-r);stroke:var(--b-wall-e)}
/* basamento e piazzale */
.bld .pl-t{fill:var(--b-pl-t);stroke:rgba(40,52,72,.14)} .bld .pl-l{fill:var(--b-pl-l);stroke:rgba(40,52,72,.14)} .bld .pl-r{fill:var(--b-pl-r);stroke:rgba(40,52,72,.14)}
.bld .park{fill:none;stroke:var(--b-park);stroke-width:1.4;stroke-linecap:round}
/* apparecchiature: bianche con una velatura del colore del loro impianto */
.bld .eq-t{fill:color-mix(in srgb,var(--c) 9%,#fff);stroke:var(--b-eq-e)}
.bld .eq-l{fill:color-mix(in srgb,var(--c) 7%,#eef0f4);stroke:var(--b-eq-e)}
.bld .eq-r{fill:color-mix(in srgb,var(--c) 7%,#dfe3e9);stroke:var(--b-eq-e)}
.bld .nt-t,.bld .nt-l,.bld .nt-r{fill:var(--b-nt);stroke:var(--b-wall-e)}
.bld .nt-l{fill:#e8ebef} .bld .nt-r{fill:#dde1e7}
.bld .pv{fill:var(--b-pv);stroke:rgba(40,60,100,.35)}
.bld .halo{fill:none;stroke:#fff;stroke-opacity:.85;stroke-linecap:round;stroke-linejoin:round}
.bld .pipe{fill:none;stroke:var(--c);stroke-linecap:round;stroke-linejoin:round;transition:opacity .4s}
.bld .drop{fill:var(--c)}
.bld .gshd{fill:var(--b-shd);stroke:none} .bld .fshd{fill:var(--b-fshd);stroke:none;opacity:0;transition:opacity .6s}
.bld.exp .fshd{opacity:1}

/* piano di riferimento sotto ogni livello dell'impianto estratto */
.bld .tray{fill:none;stroke:var(--c);stroke-opacity:.45;stroke-width:1.2;stroke-dasharray:5 5;opacity:0;transition:opacity .4s}
.bld .sys.out .tray{opacity:1;transition:opacity .5s .25s}
.bld.xray .sys.out .tray{opacity:0}

/* ghost (posto lasciato dall'impianto estratto) */
.bld .gg{opacity:0;transition:opacity .45s;pointer-events:none}
.bld .gg.show{opacity:.8}
.bld .gh{fill:none;stroke:var(--c);stroke-dasharray:3 3;stroke-width:1.1}
.bld .gh-ln{fill:none;stroke:var(--c);stroke-dasharray:3 4;opacity:.75;stroke-linecap:round}
.bld .gh-dot{fill:none;stroke:var(--c)}

/* movimento: piani (E1) e impianto estratto (E2) */
.bld .L,.bld .sys{transition:transform .9s var(--ease),opacity .45s}
.bld .sys.out{transition:transform .8s var(--spring),opacity .45s;filter:drop-shadow(0 14px 16px rgba(20,30,50,.16))}
.bld .sys.out .eq-t,.bld .sys.out .eq-l,.bld .sys.out .eq-r,.bld .sys.out .pv{stroke:var(--c);stroke-width:1.3}
.bld .sys.out .eq-t{fill:color-mix(in srgb,var(--c) 16%,#fff)}
.bld.pulling .slot .sys{opacity:.12}
.bld.pulling .fac,.bld.pulling .nt-g{opacity:.5}
.bld.pulling.xray .st,.bld.pulling.xray .fac,.bld.pulling.xray .nt-g{opacity:.28}

/* focus di piano in modalità separata */
.bld .L{transition:transform .9s var(--ease),opacity .35s}
.bld[data-hf="0"] .L:not([data-f="0"]),.bld[data-hf="1"] .L:not([data-f="1"]),.bld[data-hf="2"] .L:not([data-f="2"]),.bld[data-hf="3"] .L:not([data-f="3"]){opacity:.4}

/* etichette dei piani: grandi e decise */
.bld .flbl{opacity:0;transition:opacity .5s}
.bld.exp .flbl{opacity:1}
.bld .fl-ln{stroke:var(--b-txt);stroke-width:1.5;fill:none}
.bld .fl-n{font-family:var(--f-mono);font-size:14px;font-weight:500;letter-spacing:1.4px;fill:var(--b-txt-2)}
.bld .fl-d{font-family:var(--f-sans);font-size:25px;font-weight:750;letter-spacing:-.3px;fill:var(--b-txt)}
.bld .fl-m{display:none}
.bld.mob .fl-n,.bld.mob .fl-d{display:none}
.bld.mob .fl-m{display:inline;font-family:var(--f-sans);font-size:27px;font-weight:800;letter-spacing:-.3px;fill:var(--b-txt)}

/* didascalie dell'impianto estratto */
.bld .leg{opacity:0;pointer-events:none}
.bld .leg.show{opacity:1;transition:opacity .45s .4s}
.bld .lg-ln{fill:none;stroke:var(--b-txt);stroke-width:1.3;stroke-opacity:.55}
.bld .lg-dot{fill:var(--c);stroke:#fff;stroke-width:2}
.bld .lg-t{font-family:var(--f-sans);font-size:21px;font-weight:750;letter-spacing:-.2px;fill:var(--b-txt);paint-order:stroke;stroke:var(--b-halo);stroke-width:5px;stroke-linejoin:round}
.bld .lg-f{font-family:var(--f-mono);font-size:12.5px;font-weight:500;letter-spacing:1.2px;fill:var(--b-txt-2);paint-order:stroke;stroke:var(--b-halo);stroke-width:4px;stroke-linejoin:round}

/* elementi-esempio colorati (estintori, radiatori, plafoniere, colonnina) e rivelatori */
.bld .eqc-t{fill:color-mix(in srgb,var(--c) 70%,#fff);stroke:color-mix(in srgb,var(--c) 70%,#000)}
.bld .eqc-l{fill:var(--c);stroke:color-mix(in srgb,var(--c) 70%,#000)}
.bld .eqc-r{fill:color-mix(in srgb,var(--c) 82%,#000);stroke:color-mix(in srgb,var(--c) 70%,#000)}
.bld .det{fill:#fff;stroke:var(--c);stroke-width:1.6}
.bld polygon[class^="eqc"]{stroke-width:.6}
