@font-face {
    font-family: SourceSansPro-Regular;
    src: url('/user/discovery/assets/fonts/SourceSansPro-Regular.ttf');
    font-weight: 400;
}

@font-face {
    font-family: SourceSansPro-SemiBold;
    src: url('/user/discovery/assets/fonts/SourceSansPro-SemiBold.ttf');
    font-weight: 600;
}

@font-face {
    font-family: SourceSansPro-Bold;
    src: url('/user/discovery/assets/fonts/SourceSansPro-Bold.ttf');
    font-weight: 700;
}

/*
  1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
    box-sizing: border-box;
}
/*
  2. Remove default margin
*/
* {
    margin: 0;
}
/*
  3. Allow percentage-based heights in the application
*/
/*
  Typographic tweaks!
  4. Add accessible line-height
  5. Improve text rendering
*/
body {
    min-height: 100vh;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
/*
  6. Improve media defaults
*/
img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}
/*
  7. Remove built-in form typography styles
*/
input, button, textarea, select {
    font: inherit;
}
/*
  8. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
    word-break: break-word;
    overflow-wrap: break-word;
}
/*
  9. Create a root stacking context
*/
#root, #__next {
    isolation: isolate;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.25;
}

html, body {
    overflow-x: hidden;
    max-width: 100%;
    margin: 0;
    font-family: 'SourceSansPro-Regular', Arial, sans-serif;
}

body.search {
    background-color: #FFFFFF;
}

.container {
    margin: 0 auto;
    padding: 0 1.5rem;
}

.container-base {
    max-width: 75rem;
}

.container-sm {
    max-width: 55rem;
}


h1 {
    font-family: 'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 2rem;
    margin-bottom: 0.625rem;
}

h2 {
    font-family: 'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 1.5rem;
    margin-top: 2rem;
    margin-bottom: 0.5rem;
}

h3 {
    font-family: 'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 1.25rem;
    margin-top: 1.5rem;
    margin-bottom: 0.375rem;
}

h4 {
    font-family: 'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 1rem;
    margin-top: 1.25rem;
    margin-bottom: 0.25rem;
}

@media (min-width: 480px) {
    h1 {
        font-size: 2.5rem;
        margin-bottom: 0.75rem;
    }

    h2 {
        font-size: 2rem;
        margin-top: 2.5rem;
        margin-bottom: 0.625rem;
    }

    h3 {
        font-size: 1.5rem;
        margin-top: 2rem;
        margin-bottom: 0.5rem;
    }

    h4 {
        font-size: 1.25rem;
        margin-top: 1.5rem;
        margin-bottom: 0.375rem;
    }
}

p {
    font-family: 'SourceSansPro-Regular', Arial, sans-serif;
    font-size: 1.125rem;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}


.hidden {
    display: none!important;
}


.wave {
    margin: -1px;
    position: relative;
    top: -1px;
    height: 1rem;
}

@media (min-width: 480px) {
    .wave {
        height: 2rem;
    }
}

@media (min-width: 763px) {
    .wave {
        height: 3rem;
    }
}

.iserv-logo {
    display: inline-block;
    margin-top: 1.5rem;
}

.iserv-logo img {
    height: 25px;
    width: 70px;
}

hr {
    border: none;
    height: 2px;
    margin: 0.5rem 0;
}

.lightgrey-hr {
    background-color: #e6e6e6;
}

.lightviolet-hr {
    background-color: #493A92;
}

.main-title {
    margin-top: 2rem;
}


.search-interface-section {
    display: flow-root;
    background-color: white;
}

.sub-section {
    margin: 3rem 0;
}

.sub-section:first-child {
    margin-top: 0;
}

.search-interface-section h1,
.search-interface-section h2,
.search-interface-section h3 {
    color: #00467D;
}

.search-interface-section p {
    color: #595959;
}

#searchInputWrapper {
    position: relative;
}

#searchInput {
    display: block;
    width: 100%;
    line-height: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    background-color: #f6f6f6;
    padding: 0 2.5rem;
    border: none;
    color: #595959;

}

#searchInput::-webkit-search-decoration,
#searchInput::-webkit-search-cancel-button,
#searchInput::-webkit-search-results-button,
#searchInput::-webkit-search-results-decoration {
    display: none;
}

#searchIcon {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #595959;
}

#searchClearButton {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #E1693D;
    cursor: pointer;
}

#hitsContainer {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.results-hint {
    border-radius: 0.5rem;
    padding: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'SourceSansPro-Semibold', Arial, sans-serif;
    font-size: 0.875em;
}

