@import url('https://fonts.googleapis.com/css2?family=Bitter:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Work+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Math&display=swap');
@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@600&display=swap');


:root {
    --nav-height-base: 56px;
    --nav-height-js: var(--nav-height-base);
    /*--nav-height-plus: 0px;*/
    --main-container-width: min(90vw, 1200px);
    --nav-font-size: 19px;
}
:root,
*[data-element-color-mode="light"] {
    --background-color: #EFEFEF;
    --foreground-color: white;
    --font-color: black;
    --profile-icon-filter: none;
    --link-standard-color: #4066c4;
    --link-highlight-color: #457DFB;
    --link-button-standard-color: var(--link-standard-color);
    --logo-background: linear-gradient(71deg, rgba(0,65,180,1) 0%, rgba(66,116,255,1) 100%);
    --dropdown-standard-color: #f1f1f1;
    --dropdown-highlight-color: #ddd;
    --dropdown-link-color: black;
    --slight-shadow-border: none;
    --substitution-table-border-color: #7d7d7d;
    --collapsible-background-color: #AAA;
    --collapsible-background-color-hover: #BBB;
    --collapsible-background-color-active: #A6A6A6;
    --collapsible-content-background-color: #F1F1F1;
    --month-selector-border: 1.5px solid #aaaaaa;
    --datepicker-cell-hover-color: #8acbff;
    --enroll-table-second-row: #d9d9d9;
    --table-head-color: #dedede;
    --secondary-btn-bg: #DDDDDD;
    --secondary-btn-bg-hover: #EEE;
    --cookie-bg-color: white;
    --source-link: #2b2b2b;
    --source-link-hover: #464646;
    --input-border-color: #b2b2b2;
    --input-background-color: #F3F3F3;
    --input-border-color-disabled: #929292;
    --input-background-color-disabled: #b2b2b2;
    --input-color-disabled: #414141;
    --button-hover-color: #d1d1d1;
    --grid-opacity: brightness(0%);
    --calendar-today: #e9e9e9;
    --calendar-today-blink: #d2d2d2;
    --teacher-border-size: 0px;
    --welcome-background: #3c6f94f0;
    --welcome-border-color: #0e81c5;
    --disabled-font-color: #bfbfbf;
    --checkbox-border-color: #3d78fc;
    --radio-button-bg-color: #f4f4f4;
    --radio-button-border-color: #c5c5c5;
    --radio-button-check-color: #3197EE;
    --form-error-color: #F82626;
    --skeleton-gradient: linear-gradient(
            90deg,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0.5),
            rgba(255, 255, 255, 0)
        );
    --skeleton-background: #e2e5e7;
}
:root[data-applied-mode="dark"],
*[data-element-color-mode="dark"] {
    --background-color: #141414;
    --foreground-color: #232323;
    --font-color: #fff;
    --profile-icon-filter: invert(1);
    --link-standard-color: #4d84ff;
    --link-highlight-color: #729dff;
    --link-button-standard-color: #3769d8;
    --logo-background: linear-gradient(71deg, rgb(0, 76, 211) 0%, rgb(87, 133, 255) 100%);
    --dropdown-standard-color: #424242;
    --dropdown-highlight-color: #575757;
    --dropdown-link-color: white;
    --slight-shadow-border: 1.5px solid #3f3f3f;
    --substitution-table-border-color: #4f4f4f;
    --collapsible-background-color: #424242;
    --collapsible-background-color-hover: #575757;
    --collapsible-background-color-active: #4d4c4c;
    --collapsible-content-background-color: #424242;
    --month-selector-border: 1.5px solid #3f3f3f;
    --datepicker-cell-hover-color: #6192df;
    --enroll-table-second-row: #2c2c2c;
    --table-head-color: #363636;
    --secondary-btn-bg: #595959;
    --secondary-btn-bg-hover: #6c6c6c;
    --cookie-bg-color: #343434;
    --source-link: #dcdcdc;
    --source-link-hover: var(--link-highlight-color);
    --input-border-color: #777;
    --input-background-color: #3A3A3A;
    --input-border-color-disabled: var(--input-border-color);
    --input-background-color-disabled: #5c5c5c;
    --input-color-disabled: #bcbcbc;
    --button-hover-color: #474747;
    --grid-opacity: brightness(200%);
    --calendar-today: #353535;
    --calendar-today-blink: #3f3f3f;
    --teacher-border-size: 1px;
    --welcome-background: #3c6f94f0;
    --welcome-border-color: #0e81c5;
    --disabled-font-color: #5d5d5d;
    --checkbox-border-color: #729DFF;
    --radio-button-bg-color: #474747;
    --radio-button-border-color: #868686;
    --radio-button-check-color: #4190ea;
    --form-error-color: #F82626;
    --skeleton-gradient: linear-gradient(
            90deg,
            rgba(70, 70, 70, 0),
            rgba(70, 70, 70, 0.5),
            rgba(70, 70, 70, 0)
        );
    --skeleton-background: #333;
}

:root[data-font-stroke="serif"] {
    --standard-fonts: Bitter, Constantia, Calisto, serif;
}
:root[data-font-stroke="sans"] {
    --standard-fonts: "Noto Sans", "Segoe UI", "Open Sans", Calibri, sans-serif;
}

* {
    box-sizing: border-box;
    line-height: 130%;
    transition: background-color linear .25s, color linear .3s;
}
a {
    color: inherit;
}
section {
    margin-bottom: 25px;
}
section:last-of-type {
    margin-bottom: 0;
}
.flex-container {
    display: flex;
}
.flex-center {
    display: flex;
    justify-content: center;
}
.flex-column {
    display: flex;
    flex-direction: column;
}
.flex-justify-sp-bw {
    display: flex;
    justify-content: space-between;
}
@media only screen and (min-width: 500px) {
    .multiline-header-min-500px {
        display: flex;
        justify-content: space-between;
    }
}
@media only screen and (max-width: 500px) {
    .multiline-header-min-500px > :first-child {
        line-height: 1;
    }
}
.flex-y-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.flex-grow {
    flex-grow: 1;
}
.flex {
    display: flex;
}
.aling-s-end {
    align-self: end;
}
.align-s-fl-end {
    align-self: flex-end;
}
.margin-0 {
    margin: 0;
}
.margin-5px {
    margin: 5px !important;
}
.margin-top-0 {
    margin-top: 0;
}
.margin-top-2px {
    margin-top: 2px;
}
.margin-top-5px {
    margin-top: 5px;
}
.margin-top-10px {
    margin-top: 10px !important;
}
.margin-top-40px {
    margin-top: 40px;
}
.margin-top-06rem {
    margin-top: 0.625rem;
}
.margin-bottom-2px {
    margin-bottom: 2px;
}
.margin-bottom-0 {
    margin-bottom: 0 !important;
}
.margin-bottom-5px {
    margin-bottom: 3px;
}
.margin-bottom-10px {
    margin-bottom: 10px;
}
.margin-bottom-15px {
    margin-bottom: 15px !important;
}
.margin-bottom-20px {
    margin-bottom: 20px;
}
.margin-bottom-30px {
    margin-bottom: 30px;
}
.margin-bottom-40px {
    margin-bottom: 40px;
}
.margin-bottom-016rem {
    margin-bottom: 0.16rem;
}
.margin-bottom-125rem {
    margin-bottom: 1.25rem;
}
.padding-0 {
    padding: 0 !important;
}
.padding-side-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
* > .first-inner-margin-top-0:first-child {
    margin-top: 0;
}
.padding-10px {
    padding: 10px;
}
.padding-06rem {
    padding: 0.6rem;
}
.padding-bottom-20px {
    padding-bottom: 20px;
}
.padding-bottom-2px {
    padding-bottom: 2px;
}
.padding-2-4 {
    padding: 2px 4px;
}
.color-red {
    color: red;
}
.z-index-1 {
    z-index: 1;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    line-height: 120%;
    background-color: var(--background-color);
    color: var(--font-color);
    overflow-wrap: break-word;
}
[data-element-color-mode] h1,
[data-element-color-mode] h2,
[data-element-color-mode] h3,
[data-element-color-mode] h4,
[data-element-color-mode] h5,
[data-element-color-mode] h6,
[data-element-color-mode] p,
[data-element-color-mode] span {
    color: var(--font-color) !important;
}
body, .serif {
    font-family: var(--standard-fonts);
}
.serif-real {
    font-family: Bitter, Constantia, Calisto, serif;
}
h1, h2, h3, h4, h5, h6, input, a, .sans-serif {
    font-family: "Noto Sans", "Segoe UI", "Open Sans", Calibri, sans-serif;
}
.font-highvisibility {
    font-family: "Work Sans", Arial, Helvetica, "Open Sans", sans-serif;
}
.font-700-18rem {
    font-weight: 700;
    font-size: 1.8rem;
}
p {
    margin-bottom: 0.5rem;
}
.font-weight-600 {
    font-weight: 600;
}
.font-weight-normal {
    font-weight: normal;
}

