/* =========================================
   APFacilitator™ TABLE
   ========================================= */

.apfr-registry {
    width: 100%;
    margin: 0 auto;
    font-family: Arial, Helvetica, sans-serif;
}


/* =========================================
   TITLE
   ========================================= */

.apfr-title {
    margin: 0 0 28px;
    font-size: 32px;
    line-height: 1.2;
    font-weight: 700;
    color: #222;
}

.apfr-title sup {
    font-size: 50%;
    vertical-align: super;
}


/* =========================================
   TABLE
   ========================================= */

.apfr-table {
    width: 100%;
    margin: 0;
    padding: 0;

    border-collapse: collapse;
    border-spacing: 0;

    table-layout: fixed;

    background: #ffffff;
    border: 1px solid #e1e4e8;
}


/* =========================================
   TABLE HEADER
   ========================================= */

.apfr-table thead {
    background: #a00000;
}

.apfr-table thead tr {
    background: #a00000;
}

.apfr-table thead th {
    padding: 22px 40px;

    background: #a00000;
    color: #ffffff;

    border: none;

    text-align: left;
    vertical-align: middle;

    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
}


/* Column width */

.apfr-table thead th:first-child,
.apfr-table tbody td:first-child {
    width: 40%;
}

.apfr-table thead th:nth-child(2),
.apfr-table tbody td:nth-child(2) {
    width: 60%;
	text-align: center;
}


/* =========================================
   TABLE BODY
   ========================================= */

.apfr-table tbody tr {
    border-bottom: 1px solid #dfe2e6;
}


/* White row */

.apfr-table tbody tr:nth-child(odd) {
    background: #ffffff;
}


/* Gray row */

.apfr-table tbody tr:nth-child(even) {
    background: #f5f5f5;
}


/* Cells */

.apfr-table tbody td {
    padding: 26px 40px;

    border: none;

    vertical-align: middle;

    font-size: 18px;
    line-height: 1.5;
}


/* =========================================
   FACILITATOR NAME
   ========================================= */

.apfr-table tbody td:first-child {
    color: #a00000;
    font-weight: 700;
}


/* =========================================
   COMPLETION DATE
   ========================================= */

.apfr-table tbody td:nth-child(2) {
    color: #687386;
    font-weight: 400;
}


/* =========================================
   APFacilitator™ WORD MARK
   ========================================= */

.apfr-table em,
.apfr-title em {
    font-style: italic;
}

.apfr-table sup {
    font-size: 50%;
    line-height: 0;
    vertical-align: super;
}


/* =========================================
   OPTIONAL HOVER
   ========================================= */

.apfr-table tbody tr {
    transition: background-color 0.15s ease;
}

.apfr-table tbody tr:hover {
    background: #faf3f3;
}


/* =========================================
   MOBILE
   ========================================= */

@media screen and (max-width: 768px) {

    .apfr-title {
        margin-bottom: 20px;
        font-size: 26px;
    }

    .apfr-table {
        table-layout: auto;
    }

    .apfr-table thead th {
        padding: 16px 15px;

        font-size: 14px;
        line-height: 1.4;
    }

    .apfr-table tbody td {
        padding: 18px 15px;

        font-size: 15px;
        line-height: 1.4;
    }

    .apfr-table thead th:first-child,
    .apfr-table tbody td:first-child {
        width: 42%;
    }

    .apfr-table thead th:nth-child(2),
    .apfr-table tbody td:nth-child(2) {
        width: 58%;
		text-align: center;
    }
}


/* =========================================
   SMALL MOBILE
   ========================================= */

@media screen and (max-width: 480px) {

    .apfr-title {
        font-size: 23px;
    }

    .apfr-table thead th {
        padding: 14px 10px;
        font-size: 13px;
    }

    .apfr-table tbody td {
        padding: 16px 10px;
        font-size: 14px;
    }
}


/* =========================================
   SEARCH / FILTER
   ========================================= */

.apfr-filters {
    display: flex;
    align-items: stretch;
    gap: 12px;

    margin: 0 0 25px;
}


/* Search field */

.apfr-search-field {
    flex: 1;
}

.apfr-search-field input {
    width: 100%;
    height: 48px;

    padding: 0 16px;

    background: #ffffff;
    color: #333333;

    border: 1px solid #d5d9df;
    border-radius: 0;

    font-size: 16px;

    outline: none;

    box-sizing: border-box;
}

.apfr-search-field input:focus {
    border-color: #a00000;
}


/* Year */

.apfr-year-field {
    width: 230px;
}

.apfr-year-field select {
    width: 100%;
    height: 48px;

    padding: 0 40px 0 16px;

    background-color: #ffffff;
    color: #555555;

    border: 1px solid #d5d9df;
    border-radius: 0;

    font-size: 16px;

    cursor: pointer;

    box-sizing: border-box;
}


/* Search button */

