/* FPWA Membership Directory Styles */

:root {
    --fpwa-navy:   #00276C;
    --fpwa-blue:   #0058A8;
    --fpwa-gold:   #FBAA25;
    --fpwa-light:  #F7F6F6;
    --fpwa-border: #E9F0F8;
    --fpwa-gray:   #5D5D5D;
    --radius:      100px;
}

.fpwa-directory {
    font-family: "Open Sans", sans-serif;
    max-width: 1100px;
    margin: 0 auto;
    color: var(--fpwa-navy);
}

.fpwa-intro {
    color: var(--fpwa-gray);
    font-size: .975rem;
    line-height: 1.65;
    margin-bottom: 1.5rem;
}

/* ── Controls ── */
.fpwa-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-start;
    padding: 1rem 1.25rem;
    background: var(--fpwa-light);
    border: 1px solid var(--fpwa-border);
    border-radius: 10px;
    margin-bottom: .75rem;
}

.fpwa-search-wrap { flex: 1 1 220px; }
.fpwa-search-wrap input[type="search"] {
    width: 100%;
    padding: .6rem 1rem;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .875rem;
    color: var(--fpwa-navy);
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .2s;
}
.fpwa-search-wrap input[type="search"]:focus { border-color: var(--fpwa-blue); }

.fpwa-filter-wrap { flex: 0 1 200px; }
.fpwa-filter-wrap select {
    width: 100%;
    padding: .6rem 1rem;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .875rem;
    color: var(--fpwa-navy);
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .2s;
}
.fpwa-filter-wrap select:focus { border-color: var(--fpwa-blue); }

