@keyframes loadingspinner
{
    from
    {
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    
    to
    {
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

:root
{
    --mob-top-offset: 0px;
}

.icon,
.material-symbols-rounded
{
    font-family: 'Material Symbols Rounded';
    font-weight: normal;
    font-style: normal;
    font-size: 1.2em;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    font-variation-settings: 'FILL' 1;
    -moz-font-feature-settings: 'liga';
    -moz-osx-font-smoothing: grayscale;
}

.bookstores[v-cloak] > *
{
    display: none;
}

.table-ctrls
{
    margin-bottom: 1em;
}

.table-ctrls .ctrl
{
    display: flex;
    padding: 1em 0;
    line-height: 1;
    align-items: baseline;
    gap: 0.25em;
}

.table-ctrls .ctrl label
{
    min-width: 4em;
    line-height: 1.4;
    color: #666666;
    -webkit-transform: translateY(-0.08em);
    -moz-transform: translateY(-0.08em);
    transform: translateY(-0.08em);
}

.table-ctrls .ctrl > div
{
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: inherit;
}

.table-ctrls .ctrl .input-box
{
    padding: 0.35em 0.5em;
    background: #F0F0F0;
    border: 1px solid #767D7B;
    border-radius: 0.2em;
}

.table-ctrls .ctrl .input-box.focus,
.table-ctrls .ctrl .input-box:focus,
.table-ctrls .ctrl .input-box:hover
{
    background: #FFFFFF;
    border-color: #117A97;
    outline: none;
}

.table-ctrls .tabs a
{
    display: flex;
    padding: 0.5em 0.8em;
    border-radius: 1em;
    font-size: 1.2em;
    font-weight: bold;
    text-decoration: none;
    outline: none !important;
    color: #117A97;
    align-items: center;
    gap: 0.5em;
}

.table-ctrls .tabs a:hover
{
    background: #DEDEDE;
    color: #117A97;
}

.table-ctrls .tabs a.current
{
    background: #CBCE73 !important;
    color: #444444 !important;
}

.table-ctrls .tabs .ctr
{
    padding: 0.2em 0.25em;
    background: #A0A0A0;
    border-radius: 0.24em;
    font-size: 80%;
    line-height: 1;
    color: #FFFFFF;
}

.table-ctrls .tabs .current .ctr
{
    background: rgba(255, 255, 255, 0.5);
    color: #666666;
}

.table-ctrls .ctrl.sort
{
    display: none;
}

.table a
{
    text-decoration: underline;
    color: #117A97;
}

.table .mob-show
{
    display: none;
}

.table .badge
{
    margin-left: 0.6em;
    padding: 0.2em 0.65em;
    background: #DBEBF0;
    border-radius: 0.32em;
    box-shadow: 0 0 0 1px #FFFFFF;
    font-size: 0.8em;
    font-weight: normal;
    line-height: 1;
    color: #117A97;
}

.table .table-head
{
    position: -webkit-sticky;
    position: sticky;
    top: var(--mob-top-offset);
    background: #117A97;
    font-size: 1.2em;
    font-weight: bold;
    color: #FFFFFF;
    z-index: 1;
}

.table .table-row
{
    display: grid;
    position: relative;
    grid-template-columns: 1fr minmax(200px, 20%) minmax(100px, 10%);
}

.table .table-row:nth-child(even)
{
    background: #CBE6EF;
}

.table .table-cell
{
    padding: 0.5em 1em;
}

.table .sort-toggle
{
    display: inline-flex;
    cursor: pointer;
    align-items: center;
    gap: 0.12em;
}

.table .sort-toggle:hover .label,
.table .sort-toggle:focus .label
{
    text-decoration: underline;
}

.table .sort-toggle .icon
{
    display: none;
    font-size: 1.32em;
}

.table .sort-toggle.sorted .icon
{
    display: inline-block;
}

.table .sort-toggle.sorted.asc .icon
{
    transform: rotate(-180deg);
}

.table .mob-info
{
    font-size: 0.8em;
    font-style: italic;
    font-weight: normal;
    color: #333333;
}

.bookstore-partners .overlay
{
    display: none;
    position: relative;
    min-width: min(500px, 80vw);
    background: #FFFFFF;
    border-radius: 0.25em;
    font-size: 1.24em;
    line-height: 1.64;
}

.bookstore-partners .overlay.loading
{
    width: 100px;
    min-width: 0;
    height: 100px;
}

.bookstore-partners .overlay > *
{
    padding: 1em;
}

.bookstore-partners .overlay.loading > *
{
    display: none;
}

.bookstore-partners .overlay .spinner,
.bookstores .loading .spinner
{
    display: none;
    width: 100%;
    height: 100%;
    padding: 0;
    align-items: center;
    justify-content: center;
}

.bookstore-partners .overlay.loading .spinner,
.bookstores .loading .spinner
{
    display: flex;
}

.bookstore-partners .overlay .spinner .icon,
.bookstores .loading .spinner .icon
{
    font-size: 3em;
    font-weight: bold;
    color: #117A97;
    -webkit-animation: loadingspinner linear 2s infinite;
    -moz-animation: loadingspinner linear 2s infinite;
    -ms-animation: loadingspinner linear 2s infinite;
    -o-animation: loadingspinner linear 2s infinite;
    animation: loadingspinner linear 2s infinite;
}

.bookstores > .loading
{
    display: flex;
    padding: 2em;
    font-size: 1.2em;
    color: #666666;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1em;
}

.bookstore-partners .overlay .overlay-close
{
    float: right;
    position: sticky;
    top: 0;
    right: 0;
    margin-top: -2.5em;
    padding: 0.5em;
    background: #FFFFFF;
    border: 0;
    line-height: 0;
    color: #117A97;
    z-index: 1;
}

.bookstore-partners .overlay .overlay-close .icon
{
    font-size: 1.64em;
    font-weight: bold;
}

.bookstore-partners .overlay figure
{
    min-width: 380px;
    text-align: center;
}

.bookstore-partners .overlay figure img
{
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 200px;
}

.bookstore-partners .overlay address
{
    font-weight: bold;
    font-style: italic;
    color: #444444;
}

.bookstore-partners .overlay .info-wrap
{
    width: fit-content;
    max-width: 100%;
    margin: auto;
}

.bookstore-partners .overlay .info
{
    display: flex;
    margin-bottom: 0.5em;
    align-items: start;
    gap: 0.5em;
}

.bookstore-partners .overlay .info.centered
{
    justify-content: center;
}

.bookstore-partners .overlay .info.heading
{
    margin-bottom: 0.8em;
    font-size: 1.4em;
}

.bookstore-partners .overlay .info-wrap > .info:last-child
{
    margin-top: 1.5em;
    margin-bottom: 0;
}

.bookstore-partners .overlay .info .nowrap
{
    white-space: nowrap;
}

.bookstore-partners .overlay .info .icon
{
    margin-top: 0.2em;
    font-size: 1.24em;
    color: #636363;
    font-variation-settings: 'FILL' 0;
}

.bookstore-partners .overlay .socials a
{
    display: inline-block;
    padding: 0.42em;
    background: #117A97;
    border-radius: 100%;
    line-height: 0;
}

.bookstore-partners .overlay .socials a.facebook:hover
{
    background: #0866FF;
}

.bookstore-partners .overlay .socials a.x:hover
{
    background: #000000;
}

.bookstore-partners .overlay .socials a.instagram:hover
{
    background: #833ab4;
    background: linear-gradient(to right, #833ab4,#fd1d1d,#fcb045);
}

.bookstore-partners .overlay .socials a.pinterest:hover
{
    background: #E60023;
}

.bookstore-partners .overlay .socials a.youtube:hover
{
    background: #FF0000;
}

.bookstore-partners .overlay .socials a.tiktok:hover
{
    background: #121212;
}

.bookstore-partners .overlay .socials a *
{
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    fill: #FFFFFF;
}

.bookstore-partners .fancybox-overlay
{
    background: rgba(30, 30, 30, 0.3);
}

.bookstore-partners .fancybox-skin,
.bookstore-partners .fancybox-opened .fancybox-skin
{
    background: #FFFFFF;
    border: 3px solid #B1B263;
    border-radius: 0;
    box-shadow: 0 0.25em 15px rgba(0, 0, 0, 0.1);
}

#bookstorePartnersApp
{
    container-type: inline-size;
    container-name: tableContainer;
}

@container tableContainer (max-width: 650px)
{
    .table-ctrls .ctrl.sort
    {
        display: flex;
    }

    .table .mob-show
    {
        display: block;
    }

    .table .mob-hide
    {
        display: none;
    }

    .table .badge
    {
        font-size: 0.64em;
    }

    .table .table-row
    {
        display: grid;
        grid-template-columns: 1fr;
    }

    .table .table-body .table-cell
    {
        font-size: 1.2em;
    }
}

@media screen and (max-width: 650px)
{
    .bookstore-partners .overlay
    {
        min-width: min(150px, 80vw);
    }

    .bookstore-partners .overlay figure
    {
        min-width: 80vw;
    }
}