.no-results-hint {
    color: #E1693D;
    background-color: #FCEEE9;
}

.many-results-hint {
    color: #00467D;
    background-color: #e5f4ff;
}

.hit {
    display: flex;
    width: 100%;
    min-height: 3rem;
    text-decoration: none;
    cursor: pointer;
    padding: 0.25rem 0;
}

.hit:hover {
    border-radius: 0.5rem;
    background-color: #f6f6f6;
}

.hit .icon {
    flex: none;
    width: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999999;
}

.hit .icon.location-icon {
    display: none;
}

@media (min-width: 480px) {
    .hit .icon.location-icon {
        display: flex;
    }
}

.hit .middle {
    flex-grow: 1;
}

.hit span {
    display: block;
}

.hit span.schoolname {
    color: black;
    font-family: 'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 1rem;
}

.hit span.city {
    color: #999999;
    font-family: 'SourceSansPro-Regular', Arial, sans-serif;
    font-size: 1rem;
    margin-top: 0.25rem;
}

.ais-Highlight-highlighted {
    background-color: #b2ddff;
}

.help-grid {
    margin-top: 1rem;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr; /* Nur eine Spalte */
}

@media (min-width: 763px) {
    .help-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.help-tile {
    display: block;
    border: 2px solid #e6e6e6;
    border-radius: 0.5rem;
    padding: 0.75rem;
    text-decoration: none;
}

.help-tile:hover {
    background-color: #f6f6f6 ;
}

.help-tile .title {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    align-items: center;
}

.help-tile .title img {
    width: 2rem;
    height: auto;
}

.help-tile .title span {
    font-family:  'SourceSansPro-Bold', Arial, sans-serif;
    font-size: 1.125rem;
    color: #00467D;
    font-weight: 700;
}

.help-tile:hover .title span {
    text-decoration: underline;
}

.help-tile p {
    font-size: 1rem;
}

.footer-section {
    display: flow-root;
    background-color: #322864;
    color: white;
    padding-bottom: 1.5rem;
}

.seo-grid {
    margin-top: 3rem;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr; /* Nur eine Spalte */
}

@media (min-width: 763px) {
    .seo-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.seo-tile h1:first-child, h2:first-child, h3:first-child {
    margin-top: 0;
}

.footer-bottom {
    display: flex;
    padding: 2rem 0;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    color: white;
}

@media (min-width: 763px) {
    .footer-bottom {
        padding: 1rem 0;
        flex-direction: row;
        gap: 3rem;
    }
}

.footer-bottom .gruppe-logo {
    width: 8rem;
    height: auto;
}

.footer-bottom a {
    color: white;
}

#privacyButton {
    padding: 1.5rem;
    z-index: 10;
    left: 0;
    bottom: 0;
    position: fixed;
    cursor: pointer;
}

#privacyButton div {
    width: 3rem;
    height: 3rem;
    background-color: #00467D;
    color: white;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

#privacyButton div svg {
    width: 2rem;
    height: 2rem;
}




.redirect-outer-wrapper {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
}

.redirect-inner-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

@keyframes flyInOut {
    0% {
        opacity: 1;
        transform: translateX(0);
    }
    45% {
        opacity: 0;
        transform: translateX(50px);
    }
    50% {
        opacity: 0;
        transform: translateX(-100px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.redirect-text {
    font-size: 1.2rem;
    color: #00447c;
    font-family: 'SourceSansPro-SemiBold', Arial, sans-serif;
}

.redirect-text-changing {
    animation: flyInOut 0.6s forwards;
}

@keyframes iserv-loading-indicator {
    0% {
        transform: translateY(8px);
    }
    100% {
        transform: translateY(0);
    }
    0%,
    50% {
        background-color: #00467D;
    }
    75% {
        background-color: hsl(207, 100%, 70%);
    }
    100% {
        background-color: #FAB900;
    }
}
.iserv-loading-indicator {
    display: flex;
    flex-wrap: nowrap;
}
.iserv-loading-indicator > div {
    border-radius: 50%;
    width: 16px;
    height: 16px;
    margin: 0 2px;
    display: inline-block;
}
.iserv-loading-indicator .c1 {
    animation: iserv-loading-indicator 600ms ease 0ms infinite alternate;
}
.iserv-loading-indicator .c2 {
    animation: iserv-loading-indicator 600ms ease 200ms infinite alternate;
}
.iserv-loading-indicator .c3 {
    animation: iserv-loading-indicator 600ms ease 400ms infinite alternate;
}