.main-container {
    /*width: min(calc(85vw + 75px), 96%);*/
    width: 100%;
    max-width: 75rem;
    min-width: 280px;
    margin-left: auto;
    margin-right: auto;
}
.main-container > * {
    margin-left: 20px;
    margin-right: 20px;
}

:root[useragent="mobile"] .mobile-main-sidemargin {
    margin-left: 15px;
    margin-right: 15px;
}
:root[useragent="mobile"] .no-mobile-sidemargin {
    margin-left: 0;
    margin-right: 0;
}
:root[useragent="mobile"] .mobile-100-width {
    width: 100%;
}
:root[useragent="mobile"] .mobile-main-sidemarginpadding {
    padding-left: 15px;
    padding-right: 15px;
}
:root[useragent="mobile"] .mobile-p-m-bottom {
    margin-bottom: 0;
    padding-bottom: 30px;
}
:root[useragent="mobile"] .mobile-margin-bottom-10px {
    margin-bottom: 10px;
}
:root[useragent="mobile"] .mobile-remove-sidepadding {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
:root[useragent="mobile"] .mobile-hidden {
    display: none;
}
:root[useragent="mobile"] .mobile-displayed {
    display: block;
}

.size50-50 {
    width: 50px;
    height: 50px;
}
.size0-0 {
    width: 0;
    height: 0;
}
.appear-animation {
    transition: opacity ease-in-out 0.4s;
}
.disappear-animation {
    transition: opacity ease-in-out 0.4s, width linear 0s 0.4s, height linear 0s 0.4s;
}
.inner-0-margin-padding *:not(.post-footer *) {
    margin: 0;
    padding: 0;
}
.post-footer > p:first-child {
    margin-top: 0;
}
h2 {
    margin-bottom: 5px;
}
.slight-shadow {
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5);
}
.slight-shadow:not(header) {
    border: var(--slight-shadow-border);
}
.text-align-justify {
    text-align: justify;
}
.text-align-center {
    text-align: center;
}
.text-align-right {
    text-align: right;
}

header {
    margin-top: 20px;
    background-color: var(--foreground-color);
}
hr {
    margin: 0 0 8px;
    height: 3px;
    border: none;
    background: rgb(0,56,157);
    background: linear-gradient(253deg, rgb(0, 66, 185) 0%, rgb(0, 91, 255) 100%);
}
.display-none {
    display: none;
}

/* typography */
h2 {
    font-size: 1.7rem;
}
h3 {
    font-size: 1.5rem;
}
h4 {
    font-size: 1.25rem;
}
h5 {
    font-size: 1.1rem;
    margin: 0.8rem 0 0.8rem;
}
h6 {
    font-size: 1rem;
}
code {
    font-family: 'Roboto Mono', monospace;
}
.color-red {
    color: #f10b0b;
}
.color-white {
    color: white;
}
.bg-color-black {
    background-color: black;
}

main img {
    width: 100%;
}

/* links */
a {
    text-decoration: none;
}
a:not(.no-link, .btn, .icon) {
    color: var(--link-standard-color);
    position: relative;
    height: fit-content;
    padding-bottom: 1px;
    text-decoration-color: currentcolor;
    background-image: linear-gradient(currentcolor, currentcolor);
    background-position: 0% calc(100% - 1px);
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: color .3s ease-out, background-size 0.3s ease;
    touch-action: manipulation;
    pointer-events: all;
}
a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button):hover {
    color: var(--link-highlight-color);
    right: 0;
    text-decoration: none;
    text-decoration-color: currentcolor;
    background-size: 100% 1px;
    transition: color .3s ease-out, background-size 0.3s ease;
    outline-color: currentcolor;
}
h1 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button),
h2 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button),
h3 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button),
h4 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button) {
    background-size: 0% 2px;
    background-position: 0% calc(100% - 3px);
}
h1 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button):hover,
h2 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button):hover,
h3 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button):hover,
h4 a:not(.no-link, .btn, .icon, :root[useragent="mobile"] a.mobile-a-button):hover {
    background-size: 100% 2px;
}

input, button {
    border: 1px solid var(--input-border-color);
    background-color: var(--input-background-color);
    border-radius: 3px;
    color: var(--font-color);
}
button[disabled],
button[disabled]:hover{
    color: var(--input-color-disabled);
    background-color: var(--input-background-color-disabled);
    border-color: var(--input-border-color-disabled);
}
button:hover {
    background-color: var(--button-hover-color);
}
.form-error {
    font-size: 0.875rem;
        color: var(--form-error-color);
}

::selection {
    background-color: #457cfb7e;
}

.icon {
    height: 25px;
    border: none;
}
.icon:not(#menu-button) {
    transition: opacity cubic-bezier(0.075, 0.82, 0.165, 1) 0.4s;
}
:root img.icon.out-animation:not(#menu-button) {
    animation-name: back-from-bright;
    animation-duration: 0.2s;
}
@keyframes back-from-bright {
    from {
        filter: brightness(120%) saturate(120%);
    }
    to {
        filter: brightness(100%) saturate(100%);
    }
}
a.icon::after {
    border-top: none;
}
:root img.icon:not(#menu-button):hover {
    animation-name: brighter;
    animation-duration: 0.2s;
    animation-fill-mode: forwards;
}
@keyframes brighter {
    from {
        filter: brightness(100%) saturate(100%);
    }
    to {
        filter: brightness(120%) saturate(120%);
    }
}
.pointer {
    cursor: pointer;
}


