: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(--blue-2);
    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;
}

@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: 71.5rem;
}

.input-group label {
    height: 100%;
    display: flex;
}

input.form-check-input {
    display: flex;
    align-items: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    margin: 0 0.625rem 0 0;
    border: 1px solid var(--black);
    border-radius: 2px;
}

input.form-check-input:checked {
    background-color: var(--white);
    background-size: 1rem 1rem;
    border: 2px solid var(--blue-2);
    background-image: url("../icons/check.svg");
    background-repeat: no-repeat;
}

label:has(input.form-check-input:checked) {
    color: var(--blue-2);
}

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

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

.pagination {
    margin-bottom: 0;
    margin-right: 2.5rem;
}

.pagination.pagination-bottom {
    margin-right: 0;
    margin-top: 2rem;
}

.pagination .page-item:not(:last-child) {
    margin-right: 0.625rem;
}

.pagination .page-item .page-link {
    border: none;
}

.pagination .page-item .page-link.input {
    width: 4rem;
    height: 3.625rem;
    border: 1px solid var(--gray-2);
    border-radius: 2px;
    text-align: center;
    color: var(--black);
}

.pagination .page-item.previous .page-link,
.pagination .page-item.next .page-link {
    background-color: var(--blue-6);
    border: none;
    border-radius: 0;
    width: 2.625rem;
    height: 3.625rem;
}

.pagination .pagination-fwd {
    transform: rotate(270deg);
}

/* Introtext */

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

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

@media screen and (max-width: 767px) {
    .search-box .input-group label {
        margin-bottom: 1rem;
    }
}

/* search box */

.search-box {
    background-color: var(--gray-3);
    padding: 1.75rem 1.5rem 2.5rem;
}

.search-box .row {
    align-items: end;
}

.search-box .row:first-child {
    margin-bottom: 1.5rem;
}

.search-box .row .col-12 {
    position: relative;
}

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

.search-box label.search-input {
    position: relative;
}

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

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

.search-box .search-button-desktop {
    padding: 1.125rem 1.5rem;
    background-color: var(--blue-2);
    border: none;
    border-radius: 3px;
    color: var(--white);
    font-weight: 700;
    font-size: var(--font-size-text);
}

.search-box .search-button-mobile {
    position: absolute;
    right: 0.75rem;
    top: 1.5rem;
    display: block;
    width: 3.625rem;
    height: 3.625rem;
    border: 1px solid var(--black);
    border-left: none;
    border-radius: 2px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    background-color: var(--blue-2);
}

.search-box .search-button-mobile::before {
    content: "";
    background-image: url('../icons/search-white.svg');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    width: 1rem;
    height: 1rem;
    bottom: 1.125rem;
    right: 1.125rem;
}

.search-box .hinweis {
    color: var(--blue-2);
    font-weight: 700;
    border: none;
    background: none;
}

.search-box fieldset label {
    margin-right: 2rem;
}

