.listen-container {
    width: min(calc(100% - 40px), 1200px);
    margin: clamp(var(--space-l), 5vw, 64px) auto;
    padding: clamp(20px, 3vw, 38px);
    color: var(--txtcol);
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--design) 5%, transparent), transparent 38%),
        color-mix(in srgb, var(--tbl-main) 96%, transparent);
    border: 1px solid var(--hairline-strong);
    border-top: 3px solid var(--design);
}

.listen-title {
    margin: 0 0 var(--space-l);
    padding: 0 0 var(--space-m);
    color: var(--paper);
    border-bottom: 1px solid var(--hairline-strong);
    font-family: var(--akzenttext);
    font-size: clamp(38px, 5vw, var(--txtxxl));
    font-weight: 300;
    line-height: 0.95;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.listen-title::before {
    content: "REGISTER / ";
    display: block;
    margin-bottom: var(--space-xs);
    color: var(--design-light);
    font-family: var(--fliesstext);
    font-size: var(--txtxxsmall);
    font-weight: 600;
    letter-spacing: 0.16em;
}

.listen-subtitle {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin: 34px 0 14px;
    color: var(--paper);
    font-family: var(--akzenttext);
    font-size: var(--txtl);
    font-weight: 400;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.listen-subtitle::before {
    content: "§";
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: var(--design-light);
    background: color-mix(in srgb, var(--design) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--design) 42%, transparent);
    font-size: var(--txtsmall);
}

.listen-subtitle::after {
    content: "";
    height: 1px;
    background: var(--hairline-strong);
}

.listen-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    margin: var(--txtxl) 0 30px;
    padding: 1px;
    background: var(--hairline-strong);
}

.listen-link {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 7px;
    padding: var(--btn-padding);
    color: var(--paper-muted);
    background: var(--bg-deep);
    border: 0;
    border-bottom: 3px solid transparent;
    font-size: var(--txtxsmall);
    font-weight: var(--btn-font);
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.listen-link:hover,
.listen-link:focus-visible {
    color: var(--paper);
    background: color-mix(in srgb, var(--design) 9%, var(--tbl-main));
    border-bottom-color: var(--design);
    outline: 0;
}

.listen-link.active {
    color: var(--bg-deep);
    background: var(--signal);
    border-bottom-color: var(--signal-light);
}

.listen-link.external::after {
    content: "↗";
    color: currentColor;
    font-family: var(--akzenttext);
    font-size: 0.9em;
}

.listen-container .tborder {
    width: 100%;
    margin: 0 0 24px;
    overflow: hidden;
    color: var(--txtcol);
    background: color-mix(in srgb, var(--tbl-main) 97%, transparent);
    border: 1px solid var(--hairline-strong);
    border-radius: 0;
    box-shadow: none;
}

.listen-container .tborder.list-bildung > .thead,
.listen-container .tborder.list-namen > .thead {
    display: grid;
    align-items: center;
    min-height: 46px;
    padding: 10px 15px;
    color: var(--design-light);
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--design) 12%, transparent), transparent 44%),
        var(--bg-deep);
    border: 0;
    border-left: 3px solid var(--design);
    border-bottom: 1px solid var(--hairline-strong);
    font-size: var(--txtxxsmall);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.listen-container .trow,
.listen-container .trow1,
.listen-container .trow2 {
    padding: 9px 14px;
    color: var(--txtcol);
    background: var(--tbl-main);
    border: 0;
    border-top: 1px solid var(--hairline);
}

.listen-container .trow:nth-child(even),
.listen-container .trow1:nth-child(even),
.listen-container .trow2:nth-child(even) {
    background: color-mix(in srgb, var(--tbl-main) 92%, var(--bg-deep));
}

.listen-container .trow:hover,
.listen-container .trow1:hover,
.listen-container .trow2:hover {
    background: color-mix(in srgb, var(--design) 7%, var(--tbl-main));
}

.listen-container .trow.empty {
    min-height: 90px;
    align-content: center;
    color: var(--txtcol-soft);
    font-style: italic;
    text-align: center;
}

.listen-container .grid {
    display: grid;
    gap: 1px;
    align-items: stretch;
    background: var(--hairline);
}

.listen-container .grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.listen-container .grid.grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.listen-container .grid > * {
    min-width: 0;
}

.country-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 30px;
    padding: 1px;
    background: var(--hairline-strong);
}

.country-card {
    min-width: 0;
    padding: 0;
    color: var(--txtcol);
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--design) 5%, transparent), transparent 42%),
        var(--tbl-main);
    border: 0;
    border-top: 3px solid var(--design);
}

.country-card > :not(.city-name) {
    margin-inline: 16px;
}

.city-name {
    margin: 0;
    padding: 14px 16px;
    color: var(--paper);
    background: var(--bg-deep);
    border-bottom: 1px solid var(--hairline-strong);
    font-family: var(--akzenttext);
    font-size: var(--txtm);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.city-name::before {
    content: "LOCATION / ";
    color: var(--design-light);
    font-family: var(--fliesstext);
    font-size: var(--txtxxsmall);
    font-weight: 600;
    letter-spacing: 0.12em;
}

.city-users {
    padding: var(--space-xs) 0 14px;
}

.city-users .trow,
.city-users .trow1,
.city-users .trow2 {
    padding: var(--space-xs) var(--space-s);
    font-size: var(--txtsmall);
}

.firstname.value,
.lastname.value,
.faceclaims.value,
.patrges.value,
.bildung.value,
.jahrgang.value {
    color: var(--paper-muted);
    font-weight: 500;
}

.user {
    color: var(--paper);
    font-weight: 500;
}

.user a {
    color: inherit;
    text-decoration: none;
}

.user a:hover,
.user a:focus-visible {
    color: var(--design-light);
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: 0;
}

.firstname.value s {
    color: var(--akzent-red-soft);
}

@media (max-width: 1000px) {
    .country-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .listen-container .grid.grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .listen-container {
        width: min(calc(100% - 20px), 1200px);
        padding: var(--space-m);
    }

    .country-grid,
    .listen-container .grid.two,
    .listen-container .grid.grid-3 {
        grid-template-columns: 1fr;
    }

    .listen-nav {
        flex-direction: column;
    }

    .listen-link {
        width: 100%;
        justify-content: space-between;
    }

    .listen-subtitle {
        grid-template-columns: 32px minmax(0, 1fr);
    }

    .listen-subtitle::after {
        grid-column: 1 / -1;
    }
}