/*header*/
nav {
    height: var(--nav-height-js);
    position: fixed;
    z-index: 1000;
    width: 100%;
    padding-left: min(2vw, 30px);
    padding-right: min(2vw, 30px);
    box-shadow: 3px -7px 12px 10px rgba(0,0,0);
    -webkit-box-shadow: 3px -7px 12px 10px rgba(0,0,0);
    -moz-box-shadow: 3px -7px 12px 10px rgba(0,0,0);
    background-color: var(--foreground-color);
    top: 0;
}
nav[open="true"] {
    height: calc(var(--nav-height-js));  /* nav-height-plus was used for extra line at the bottom of the menu, but got removed when the-line-grid was made */
}
nav a {
    font-size: 17.6px;
}
nav > div {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}
nav > div > div.menu {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: center;
    overflow: hidden;
}
nav > div > div.menu > div {
    width: 100%;
    max-width: 60.625rem;
    display: flex;
    justify-content: space-between;
}
#logo {
    margin: 0;
    padding: 0;
    font-size: 28.8px;
    color: rgb(0,65,180);
    background: var(--logo-background);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
div.nav-side-button-container {
    width: 100%;
    margin: 11.5px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
nav, nav * {
    transition: height ease-in-out 0.5s, background-color linear .25s;
}
main {
    transition: padding-top ease-in-out 0.5s, background-color linear .25s;
}
#menu-button {
    left: 0;
    right: 0;
    margin: 0 auto;
    position: absolute;
    opacity: 0;
    transition: transform 0.5s ease-in-out;
    filter: var(--profile-icon-filter);
}
#profile {
    height: 30px;
    width: 30px;
    filter: var(--profile-icon-filter);
}
div.navbar-icon-container {
    display: none;
}
.logo-resize{
    height: 30px;
}
@media only screen and (min-width: 1201px) {
    nav > div > div.menu {
        margin-left: 140px;
        margin-right: 140px;
        width: calc(100% - 280px);
    }
    nav > div > div.menu > div {
        justify-content: space-around;
    }
    nav > div > div.menu > div > a {
        background-position: 0% 100%;
    }
    nav > div > div.menu > div > a:hover {
        background-position: 0% 100%;
    }
}

@media only screen and (max-width: 1200px) and (min-width: 930px) {
    :root {
        --nav-height-base: 92px;
    }
    nav > div {
        flex-direction: column;
    }
    nav > div > div.menu {
        position: static;
        margin-bottom: 10px;
        width: 95%;
    }
    nav > div > div.menu > div {
        max-width: unset;
    }
    div.nav-side-button-container {
        width: 95%;
        margin-bottom: 10px;
    }
}

@media only screen and (max-width: 930px) {
    :root {
        --nav-height-base: 56px;
    }
    nav > div {
        flex-direction: column;
    }
    nav > div > div.menu {
        display: none;
        position: static;
        margin: 6px 0 10px;
        width: 95%;
        flex-grow: 1;
    }
    nav > div > div.menu > div {
        height: 100%;
        flex-direction: column;
        margin: 3px 0;
    }
    nav > div > div.menu > div > * {
        margin: 2px 0;
        width: fit-content;
        font-size: var(--nav-font-size);
    }
    nav > div > div.menu > div > div > a {
        font-size: inherit;
    }
    nav > div > div.menu > div > :last-child {
        margin-bottom: 100vh;
    }
    div.nav-side-button-container {
        width: 95%;
        margin-bottom: 0;
    }
    #menu-button {
        opacity: 1;
    }
}
@media only screen and (max-width: 720px) {
    /*:root {
        --nav-height-plus: 30px;
    }
    :root[useragent="mobile"] {
        --nav-height-plus: 27px;
    }*/
    div.navbar-icon-container {
        width: 100% !important;
        display: flex;
        justify-content: space-between;
    }
    div.navbar-icon-container > div:first-child,
    div.navbar-icon-container > div:last-child {
        width: 12ch;
    }
    div.navbar-icon-container > div:last-child {
        display: flex;
        justify-content: right;
    }
}


/*main*/
body > :nth-child(2) {
    transition: padding-top ease-in-out 0.5s, background-color linear .25s;
    padding-top: var(--nav-height-base);
}

main {
    margin-top: 0;
    padding-bottom: 50px;
    flex: 1;
}

main > *:first-child:not(.main-white, .main-first-no-mg) {
    margin-top: 20px;
}


/* other main*/
section.main-white,
:root:not([useragent="mobile"]) section.main-white-desktop {
    background-color: var(--foreground-color);
    padding: min(1.5rem, 2vw);
    padding-top: 20px;
    padding-bottom: 20px;
    margin-top: 0;
    margin-bottom: 30px;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5);
    border: var(--slight-shadow-border);
    border-top: none;
}
.mw-side-pad {
    padding-left: min(2rem, 3vw) !important;
    padding-right: min(2rem, 3vw) !important;
}
.mw-side-pad-mg {
    margin-left: min(2rem, 3vw);
    margin-right: min(2rem, 3vw);
}


/*footer*/
footer {
    min-height: 60px;
    /*box-shadow: 0px -3px 5px 2px #777;*/
    color: white;
    background: rgb(0,56,157);
    background: linear-gradient(253deg, rgba(0,56,157,1) 0%, rgba(0,40,112,1) 100%);
    padding: 20px min(3vw, 30px) 10px;
    display: flex;
    justify-content: center;
}
:root[useragent="mobile"] footer {
    padding: 20px 0 10px;
}
#footer-inner-container {
    width: min(90vw, 1400px);
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
}
#footer-bottom {

}
#footer-bottom > div.main-container {
    display: flex;
    justify-content: space-between;
}
@media only screen and (max-width: 1150px) {
    #footer-bottom > div.main-container {
        flex-direction: column;
    }
    #footer-bottom > div.main-container > section {
        margin-bottom: 0;
        margin-left: 0;
        margin-right: 0;
    }
    #footer-bottom > div.main-container > section:nth-child(2) > div:first-child {
        display: none;
    }
}
@media only screen and (min-width: 1151px) {
    footer {
        display: flex;
        justify-content: center;
        flex-direction: row-reverse;
    }
    #footer-bottom > div.main-container > section:first-child {
        margin-right: 10px;
        margin-bottom: 5px;
        margin-left: 0;
    }
    #footer-bottom > div.main-container > section:last-child {
        margin-right: 0;
    }
    #footer-bottom > div.main-container > section:first-child > div:first-child > div:last-child {
        display: none;
    }
    #footer-top {
        margin-left: 20px;
    }
}
@media only screen and (max-width: 890px) {
    #footer-inner-container {
        flex-direction: column;
    }
    #footer-top {
        margin-bottom: 20px;
        width: 100% !important;
        max-width: unset;
    }
}
div.footer-section-part {
    margin-bottom: 12px;
}
div.footer-section-part > h2 {
    margin-bottom: 2px;
}

