.service-detail-trigger { padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit; }
.service-list li .service-detail-trigger { flex:1; }.service-list li>i { font-style:normal; }
.company-track img { max-width:140px;max-height:46px;object-fit:contain; }.company-track .company-tile:has(img)::before { display:none; }
.company-track .company-name { width:auto;flex:initial;border:0; }.company-track .company-name::before { display:none; }
.project-detail-trigger { margin-top:14px;border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:12px;padding:5px 0; }
.detail-dialog { position:fixed;inset:0;margin:auto;width:min(680px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:32px;border:1px solid #4a4d50;border-radius:18px;background:#17191c;color:#f5f5f3;box-shadow:0 30px 100px #000b; }
.detail-dialog::backdrop { background:#000b;backdrop-filter:blur(4px); }.detail-dialog h2 { margin:20px 40px 25px 0; }.detail-dialog h3 { font-size:15px;margin-top:24px; }.detail-dialog p { color:#d0d2d4;line-height:1.7;white-space:pre-line; }
.dialog-close { position:sticky;float:right;top:0;width:36px;height:36px;border:1px solid #555;border-radius:50%;background:#222;color:white;font-size:24px;cursor:pointer; }
.detail-gallery { margin:24px 0 0;display:grid;gap:12px; }.detail-gallery img { width:100%;max-height:420px;object-fit:contain;border-radius:10px; }.detail-gallery figcaption { text-align:center;color:#aaa;font-size:12px; }
.gallery-controls { display:flex;justify-content:center;gap:12px;margin-top:16px; }.gallery-controls button { border:1px solid #444;border-radius:8px;padding:10px 15px;background:#25282d;color:white;cursor:pointer; }.gallery-controls button:disabled { opacity:.4;cursor:default; }
[hidden] { display:none!important; }button:focus-visible,[role=button]:focus-visible { outline:2px solid var(--yellow,#fbd115);outline-offset:4px; }
.map-world { position:absolute;inset:0;transform-origin:0 0;transition:transform .5s ease; }
.interactive-map .map-points { position:absolute;inset:0;pointer-events:none; }
.interactive-map .map-point { pointer-events:auto;transform:translate(-50%,-50%) scale(calc(1 / var(--map-zoom,1))); }
.interactive-map .map-point:hover,.interactive-map .map-point.active { transform:translate(-50%,-50%) scale(calc(1.2 / var(--map-zoom,1))); }
.interactive-map path { fill:#232629;stroke:#757b80;stroke-width:.65;vector-effect:non-scaling-stroke;transition:fill .4s; }
.interactive-map path[role=button] { cursor:pointer; }
.interactive-map path.municipality-selected { stroke:#fbd115;stroke-width:2; }
.interactive-map .pe-map { overflow:visible; }
.interactive-map:focus-visible { outline:2px solid #fbd115;outline-offset:-3px; }
.map-adjusting { touch-action:none;cursor:grabbing; }.map-adjusting .map-world { transition:none; }
.region-tabs { flex-wrap:wrap; }.map-empty { padding:30px;color:#c9cdd0; }
@media(prefers-reduced-motion:reduce){.map-world,.interactive-map path{transition:none;}}
