/* Layout only: colours, backgrounds, borders and hover styles belong to the theme. */
.lhisv-public { margin: 1.5em 0; font-family: inherit; }
.lhisv-public .lhisv-table-wrap { max-width: 100%; overflow-x: auto; }
.lhisv-public .lhisv-table { width: 100%; }
.lhisv-public .lhisv-table th, .lhisv-public .lhisv-table td { padding: .8em 1em; text-align: left; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
.lhisv-public .lhisv-note { font-size: .92em; }
.lhisv-public .lhisv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.lhisv-public .lhisv-mobile-label { display: none; }
/* Stable desktop widths: long notes increase row height, not column width. */
@media (min-width: 651px) {
    .lhisv-public .lhisv-table { table-layout: fixed; }
    .lhisv-public .lhisv-table thead th:nth-child(1) { width: 22%; }
    .lhisv-public .lhisv-table thead th:nth-child(2) { width: 20%; }
    .lhisv-public .lhisv-table thead th:nth-child(3) { width: 25%; }
    .lhisv-public .lhisv-table thead th:nth-child(4) { width: 33%; }
    .lhisv-public .lhisv-table td a,
    .lhisv-public .lhisv-visit-note { white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 650px) {
    .lhisv-public .lhisv-table-wrap { overflow: visible; }
    .lhisv-public .lhisv-table,
    .lhisv-public .lhisv-table tbody,
    .lhisv-public .lhisv-table tbody tr,
    .lhisv-public .lhisv-table tbody td {
        display: block;
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
    /* Visually hide column headers while retaining them for screen readers. */
    .lhisv-public .lhisv-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .lhisv-public .lhisv-table tbody tr {
        margin: 0 0 1em;
        padding: .8em 1em;
        border-radius: 8px;
    }
    .lhisv-public .lhisv-table tbody td {
        padding: .4em 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .lhisv-public .lhisv-table tbody td.lhisv-person { font-size: 1.1em; }
    .lhisv-public .lhisv-table td a { white-space: normal; overflow-wrap: anywhere; }
    .lhisv-public .lhisv-mobile-label {
        display: block;
        font-size: .78em;
        font-weight: 600;
        text-transform: uppercase;
        margin-bottom: .2em;
    }
}
.lhisv-public .lhisv-visit-note { margin-top: .4em; font-size: .92em; }
