@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);
    --main-container-width: min(90vw, 1200px);
    --nav-font-size: 19px;
}
:root {
    --background-color: #EFEFEF;
    --foreground-color: white;
    --font-color: black;
    --profile-icon-filter: none;
    --link-standard-color: #12792b;
    --link-highlight-color: #159f34;
    --link-button-standard-color: var(--link-standard-color);
    --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;
    --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;
    --logo-filter: brightness(80%);
}
:root[data-applied-mode="dark"] {
    --background-color: #141414;
    --foreground-color: #232323;
    --font-color: #fff;
    --profile-icon-filter: invert(1);
    --link-standard-color: #0ad239;
    --link-highlight-color: #0dff47;
    --link-button-standard-color: #17b03b;
    --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;
    --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;
}

: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, .flex {
    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;
}
.flex-y-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.aling-s-end {
    align-self: end;
}
.align-s-fl-end {
    align-self: flex-end;
}
.flex-grow {
    flex-grow: 1;
}
.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;
}
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(26, 159, 58);
    background: linear-gradient(253deg, rgb(15, 195, 57) 0%, rgb(27, 141, 54) 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) {
    color: var(--link-standard-color);
    position: relative;
    height: fit-content;
    transition: color .4s ease-out;
    padding-bottom: 1px;
}
a:not(.no-link, .btn):hover {
    color: var(--link-highlight-color);
    right: 0;
    text-decoration: none;
}
a:not(.no-link, .btn):hover::after {
    border-color: var(--link-highlight-color);
    right: 0;
}
a:not(.no-link, .btn)::after {
    border-radius: 1em;
    border-top: .1em solid var(--link-standard-color);
    content: "";
    position: absolute;
    right: 100%;
    bottom: .14em;
    left: 0;
    transition: right .4s cubic-bezier(0,.5,0,1), border-color .4s ease-out;
}
a:not(.no-link, .btn):hover::after {
    right: 0;
}

input, button {
    border: 1px solid var(--input-border-color);
    background-color: var(--input-background-color);
    border-radius: 3px;
    color: var(--font-color);
}
button:hover {
    background-color: var(--button-hover-color);
}

::selection {
    background-color: rgba(0, 176, 40, 0.55);
}

.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: var(--nav-height-js);
}
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{
    filter: var(--logo-filter);
    height: 30px;
}
@media only screen and (min-width: 901px) {
    nav > div > div.menu {
        margin-left: 140px;
        margin-right: 140px;
        width: calc(100% - 280px);
    }
    nav > div > div.menu > div {
        justify-content: space-around;
    }
}

@media only screen and (max-width: 900px) and (min-width: 700px) {
    :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: 700px) {
    :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;
    }
}


/*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 {
    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*/
footer {
    min-height: 60px;
    padding: 20px min(3vw, 30px) 10px;
    /*box-shadow: 0px -3px 5px 2px #777;*/
    background: rgb(26, 159, 58);
    background: linear-gradient(305deg, rgb(21, 162, 53) 0%, rgb(22, 68, 29) 100%);
    color: white;
}
:root[useragent="mobile"] footer {
    padding: 20px 0 10px;
}
footer > div.main-container {
    display: flex;
    justify-content: space-between;
}
@media only screen and (max-width: 930px) {
    footer > div.main-container {
        flex-direction: column;
    }
    footer > div.main-container > section {
        margin-bottom: 0;
    }
    footer > div.main-container > section:nth-child(2) > div:first-child {
        display: none;
    }
}
@media only screen and (min-width: 930px) {
    footer > div.main-container > section:first-child {
        margin-right: 10px;
        margin-bottom: 5px;
    }
    footer > div.main-container > section:first-child > div:first-child > div:last-child {
        display: none;
    }
}
div.footer-section-part {
    margin-bottom: 12px;
}
div.footer-section-part > h2 {
    margin-bottom: 2px;
}
footer p {
    margin-top: 0;
    margin-bottom: 0.2rem;
}
footer h3 {
    line-height: 0.8rem;
}
footer h3 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;
}
.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));
}

