.ecosystem-page{max-width:1180px;margin:0 auto;padding:24px 24px 80px;color:var(--ink)}
.ecosystem-breadcrumb{font-size:13px;color:var(--muted);margin:0 0 38px}.ecosystem-breadcrumb a,.ecosystem-return a{color:var(--teal);font-weight:700}
.ecosystem-hero{max-width:900px;margin-bottom:32px}.ecosystem-hero h1{margin:0;color:var(--teal);font-size:clamp(2.3rem,5vw,4.1rem);line-height:1.04;letter-spacing:-.045em}.ecosystem-lead{max-width:760px;color:var(--muted);font-size:1.2rem;line-height:1.55;margin:20px 0}.ecosystem-boundary{padding:14px 18px;border-left:3px solid var(--coral);background:#fff0e2;color:#62472f;font-size:14px;max-width:850px}
.ecosystem-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;padding:20px;background:#f0f4f0;border:1px solid var(--line);border-radius:14px;margin:36px 0 50px}.ecosystem-filters label{display:grid;min-width:0;gap:7px;font-size:13px;font-weight:750}.ecosystem-filters input,.ecosystem-filters select{width:100%;min-width:0;font:inherit;min-height:44px;padding:9px 12px;border:1px solid #bdc9c2;border-radius:7px;background:#fff;color:var(--ink)}.ecosystem-result-count{grid-column:1/-1;font-size:13px;color:var(--muted);margin:0 2px;white-space:nowrap}.ecosystem-result-count strong{color:var(--ink);font-size:17px}
.ecosystem-group{margin:0 0 54px;scroll-margin-top:90px}.ecosystem-group>header{max-width:790px;margin-bottom:20px}.ecosystem-group>header h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.14;letter-spacing:-.035em;margin:0 0 10px}.ecosystem-group>header p{color:var(--muted);margin:0}.ecosystem-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ecosystem-card{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;min-height:300px}.ecosystem-card-type{font-size:12px;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:var(--teal);margin:0 0 12px}.ecosystem-card-type span{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:550}.ecosystem-card h3{font-size:1.35rem;margin:0 0 10px;line-height:1.2}.ecosystem-card-description{font-size:15px;line-height:1.5;margin:0 0 14px}.ecosystem-capabilities{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 18px}.ecosystem-capabilities li{font-size:11px;padding:5px 8px;border-radius:999px;background:#e7efea;color:#22514d}.ecosystem-connection{font-size:13px;margin:0 0 8px;color:var(--ink)}.ecosystem-qualification{font-size:13px;color:var(--muted);line-height:1.45;margin:0 0 15px}.ecosystem-website{margin-top:auto;display:inline-block;color:var(--teal);font-weight:750;font-size:13px}.ecosystem-sources{border-top:1px solid var(--line);width:100%;margin-top:18px;padding-top:12px;font-size:12px;color:var(--muted)}.ecosystem-sources summary{cursor:pointer;font-weight:700}.ecosystem-sources ul{padding-left:18px;line-height:1.55}.ecosystem-sources a{color:var(--teal)}.ecosystem-return{margin-top:40px}.ecosystem-no-results{padding:24px;background:#f0f4f0;border-radius:10px;color:var(--muted)}
.ecosystem-group-count{display:inline-grid;place-items:center;min-width:28px;height:28px;margin-left:8px;border-radius:50%;background:#e7efea;color:#22514d;font-size:13px;vertical-align:middle;letter-spacing:0}
.ecosystem-address{font-size:13px;line-height:1.45;font-weight:650;margin:0 0 16px;color:#354a43}
.ecosystem-summary{display:grid;grid-template-columns:auto 1fr;gap:8px 28px;align-items:center;padding:18px 22px;border:1px solid var(--line);border-radius:14px;background:#f5f7f4;margin:28px 0}.ecosystem-summary-totals{display:flex;gap:24px}.ecosystem-summary-totals p{margin:0;color:var(--muted);font-size:13px}.ecosystem-summary-totals strong{font-size:25px;color:var(--ink);margin-right:4px}.ecosystem-summary-caption{font-size:12px;color:var(--muted);margin:0}.ecosystem-status-counts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;padding:0;margin:4px 0 0;font-size:12px;color:var(--muted)}.ecosystem-status-counts li{display:flex;align-items:center;gap:7px}.ecosystem-status-explanation{grid-column:1/-1;font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.ecosystem-card .ecosystem-status{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}.ecosystem-status-supported{background:#deeee3;color:#205d39!important}.ecosystem-status-needs_context{background:#fff0cf;color:#704d00!important}.ecosystem-category{font-size:12px;font-weight:700;color:var(--teal);margin:0 0 8px}
.ecosystem-page a:focus-visible,.ecosystem-page input:focus-visible,.ecosystem-page select:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.ecosystem-page [hidden]{display:none!important}
.ecosystem-industries{margin:36px 0 30px;padding:26px;border:1px solid var(--line);border-radius:16px;background:#f7f8f4}
.ecosystem-industries-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.ecosystem-industries-heading .eyebrow{margin:0 0 8px}
.ecosystem-industries-heading h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;letter-spacing:-.035em;margin:0}
.ecosystem-industries-intro{max-width:740px;font-size:14px;line-height:1.55;color:var(--muted);margin:14px 0 20px}
.ecosystem-industry-legend{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:11px;color:var(--muted)}
.ecosystem-industry-legend>span{width:55px;height:8px;border-radius:8px;background:linear-gradient(90deg,#e4eee4,#103f43)}
.ecosystem-industry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(min-width:1100px){.ecosystem-industry-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.ecosystem-industry-tile{--tile-bg:#e4eee4;--tile-ink:#163d38;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px 18px;position:relative;min-width:0;min-height:116px;padding:18px;text-align:left;font:inherit;color:var(--tile-ink);background:var(--tile-bg);border:2px solid transparent;border-radius:10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.ecosystem-industry-tile[data-intensity="2"]{--tile-bg:#cbded1}
.ecosystem-industry-tile[data-intensity="3"]{--tile-bg:#9bbfb1;--tile-ink:#103b35}
.ecosystem-industry-tile[data-intensity="4"]{--tile-bg:#386b63;--tile-ink:#fff}
.ecosystem-industry-tile[data-intensity="5"]{--tile-bg:#103f43;--tile-ink:#fff}
.ecosystem-industry-tile[data-intensity="0"]{--tile-bg:#edf0eb;--tile-ink:#626d67}
.ecosystem-industry-tile:disabled{cursor:default}
.ecosystem-industry-tile:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #103f4320}
.ecosystem-industry-tile[aria-pressed="true"]{border-color:var(--coral);box-shadow:0 0 0 2px var(--coral)}
.ecosystem-industry-tile:focus-visible,.ecosystem-industry-clear:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.ecosystem-industry-number{font-size:2.6rem;line-height:1;font-weight:750;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.ecosystem-industry-label{min-width:0;font-size:15px;line-height:1.25;font-weight:650;overflow-wrap:anywhere}
.ecosystem-industry-bar{grid-column:1/-1;display:block;height:4px;border-radius:4px;background:#ffffff40;overflow:hidden}
.ecosystem-industry-bar>span{display:block;height:100%;width:var(--industry-share);background:currentColor;border-radius:inherit;opacity:.65}
.ecosystem-industry-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}
.ecosystem-industry-footer p{font-size:12px;line-height:1.5;color:var(--muted);margin:0;max-width:650px}
.ecosystem-industry-clear{font:inherit;font-size:13px;font-weight:700;flex-shrink:0;border:1px solid var(--teal);border-radius:6px;padding:8px 12px;background:#fff;color:var(--teal);cursor:pointer}
.ecosystem-industry-status{font-size:13px;font-weight:650;color:var(--teal);margin:12px 0 0}
.ecosystem-industry-status:empty{display:none}
@media(min-width:1100px){.ecosystem-industry-tile{grid-template-columns:1fr;align-content:start;gap:10px}}
@media(prefers-reduced-motion:reduce){.ecosystem-industry-tile{transition:none}.ecosystem-industry-tile:hover:not(:disabled){transform:none}}
@media(max-width:850px){.ecosystem-industries-heading{align-items:flex-start;flex-direction:column;gap:14px}.ecosystem-industry-tile{padding:14px;gap:10px}.ecosystem-industry-number{font-size:2.2rem}.ecosystem-industry-label{font-size:13px}}
@media(max-width:600px){.ecosystem-industries{padding:18px}.ecosystem-industry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ecosystem-industry-tile{grid-template-columns:1fr;align-content:start;min-height:130px;gap:10px}.ecosystem-industry-footer{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:1050px){.ecosystem-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.ecosystem-cards{grid-template-columns:1fr}.ecosystem-summary{grid-template-columns:1fr}.ecosystem-status-counts{grid-column:auto}}
@media(max-width:520px){.ecosystem-page{padding:18px 16px 56px}.ecosystem-filters{grid-template-columns:1fr;margin:28px 0 40px;padding:15px}.ecosystem-result-count{margin:3px 0}.ecosystem-card{padding:20px}}
.ecosystem-map-panel{margin:0 0 48px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.ecosystem-map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 0}.ecosystem-map-heading h2{margin:0;font-size:1.6rem}.ecosystem-map-panel>p{margin:12px 22px;font-size:13px;color:var(--muted)}#ecosystem-map{height:440px;width:100%;z-index:0;background:#e7efea}.ecosystem-map-panel button{font:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:#fff;color:var(--teal);cursor:pointer}.ecosystem-town-marker span{display:grid;place-items:center;width:40px;height:40px;background:#103f43;color:#fff;border:3px solid #fff;border-radius:50%;font-weight:800;box-shadow:0 2px 8px #0004}.ecosystem-map-popup{min-width:210px}.ecosystem-map-popup button{display:block;margin:10px 0;font-size:12px}.ecosystem-map-popup ul{max-height:220px;overflow:auto;padding:0 4px 0 18px;margin:12px 0}.ecosystem-map-popup li{margin-bottom:8px}.ecosystem-card{scroll-margin-top:90px}@media(max-width:520px){#ecosystem-map{height:350px}.ecosystem-map-heading{align-items:flex-start;flex-direction:column}}
.ecosystem-location-marker span{display:grid;place-items:center;width:100%;height:100%;background:#103f43;color:white;border:2px solid white;border-radius:50%;box-shadow:0 1px 6px #0005;font-size:12px;font-weight:800}.map-role-registered span{background:#b87424}.map-role-venue span,.map-role-research span{background:#705095}.map-role-historical span{background:#68716f}.map-location-approximate span{border-style:dashed}.ecosystem-map-legend{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;margin:12px 22px;padding:0;font-size:12px;color:var(--muted)}.ecosystem-map-legend li{display:flex;gap:7px;align-items:center}.ecosystem-map-legend i{width:11px;height:11px;background:#103f43;border-radius:50%}.ecosystem-map-legend .map-dot-registered{background:#b87424}.ecosystem-map-legend .map-dot-research{background:#705095}.ecosystem-map-legend .map-dot-historical{background:#68716f}.ecosystem-map-address-source{display:block;font-size:11px;margin-top:3px}.ecosystem-map-popup small{display:block;color:#626d67}

.ecosystem-business-badges{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 12px}.ecosystem-business-badges li{font-size:11px;font-weight:650;line-height:1.45;padding:4px 9px;border-radius:6px;background:#edf2ef;color:#24534e}.ecosystem-business-badges .ecosystem-badge-origin{background:#e7efdf;color:#38542e}.ecosystem-business-badges .ecosystem-badge-background{background:#eeebf5;color:#584772}.ecosystem-business-badges .ecosystem-badge-reach{background:#f6ead7;color:#755116}.ecosystem-business-details{margin:16px 0}.ecosystem-business-details>div{display:grid;grid-template-columns:minmax(80px,1fr) minmax(0,2fr);gap:12px;margin:0 0 10px}.ecosystem-business-details dt{font-weight:700}.ecosystem-business-details dd{margin:0;color:var(--ink)}.ecosystem-business-details small{display:block;font-size:11px;color:var(--muted)}

.ecosystem-business-overview{margin:30px 0;padding:24px 26px;border:1px solid var(--line);border-radius:16px;background:#fff}
.ecosystem-years{margin:30px 0;padding:24px 26px;border:1px solid var(--line);border-radius:16px;background:#fff}

.ecosystem-card-heading{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.ecosystem-card-heading>div{min-width:0}
.ecosystem-card-heading .ecosystem-card-type{margin:0 0 8px}
.ecosystem-card-heading h3{overflow-wrap:anywhere;margin:0}
.ecosystem-company-logo{display:block;flex:0 0 auto;width:104px;height:68px;padding:7px;object-fit:contain;background:#f3f5f2;border:1px solid #e0e6e1;border-radius:9px}
.ecosystem-company-logo.logo-theme-dark{background:#103f43;border-color:#103f43}
.ecosystem-company-logo.logo-theme-light{background:#f3f5f2;border-color:#e0e6e1}
.ecosystem-location-marker-logo{position:relative;display:block;box-sizing:border-box;min-width:0;overflow:hidden;padding:3px;background:#fff!important;border-color:#fff!important}
.leaflet-container .ecosystem-location-marker-logo.pin-theme-dark{background:#103f43!important}
.leaflet-container .ecosystem-location-marker-logo.pin-theme-light{background:#f3f5f2!important}
.leaflet-container .ecosystem-location-marker-logo img{position:absolute;top:3px;left:3px;display:block;box-sizing:border-box;width:36px!important;height:36px!important;min-width:0;max-width:36px!important;max-height:36px!important;object-fit:contain;border-radius:inherit}
.ecosystem-map-popup-item-with-logo{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:3px 9px}
.ecosystem-map-popup-item-with-logo img{grid-row:span 3;width:36px;height:36px;padding:3px;object-fit:contain;background:#f3f5f2;border:1px solid #e0e6e1;border-radius:6px}
.ecosystem-map-popup-item-with-logo .ecosystem-map-address-source{grid-column:2}
@media(max-width:520px){.ecosystem-company-logo{width:84px;height:58px;padding:5px}}
.ecosystem-years h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;letter-spacing:-.035em;margin:0}
.ecosystem-years>p:not(.eyebrow){max-width:760px;color:var(--muted);line-height:1.55}
.ecosystem-years-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}
.ecosystem-years-tile{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:95px;padding:16px;border:2px solid transparent;border-radius:10px;background:#edf2ed;color:#183e39;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,background-color .15s}
.ecosystem-years-tile:hover:not(:disabled){border-color:var(--teal)}.ecosystem-years-tile[aria-pressed="true"]{border-color:var(--coral);background:#fff3eb;box-shadow:0 0 0 1px var(--coral)}.ecosystem-years-tile:disabled{opacity:.55;cursor:default}.ecosystem-years-tile:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.ecosystem-years-tile strong{font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.ecosystem-years-tile span{font-size:13px;font-weight:650}
.ecosystem-years-note{font-size:12px}
.ecosystem-years-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0}.ecosystem-years-footer p{font-size:13px;color:var(--teal);font-weight:650;margin:0}.ecosystem-years-footer p:empty{display:none}.ecosystem-years-footer button{border:0;background:none;color:var(--teal);font:inherit;font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer}.ecosystem-years-footer:has(p:empty):has(button[hidden]){display:none}
.ecosystem-founding-year{margin:10px 0;font-size:13px;font-weight:650;color:var(--teal)}
.ecosystem-founding-year a{font-weight:500}
.ecosystem-company-sizes{margin:30px 0;padding:24px 26px;border:1px solid var(--line);border-radius:16px;background:#f7f8f4}
.ecosystem-company-sizes h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;letter-spacing:-.035em;margin:0}
.ecosystem-company-sizes>p:not(.eyebrow){max-width:760px;color:var(--muted);line-height:1.55}
.ecosystem-company-size-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 30px;margin:20px 0}
.ecosystem-company-size-row{display:grid;grid-template-columns:minmax(92px,auto) minmax(60px,1fr) 34px;align-items:center;gap:12px;font-size:13px}
.ecosystem-company-size-row{width:100%;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.ecosystem-company-size-row:hover,.ecosystem-company-size-row:focus-visible{border-color:var(--line);background:#fff}
.ecosystem-company-size-row[aria-pressed="true"]{border-color:var(--teal);background:#e4efeb}
.ecosystem-company-size-row:disabled{opacity:.45;cursor:not-allowed}
.ecosystem-company-size-row:focus-visible{outline:3px solid #e8904f;outline-offset:2px}
.ecosystem-company-size-label{font-weight:650;font-variant-numeric:tabular-nums}
.ecosystem-company-size-track{height:9px;border-radius:9px;background:#dfe8e1;overflow:hidden}
.ecosystem-company-size-track>span{display:block;height:100%;border-radius:inherit;background:var(--teal)}
.ecosystem-company-size-row strong{text-align:right;font-size:16px;font-variant-numeric:tabular-nums}
.ecosystem-company-size-note{font-size:12px}
.ecosystem-company-sizes>p.ecosystem-company-size-status{min-height:1.3em;margin:0;color:var(--teal);font-size:13px;font-weight:650}
.ecosystem-company-size-status:empty{display:none}
.ecosystem-business-overview>h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;letter-spacing:-.035em;margin:0}
.ecosystem-business-intro{font-size:14px;line-height:1.55;color:var(--muted);max-width:760px;margin:12px 0 20px}
.ecosystem-business-groups{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.ecosystem-business-group{min-width:0}.ecosystem-business-group h3{font-size:13px;margin:0 0 10px;color:var(--muted)}
.ecosystem-business-tile{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;width:100%;padding:9px 11px;margin:0 0 7px;border:2px solid transparent;border-radius:8px;background:#edf2ef;color:#24534e;text-align:left;font:inherit;font-size:12px;font-weight:650;line-height:1.3;cursor:pointer}
.ecosystem-business-tile.ecosystem-badge-origin{background:#e7efdf;color:#38542e}.ecosystem-business-tile.ecosystem-badge-background{background:#eeebf5;color:#584772}.ecosystem-business-tile.ecosystem-badge-reach{background:#f6ead7;color:#755116}
.ecosystem-business-tile strong{font-size:20px;line-height:1.1;font-variant-numeric:tabular-nums}.ecosystem-business-label{overflow-wrap:anywhere}
.ecosystem-business-tile[aria-pressed="true"]{border-color:var(--coral);box-shadow:0 0 0 1px var(--coral)}
.ecosystem-business-tile:hover:not(:disabled){border-color:var(--teal)}.ecosystem-business-tile:disabled{opacity:.55;cursor:default}
.ecosystem-business-tile:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.ecosystem-business-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}.ecosystem-business-footer p{font-size:13px;color:var(--teal);font-weight:650;margin:0}.ecosystem-business-footer p:empty{display:none}.ecosystem-business-footer:has(p:empty):has(button[hidden]){display:none}
@media(max-width:1000px){.ecosystem-business-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ecosystem-business-overview{padding:18px}.ecosystem-business-groups{gap:18px 12px}.ecosystem-business-tile{padding:8px;min-height:64px;font-size:11px}.ecosystem-business-tile strong{font-size:18px}.ecosystem-business-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.ecosystem-company-sizes{padding:18px}.ecosystem-company-size-list{grid-template-columns:1fr;gap:10px}}
@media(max-width:650px){.ecosystem-years{padding:18px}.ecosystem-years-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ecosystem-years-tile:last-child{grid-column:1/-1}}
.ecosystem-business-coverage{font-size:11px;line-height:1.45;color:var(--muted);margin:0 0 10px}