#footer-top {
    color: var(--font-color);
    width: 40%;
    min-width: 200px;
    max-width: 450px;
}
#footer-top a:any-link:not(:hover) {
    color: var(--font-color);
}
.footer-top-post-container {
    max-width: 450px;
}
.footerpost {
    width: 100%;
}
.footerpost img {
    width: 100%;
    height: auto;
    box-shadow: 6px 6px 5px -5px rgba(0,0,0,0.75);
    border-radius: 6px;
}
.footerpost > a {
    display: block;
    width: fit-content;
}
.footerpost > a > h4 {
    margin: 0;
}
.footerpost.non-clickable > h4 {
    margin: 0 0 6px;
}


footer p {
    margin-top: 0;
    margin-bottom: 0.2rem;
}
footer #footer-bottom h4 {
    line-height: 0.8rem;
}
footer h4 a {
    font-size: clamp(1.25rem, 4.5vw, 1.4rem) !important;
}

footer a:any-link {
    color: white;
}
footer a:hover:after, footer a:after {
    border-color: white;
}






table {
    border-collapse: collapse;
    border: 1px solid var(--substitution-table-border-color);
}
th, td {
    border: 1px solid var(--substitution-table-border-color);
    padding: 0.2rem;
}
th {
    background-color: var(--table-head-color);
}


/*scroll back to the top*/
div.scroll-up, img.scroll-up {
    position: fixed;
    bottom: 20px;
    right: 20px;
    overflow: hidden;
}
div.scroll-up {
    background-color: var(--foreground-color) !important;
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5);
    border: var(--month-selector-border);
    border-width: 2px;
    border-radius: 6px;
}
#scroll-up-wrapper{
    z-index: 1;
}
#scroll-up-bg {
    z-index: 2;
    opacity: 60%;
}
#scroll-up-arrow{
    z-index: 3;
    opacity: 100%;
    filter: var(--profile-icon-filter);
}


/**************************
***                     ***
***  REUSABLE ELEMENTS  ***
***                     ***
**************************/
/* fancy-box */
.fancy-box {
    border-radius: 6px;
    background-color: var(--foreground-color);
}
.fb-paddingS {
    padding: 0.2rem;
}
.fb-paddingM {
    padding: 0.5rem;
}
.fb-paddingL {
    padding: 1rem;
}
.fb-margin-pOL-side {
    margin-left: -1rem;
    margin-right: -1rem;
}
.fb-marginS {
    margin: 5px;
}
.fb-marginM {
    margin: 8px;
}
.fb-marginL {
    margin: 20px;
}
.marginOS {
    margin: -5px;
}
.fb-marginOM {
    margin: -8px;
}
.fb-marginOL {
    margin: -20px;
}
.single-col-grid {
    display: grid;
    grid-template-columns: 1fr;
}
.fb-marginL-grid {
    column-gap: 20px;
    row-gap: 20px
}
.marginOL {
    margin: -20px;
}
.round-lS {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

/* */
.grid-col-samesize-min10rem{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
}
.grid-col-samesize-min15rem{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}
.grid-col-samesize-min20rem{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
}
.grid-col-samesize-min25rem{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(clamp(18rem, 100%, 25rem), 1fr));
}

.portrait {
    width: 5.625rem;
    height: 7.8125rem;
}
.portraitL {
    width: 6.75rem;
    height: 9.375rem;
}
.height-125px {
    height: 125px;
}
.height-150px {
    height: 150px;
}

 /* The alert message box */
.alert {
  padding: 20px;
  background-color: #f44336; /* Red */
  color: white;
  margin-bottom: 15px;
}
.alert-success {
    background-color: #14d700;
}


/* The close button */
.closebtn {
  margin-left: 15px;
  color: white;
  font-weight: bold;
  float: right;
  font-size: 22px;
  line-height: 20px;
  cursor: pointer;
  transition: 0.3s;
}

/* When moving the mouse over the close button */
.closebtn:hover {
  color: black;
}

/* index specific */
#slideshow {
    padding-top: 0;
    margin-top: 0;
    width: 100%;
    height: calc(clamp(200px, 55vw, 270px) + var(--nav-height-base));
    /*transition: height ease-in-out 0.5s;*/
    position: relative;
    box-shadow: 3px -7px 12px 10px rgba(0,0,0);
    -webkit-box-shadow: 3px -7px 12px 10px rgba(0,0,0);
    -moz-box-shadow: 3px -7px 12px 10px rgba(0,0,0);
}
#slideshow img {
    position: absolute;
    width: 100%;
    height: 100%;
    transition: height ease-in-out 0.5s;
    object-fit: cover;
    filter: brightness(40%);
}
#slideshow div.school-name {
    display: block;
    width: fit-content;
    height: fit-content;
    position: absolute;
    right: 0;
    left: 0;
    top: var(--nav-height-base);
    transition: top ease-in-out 0.5s;
    bottom: 0;
    margin: auto;
    z-index: 100;
    color: white;
    text-shadow: 4px 4px 12px #000000;
    line-height: 0;
}
#slideshow div.school-name h1 {
    font-size: clamp(5vmin, 50px, 4vw);
    margin-bottom: 4px;
    font-weight: normal;
}
#slideshow div.school-name span {
    text-align: center;
    width: 100%;
    display: block;
    font-size: clamp(2vmin, 20px, 3vw);
    font-style: italic;
}
#slideshow div:nth-of-type(2) {
    display: none;
    font-size: clamp(4vw, 40px, 8vmin);
    text-align: center;
}
@media only screen and (max-width: 500px) {
    #slideshow div:nth-of-type(2) {
        display: block;
    }
    #slideshow div:nth-of-type(1) {
        display: none;
    }
}
#slideshow img:nth-of-type(1) {
    animation-name: fader;
    animation-delay: 4s;
    animation-duration: 0.6s;
    z-index: 20;
}
#slideshow img:nth-of-type(2) {
    z-index: 10;
}
#slideshow img:nth-of-type(n+3) {
    display: none;
}
@keyframes fader {
    from { opacity: 1.0; }
    to   { opacity: 0.0; }
}

/* the line */
#the-line {
    padding: 1.3rem 2rem 1rem;
    background-color: var(--foreground-color);
    display: flex;
    justify-content: center;
    box-shadow: 3px -12px 12px 10px rgba(0,0,0);
}
#the-line > div {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: calc(75rem - 40px);
}
#the-line > div img {
    height: 16px;
    margin-right: 5px;
}
#the-line > div > a:nth-child(2) img {
    height: 18px;
}
#the-line > div > a {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 3px 0;
}
#the-line p {
    margin: 0;
}

/* the line grid */
#the-line-grid {
    padding: 0.75rem 1rem 0.5rem;
    background-color: var(--foreground-color);
    display: none;
    justify-content: center;
    box-shadow: 3px -12px 12px 10px rgba(0,0,0);
}
#the-line-grid > div {
    display: grid;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    max-width: calc(75rem - 40px);
    grid-template-columns: 1fr 1fr 1fr;
}
#the-line-grid > div > div {
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 11px 0;
    font-size: 100%;
}
#the-line-grid p {
    margin: 0;
}

@media screen and (max-width: 800px) {
    #the-line {
        display: none;
    }
    #the-line-grid {
        display: flex !important;
    }
}
@media screen and (max-width: 436px) {
    #the-line-grid > div {
        grid-template-columns: 1fr 1fr !important;
    }
}