.apfr-search-button {
    height: 48px;

    padding: 0 28px;

    border: 1px solid #a00000;
    border-radius: 0;

    background: #a00000;
    color: #ffffff;

    font-size: 16px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background-color 0.15s ease,
        border-color 0.15s ease;
}

.apfr-search-button:hover {
    background: #820000;
    border-color: #820000;
}


/* Reset */

.apfr-reset-button {
    height: 48px;

    padding: 0 20px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #d5d9df;

    background: #ffffff;
    color: #555555;

    font-size: 15px;
    text-decoration: none;

    box-sizing: border-box;
}

.apfr-reset-button:hover {
    border-color: #a00000;
    color: #a00000;
}


/* No results */

.apfr-no-results {
    padding: 35px;

    background: #f5f5f5;

    text-align: center;

    color: #687386;

    font-size: 16px;
}


/* =========================================
   SEARCH / FILTER - MOBILE
   ========================================= */

@media screen and (max-width: 768px) {

    .apfr-filters {
        flex-wrap: wrap;
        gap: 10px;
    }

    .apfr-search-field {
        flex: 0 0 100%;
        width: 100%;
    }

    .apfr-year-field {
        flex: 1;
        width: auto;
    }

    .apfr-search-button {
        padding-left: 20px;
        padding-right: 20px;
    }
}


@media screen and (max-width: 480px) {

    .apfr-year-field {
        flex: 0 0 100%;
        width: 100%;
    }

    .apfr-search-button {
        flex: 1;
    }

    .apfr-reset-button {
        flex: 1;
    }
}

/* =========================================
   APFacilitator™ MODERN PAGINATION
   ========================================= */

.apfr-pagination {
    width: 100%;
    margin: 32px 0 0;
    display: flex;
    justify-content: center;
}


/* Reset WordPress / Theme styles */
.apfr-pagination ul.page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 4px !important;

    margin: 0 !important;
    padding: 6px !important;

    list-style: none !important;

    background: #ffffff !important;
}


.apfr-pagination ul.page-numbers > li {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;

    border: 0 !important;
    background: transparent !important;
}


/* =========================================
   ALL PAGE BUTTONS
   ========================================= */

.apfr-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    border: 0 !important;
    border-bottom: 0 !important;
    border-radius: 10px !important;

    outline: none !important;

    background: transparent !important;

    color: #5e6673 !important;

    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1 !important;

    text-align: center !important;
    text-decoration: none !important;

    box-shadow: none !important;

    cursor: pointer;

    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease !important;
}


/* Remove theme pseudo styles */
.apfr-pagination .page-numbers::before,
.apfr-pagination .page-numbers::after {
    display: none !important;
    content: none !important;
}


/* =========================================
   NORMAL PAGE HOVER
   ========================================= */

.apfr-pagination a.page-numbers:hover {
    background: #f5f5f6 !important;
    color: #a50000 !important;

    border: 0 !important;
    border-bottom: 0 !important;

    text-decoration: none !important;

    transform: translateY(-1px);
}


/* =========================================
   CURRENT PAGE
   ========================================= */

.apfr-pagination .page-numbers.current {
    background: #a50000 !important;
    color: #ffffff !important;

    border: 0 !important;

    box-shadow:
        0 5px 14px rgba(165, 0, 0, 0.20) !important;

    cursor: default;
}


/* =========================================
   PREVIOUS / NEXT
   ========================================= */

.apfr-pagination .page-numbers.prev,
.apfr-pagination .page-numbers.next {
    background: #f5f5f6 !important;

    color: #626b78 !important;

    font-size: 18px !important;
    font-weight: 500 !important;
}

.apfr-pagination .page-numbers.prev:hover,
.apfr-pagination .page-numbers.next:hover {
    background: #ececee !important;
    color: #a50000 !important;

    transform: none;
}


/* =========================================
   DOTS (...)
   ========================================= */

.apfr-pagination .page-numbers.dots {
    width: 30px !important;
    min-width: 30px !important;

    background: transparent !important;

    color: #9ca2ab !important;

    box-shadow: none !important;

    cursor: default;
}


/* =========================================
   FOCUS / ACCESSIBILITY
   ========================================= */

.apfr-pagination a.page-numbers:focus {
    outline: 2px solid rgba(165, 0, 0, 0.20) !important;
    outline-offset: 2px !important;

    text-decoration: none !important;
}


/* =========================================
   MOBILE
   ========================================= */

@media screen and (max-width: 480px) {

    .apfr-pagination {
        margin-top: 24px;
    }

    .apfr-pagination ul.page-numbers {
        padding: 5px !important;
        gap: 2px !important;

        border-radius: 12px !important;
    }

    .apfr-pagination .page-numbers {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;

        border-radius: 9px !important;

        font-size: 14px !important;
    }

    .apfr-pagination .page-numbers.prev,
    .apfr-pagination .page-numbers.next {
        font-size: 17px !important;
    }
}