:root {
    --dark-dipf-blue: #1c3246;
    --dipf-gray: #8b8b8b;
    --blue-1: #6da5d5;
    --blue-2: #5c8db6;
    --blue-3: #4d7396;
    --blue-4: #97bbdf;
    --blue-5: #c6d1ea;
    --blue-6: #dfe7f4;
    --blue-7: #eff3f9;
    --red-1: #d40050;
    --red-2: #b90045;
    --red-3: #950338;
    --red-4: #de5e73;
    --red-5: #e99aa0;
    --red-6: #f5cfd0;
    --gray-1: #666666;
    --gray-2: #b4b2b2;
    --gray-3: #f2f2f2;
    --gray-4: #d7d7d7;
    --gray-5: #d9d9d9;
    --turquoise-1: #01362d;
    --turquoise-2: #024a3d;
    --turquoise-3: #027e68;
    --turquoise-4: #11967e;
    --turquoise-5: #14a48a;
    --turquoise-6: #20c2a5;
    --turquoise-7: #4ccfb7;
    --turquoise-8: #79dbc9;
    --turquoise-9: #a6e7db;
    --turquoise-10: #d2f3ed;
    --turquoise-11: #e9f9f6;
    --black: #000000;
    --white: #ffffff;
    --red: #d60111;
    --green: #048647;
    --font-size-h1: 2.5rem;
    --font-size-h1-mobile: 1.875rem;
    --font-size-h2: 1.875rem;
    --font-size-h2-mobile: 1.5rem;
    --font-size-h3: 1.5rem;
    --font-size-h3-mobile: 1.25rem;
    --font-size-h4: 1.25rem;
    --font-size-h4-mobile: 1.125rem;
    --font-size-h5: 1rem;
    --font-size-h5-mobile: 1rem;
    --font-size-h6: 0.875rem;
    --font-size-h6-mobile: 0.875rem;
    --font-size-text: 1rem;
    --font-size-text-small: 0.75rem;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

input[type='checkbox']:focus,
.page-link:focus {
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
    border: 2px solid var(--turquoise-5);
    outline-width: 2px;
}

button:focus {
    outline: 2px solid var(--black);
}

h1 {
    font-size: var(--font-size-h1);
    font-weight: 700;
    line-height: 3.375rem;
}

h2 {
    font-size: var(--font-size-h2);
    font-weight: 700;
    line-height: 2.5rem;
}

h3 {
    font-size: var(--font-size-h3);
    font-weight: 600;
    line-height: 2.125rem;
}

h4 {
    font-size: var(--font-size-h4);
    font-weight: 600;
    line-height: 1.875rem;
}

h5 {
    font-size: var(--font-size-h5);
    font-weight: 700;
    line-height: 1.625rem;
}

h6 {
    font-size: var(--font-size-h6);
    font-weight: 400;
    line-height: 1.25rem;
}

p,
a {
    font-size: var(--font-size-text);
}

a {
    text-decoration: none;
    color: var(--turquoise-4);
    font-weight: 700;
}

.gray {
    color: var(--gray-1);
}

.turquoise {
    color: var(--turquoise-4);
}

.bold {
    font-weight: 700;
}

@media screen and (max-width: 992px) {
    main {
        padding: 0 1rem;
    }
}

@media screen and (max-width: 767px) {
    h1 {
        font-size: var(--font-size-h1-mobile);
        line-height: 2.5rem;
    }

    h2 {
        font-size: var(--font-size-h2-mobile);
        line-height: 2.125rem;
    }

    h3 {
        font-size: var(--font-size-h3-mobile);
        line-height: 1.875;
    }

    h4 {
        font-size: var(--font-size-h4-mobile);
        line-height: 1.75rem;
    }

    h5 {
        font-size: var(--font-size-h5-mobile);
    }

    h6 {
        font-size: var(--font-size-h6-mobile);
    }
}

.container {
    max-width: 54.5rem;
}

.btn-show-more {
    background: none;
    border: none;
    color: var(--turquoise-4);
    font-size: var(--font-size-text);
    font-weight: 700;
    padding: 1rem;
    text-align: right;
    display: flex;
}

.chevron-down.up {
    transform: rotate(180deg);
}

.chevron-down.right {
    transform: rotate(270deg);
}

a {
    color: var(--turquoise-4);
}

.disabled {
    color: var(--gray-2);
    pointer-events: none;
}

/* Introtext */

.introtext {
    max-width: 54.5rem;
    margin: 4.375rem auto 1.875rem auto;
}

.introtext h1 {
    margin-bottom: 2.5rem;
}

/* search box */

.search-box {
    max-width: 54.5rem;
    margin: 0 auto;
}

.search-box label.search-input,
.search-box label.search-input input {
    width: 100%;
    max-width: 26.25rem;
}

.search-box label.search-input {
    position: relative;
    font-size: var(--font-size-text-small);
    margin-bottom: 3.5rem;
}

.search-box label.search-input input {
    margin-top: 0.5rem;
    padding: 1rem 1.5rem;
    border: 1px solid var(--black);
    border-radius: 2px;
}

.search-box label.search-input input:focus-visible {
    outline: 1px solid var(--turquoise-4);
}

.search-box label.search-input .lupe-icon {
    position: absolute;
    right: 1.5rem;
    top: 55%;
    width: 1rem;
    height: 1rem;
}

.results .accordion .accordion-item {
    border-bottom: 1px solid var(--dipf-gray);
}

.results .accordion .accordion-item:first-child {
    border-top: 1px solid var(--dipf-gray);
}

.results .accordion .accordion-button {
    padding-left: 0;
    padding-right: 0;
    font-size: var(--font-size-h3)
}

.results .accordion .accordion-header:focus,
.results .accordion .accordion-button:focus,
.results .accordion .accordion-button:not(.collapsed),
.results .accordion .accordion-button:not(.collapsed):focus,
.results .accordion .accordion-button:not(.collapsed):focus-visible {
    background-color: transparent;
    box-shadow: none;
    border: none;
}

.results .accordion .accordion-button:not(.collapsed) {
    color: var(--black);
}

.results .accordion .accordion-body {
    background-color: var(--gray-3);
    padding: 2.25rem 0;
}

.results .accordion .accordion-body .list-group-flush {
    border-bottom: 0.375rem solid var(--white);
    padding: 1.375rem 2.25rem;
    margin-bottom: 0;
}

.results .accordion .accordion-body .list-group-flush.link-list {
    padding-left: 0;
    padding-right: 0;
}

.results .accordion .accordion-body .list-group-flush:last-child {
    border-bottom: none;
}

.results .accordion .accordion-body .list-group-item {
    line-height: 2rem;
    display: flex;
}

.results .accordion .accordion-body .list-group-item:hover {
    text-decoration: underline;
    text-decoration-color: var(--turquoise-4);
}

.results .accordion .accordion-body .list-group-item a {
    margin-left: 0.625rem;
}

.results .accordion .accordion-body .list-group-item a::before {
    content: '';
    background-image: url('../icons/chevron-right-fdz.svg');
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 1rem;
    left: 0.625rem;
    width: 10px;
    height: 16px;
}

.results .result-description {
    display: flex;
    margin-bottom: 1rem;
}

.results .result-description p {
    margin-bottom: 1rem;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.results .result-description p.full-text {
    -webkit-line-clamp: unset;
}

.results .link-list .list-group {
    margin-bottom: 1.75rem;
}

.results .link-list .list-group .list-group-item {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid var(--gray-1);
}

.results .link-list .list-group .list-group-item:first-child {
    border-top: 1px solid var(--gray-1);
}

.results .link-list .list-group .list-group-item a,
.results .link-list .list-group .list-group-item a:visited {
    color: var(--turquoise-4);
    font-weight: 700;
}

ol.accordion-body {
    list-style: none;
    counter-reset: steps;
}

ol.accordion-body > li {
    counter-increment: steps;
}
ol.accordion-body > li .header {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.625rem;
}

ol.accordion-body > li .header .number {
    flex-shrink: 0;
    background: var(--turquoise-4);
    color: white;
    border-radius: 2px;
    width: 2.25rem;
    height: 2rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-top: 0rem;
    font-size: var(--font-size-h3);
    font-weight: 600;
    line-height: 2.125rem;
}

/* Daten nach Schlagwort */
.row.schlagwort,
.row.thema {
    max-width: 100%;
    padding: 0 1.5rem 2rem;
    margin: 0;
    justify-content: space-evenly;
    flex-wrap: wrap;
}

.row.schlagwort .space,
.row.thema .space {
    width: 1rem;
    padding: 0;
}

.row.schlagwort a,
.row.thema a {
    width: auto;
    padding: 0;
    min-width: 1.5rem;
    text-transform: uppercase;
}

.table-container {
    padding: 1rem 2rem;
}

.table-container > .row  {
    border-bottom: 1px solid var(--white);
    padding: 2rem 0;
}

.table-container > .row:last-child {
    border-bottom: 0;
}

.table-container .row .row a {
    color: var(--black);
    font-weight: 400;
}

.table-container .row .row a:hover {
    text-decoration: underline;
}

.table-container .row .index {
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 34px; /* 141.667% */
    letter-spacing: -0.15rem;
}

.table-container .row:not(:nth-child(-n + 5)) {
    display: none;
}

@media screen and (max-width: 575px) {

    .row.schlagwort a,
    .row.thema a {
        padding: 0.25rem;
        min-width: 2rem;
    }
}