/* posts */
.post h3,
.post h4,
.post h5,
.post h6 {
    margin: 0;
    padding: 0;
}
.post {
    padding-bottom: 0.3rem;
}
.posts-container {

}
@media only screen and (max-width: 1070px) {
    .posts-container {
        grid-template-columns: 1fr;
    }
}


.post > img {
    width: 100%;
}

.post > div.post-header {
    padding: 0.3rem 1rem 0 1rem;
}
.post > :nth-child(2) {
    margin-top: 0.5rem;
}
.post.post-no-click > div.post-header > div {
    display: flex;
    justify-content: space-between;
}
.post.post-click > div.post-header a,
.post.post-video > div.post-header a{
    display: block;
    width: fit-content;
}
.post.post-fancy.post-no-click > div.post-header > div > h4 {
    font-size: 1.2rem;
}
.post.post-fancy.post-click > div.post-header > div > a > h4 {
    font-size: 1.35rem;
}
.post.post-standard.post-no-click > div.post-header > div > h4 {
    font-size: 1.15rem;
}
.post.post-standard.post-click > div.post-header > div > a > h4 {
    font-size: 1.3rem;
}
.post.post-no-click > div.post-header > div > p.date {
    font-size: 0.9rem;
}

.post > div.post-footer {
    padding: 0 1rem 0 1rem;
    margin-top: 0.5rem;
}

p.date {
    color: grey;
    flex-shrink: 0;
}


.post-fancy {
    background: linear-gradient(71deg, rgba(0, 65, 180, 1) 0%, rgba(66, 116, 255, 1) 100%);
    border: none;
    color: white;
}
.post-fancy ::selection {
    background: rgba(190, 207, 255, 0.67);
    color: black;
}
.post-fancy a,
.post-fancy a:not(.no-link):hover,
a.white-link {
    color: white !important;
}
.post-fancy a:not(.no-link):after,
a.white-link:after {
    border-top-color: white !important;
}
.post-fancy a:not(.no-link):hover:after {
    border-color: white;
}

.post-fancy hr {
    background: white;
}
.post-fancy p.date {
    color: white;
}

.post-fancy > a:not(.no-link, .btn, .icon :root[useragent="mobile"] a.mobile-a-button),
.post-fancy > *:not(.post-header) a:not(.no-link, .btn, .icon :root[useragent="mobile"] a.mobile-a-button) {
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.75);
    transition: text-decoration-color 150ms ease-in-out;

    color: var(--link-highlight-color);
    right: unset;
    background-size: unset;
    outline-color: unset;
    background-image: unset;
}

.post-fancy > a:not(.no-link, .btn, .icon :root[useragent="mobile"] a.mobile-a-button):hover,
.post-fancy > *:not(.post-header) a:not(.no-link, .btn, .icon :root[useragent="mobile"] a.mobile-a-button):hover {
    text-decoration-color: white;
}


.post-read-further {
    text-align: center;
    clear: both;
}
:root[useragent="mobile"] .post-read-further > p {
    margin-top: 12px;
    margin-bottom: 10px;
}
:root[useragent="mobile"] a.mobile-a-button,
button.fancy-button-highlighted,
button.fancy-button-standard {
    background-color: var(--link-button-standard-color);
    transition: background-color .4s ease-out;
    padding: 5px 10px;
    border-radius: 6px;
    color: white;
}
button.fancy-button-standard {
    border: 1px solid var(--input-border-color);
    background-color: var(--input-background-color);
    color: var(--font-color);
}
button.fancy-button-standard:hover {
    background-color: var(--button-hover-color);
}
:root[useragent="mobile"] a.mobile-a-button:hover,
button.fancy-button-highlighted:hover {
    background-color: var(--link-highlight-color);
}
:root[useragent="mobile"] a.mobile-a-button::after {
    width: 0;
}
:root[useragent="mobile"] .post-fancy .post-read-further > p > a {
    background-color: white;
    color: black !important;
}

.height-2px {
    height: 2px;
}

.posts-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.a-img-float-left {
    float: left;
    margin-right: 1rem;
}
.a-img-float-right {
    float: right;
    margin-left: 1rem;
}
.img-float-left {
    float: left;
    margin-right: 1rem;
}
.img-float-right {
    float: right;
    margin-left: 1rem;
}
.a-img-float-left img,
.a-img-float-right img,
img.img-float-left,
img.img-float-right {
    width: 200px;
    max-width: 40vw;
    height: auto;
    margin-bottom: .5rem;
}
.post-clearer {
    clear: both;
}

@media only screen and (max-width: 800px) {
    .posts-2col {
        display: none;
    }
    .posts-1col {
        display: flex;
        flex-direction: column;
        row-gap: 15px;
    }
}
@media only screen and (min-width: 800px) {
    .posts-2col {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: calc((var(--main-container-width) * 0.06) - 30px);
    }
    .posts-2col > div {
        display: flex;
        flex-direction: column;
        min-width: 0;
    }
    .posts-2col div.post {
        margin-bottom: calc((var(--main-container-width) * 0.045) - 22.5px);
    }
    .posts-1col {
        display: none;
    }
}
.post-preview-content img {
    width: auto;
    max-width: 100%;
    max-height: 80vh;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.post-preview-content img:not(:last-child) {
    margin-bottom: 20px;
}


.gallery-container {
    width: min(calc(85vw + 75px), 96%);
    max-width: 1800px;
    min-width: 280px;
    margin-left: auto;
    margin-right: auto;
}
.posts-3col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}
.gallery-1col h3 {
    margin-bottom: 5px;
}
.gallery-1col div:not(:first-child) h3 {
    margin-top: 20px;
}
@media only screen and (min-width: 1150px) {
    div.posts-container > div.posts-3col {
        column-gap: calc((var(--main-container-width) * 0.0266667) - 13.33px);
    }
    .posts-3col .post {
        margin-bottom: calc((var(--main-container-width) * 0.02655) - 13.275px);
    }
    .posts-1col {
        display: none;
    }
}
@media only screen and (max-width: 1150px) {
    .posts-3col {
        display: none;
    }
    .gallery-container .posts-1col {
        display: block;
    }
    .gallery-container .posts-1col post {
        display: block;
        margin-bottom: 15px;
    }
}
:root[useragent="mobile"] div.post,
:root[useragent="mobile"] .mobile-remove-border{
    border: none;
    border-radius: 2px;
}


/* post skeleton */
.skeleton-bg {
	background-color: var(--skeleton-background);
	/* The shine that's going to move across the skeleton: */
	background-image: var(--skeleton-gradient);
	background-size: 40px 100%; /* width of the shine */
	background-repeat: no-repeat; /* No need to repeat the shine effect */
	background-position: left -40px top 0; /* Place shine on the left side, with offset on the left based on the width of the shine - see background-size */
	animation: shine 2s ease infinite; /* increase animation time to see effect in 'slow-mo' */
    border-radius: 1000px;
}

@keyframes shine {
	to {
		/* Move shine from left to right, with offset on the right based on the width of the shine - see background-size */
		background-position: right -40px top 0;
	}
}

