@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');


html {
    color: #435152;
    background-color: #00aeef;
    
    font-family: Helvetica Neue, Inter, Arial, sans-serif;
    font-weight: 500;
    font-size: calc(6px + 1.09vmin);

    body {
        display: flex;
        flex-direction: column;
        
        margin: 0;
        min-height: 100vh;
        
        &:before {
            content: "";
            position: fixed;
            inset: 0;
            z-index: -1;
        
            --background-gradient: linear-gradient(to bottom, #00aeef 15%, #00aeefef 28%, transparent 75%);
            background-image: var(--background-gradient), url('img/bgfallback.jpg');
            background-size: cover;
            background-position: center center;
            background-attachment: fixed;
            background-repeat: no-repeat;
        }
        
        &.impressum, &.datenschutz {
            section { 
				.text, p {
					font-size: 100%;
				} 
			}
        }

        header#mainHeader {
            display: flex;
            justify-content: space-between;
            align-items: center;
            
            position: sticky;
            top: 0;

            color: #5e2e7d;
            background-color: #ffffff;
            
            padding: 1.4em 2.4em 1em;
            
            height: 6.3em;
            box-sizing: border-box;
            
            box-shadow: 0 3em 3em #00aeef;
            
            z-index: 2000;
            
            button#menuButton {
                --buttonColor: #5e2e7d;
                
                border: none;
                background: transparent;
                color: var(--buttonColor);
                font-size: 300%;
                font-weight: 1000;
                scale: 1.6 1;
                text-shadow: 0 1px 0 var(--buttonColor), 0 -1px 0 var(--buttonColor);
                cursor: pointer;
                
                &:hover, &.active {
                    --buttonColor: #00aeef;
                }
            }

            #logoWrapper {
                position: absolute;
                z-index: -1;

                left: 0;
                top: 0.4em;
                width: 100%;
                height: calc(100% + 0.75em);
                text-align: center;
                
                img {
                    height: 100%;
                    background-color: #ffffff;
                    padding: 0.3em;
                    height: 100%;
                }
            }
            
            #menuButton:not(.active) + nav.primary {
                display: none;
            }
            
            nav.primary {
                position: fixed;
                top: 6.1em;
                background-color: #ffffffbb;
                padding: 2em 1.8em;
                
                @media (orientation: portrait) {
                    left: 0;
                    right: 0;
                    bottom: 0;
                    background-color: #ffffff;
                    text-align: center;
                }
                
                ul {
                    display: flex;
                    flex-direction: column;
                    font-size: 200%;
                    padding: 0;
                    margin: 0;
                    gap: 0.3em;
                    
                    li {
                        display: block;
                    }
                    
                    @media (orientation: portrait) {
                        height: 90%;
                        font-size: 400%;
                        justify-content: space-evenly;
                    }
                }
            }
            
            nav.secondary {                
                ul {
                    display: flex;
                    gap: 1.5em;
                    
                    padding: 0.3em 0 0;
                    margin: 0;
                    
                    font-size: 85%;
                    
                    @media (orientation: portrait) {
                        flex-direction: column;
                        align-items: flex-end;
                        gap: 0.3em;
                        font-size: 125%;
                    }
                    
                    li {
                        display: block;
                    }
                }
            }
        }
        
        main {
            flex-grow: 1;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            
            padding: 7vh 3em;

            @media (orientation: portrait) {            
                padding: 7vh 1.5em;
            }
            
            h1 {
                flex-grow: 1;
                color: #ffffff;
                padding: 0 10vw;
                font-size: 775%;
                text-align: center;
                font-weight: 500;
                line-height: 1em;
				display: flex;
				justify-content: center;
            
                @media (orientation: portrait) {
                    font-size: 450%;
                    padding: 0.3em;
                }
            }
        }
    }
    
    h2, h3 {
        color: #5e2e7d;
        font-weight: 500;
        text-align: center;
        margin: 0;
    }
    
    h2 {
        font-size: 450%;
        margin-bottom: 0.6em;
        
        @media (orientation: portrait) {
            font-size: 300%;
        }
    }
    
    h3 {
        font-size: 200%;
    }
    
    a {
        text-decoration: none;
        color: inherit;
        
        &:hover, &.active {
            color: #00aeef;
        }
    }
    
    section {
        margin: 6.5em 7em 3em;
        padding: 1.5em 4em 4em;
        background-color: #ffffffbb;
        
        @media (orientation: portrait) {
            margin: 6.5em 0 3em;
            padding: 1.5em 2em 4em;
        }
        
        section {
            margin: 0;
            padding: 0;
            background-color: transparent;
        }
        
        .text, p, h4 {
            font-size: 150%;
            text-align: justify;
            
            @media (orientation: portrait) {
                font-size: 175%;
            }
			
			span {
				font-size: inherit !important;
			}
			
			.text, p {
				font-size: inherit;
			}
        }
        
        .blogEntry {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1em;
        }

        .blogEntry > div {
            grid-column-end: 3;
            grid-column-start: 1;
        }
        
        .gallery {
            display: grid;
            grid-template-columns: 1fr 1fr;
            overflow: hidden;
            gap: 4em;
            
            @media (orientation: portrait) {
                grid-template-columns: 1fr;
            }
            
            img {
                width: 100%;
                height: 25vw;
                display: block;
                border: 0.2em solid #5e2e7d;
                object-fit: cover;
                box-sizing: border-box;
				background-color: rgba(255, 255, 255, 0.6);
            
                @media (orientation: portrait) {
                    max-height: 50vh;
                }
            }
        }
        
        article + article {
            margin-top: 6em;
        }
        
        .downloadsWrapper {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 4em;
            
            a {
                display: flex;
                flex-direction: column;
                
                border: 0.2em solid #5e2e7d;
                background: #ffffff;
                padding: 1em 3em;
                
                &:hover, &.active {
                    border-color: #00aeef;
                }
                
                h4 {
                    margin-top: 0;
                }
                
                img {
                    margin: 1em 0;
                    box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.3);
                }
                
                span {
                    text-align: right;
                }
            }
        }
        
        #map {            
            height: 70vh;
            margin: 1em 0;
            border: 0.2em solid #5e2e7d;

            .leaflet-tile-pane {
                filter: saturate(0);
            }

            .leaflet-control a {
                color: inherit;
            }

            .leaflet-control a:hover {
                color: #469fdd;
                text-decoration: none;
            }
        }
    }
	
	button {
		border: none;
		background-color: #333333;
		font-family: inherit;
		font-size: inherit;
		color: white;
		padding: 0.25em 0.6em;
		cursor: pointer;
	}

	button:hover {
		background-color: #469fdd;
	}
    
    input, textarea {
        background-color: white;
        font-family: inherit;
        font-size: inherit;
        color: var(--grey);
        border: none;
        box-sizing: border-box;

        transition: box-shadow linear 200ms;
    }

    input.touched[required]:placeholder-shown:not(:focus), textarea.touched[required]:placeholder-shown:not(:focus) {
      box-shadow: 0 -0 0  0.1em var(--red);
    }

	.error {
		color: #dd3300;
	}

	.loginInfo {
		position: fixed;
		left: 12em;
		top: 0;
		z-index: 10000;
		display: flex;
		align-items: center;
		height: 7em;
	}

	.loginInfo button {
		margin-left: 1em;
	}
    
        .blogEntry .editor {
        width: 100%;
        max-width: 100%;
        display: flex;
        flex-direction: column;
        gap: 0.5em;
    }

    .blogEntry .editor input {
        text-transform: uppercase;
        font-weight: 600;
      width: 100%;
    }

    .blogEntry .editor .title {
        font-size: 150%;
        font-weight: bold;
        color: #5e2e7d;
    }

    .blogButtons {
      padding: 2em 0;
      width: 100%;

      button {
        width: 100%;
      }
    }
    
    .deleteBtn, button.delete {
        background-color: #dd3300;
    }

    .adminImagesWrapper {
        padding: 1em;
        background-color: #ffffff;
        display: flex;
        gap: 1em;
    }

    .adminImagesWrapper .image, .adminImagesWrapper .addBtn {
        position: relative;
        width: 6em;
        height: 6em;
    }

    .adminImagesWrapper .image img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .adminImagesWrapper .image .deleteBtn {
        position: absolute;
        right: 0;
        bottom: 0;
    }

    .adminImagesWrapper .image:not(:hover) .deleteBtn {
        opacity: 0;
    }

    .adminImagesWrapper input {
        display: none;
    }
	
	.editorWrapper {
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 1em;
	}

	.tox-tinymce {
		border-radius: 0 !important;
		height: calc(100vh - 19em) !important; 
		padding: 0;
	}
    
    .tox .tox-collection__item-label {
        line-height: unset;
    }
    
    .bgChanger {
        position: fixed;
        top: 8em;
        right: 2em;
		z-index: 3000;
            
        input {
            display: none;
        }
    }
}