/* Service multi-select */
.fpwa-filter-service-wrap {
    flex: 0 1 260px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.fpwa-filter-label {
    font-size: .72rem;
    color: var(--fpwa-gray);
    display: block;
}
.fpwa-svc-search {
    width: 100%;
    padding: .45rem .9rem;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .8rem;
    color: var(--fpwa-navy);
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .2s;
}
.fpwa-svc-search:focus { border-color: var(--fpwa-blue); }
.fpwa-filter-service-wrap select {
    width: 100%;
    padding: .4rem .8rem;
    border: 1.5px solid var(--fpwa-border);
    border-radius: 10px;
    font-family: inherit;
    font-size: .8rem;
    color: var(--fpwa-navy);
    background: #fff;
    outline: none;
    height: 90px;
    box-sizing: border-box;
    transition: border-color .2s;
}
.fpwa-filter-service-wrap select:focus { border-color: var(--fpwa-blue); }

/* View toggle */
.fpwa-view-toggle {
    display: flex;
    gap: 6px;
    margin-left: auto;
    align-self: center;
}
.fpwa-view-btn {
    padding: .5rem 1.2rem;
    border: 2px solid var(--fpwa-navy);
    border-radius: var(--radius);
    background: #fff;
    color: var(--fpwa-navy);
    font-family: inherit;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.fpwa-view-btn.active,
.fpwa-view-btn:hover { background: var(--fpwa-navy); color: #fff; }

/* Count + clear button row */
#fpwa-count { display: none; }
.fpwa-count-bar {
    font-size: .82rem;
    color: var(--fpwa-gray);
    margin: 0 0 .65rem;
}
.fpwa-clear-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 12px;
    background: none;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .8rem;
    color: var(--fpwa-gray);
    cursor: pointer;
    transition: border-color .15s, color .15s;
    vertical-align: middle;
    margin-left: 10px;
}
.fpwa-clear-btn:hover { border-color: var(--fpwa-blue); color: var(--fpwa-blue); }

.fpwa-hidden { display: none !important; }
.fpwa-loading { padding: 40px; text-align: center; color: var(--fpwa-gray); }

/* ── Table ── */
.fpwa-tbl-wrap {
    border: 1px solid var(--fpwa-border);
    border-radius: 10px;
    overflow: hidden;
}
.fpwa-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}
.fpwa-table thead th {
    background: var(--fpwa-navy);
    color: #fff;
    padding: .75rem 1rem;
    text-align: left;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.fpwa-table thead th.sortable { cursor: pointer; user-select: none; }
.fpwa-table thead th.sortable::after  { content: " ↕"; opacity: .4; font-size: .7rem; }
.fpwa-table thead th.sort-asc::after  { content: " ↑"; opacity: 1; }
.fpwa-table thead th.sort-desc::after { content: " ↓"; opacity: 1; }
.fpwa-table tbody tr:nth-child(even) { background: var(--fpwa-light); }
.fpwa-table tbody tr:hover { background: #EEF5FF; }
.fpwa-table td {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--fpwa-border);
    vertical-align: top;
}
.fpwa-table tbody tr:last-child td { border-bottom: none; }
.fpwa-org-name a { color: var(--fpwa-blue); text-decoration: none; font-weight: 600; }
.fpwa-org-name a:hover { text-decoration: underline; }
.fpwa-org-address { font-size: .78rem; color: var(--fpwa-gray); margin-top: 3px; }
.fpwa-service-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.fpwa-tag {
    padding: 2px 9px;
    background: #EEF5FF;
    color: var(--fpwa-blue);
    border: 1px solid var(--fpwa-border);
    border-radius: var(--radius);
    font-size: .7rem;
    font-weight: 600;
    white-space: nowrap;
}
.fpwa-tag-more { background: #fff; color: var(--fpwa-gray); border-color: #D5D5D5; }
.fpwa-no-results { text-align: center; padding: 3rem; color: var(--fpwa-gray); }

/* ── Pagination ── */
.fpwa-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: .75rem;
    font-size: .82rem;
    color: var(--fpwa-gray);
}
.fpwa-page-sizes { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fpwa-page-sizes span { font-size: .8rem; }
.fpwa-ps-btn {
    padding: 4px 12px;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--fpwa-navy);
    font-family: inherit;
    font-size: .8rem;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.fpwa-ps-btn.active { background: var(--fpwa-navy); color: #fff; border-color: var(--fpwa-navy); }
.fpwa-ps-btn:hover:not(.active) { border-color: var(--fpwa-blue); color: var(--fpwa-blue); }
.fpwa-page-nav { display: flex; align-items: center; gap: 8px; }
.fpwa-page-info { font-size: .82rem; white-space: nowrap; }
.fpwa-nav-btn {
    padding: 4px 14px;
    border: 1.5px solid var(--fpwa-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--fpwa-navy);
    font-family: inherit;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.fpwa-nav-btn:hover:not(:disabled) { background: var(--fpwa-navy); color: #fff; border-color: var(--fpwa-navy); }
.fpwa-nav-btn:disabled { opacity: .35; cursor: default; }

/* ── Map ── */
#fpwa-map {
    height: 480px;
    border-radius: 10px;
    border: 1px solid var(--fpwa-border);
    z-index: 0;
}
.fpwa-map-popup { font-size: 13px; line-height: 1.5; max-width: 240px; }
.fpwa-map-popup strong { display: block; color: var(--fpwa-navy); font-size: 14px; margin-bottom: 4px; }
.fpwa-map-popup a { color: var(--fpwa-blue); }
.fpwa-popup-services { margin-top: 5px; font-size: 12px; color: var(--fpwa-gray); }

/* ── Responsive ── */
@media (max-width: 640px) {
    .fpwa-controls { flex-direction: column; }
    .fpwa-filter-wrap,
    .fpwa-search-wrap,
    .fpwa-filter-service-wrap { flex: 1 1 100%; }
    .fpwa-view-toggle { margin-left: 0; width: 100%; }
    .fpwa-view-btn { flex: 1; text-align: center; }
    .fpwa-table thead th:nth-child(3),
    .fpwa-table td:nth-child(3),
    .fpwa-table thead th:nth-child(4),
    .fpwa-table td:nth-child(4) { display: none; }
    .fpwa-pager { flex-direction: column; align-items: flex-start; }
    #fpwa-map { height: 360px; }
}