.post-skeleton > .post-header > :first-child > :first-child {
    height: 1.24rem;
    width: 22rem;
    max-width: 100%;
    min-width: 200px;
    margin-top: 5px;
    margin-bottom: 3px;
}
.post-skeleton > .post-header > :first-child > :nth-child(2) {
    height: .8rem;
    width: 10rem;
    max-width: 80%;
    min-width: 150px;
    margin-top: 7px;
    margin-bottom: 2.8px;
}
.post-skeleton > .post-skeleton-image {
    height: 300px;
    width: 100%;
    border-radius: 0;
    /*margin-top: 1px;
    margin-bottom: 3px;*/
}
.post-skeleton > .post-footer > .post-skeleton-content > * {
    height: 0.8rem;
    width: 100%;
    margin-bottom: 2px;
}
.post-skeleton > .post-footer > .post-skeleton-content > :first-child {
    margin-bottom: 10px;
    width: 10rem;
    max-width: 80%;
    min-width: 150px;
}
.post-skeleton > .post-footer > .post-skeleton-content > :last-child {
    margin-bottom: 5px;
    width: 80%;
}



iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
}

.login-container {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: 10vh !important;
    margin-bottom: 10vh !important;
    display: flex;
    justify-content: center;
}
.login-form-container {
    width: 80vw;
    max-width: 450px;
    min-width: fit-content;
    padding: 30px;
    background-color: var(--foreground-color);
}
.base-login-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 20px;
}
.base-login-form > * {
    width: 100%;
    height: 35px;
}
.base-login-form > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
}

.base-login-form > div > input {
    height: 100%;
    width: 10rem;
    font-size: 1rem;
    padding: 3px;
}
.base-login-form > div > input::placeholder {
    font-size: 0.8rem;
}
.base-login-form > input[type=submit] {
    width: fit-content;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: 10px;
}

.login-form > div:nth-child(4) {
    height: fit-content;
    margin-top: 3px;
    display: flex;
    flex-direction: column-reverse;
    align-content: center;
    margin-bottom: 20px;
}
.login-form > div:nth-child(4) > ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
}

.openday-register-form input#id_email,
.openday-login-form input#id_email,
.openday-login-form input#id_password {
    width: 14rem;
}
.openday-register-form > div:nth-child(3) {
    height: fit-content;
    margin-top: 3px;
    display: flex;
    flex-direction: column-reverse;
    align-content: center;
    margin-bottom: 20px;
}
.openday-register-form > div:nth-child(3) > ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
}

.login-welcome-btn-container {
    margin-top: 15vh;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.login-welcome-btn-container > :first-child {
    display: block;
    margin-bottom: 5vh;
}
.login-welcome-btn-container > :first-child > :first-child {
    width: 170px;
}
.login-welcome-btn-container > :last-child {
    margin-bottom: 8vh;
}

div.substitution-day-container > div {
    margin-bottom: 20px;
}
div.substitution-day-container > div:last-child {
    margin-bottom: 0;
}
div.substitution-day-container:not(:last-child) {
    margin-bottom: 45px;
}
div.cmp-substitution-day-container:not(:last-child) {
    margin-bottom: 2.5rem;
}
table.subsitution_table {
    width: 100%;
    border-collapse: collapse;
}
table.subsitution_table th,
table.subsitution_table td {
    border: 1px solid var(--substitution-table-border-color);
    padding: 0.2rem;
}
table.subsitution_table > tbody > tr > td:first-child {
    text-align: center
}
@media only screen and (min-width: 700px){
    table.subsitution_table > tbody > tr > td:first-child {
        width: 6%;
    }
    table.subsitution_table > tbody > tr > td:nth-child(2) {
        width: 13%;
    }
    table.subsitution_table > tbody > tr > td:nth-child(3) {
        width: 24%;
    }
    table.subsitution_table > tbody > tr > td:nth-child(4) {
        width: 27%;
    }
    table.subsitution_table > tbody > tr > td:nth-child(5) {
        width: 30%;
    }
}


/* tagozatok */
.tagozat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
}
@media only screen and (min-width: 950px) {
    .tagozat-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }
}
@media only screen and (max-width: 670px) {
    .tagozat-container > div {
        display: block;
    }
}
.tagozat-container {
    display: flex;
    flex-direction: column;
}
.tagozat-container > h4 {
    flex-grow: 1;
    padding: 0.3rem;
}
.tagozat-container > img {
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}

/* tagozat site */
.display-tall {
    display: none;
}
@media only screen and (max-aspect-ratio: 1/1) {
    .display-tall {
        display: unset;
    }
    .display-wide {
        display: none;
    }
}
.source-link-container {
    display: flex;
    justify-content: center;
}
a.source-link {
    display: block;
    color: var(--source-link) !important;
    font-size: 0.8rem;
}
a.source-link:hover {
    color: var(--source-link-hover) !important;
}
a.source-link:hover::after {
    border-color: var(--source-link-hover) !important;
}
a.source-link::after {
    border-top-color: var(--source-link) !important;
}


/* Dropdown Button */
.dropbtn {
    background-color: var(--foreground-color);
    color: #2F56B0;
    padding: 5px 10px;
    border: 2px solid #2F56B0;
    border-radius: 3px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color .2s ease-out, border-top-color .2s ease-out, border-bottom-color .2s ease-out, border-left-color .2s ease-out, border-right-color .2s ease-out, color .2s ease-out;
}

/* Dropdown button on hover & focus */
.dropbtn:hover {
    border-color: #457DFB;
    color: #457DFB;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
    float: right;
    position: relative;
    display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: var(--dropdown-standard-color);
    min-width: 200px;
    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
    z-index: 1;
    right:0;
    border-radius: 6px;
}

/* Links inside the dropdown */
.dropdown-content a {
    color: var(--dropdown-link-color);
    padding: 10px 14px;
    text-decoration: none;
    display: block;
    font-size: 1rem;
    transition: background-color .1s ease-out;
    border-radius: 6px;
}

.dropdown-content div {
    display: none;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: var(--dropdown-highlight-color);}

/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */
.show {
    display:block !important;
}

.dropdown-submenu {
    padding-left: 20px;
}


table.enroll-table {
    width: 100%;
    border-collapse: collapse;
}
table.enroll-table > tbody > tr:nth-child(2n+0) {
    background-color: var(--enroll-table-second-row);
}
table.enroll-table > thead > tr > th,
table.enroll-table > tbody > tr > td {
    padding: 0.2rem;
    border: 1px solid var(--substitution-table-border-color);
    text-align: center;
}
table.enroll-table > tbody > tr > td > button {
    padding-top: 1px;
    padding-bottom: 1px;
    margin-bottom: 1px;
    height: fit-content;
    min-width: fit-content;
    width: 5rem;
}
.enroll-mobile-full-container {
    display: none;
}
@media only screen and (max-width: 750px) {
    div.enroll-mobile-full-container {
        display: block;
    }
    div.enroll-desktop-full-container {
        display: none;
    }
}
.mobile-enroll-container button {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-bottom: 1px;
    height: fit-content;
    width: 5.5rem;
    min-width: fit-content;
    align-self: flex-end;
}

table.extrape-table tr > :nth-child(1) {
    width: 9%;
}
table.extrape-table tr > :nth-child(2) {
    width: 4%;
}
table.extrape-table tr > :nth-child(3) {
    width: 50%;
}
table.extrape-table tr > :nth-child(4) {
    width: 5%;
}
table.extrape-table tr > :nth-child(5) {
    width: 20%;
}
table.extrape-table tr > :nth-child(6) {
    width: 12%;
}