@media (max-width: 767px) {
    .search-box .search-input input {
        border-right: none;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
}

/* results display options*/

.results .container {
    padding: 0;
}

.results .row.results-display-options {
    margin: 2.25rem 0 1.75rem;
}

.results .row.results-display-options>* {
    padding: 0;
}

.results .row.results-display-options .col-2 {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.results .row.results-display-options .col-2:last-child {
    padding-right: 0;
}

.results .row.results-display-options label {
    font-size: 0.75rem;
    line-height: 1.625rem;
    color: var(--black);
}

.results .row.results-display-options select {
    width: 100%;
    max-width: 100%;
    padding: 1rem 1.5rem;
    border: 1px solid var(--gray-2);
    border-radius: 2px;
    font-size: var(--font-size-text);
    background-color: var(--white);
    appearance: none;
    background-image: url('../icons/chevron-down-black.svg');
    background-repeat: no-repeat;
    background-size: 1rem;
    background-position: right 1.5rem center;
}

.results .row.results-display-options .treffer {
    max-width: 8rem;
    margin-right: 1rem;
}

.results .row.results-display-options .sortieren {
    max-width: 11.875rem;
}

@media screen and (max-width: 767px) {
    .results .row.results-display-options .dropdowns {
        margin-bottom: 2.25rem;
    }

    .results .row.results-display-options .pagination {
        margin-right: 0;
    }
}

/* results filter */
.results .row .results-filter .selected-filters button {
    background: none;
    border: none;
    color: var(--black);
    font-size: var(--font-size-text);
    line-height: 1.625rem;
    padding: 0.75rem;
}

.results .row .results-filter .selected-filters button.remove-filters {
    font-weight: 700;
}

.results .row .results-filter .selected-filters button.btn-selected-filter {
    background-color: var(--blue-7);
    margin-bottom: 2px;
    border-radius: 2px;
}

.results .row .results-filter .selected-filters button.btn-selected-filter img {
    margin: 0 0.75rem;
}

.results .row .results-filter .filter-heading {
    background-color: var(--blue-2);
    color: var(--white);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.results .row .results-filter .filter-heading h4 {
    margin-bottom: 0;
}

.results .row .results-filter .filter-heading .filter-icon {
    margin-right: 1.25rem;
}

.results .accordion.accordion-flush {
    margin-bottom: 2.5rem;
    border-bottom: 1px solid var(--gray-2);
}

.results .accordion .accordion-button.collapsed,
.results .accordion .accordion-button:not(.collapsed) {
    background: none;
    color: var(--black);
    font-weight: 700;
}

.results .accordion .accordion-button.collapsed:focus,
.results .accordion .accordion-button:not(.collapsed):focus {
    border: none;
    box-shadow: none;
}

.results .accordion .accordion-button.collapsed:focus-visible,
.results .accordion .accordion-button:not(.collapsed):focus-visible {
    border: 2px solid var(--blue-2);
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}

.results .accordion .accordion-body {
    padding: 0;
    background-color: var(--blue-7);
}

.results .accordion .accordion-body .input-group,
.modal-dialog .input-group {
    display: flex;
    flex-direction: column;
}

.results .accordion .accordion-body .filter-option,
.modal-dialog .filter-option {
    width: 100%;
    padding: 1rem;
    border-bottom: 1px solid var(--gray-2);
}

.results .accordion .accordion-body .filter-option:first-child {
    border-top: 1px solid var(--gray-2);
}

.modal-dialog .filter-option:first-child {
    margin-top: 2rem;
}

.results .share-results .share-btn {
    color: var(--dark-dipf-blue);
    background-color: var(--blue-6);
    padding: 1rem;
}

.results .share-results .share-icon {
    margin-right: 1rem;
}

/* results  */
ol {
    list-style: none;
    counter-reset: steps;
}

ol li {
    counter-increment: steps;
}

ol>li h4::before {
    content: counter(steps);
    background: var(--blue-2);
    color: white;
    border-radius: 2px;
    width: 2.25rem;
    height: 2rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-right: 0.625rem;
}

.results .result.list-item {
    background-color: var(--gray-3);
    padding: 1.875rem 1.25rem 2.875rem 2.5rem;
    margin-bottom: 0.25rem;
}

.results .result.list-item h4 {
    color: var(--blue-3);
}

.results .result.list-item h5,
.results .result.list-item h6 {
    color: var(--gray-1);
}

.results .list-group-horizontal {
    border-radius: 0;
    flex-wrap: wrap;
    height: 3rem;
    overflow: hidden;
    margin-bottom: 1.25rem;
    justify-content: flex-start;
}

.results .list-group-horizontal.show-all-categories {
    overflow: visible;
    height: auto;
}

.results .list-group-horizontal .list-group-item {
    border: none;
    border-radius: 0;
    background-color: var(--blue-5);
    margin-right: 0.5rem;
    margin-bottom: 0.5rem;
    padding: 0.5rem;
}

.results .list-group-horizontal .list-group-item:last-child {
    margin-right: 0;
}

.results .list-group-horizontal .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: 0;
}

.results .list-group-horizontal .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: 0;
}

.results .list-group-horizontal .list-group-item a {
    color: var(--black);
    font-size: var(--font-size-text-small);
}

.results .result .result-categories,
.results .result .result-description {
    display: flex;
}

.results .result .result-categories {
    justify-content: space-between;
    align-items: baseline;
}

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

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

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

/* Modal */
.modal-dialog.filters-modal {
    max-width: 54.375rem;
    border: none;
}

.modal-dialog.filters-modal .modal-content {
    border-radius: 0;
    padding: 2.75rem 5.5rem 5.5rem;
}

.modal-dialog .modal-header {
    border-radius: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border: none;
}

.modal-dialog .row {
    width: 100%;
}

.modal-backdrop {
    background-color: var(--blue-3);
}

@media screen and (max-width: 575px) {
    .modal-dialog .modal-content {
        padding: 2rem;
    }
}
