/*
    Block: Partner Listing
    Note: Selectors must start with .block-partner-listing
*/

@layer blocks {
    .block-partner-listing {
        --transition-dur: 180ms;
        --transition-func: ease-in-out;
    }

    .block-partner-listing .filters-wrapper {
        padding-bottom: 1.5625rem;
        margin-bottom: 6.25rem;
        border-bottom: 1px solid rgb(from var(--c-blue) r g b / .15);
    }

    .block-partner-listing .location {
        display: -ms-grid;
        display: grid;
        grid-template-columns: repeat(12,1fr);
        gap: 1.25rem;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
    }

    .block-partner-listing .location-filters {
        gap: .125rem;
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .block-partner-listing .location-filters li {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .block-partner-listing .location-filter {
        padding: .875rem 1.125rem;
        background: none;
        border: 1px solid transparent;
        border-radius: 100vw;
        color: var(--c-body-grey);
        cursor: pointer;
        -webkit-transition: var(--transition-dur) var(--transition-func);
        transition: var(--transition-dur) var(--transition-func);
        -webkit-transition-property: color, border-color, background-color;
        transition-property: color, border-color, background-color;
    }

    .block-partner-listing .location-filter::before {
        content: none;
    }

    .block-partner-listing .location-filter:is(:hover, :focus) {
        color: var(--c-dark-blue);
    }

    .block-partner-listing .location-filter.selected {
        background-color: rgb(from var(--c-blue) r g b / .05);
        border-color: rgb(from var(--c-blue) r g b / .15);
        color: var(--c-dark-blue);
    }

    .block-partner-listing .locations-wrapper {
        gap: 3.125rem;
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .block-partner-listing .location:not(:last-child) {
        padding-bottom: 3.125rem;
        border-bottom: 1px solid rgb(from var(--c-blue) r g b / .15);
    }

    .block-partner-listing .location-name {
        -ms-grid-column-span: 5;
        grid-column: span 5;
        padding-top: 1.875rem;
        margin: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .block-partner-listing .partners-wrapper {
        -ms-grid-column-span: 7;
        grid-column: span 7;
    }

    .block-partner-listing .partner-flag {
        width: 1.625rem;
        height: 1.625rem;
    }

    .block-partner-listing .ac-title {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 1.25rem;
    }

    .block-partner-listing .accordion .ac-trigger {
        padding: 1.875rem 2rem;
    }

    .block-partner-listing .bs-icon {
        width: 0.8125rem;
    }

    .block-partner-listing .partner-content {
        padding: 1px 2rem 1.875rem;
        gap: 1.875rem;
    }

    .block-partner-listing .accordion {
        border: 1px solid transparent;
        -webkit-transition: var(--transition-dur) var(--transition-func);
        transition: var(--transition-dur) var(--transition-func);
        -webkit-transition-property: border-color, background-color;
        transition-property: border-color, background-color;
    }

    .block-partner-listing .accordion:has(.ac-state:checked) {
        background-color: rgb(from var(--c-blue) r g b / .05);
        border-color: rgb(from var(--c-blue) r g b / .15);
    }

    .block-partner-listing .partner__address {
        margin: 0;
        padding-right: 1.875rem;
    }

    .block-partner-listing .partner-contact {
        padding-left: 2.5rem;
        padding-block: 0.46875rem;
        border-left: 1px solid rgb(from var(--c-blue) r g b / .15);
        gap: 0.9375rem;
    }

    .block-partner-listing .partner-contact a {
        text-decoration: none;
        white-space: nowrap;
    }

    .block-partner-listing .partner__person {
        margin: 0;
        padding-top: 0.3125rem;
    }

    .block-partner-listing .location-filter {
        white-space: nowrap;
    }

    @media screen and (width <= 1050px) {
        .block-partner-listing .location-name {
            -ms-grid-column-span: 4;
            grid-column: span 4;
        }
        .block-partner-listing .partners-wrapper {
            -ms-grid-column-span: 8;
            grid-column: span 8;
        }
        .block-partner-listing .location-filters {
            overflow-x: scroll;
            scrollbar-width: none;
            -ms-overflow-style: none; 
            margin-right: calc(-1 * var(--page-padding, 1rem));
        }
        .block-partner-listing .location-filters::-webkit-scrollbar {
            display: none;
          }
    }

    @media screen and (width <= 920px) {
        .block-partner-listing .location-name {
            -ms-grid-column-span: 3;
            grid-column: span 3;
        }
        .block-partner-listing .partners-wrapper {
            -ms-grid-column-span: 9;
            grid-column: span 9;
        }
        .block-partner-listing .locations-wrapper {
            gap: 2.5rem;
        }
        .block-partner-listing .filters-wrapper {
            padding-bottom: 1.25rem;
            margin-bottom: 4.4375rem;
        }
        .block-partner-listing .location:not(:last-child) {
            padding-bottom: 2.5rem;
            gap: 1.875rem;
        }
    }

    @media screen and (width <= 768px) {
        .block-partner-listing .location {
            grid-template-columns: 1fr;
        }
        .block-partner-listing .accordion .ac-trigger {
            padding: 1.375rem 1.25rem;
        }
        .block-partner-listing .partner-content {
            padding: 0 1.25rem 1.625rem;
            gap: 0;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }
        .block-partner-listing .partner__address {
            padding: 0;
        }
        .block-partner-listing .partner-contact {
            padding-block: 0;
            padding-top: 1.25rem;
            margin-top: 1.25rem;
            border-top: 1px solid rgb(from var(--c-blue) r g b / .15);
            border-left: 0;
            gap: 0.75rem;
            padding-left: 0;
        }
        .block-partner-listing .partner__person {
            padding-top: 0.1875rem;
        }
        .block-partner-listing .location-name {
            padding-top: 0;
        }
    }
}
