.acogra-locator {
    --acogra-navy: #06254a;
    --acogra-blue: #0879bd;
    --acogra-green: #69a938;
    --acogra-border: #d9e1e8;
    --acogra-soft: #f4f7f9;
    color: #183044;
    margin: 24px auto 48px;
    max-width: 1240px;
}

.acogra-locator * { box-sizing: border-box; }
.acogra-locator__title { color: var(--acogra-navy); margin-bottom: 18px; text-align: center; }

.acogra-locator__search {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--acogra-border);
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(6, 37, 74, .1);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    margin: 0 auto 12px;
    max-width: 900px;
    padding: 12px;
    position: relative;
    z-index: 2;
}

.acogra-locator__query {
    border: 1px solid #b8c5cf !important;
    border-radius: 7px !important;
    font-size: 16px !important;
    min-height: 48px;
    padding: 10px 14px !important;
    width: 100%;
}

.acogra-locator__search button,
.acogra-location-card__actions button,
.acogra-location-card__actions a,
.acogra-locator__choices button {
    align-items: center;
    border: 0;
    border-radius: 7px;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.2;
    min-height: 42px;
    padding: 10px 15px;
    text-decoration: none !important;
}

.acogra-locator__search-button { background: var(--acogra-blue) !important; color: #fff !important; }
.acogra-locator__locate-button { background: var(--acogra-navy) !important; color: #fff !important; }
.acogra-locator__search button:hover,
.acogra-locator__search button:focus-visible { filter: brightness(.92); }

.acogra-locator__status { font-size: 14px; margin: 10px 0 16px; text-align: center; }
.acogra-locator__choices { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; margin: 0 auto 12px; max-width: 900px; }
.acogra-locator__choices[hidden] { display: none; }
.acogra-locator__choices span { font-size: 13px; font-weight: 700; }
.acogra-locator__choices button { background: #e8f2f8; color: var(--acogra-navy); min-height: 34px; padding: 7px 10px; }

.acogra-locator__layout {
    border: 1px solid var(--acogra-border);
    border-radius: 14px;
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, .85fr);
    min-height: 610px;
    overflow: hidden;
}

.acogra-locator__map { min-height: 610px; width: 100%; }
.acogra-locator__results { background: var(--acogra-soft); border-left: 1px solid var(--acogra-border); max-height: 610px; overflow: auto; }
.acogra-locator__summary { background: var(--acogra-navy); color: #fff; font-size: 15px; font-weight: 800; padding: 14px 18px; position: sticky; top: 0; z-index: 2; }
.acogra-locator__list { display: grid; gap: 10px; padding: 12px; }

.acogra-location-card {
    background: #fff;
    border: 1px solid var(--acogra-border);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(6, 37, 74, .05);
    padding: 14px;
}

.acogra-location-card--nearest { border: 2px solid var(--acogra-green); box-shadow: 0 7px 20px rgba(105, 169, 56, .18); }
.acogra-location-card__heading { align-items: start; display: flex; gap: 12px; justify-content: space-between; }
.acogra-location-card h3 { color: var(--acogra-navy); font-size: 17px; line-height: 1.25; margin: 0; }
.acogra-location-card__distance { color: var(--acogra-blue); flex: 0 0 auto; font-size: 14px; font-weight: 800; }
.acogra-location-card__badge { background: #e9f5df; border-radius: 999px; color: #376f16; display: inline-block; font-size: 12px; font-weight: 800; margin-top: 7px; padding: 4px 9px; }
.acogra-location-card__address { font-size: 14px; line-height: 1.45; margin: 9px 0 5px; }
.acogra-location-card__note { color: #65727d; display: block; font-size: 11px; margin-bottom: 8px; }
.acogra-location-card__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.acogra-location-card__actions button,
.acogra-location-card__actions a { background: #e9f1f6; color: var(--acogra-navy) !important; min-height: 34px; padding: 7px 10px; }
.acogra-location-card__actions button:hover,
.acogra-location-card__actions a:hover { background: #d8e8f1; }
.acogra-location-card__route { background: var(--acogra-blue) !important; color: #fff !important; }
.acogra-location-card__whatsapp { background: #e3f7e9 !important; color: #157b37 !important; }

.acogra-map-marker {
    align-items: center;
    background: var(--acogra-blue);
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 2px 7px rgba(0,0,0,.36);
    color: #fff;
    display: flex;
    font-size: 11px;
    font-weight: 900;
    height: 31px;
    justify-content: center;
    padding: 0;
    transition: opacity .2s, transform .2s;
    width: 31px;
}

.acogra-map-marker--powerplant { background: var(--acogra-green); }
.acogra-map-marker--muted { opacity: .22; }
.acogra-map-marker--nearest { opacity: 1; transform: scale(1.35); z-index: 3; }
.acogra-origin-marker { background: #e3292f; border: 4px solid #fff; border-radius: 50%; box-shadow: 0 2px 9px rgba(0,0,0,.4); height: 22px; width: 22px; }
.acogra-popup { min-width: 190px; }
.acogra-popup strong { color: var(--acogra-navy); display: block; font-size: 15px; }
.acogra-popup p { font-size: 13px; line-height: 1.4; margin: 6px 0 9px; }
.acogra-popup a { display: inline-block; font-size: 12px; font-weight: 800; margin-right: 10px; }
.maplibregl-popup-content { border-radius: 9px; padding: 14px; }

@media (max-width: 900px) {
    .acogra-locator__layout { grid-template-columns: 1fr; }
    .acogra-locator__map { min-height: 470px; }
    .acogra-locator__results { border-left: 0; border-top: 1px solid var(--acogra-border); max-height: none; }
    .acogra-locator__summary { position: static; }
}

@media (max-width: 620px) {
    .acogra-locator { margin-top: 14px; }
    .acogra-locator__search { grid-template-columns: 1fr 1fr; }
    .acogra-locator__query { grid-column: 1 / -1; }
    .acogra-locator__search button { padding-left: 8px; padding-right: 8px; }
    .acogra-locator__map { min-height: 420px; }
    .acogra-locator__list { padding: 9px; }
    .acogra-location-card { padding: 12px; }
}
