.responsive-table .responsive-table__background-image {
    position: absolute;
    inset: 0;
    z-index: -1;
    max-width: 1920px;
    margin: 0 auto;
}

.responsive-table .responsive-table__background-image picture {
    width: 100%;
    height: 100%;
}

.responsive-table .responsive-table__background-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom;
}

.responsive-table .responsive-table__wrapper {
    position: relative;
}

.table--responsive {
    width: 100%;
    position: relative;
}

.table--responsive th,
.table--responsive td {
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    word-break: break-word;
    overflow-wrap: break-word;
    min-width: 0;
}

.table--responsive table,
.table--responsive tbody,
.table--responsive tr,
.table--responsive th,
.table--responsive td {
    display: block;
}

.table--responsive thead {
    display: none;
}

.table--responsive tbody tr {
    margin-top: 4px;
}

.table--responsive tbody th {
    padding: 0.75rem;
    font-weight: 700;
}

.table--responsive tbody td {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.75rem;
}

.table--responsive tbody td[data-label]::before {
    content: attr(data-label);
    font-weight: 700;
    text-align: left;
}

.table--responsive thead th img,
.table--responsive tbody th img,
.table--responsive tbody td img {
    width: 100%;
    max-width: 120px;
    height: auto;
    display: block;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .table,
    .table--responsive thead th,
    .table--responsive tbody th,
    .table--responsive tbody td,
    .table--responsive tbody td::before {
        text-align: left !important;
    }
}

@media (min-width: 768px) {
    .table--responsive thead th img,
    .table--responsive tbody th img,
    .table--responsive tbody td img {
        width: 100%;
        max-width: 200px;
    }

    .table--responsive tbody td {
        flex-direction: row;
        align-items: center;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .table--responsive tbody td {
        justify-content: flex-end;
        flex-wrap: nowrap;
        text-align: right !important;
    }

    .table--responsive tbody td[data-label]::before {
        width: auto !important;
        max-width: 50% !important;
        flex: 1 1 50%;
        margin-right: auto;
        text-align: left;
        overflow-wrap: break-word;
        word-break: break-word;
    }
}

@media (max-width: 991.98px) {
    .table,
    .table--responsive thead th,
    .table--responsive tbody th,
    .table--responsive tbody td {
        width: 100% !important;
    }

    .table--responsive tbody th {
        text-align: left !important;
    }
}


@media (min-width: 992px) {
    .table--responsive table {
        table-layout: fixed;
        border-collapse: separate;
        border-spacing: 4px;
        display: table;
    }

    .table--responsive thead {
        display: table-header-group;
    }

    .table--responsive tbody {
        display: table-row-group;
    }

    .table--responsive tr {
        display: table-row;
    }

    .table--responsive th,
    .table--responsive td {
        display: table-cell;
        min-height: 72px;
        height: 72px;
        vertical-align: middle;
    }

    .table--responsive thead:has(> :last-child:nth-child(2)) tr:first-child {
        display: table-row;
    }

    .table--responsive thead th {
        padding: 0.75rem 1rem;
        font-weight: 700;
    }

    .table--responsive tbody th {
        padding: 0.75rem 1rem;
    }

    .table--responsive tbody th:has(img) {
        background-color: transparent;
    }

    .table--responsive :is(th, td):is([style*="text-align:center"], [style*="text-align: center"]) img {
        margin-left: auto;
        margin-right: auto;
    }

    .table--responsive tbody td {
        display: table-cell;
        padding: 0.75rem 1rem;
    }

    .table--responsive tbody td[data-label]::before {
        content: none;
    }
}