/* 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;
}
#slideshow div:nth-of-type(2) {
    display: none;
    font-size: clamp(4vw, 40px, 8vmin);
    text-align: center;
}
#slideshow div.school-name span {
    font-size: 16px;
    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; }
}

/* 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: rgb(26, 159, 58);
    background: linear-gradient(71deg, rgb(15, 195, 57) 0%, rgb(27, 141, 54) 100%);
    color: white;
    border: none;
}
.post-fancy ::selection {
    background: rgba(190, 255, 201, 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-read-further {
    text-align: center;
}
:root[useragent="mobile"] .post-read-further > p {
    margin-top: 12px;
    margin-bottom: 10px;
}
:root[useragent="mobile"] .post-read-further > p > a,
:root[useragent="mobile"] a.mobile-a-button {
    background-color: var(--link-button-standard-color);
    transition: background-color .4s ease-out;
    padding: 5px 10px;
    border-radius: 6px;
    color: white;
}
:root[useragent="mobile"] .post-read-further > p > a:hover,
:root[useragent="mobile"] a.mobile-a-button:hover {
    background-color: var(--link-highlight-color);
}
:root[useragent="mobile"] .post-read-further > p > a::after,
: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;
}

div.posts-container > div.posts-1col > .post {
    margin: 0 0 15px;
}
div.posts-container > div.posts-2col > div:first-child > div.post {
    margin-left: 0;
}
div.posts-container > div.posts-2col > div:last-child > div.post {
    margin-right: 0;
}
div.posts-container > div > div > div.post:first-child {
    margin-top: 0;
}
div.posts-container > div > div > div.post:last-child {
    margin-bottom: 0;
}

@media only screen and (max-width: 800px) {
    .posts-2col {
        display: none;
    }
    .posts-1col {
        display: block;
    }
}
@media only screen and (min-width: 800px) {
    .post {
        margin: calc((var(--main-container-width) * 0.03) - 15px);
        margin-bottom: calc((var(--main-container-width) * 0.045) - 22.5px);
    }
    .posts-2col {
        display: grid;
        grid-template-columns: 50% 50%;
    }
    .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 > div:first-child > div.post {
        margin-left: 0;
    }
    div.posts-container > div.posts-3col > div:nth-child(2) > div.post {
        margin-left: 0;
        margin-right: 0;
    }
    div.posts-container > div.posts-3col > div:last-child > div.post {
        margin-right: 0;
    }
    div.posts-container > div.posts-3col > div:last-child > h3 {
        margin-left: calc((var(--main-container-width) * 0.03) - 15px);
    }
    .posts-1col {
        display: none;
    }
}
@media only screen and (max-width: 1150px) {
    .posts-3col {
        display: none;
    }
    .gallery-container .posts-1col {
        display: block;
    }
    .posts-1col .post {
        margin: 0 0 10px;
    }
}
:root[useragent="mobile"] div.post,
:root[useragent="mobile"] .mobile-remove-border{
    border: none;
    border-radius: 2px;
}

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

/* Dropdown Button */
.dropbtn {
    background-color: var(--foreground-color);
    color: #1dc720;
    padding: 5px 10px;
    border: 2px solid #2fb031;
    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: #23c025;
    color: #11de14;
}

/* 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;
}

/*
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);
}


/*
img max size
 */
.limited-height-img-container {
    overflow: hidden;
    position: relative;
    display: block;
    font-size: 0;
}
.limited-height-img-container > img:first-child {
    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;
}

#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: #17a739;
    color: white;
}
.btn-primary:hover {
    background-color: #10c33a;
}
.btn-secondary {
    background-color: var(--secondary-btn-bg);
    border: 2px solid #17a739;
}
.btn-secondary:hover {
    background-color: var(--secondary-btn-bg-hover);
    border-color: #10c33a;
}
#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;
    }
}