table.fakt-table tr > :nth-child(1) {
    width: 9%;
}
table.fakt-table tr > :nth-child(2) {
    width: 20%;
}
table.fakt-table tr > :nth-child(3) {
    width: 23%;
}
table.fakt-table tr > :nth-child(4) {
    width: 6%;
}
table.fakt-table tr > :nth-child(5) {
    width: 9%;
}
table.fakt-table tr > :nth-child(5) {
    width: 22%;
}
table.fakt-table tr > :nth-child(5) {
    width: 11%;
}


/*
404
 */
h1#fourOfour {
    margin-top: 10vh;
    margin-bottom: 0;
    font-size: 30vmin;
    font-family: "Exo 2", "Noto Sans", "Segoe UI", "Open Sans", Calibri, sans-serif;
    text-align: center;
}
#nothing {
    margin-top: 0.8vh;
    font-size: 6vmin;
    text-align: center;
}
#back-to-main {
    font-size: 4vmin;
    margin-top: 2vmax;
}

header {
    z-index: 1;
}


.title-with-link-container {
    display: flex;
    margin-bottom: 5px;
    margin-top: 20px;
}
:root[useragent="mobile"] .title-with-link-container {
    justify-content: space-between;
    align-items: flex-end;
}
.title-with-link-container :first-child {
    margin: 0;
}
.title-with-link-container :nth-child(2) {
    align-self: flex-end;
    padding-bottom: 1px;
    margin-bottom: 2px;
    margin-left: 1.5rem;
}

.news-title-container {
    margin-bottom: 5px;
    margin-top: 25px;
    align-items: flex-end;
}
.news-title-container > a {
    margin-left: 15px;
    margin-bottom: 2px;
}


/* month selector */
:root[useragent="mobile"] .month_selector {
    border: none;
    border-radius: 2px;
    margin-left: 0;
    margin-right: 0;
}
:root[useragent="mobile"] .month_selector:first-child {
    margin-top: 30px;
    margin-bottom: 15px;
}
:root[useragent="mobile"] .month_selector:nth-child(2) {
    margin-top: 15px;
}
:root[useragent="mobile"] .posts-buffer {
    padding-bottom: 0;
}
.month_selector, .datepicker, .datepicker-picker, .datepicker-main, .month_selector>form>input{
    background-color: var(--foreground-color) !important;
    padding: 10px;
    color: var(--font-color);
}
.datepicker, .datepicker-picker, .month_selector>form>input{
    margin: 5px;
}
.month_selector, .datepicker, .datepicker-main, .month_selector>form>input{
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5);
    border: var(--month-selector-border);
    border-radius: 4px;
    border-width: 1.5px !important;
}
.month_selector{
    margin-top: 10px;
    margin-bottom: 10px;
}
.month_selector>form{
    display: flex !important;
    justify-content: space-between !important;
}
.datepicker-picker{
    box-shadow: none !important;
}
.datepicker-main{
    padding: 0px !important;
}
.datepicker-cell{
    border: var(--month-selector-border);
    border-radius: 0px !important;
    border-collapse: collapse;
}
.datepicker-cell:hover{
    background-color: var(--datepicker-cell-hover-color) !important;
}
.datepicker-controls > button{
    background-color: var(--foreground-color) !important; 
    margin: 5px 0px !important;
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5) !important;
    border: var(--month-selector-border) !important;
    border-radius: 4px !important;
    color: var(--font-color) !important;
}
.datepicker-controls>.view-switch{
    margin: 5px 10px !important;
}
.datepicker-header> .datepicker-controls{
    padding: 0px !important;
    padding-bottom: 2px !important;
}
.datepicker-cell.focused:not(.selected){
    background-color: transparent !important;
}

.datepicker-dropdown{
    left: calc(-9.875rem + 50vw) !important;
}

.month_input {
    cursor: pointer;
}
.month_arrow {
    font-size: 2rem;
    padding: 0 10px !important;
    font-family: "Noto Sans Math", math;
    cursor: pointer;
}
.month_arrow[disabled] {
    cursor: not-allowed;
    color: var(--disabled-font-color);
}
.next-button, .prev-button{
    font-family: "Noto Sans Math", math !important;
    font-size: 1.5rem !important;
    height: 2.3rem !important;
    font-weight: 400 !important;
}
.filler{
    display: flex;
    flex-grow: 1;
}
.posts-buffer{
    padding: 5px 0px;
}
#no-news {
    margin-top: 10vh;
    text-align: center;
    font-size: clamp(2vw, 3rem, 5vw);
}


/* cookie disclaimer */
#cookiedisclaimer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--cookie-bg-color);
    color: var(--font-color);
    display: flex;
    justify-content: center;
    text-align: center;
    z-index: 100;
}
#cookiedisclaimer > div {
    width: min(calc(85vw + 75px), 90%);
}

.btn {
    padding: 0.3em 0.5em;
    border-radius: 3px;
    transition: background-color 0.1s ease-in-out;
}
.btn-primary {
    background-color: #4d84ff;
    color: white;
}
.btn-primary:hover {
    background-color: #7aa2ff;
}
.btn-secondary {
    background-color: var(--secondary-btn-bg);
    border: 2px solid #4d84ff;
}
.btn-secondary:hover {
    background-color: var(--secondary-btn-bg-hover);
    border-color: #7aa2ff;
}
#cookieconsentbuttoncontainer {
    padding-top: 10px;
    padding-bottom: 20px;
    width: 100%;
    display: flex;
    justify-content: space-evenly;
}

@media screen and (max-width: 600px) {
    #cookieconsentbuttoncontainer {
        flex-direction: column;
    }
    #cookieconsentbuttoncontainer > .btn:first-child {
        margin-bottom: 5px;
    }
}

div.enroll-mobile-full-container > div > h3 {
    margin-bottom: 0;
}
div.enroll-mobile-full-container > div > div:last-child {
    margin-bottom: 20px;
}


table.openday-table td {
    width: 15%;
}
table.openday-table tr > td:nth-child(2),
table.openday-table tr > td:nth-child(5),
table.openday-table tr > td:nth-child(6),
table.openday-table tr > td:nth-child(7) {
    width: 7%;
}
table.openday-table tr > td:last-child {
    min-width: 125px;
}


div.school-year-container {
    padding: 8px !important;
}

p.student-count {
    flex-grow: 1;
    text-align: right;
    align-self: flex-end
}

div.leader-container {
    height: calc(9.375rem + var(--teacher-border-size) * 2);
}
div.teacher-container {
    height: calc(7.8125rem + var(--teacher-border-size) * 2);
}
div.leadership-name-container {
    margin-left: 5px !important;
}
div.teacher-name-container {
    margin-left: 3px !important;
}
.round-teacher-img {
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}


/*
  calendar
 */
