/* 09D · Authorized customers, never inferred contract details. */
.geo-pin .pin-dot{fill:#f5f8ef;stroke:#a1d17d}.geo-pin:not(:has(image)) .pin-dot{fill:#0d3027}.geo-pin text.crest-count{fill:#d8f2b9;font-size:12px;font-weight:700;paint-order:stroke;stroke:#0b2d26;stroke-width:4px;stroke-linejoin:round}
.geo-region-caption{font-size:11px;margin-top:14px}.context-clients{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:23px}.context-clients button{display:flex;align-items:center;text-align:left;gap:8px;min-height:64px;padding:9px;border:1px solid #bdcfb4;border-radius:4px;background:#f8fbf4;color:#21452e;font-size:10px;line-height:1.45}.context-clients img{width:30px;height:38px;object-fit:contain;flex-shrink:0}.context-clients button[aria-pressed="true"]{background:#d6e8c9;border-color:#4e793c;box-shadow:inset 0 0 0 1px #4e793c}.context-clients button:focus-visible{outline-color:#285a32}.municipal-context{margin-top:22px;padding-top:19px;border-top:1px solid #c3d4ba}.municipal-context h4{font-size:21px;line-height:1.25;margin:9px 0}.municipal-context p{font-size:11px}.municipal-context p+p{margin-top:9px}
.client-filters{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-top:30px}.client-filters .portfolio-filters{margin:0;gap:7px}.client-filters label{display:grid;gap:6px;min-width:210px;font-size:11px;color:#355c30}.client-filters select{font-size:13px;min-height:44px;border:1px solid #a4ba98;border-radius:4px;padding:10px 30px 10px 12px;background:#fff;color:#214a2e}.client-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-top:22px}.client-card{display:flex;flex-direction:column;background:white;border:1px solid #d1ddc9;border-radius:6px;overflow:hidden;min-width:0;scroll-margin-top:110px;transition:border-color .2s,box-shadow .2s}.client-card:focus{outline:3px solid #54843d;outline-offset:4px}.client-card:focus-within{box-shadow:0 8px 24px #153b2012;border-color:#77a35d}.client-logo{height:133px;padding:19px;display:flex;justify-content:center;align-items:center;background:#fff;border-bottom:1px solid #edf1e9}.client-logo img{object-fit:contain;max-width:100%;max-height:100%;width:auto;height:auto}.client-copy{padding:16px 15px 12px;display:flex;flex-direction:column;flex:1}.client-copy .eyebrow{font-size:9px;letter-spacing:.9px;color:#5a704e}.client-copy h3{font-size:15px;line-height:1.3;letter-spacing:-.3px;margin:8px 0 6px}.client-copy p{font-size:12px;line-height:1.6;color:#63705c}.client-locate{display:flex;align-items:center;gap:7px;min-height:44px;margin-top:9px;border-top:1px solid #e2e9dc;padding-top:5px;font-size:11px;color:#2b5f31}.client-locate .icon{width:15px;height:15px;margin-left:auto}.client-source-note{margin-top:27px;font-size:11px;line-height:1.8;max-width:860px}.client-empty{padding:28px;border:1px solid #c5d6ba;background:#edf4e5;font-size:14px;margin-top:22px}
@media(max-width:1150px){.client-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.client-logo{height:125px}.client-filters{gap:15px}}
@media(max-width:800px){.client-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.client-filters{flex-wrap:wrap;align-items:start}.client-filters label{min-width:220px}.context-clients{grid-template-columns:repeat(3,minmax(0,1fr))}.municipal-context h4{font-size:24px}}
@media(max-width:600px){.client-gallery{grid-template-columns:1fr 1fr;gap:11px}.client-logo{height:112px;padding:15px}.client-copy{padding:14px 12px 10px}.client-copy h3{font-size:14px}.client-copy .eyebrow{font-size:8px;letter-spacing:.7px}.client-locate{font-size:11px}.client-filters{display:block;margin-top:24px}.client-filters label{margin-top:17px;width:100%;font-size:11px}.client-filters select{font-size:16px;min-height:48px}.client-filters .portfolio-filters button{padding-inline:13px;font-size:11px}.context-clients{grid-template-columns:1fr 1fr}.context-clients button{font-size:10px}.client-source-note{font-size:10px}}

.context-clients button span{min-width:0;overflow-wrap:anywhere}
@media(max-width:350px){.context-clients{grid-template-columns:1fr}}

/* O10: definite contain boxes prevent intrinsic SVG/PNG sizes escaping flex/grid cells. */
.client-logo{height:148px;padding:14px 16px;min-height:0;flex-shrink:0}
.client-logo img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;object-position:center}
.client-card[data-portfolio-category="municipios"] .client-logo{padding:12px 18px}
.client-logo img[data-logo-id="empresa-27"],.client-logo img[data-logo-id="empresa-24"]{max-width:96px;max-height:96px}
@media(max-width:600px){.client-logo{height:122px;padding:13px 9px}.client-card[data-portfolio-category="municipios"] .client-logo{height:122px;padding:10px 13px}.opening-logo{padding-inline:8px}}
