* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;	
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: #f0f0f0;
    font-family: Fira Sans, Arial, sans-serif;
    color: #151515;
}

.footer{
    display:block;
    width:100%;
    margin:0;
    padding:30px 20px;
    box-sizing:border-box;
    text-align:center;
    font-size:13px;
    color:#444;
}



@font-face {
	font-family: "fontello";
	src: url("../fonts/fontello.woff2") format("woff2");
	font-weight: normal;
	font-style: normal;
}


		@font-face {
			font-family: "Fira Sans";
			src: url("../fonts/FiraSans-Regular.woff2") format("woff2");
			font-weight: 400;
			font-style: normal;
			font-display: swap;
		}

		@font-face {
			font-family: "Fira Sans";
			src: url("../fonts/FiraSans-Medium.woff2") format("woff2");
			font-weight: 500;
			font-style: normal;
			font-display: swap;
		}

		@font-face {
			font-family: "Fira Sans";
			src: url("../fonts/FiraSans-Bold.woff2") format("woff2");
			font-weight: 700;
			font-style: normal;
			font-display: swap;
		}

		@font-face {
			font-family: "Fira Sans";
			src: url("../fonts/FiraSans-Thin.woff2") format("woff2");
			font-weight: 100;
			font-style: normal;
			font-display: swap;
		}

		@font-face {
			font-family: "Fira Sans";
			src: url("../fonts/FiraSans-Italic.woff2") format("woff2");
			font-weight: 400;
			font-style: italic;
			font-display: swap;
		}
		
		
		@font-face {
			font-family: "Press Start 2P";
			src: url("../fonts/PressStart2P-Regular.woff2") format("woff2");
			font-weight: normal;
			font-style: normal;
			font-display: swap;
		}



		
						/*------*/
						/* MENU */		
						/*------*/
		
		
		#menu-overlay{
    position:fixed;
    inset:0;
    z-index:999;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f0f0f0;
    opacity:0;
    visibility:hidden;
    transition:opacity .3s ease,visibility .3s ease
}

#menu-overlay.active{
    opacity:1;
    visibility:visible
}

#menu-navigation{
    display:flex;
    flex-direction:column;
    gap:clamp(18px,3vh,32px);
    text-align:center
}

#menu-navigation a{
    color:inherit;
    text-decoration:none;
    font-family:"Fira Sans", sans-serif;
    font-size:clamp(26px,4vw,42px);
    font-weight:700;
    transition:opacity .2s ease
}

#menu-navigation a:hover{
    opacity:.5
}

.menu-divider{
    width:60px;
    height:1px;
    margin:4px auto;
    background:rgba(0,0,0,.15)
}


#menu-qr-link{
    position:absolute;
    left:clamp(18px,3vw,30px);
    bottom:clamp(18px,3vw,30px);

    display:flex;
    flex-direction:column;
    align-items:center;

    color:inherit;
    text-decoration:none;
}

#menu-qr{
    width:clamp(80px,9vw,150px);
    height:auto;
}

#menu-qr-label{
    margin-top:6px;
    font-family:"Fira Sans",sans-serif;
    font-size:12px;
    line-height:1.1;
    text-align:center;
}


#menu-impressum{
    position:absolute;
    right:clamp(18px,3vw,30px);
    bottom:clamp(18px,3vw,30px);

    color:inherit;
    text-decoration:none;
    font-family:"Fira Sans",sans-serif;
    font-size:clamp(17px,4vw,25px);
    opacity:.55;
}

#menu-impressum:hover{
    opacity:1;
}

@media(max-width:600px){

    #menu-navigation{
        gap:20px
    }

    #menu-navigation a{
        font-size:28px
    }
}


@media (min-width: 768px) {
    #menu-qr {
        pointer-events: none;
    }
}

@media (min-width: 768px) {
    #menu-qr-link {
        pointer-events: none;
    }
}

						
						
						/*--------*/
						/* HEADER */		
						/*--------*/

#site-header{
    position:relative;
    background:#f0f0f0;
    width:100%;
    height:70px;	
    padding:15px 30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    z-index:1000
}

#brand{
    display:flex;
    align-items:center;
    gap:clamp(8px,1vw,12px);
    color:inherit;
    text-decoration:none
}

#brand img{
    width:clamp(30px,3vw,38px);
    height:clamp(30px,3vw,38px);
    object-fit:contain
}

#brand-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    letter-spacing:2px;
    width:max-content;
}

#brand-name,
#brand-subtitle{
    display:block;
    width:100%;
    text-align:justify;
	    text-align-last:justify;
}


#brand-name{
    font-size:clamp(20px,2vw,24px);
    line-height:1;
}

#brand-subtitle{
    font-size:clamp(11px,1.1vw,14px);
    line-height:1;
    color:rgba(0,0,0,.55);
    letter-spacing:.03em;
	text-transform: uppercase;
}

#menu-button{
    position:fixed;
    top:5px;
    right:15px;	
    width:clamp(48px,10vw,60px);
    height:clamp(48px,10vw,60px);
    padding:0;
    background:rgba(240,240,240,.55);
    border:0;
    cursor:pointer
}

#menu-button span{
    position:absolute;
    left:10%;
    width:80%;
    height:3px;
    background:currentColor;
    transition:transform .3s ease,opacity .3s ease
}

#menu-button span:nth-child(1){transform:translateY(-12px)}
#menu-button span:nth-child(2){transform:translateY(0)}
#menu-button span:nth-child(3){transform:translateY(12px)}

#menu-button.active span:nth-child(1){transform:rotate(45deg)}
#menu-button.active span:nth-child(2){opacity:0}
#menu-button.active span:nth-child(3){transform:rotate(-45deg)}


@media(max-width:600px){

    #site-header{
        padding:18px 20px
    }

    #brand img{
        width:34px;
        height:34px
    }

    #brand-name{font-size:20px}
    #brand-subtitle{font-size:12px}

    #menu-button{
        width:50px;
        height:50px;
        padding:8px;
        gap:6px
    }

    #menu-button span{height:2.5px}
}