#calendar {
    width: 100%;
    background-color: var(--foreground-color) !important;
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5) !important;
    border: var(--month-selector-border) !important;
    color: var(--font-color) !important;
    border-collapse: collapse;
    border-radius: 6px;
}
#calendar * {
    margin: 0;
}
#calendar th,
#calendar td {
    border: var(--month-selector-border);
}
#calendar th {
    padding: 4px 3px;
    background-color: unset;
}
#calendar td {
    padding: 3px;
}
.today {
    background-color: var(--calendar-today);
}
.today-blink {
    animation: 2s ease-in-out 0.5s calendar-blink;
}
@keyframes calendar-blink {
    0% {
        background-color: var(--calendar-today);
    }
    25% {
        background-color: var(--calendar-today-blink);
    }
    50% {
        background-color: var(--calendar-today);
    }
    75% {
        background-color: var(--calendar-today-blink);
    }
    100% {
        background-color: var(--calendar-today);
    }
}
#calendar-scroll-icon-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -23%);
    font-size: 14px;
    font-weight: bold;
}
#calendar-print-container > * {
    box-shadow: none !important;
}
#calendar-print-container > #calendar td {
    padding: 2px !important;
}


/*
img max size
 */
.limited-height-img-container {
    overflow: hidden;
    position: relative;
    display: block;
    font-size: 0;
}
/* .limited-height-img-container > img:first-child */
.blurred-img {
    max-height: 80vh;
    object-fit: cover;
    filter: blur(20px) opacity(70%) brightness(70%);
    height: auto;
}
.limited-height-img-container > img:nth-child(2) {
    position: absolute;
    z-index: 1;
    height: 100%;
    left: 50%;
    transform: translate(-50%, 0);
    width: unset;
}

.limited-height-img-container.max-80vh-img-container-darker > img:first-child {
    filter: blur(20px) opacity(50%) brightness(60%);
}
.limited-height-img-container.max-50vh-img-container > img:first-child {
    max-height: 50vh;
}

.photopost-images > div {
    margin-bottom: 20px;
}
.photopost-images > div:last-child {
    margin-bottom: 0;
}


/*
 WELCOME
 */
#blur{
    position: fixed;
    z-index: 999999;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
#welcome {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 1000000;
    font-size: 120%;
    background-color: var(--welcome-background);
    border: 1px solid var(--welcome-border-color);
    border-radius: 6px;
    padding: 15px 20px;
    color: white;
    box-shadow: 3px 3px 7px -1px rgba(0,0,0,0.5);
    min-width: min(80vw, 600px);
}
#welcome h2 {
    text-align: center;
}
#welcome button {
    padding: 6px 12px;
}

/*
  profile page
 */
.profile-page-logo {
    height: 25px;
    width: 25px;
    padding-top: 2px !important;
    box-sizing: content-box;
}
.mobile-profile-page-setting-container-all {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
    margin-bottom: 30px;
    column-gap: 20px;
    row-gap: 20px;
}
.mobile-profile-page-setting-container > h4 {
    border-radius: 8px 8px 3px 3px;
    background-color: var(--foreground-color);
    margin: 0 0 5px;
    padding: 8px 12px !important;
}
.mobile-profile-page-setting-container > .mobile-profile-page-options > * {
    padding: 8px 12px;
    border-radius: 3px;
    background-color: var(--foreground-color);
    margin-bottom: 3px;
    display: flex;
    justify-content: space-between;
    cursor: pointer;
}
.mobile-profile-page-setting-container > .mobile-profile-page-options > *:last-child {
    border-radius: 3px 3px 8px 8px;
    margin-bottom: 0;
}
.mobile-profile-page-setting-container > .mobile-profile-page-options > * > h6 {
    margin: 0;
}

/* radio button */
/* Create a custom radio button */
.radio {
    margin: 0;
    height: 100%;
    display: flex;
    align-items: center;
    cursor: pointer;
}
.radio input[type=radio] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}
.radio input[type=radio] + .radio-label {
    cursor: pointer;
}
.radio input[type=radio] + .radio-label::before {
    content: "";
    background: var(--radio-button-bg-color);
    border-radius: 100%;
    border: 1px solid var(--radio-button-border-color);
    display: inline-block;
    width: 17px;
    height: 17px;
    vertical-align: top;
    text-align: center;
    transition: all 250ms ease;
    cursor: pointer;
}
.radio input[type=radio]:checked + .radio-label::before {
    background-color: var(--radio-button-check-color);
    box-shadow: inset 0 0 0 3px var(--radio-button-bg-color);
}
.radio input[type=radio]:focus + .radio-label::before {
    outline: none;
    border-color: #3197EE;
}
.radio input[type=radio]:disabled:not(.radio-no-disable-style) + .radio-label::before {
    box-shadow: inset 0 0 0 3px var(--radio-button-bg-color);
    border-color: #b4b4b4;
    background: #b4b4b4;
}
.radio input[type=radio] + .radio-label:empty::before {
    margin-right: 0;
}


div.lessontimes-table-container {
    display: flex;
    justify-content: center;
}
.lessontimes-table {
    text-align: center;
    width: 100%;
    max-width: 85%;
    min-width: min(100%, 25rem);
}
.lessontimes-table td {
    width: clamp(6.25rem, 33%, 10rem)
}

.print-dialog-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    backdrop-filter: blur(10px) brightness(70%);
}
.print-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 700px;
    max-width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    padding: clamp(5px, 3vw, 15px);
    z-index: 10001;
}
.print-dialog > :first-child {
    flex-grow: 1;
}
.print-dialog > :last-child {
    display: flex;
    justify-content: flex-end;
    column-gap: 6px;
}

.post-cover-image > img:not(.blurred-img),
.post-preview-content img:not(.no-zoom),
.gallery-cover-image > img:not(.blurred-img),
.photopost-images img:not(.blurred-img) {
    cursor: pointer !important;
}

/* Image zoom overlay */

#img-overlay, #exit-overlay, #zoomed-img, #reset-zoom, #zoom-input{
    position: fixed;
    z-index: 10000;
}

#img-overlay{
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}

#zoomed-img{
    z-index: 10001 !important;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#reset-zoom{
    top: 0;
    left: 0;
}

#exit-overlay{
    top: 0;
    right: 0;
}

#zoom-input{
    align-self: center;
    margin: 10px;
    margin-bottom: 15px;
    -webkit-appearance: none;
    appearance: none;
    bottom: 0;
    left: 50;
    right: 50;
    width: 50vw;
    height: 6px;
    z-index: 10002;
    background-color: #ffffff;
    border-radius: 10px;
    outline: none;
    opacity: 0.5;
    -webkit-transition: .2s;
    transition: opacity .2s;
}

#zoom-input:hover{
    opacity: 1;
}

#zoom-input::-webkit-slider-thumb{
    -webkit-appearance: none;
    appearance: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
}


#zoom-input::-moz-range-thumb{
    outline: none;
    border: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
}


/* font selector */

.font-selector{
    position: relative;
    display: inline-block;
    caret-color: transparent;
    cursor: pointer;
    z-index: 10000;
    margin-right: 6px;
}

.google-fonts{
    overflow-y: scroll;
    scrollbar-width: none;
    overflow-x: hidden;
    position: absolute;
    z-index: 10000;
    height: 200px;
}

.google-fonts::-webkit-scrollbar{
    display: none;
}

.google-fonts img{
    padding: 10px;
    width: inherit;
    filter: var(--profile-icon-filter);
}

