/* Nearby municipalities on locality pages: match the town cards without
   loading town-only layout rules or changing the shared portal shell. */
#page .portal-locality-page .locality-nearby-section > .section-title {
    margin-bottom: 10px !important;
}

.portal-locality-page .locality-nearby-description {
    margin: 0 0 20px;
    color: var(--locality-muted);
    font-size: 14px;
    line-height: 1.6;
    text-align: start;
    overflow-wrap: anywhere !important;
}

.portal-locality-page .locality-nearby-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.portal-locality-page .locality-nearby-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: center;
    align-items: center;
    gap: 6px 14px;
    min-width: 0;
    min-height: 78px;
    padding: 15px;
    border: 1px solid var(--locality-line);
    border-radius: 11px;
    background: var(--locality-soft);
    color: var(--locality-ink);
    font-size: 15px;
    line-height: 1.5;
    text-align: start;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
}

.portal-locality-page .locality-nearby-name {
    grid-column: 1;
    min-width: 0;
    font-weight: 500;
    overflow-wrap: anywhere !important;
}

.portal-locality-page .locality-nearby-link .portal-distance {
    grid-column: 1;
    justify-content: flex-start;
    min-width: 0;
    margin: 0;
    color: var(--locality-muted);
    font-size: 13px;
    line-height: 1.5;
}

.portal-locality-page .locality-nearby-link::after {
    content: "";
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 7px;
    height: 7px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
}

.portal-locality-page .locality-nearby-link:hover {
    border-color: #92b0c4;
    background: #fff;
    color: var(--locality-ink);
    text-decoration: none;
}

.portal-locality-page .locality-nearby-actions {
    margin-top: 16px;
    min-width: 0;
}

.portal-locality-page .locality-nearby-province-link {
    display: block;
    min-width: 0;
    min-height: 48px;
    padding: 12px 16px;
    border: 1px solid var(--locality-line);
    border-radius: 11px;
    background: #fff;
    color: var(--locality-ink);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere !important;
}

.portal-locality-page .locality-nearby-province-link:hover {
    border-color: #92b0c4;
    background: var(--locality-soft);
    color: var(--locality-ink);
    text-decoration: none;
}

.portal-locality-page .locality-nearby-link:focus-visible,
.portal-locality-page .locality-nearby-province-link:focus-visible {
    outline: 3px solid #1479b8;
    outline-offset: 3px;
}

.portal-locality-page .locality-nearby-section .portal-whole-word {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

@media (min-width: 768px) {
    .portal-locality-page .locality-nearby-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .portal-locality-page .locality-nearby-link { padding: 16px; }
}

@media (min-width: 1200px) {
    .portal-locality-page .locality-nearby-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .portal-locality-page .locality-nearby-grid:has(> .locality-nearby-link:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Sparse category results should use the available space rather than leave
   an otherwise empty row alongside a single destination. */
.portal-locality-page .locality-nearby-grid:has(> .locality-nearby-link:only-child) {
    grid-template-columns: minmax(0, 1fr);
}
