/* Scoped to the existing hero illustration block. No service-page or global layout rules. */
.hero-visual.bb-digital-city{min-width:0;min-height:0;margin:0;align-self:center;position:relative;--city-accent:var(--wp--preset--color--coral,#e9694d);--city-sage:var(--wp--preset--color--sage,#a7c6b5)}
.hero-visual.bb-digital-city .bb-city-svg{position:relative;display:block;inset:auto;left:auto;top:auto;width:100%;max-width:100%;height:auto;transform:none;overflow:visible;filter:none;will-change:auto}
.bb-digital-city .city-face{stroke:#7b9b87;stroke-width:1;stroke-linejoin:round}.bb-digital-city .city-face-left{fill:#192e25;stroke-opacity:.65}.bb-digital-city .city-face-right{fill:#11271f;stroke-opacity:.65}.bb-digital-city .city-face-roof{fill:#2e4b3e;stroke:#afc8b6;stroke-opacity:.7}.bb-digital-city .city-foundation .city-face-roof{fill:#172b23;stroke:#547561;stroke-opacity:.5}.bb-digital-city .city-foundation .city-face-left,.bb-digital-city .city-foundation .city-face-right{fill:#12221b;stroke-opacity:.28}.bb-digital-city .city-ground-wash{opacity:.65;stroke:none}.bb-digital-city .city-grid{stroke:#89aa95;stroke-width:.65;opacity:.13}.bb-digital-city .city-terrace .city-face-roof{fill:#223b30;stroke:#87aa93;stroke-opacity:.7}.bb-digital-city .city-terrace .city-face-left,.bb-digital-city .city-terrace .city-face-right{fill:#132a20;stroke-opacity:.5}.bb-digital-city .city-cloud-unit .city-face-roof{fill:#385847}.bb-digital-city .city-hybrid-unit .city-face-roof{fill:#365748;stroke:var(--city-accent);stroke-opacity:.8}.bb-digital-city .city-rack .city-face-roof{fill:#365245}.bb-digital-city .city-rack-vent{stroke:#93b39d;stroke-width:.9;opacity:.55}.bb-digital-city .city-roof-inset{fill:#446954;fill-opacity:.55;stroke:#bed2c1;stroke-width:.7;stroke-opacity:.6}.bb-digital-city .city-led{fill:var(--city-accent);animation:cityNode 7s ease-in-out infinite;animation-delay:var(--city-phase,0s)}
.bb-digital-city .city-road{fill:none;stroke:#799c86;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.bb-digital-city .city-route-service .city-road{stroke-width:2;opacity:.7}.bb-digital-city .city-route-telemetry .city-road{stroke:#a7c6b5;stroke-width:1;stroke-dasharray:2 5;opacity:.45}.bb-digital-city .city-route-ha-primary .city-road,.bb-digital-city .city-route-ha-alternate .city-road{stroke:#7ba58a;stroke-width:1.4;opacity:.65}.bb-digital-city .city-route-ha-alternate .city-road{stroke-dasharray:4 5}.bb-digital-city .city-packet{fill:none;stroke:var(--city-accent);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1.2 98.8;animation:cityPacket var(--city-duration,6s) linear infinite;animation-delay:var(--city-delay,0s)}.bb-digital-city .city-route-telemetry .city-packet{stroke:var(--city-sage);stroke-width:2}.bb-digital-city .city-route-ha-alternate .city-packet{stroke:var(--city-sage)}.bb-digital-city .city-port-core{fill:var(--city-accent);stroke:#17251f;stroke-width:1}.bb-digital-city .city-port-halo{fill:var(--city-accent);opacity:.1;animation:cityPort 5s ease-in-out infinite}.bb-digital-city .city-sensor .city-port-core{fill:var(--city-sage)}.bb-digital-city .city-sensor-stem,.bb-digital-city .city-access path{fill:none;stroke:#8ba994;stroke-width:1;opacity:.7}.bb-digital-city .city-label{fill:#b6ccbc;font:600 13px ui-monospace,Menlo,monospace;letter-spacing:2px}.bb-digital-city .city-observe-label{font-size:11px;letter-spacing:2.6px;fill:#a3bdac}.bb-digital-city .city-ha-label .city-label{font-size:11px;letter-spacing:2.2px}.bb-digital-city .city-ha-twins{stroke:var(--city-accent);stroke-width:1.3;opacity:.65}.bb-digital-city figcaption{display:flex;flex-wrap:wrap;justify-content:center;gap:7px 20px;color:#789a85;font:8px/1.8 ui-monospace,monospace;letter-spacing:1.3px;text-align:center;margin:-20px 0 0}.bb-digital-city .city-caption-benefits{color:#9ab7a4}.bb-digital-city .city-caption-index{width:100%;font-size:8px;opacity:.75}
@keyframes cityPacket{0%{stroke-dashoffset:100;opacity:0}9%,89%{opacity:.95}100%{stroke-dashoffset:0;opacity:0}}@keyframes cityNode{0%,100%{opacity:.35}35%,65%{opacity:1}}@keyframes cityPort{0%,100%{opacity:.06}50%{opacity:.19}}
.bb-no-pulse .bb-digital-city .city-led,.bb-no-pulse .bb-digital-city .city-port-halo{animation:none}.bb-no-pulse .bb-digital-city .city-packet,.bb-motion-off .bb-digital-city .city-packet,[data-bb-animation=off] .bb-digital-city .city-packet{animation:none;opacity:0}
@media(min-width:901px){.hero-grid:has(>.bb-digital-city){grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px;min-height:590px}.bb-digital-city{padding-block:22px}}
@media(max-width:1200px) and (min-width:901px){.hero-grid:has(>.bb-digital-city){grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:6px}}
@media(max-width:900px){.hero-visual.bb-digital-city{max-width:740px;width:100%;margin:auto}.bb-digital-city figcaption{margin-top:-22px}}
@media(max-width:610px){.hero-visual.bb-digital-city{margin:8px auto 24px}.bb-digital-city .city-label{font-size:20px;letter-spacing:1.5px}.bb-digital-city .city-observe-label{font-size:18px}.bb-digital-city .city-ha-label .city-label{font-size:18px}.bb-digital-city figcaption{font-size:7px;letter-spacing:.8px;margin-top:-14px;gap:3px 9px}.bb-digital-city .city-caption-index{display:none}}
@media(prefers-reduced-motion:reduce){.bb-digital-city *{animation:none!important;transition:none!important}.bb-digital-city .city-packet{opacity:0}.bb-digital-city .city-port-halo{opacity:.12}}
/* The editor uses the same geometry, with static motion and normal document positioning. */
.editor-styles-wrapper .hero-visual.bb-digital-city{min-height:0;margin:0;padding:0}.editor-styles-wrapper .hero-visual.bb-digital-city .bb-city-svg{position:relative;inset:auto;transform:none}.editor-styles-wrapper .bb-digital-city .city-packet{animation:none!important;opacity:0}.editor-styles-wrapper .bb-digital-city .city-led,.editor-styles-wrapper .bb-digital-city .city-port-halo{animation:none!important}
