/*

OpenCC Main CSS Code
Date of publish: 24.03.2021

(CC) CC BY-NC-SA 4.0


definition of all global site settings

*/

/*
import Roboto
*/
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300&display=swap');
@import url("fontello.css");

/*
Resets
*/
*{
	padding: 0px;
	margin: 0px;
	box-sizing: border-box;
}


table{border-collapse:collapse;border-spacing:0; text-align:left;}

/*
setting variables
*/
:root {
	--occ_highlight_bg: #333333;
	--occ_complementary: #98dde3;
	--occ_active: #333333;
	--occ_white: #FCFCFC;
	--occ_black: #555;
	--occ_corner: 0.2em;
	--occ_text_font_size: 1.2rem;
	--occ_caption_font_size: 1.5rem;
}

/*
creating background
*/

html{
	font-size: 62.5%;
	color: var(--occ_black);
	scroll-behavior: smooth;
}

html, body{
	height: 100%;
	line-height:1;
	font-family:'Roboto', sans-serif;
	background: linear-gradient(180deg, rgba(240,240,240,1) 0%, rgba(180,180,180,1) 100%);
	background-attachment: fixed;
	display: flex;
	min-height: 100vh;
	flex-direction: column; 
}
html::before {
	position: fixed;
	content: "";
	width: 100%;
	height: 100%;
	clip-path: polygon(100% 0, 0 0, 100% 100%);
    -webkit-clip-path: polygon(100% 0, 0 0, 100% 100%);
	background-color: rgba(255, 255,255, 0.2);
	background-attachment: fixed;
}

article{
	position: relative;

	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto;
	
	box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.10);
	backdrop-filter: blur(8px);
	background: rgba(100,100,100,0.2);
	border-radius: var(--occ_corner);
	overflow: hidden;
	
	font-size: var(--occ_text_font_size);
}

/*
general font declarations
*/
h2, h3, label{
	font-size: var(--occ_caption_font_size);
	font-weight: 300;
	text-transform: uppercase;
}

/*
form elements
*/
label.form_label,
label.form_label_unchanged{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 5px 0;
	border-bottom: 1px solid var(--occ_white);
	pointer-events: none;
	transition: 300ms;
}

input, select, textarea{
	position: relative;
	background:var(--occ_active);
	padding: 0.5em 1em;
	border: none;
	outline: none;
	font-size: var(--occ_text_font_size);
	font-weight: 300;
	color:  var(--occ_white);
	font-family:'Roboto', sans-serif;
	width: 100%;
	resize: none;
	border-radius: 5px;
}

select.editor_select{
	/* replace default arrow styling */
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url('../graphic/dropdown_arrow.svg');
	background-position: right 10px top 50%;
	background-repeat: no-repeat;
	background-size: 10px;
}

textarea{
	height: 250px;
}

label.form_label::after{
	content: '';
	position: absolute;
	height: 3px;
	width: 0%;
	left: 0;
	bottom: -1px;
	border-bottom: 2px solid var(--occ_complementary);
	transition: width 0.3s ease-in-out;
}

.form_label span{
	position: absolute;
	top: 0.6em;
	transition: all 0.3s ease-in-out;
	font-size: 1.3rem;
}

input:hover + label::after, input:focus + label::after,
select:hover + label::after, select:focus + label::after,
textarea:hover + label::after, textarea:focus + label::after
{
	width: 100%;
}

input:hover + .form_label span, input:focus + .form_label span, input:valid + .form_label span,
select:hover + .form_label span, select:focus + .form_label span, select:valid + .form_label span,
textarea:hover + .form_label span, textarea:focus + .form_label span, textarea:valid + .form_label span
{
	transform: translateY(-150%);
	font-size: 1.1rem;
	color:var(--occ_complementary);
}

#mail_label{
	color: var(--occ_active);
}

input[type="file"]{
    opacity: 0;
    z-index: -1;
    position: absolute;
    top: -1px;
    left: 0;
    width: 0.1px;
    height: 0.1px;
}

label[for="files"]{
	position: absolute;
	top: 0;
	padding: 12px 10px;
    background: #98DDE3;
	text-align: center;
    color: var(--occ_white);
    border-radius: var(--occ_corner);
    cursor: pointer;
    font-size: var(--occ_text_font_size);
	overflow: hidden;
	z-index: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
}

label[for="files"]:hover{
	background:#0b5d7e;
	box-shadow: inset 2px 2px 10px 0px rgba(0,0,0,0.2);
}

label[for="files"]::after{
	border: none;
}


/*
header design - general
*/

header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 5em;
	z-index: 3;
	text-align: center;
	background: var(--occ_highlight_bg);
	box-shadow: 0px 5px 15px 0px rgba(0,0,0,0.20);
	
	display: grid;
	grid-template-columns: 0em 1fr 0em;
	grid-template-rows: 5em;
	align-items: center;
}

header h1{
	grid-column: 2;
	grid-row: 1;
	z-index:0;
	margin:0;
	padding:0;
	margin-top:0.2em;
}

header h1 a{
	text-decoration: none;
}

header h1 a img{
	width: 7em;
	margin:0;
	padding:0;
}

/*
header design - hamburger icon
*/
label.hamburg {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	
	height: 100%;
	aspect-ratio: 1 / 1;
	background: var(--occ_complementary);
		
	display: flex;
	align-items: center;
	justify-content : center;
	transition: border-radius 400ms ease-in-out;
		
	cursor: pointer;
	z-index: 1000;
}

input#hamburg {
	display:none;
	z-index: 1000;
}

.hamburg span,
.hamburg span::before,
.hamburg span::after {
	position: relative;
	display: block;
	background: #eee;
	height: 3px;
	width: 1.75em;		
	border-radius: 2px;
	transition: transform 400ms ease-in-out, width 400ms ease-in-out;
}	
	
.hamburg span::before,
.hamburg span::after{
	content: '';
	position: absolute;
}
	
.hamburg span::before{
	bottom: 0.5em;
}
.hamburg span::after{
	top: 0.5em;
}


/*
hamburger icon - animation states
*/
#hamburg:checked + .hamburg span::before{
	transform: translateY(0.5em) translateX(-0.9em) rotate(-45deg);
}

#hamburg:checked + .hamburg span{
	width: 0;
}

#hamburg:checked + .hamburg span::after{
	transform: translateY(-0.5em) translateX(-0.9em) rotate(45deg);
}

/*
side navigation - mobile
*/

nav.sidemenu{
	position: absolute;
	display:inline;
	top: 0em;
	right: -60%;
	width: 60%;
	margin-top: 4.5em;
	padding: 2em;
    background: rgb(221,221,221);
    background: linear-gradient(180deg, rgba(221,221,221,1) 0%, rgba(255,255,255,1) 100%);
	border-radius: 0.4em 0 0 0.4em;
	text-align: left;
	transition: right 400ms ease-in-out;
	z-index: 1000;
}

nav.sidemenu::after {
	content: "";
	position: absolute;
	padding: 0.5em;
	right: 0;
	top: 0;
	width: calc(100% - 1em);
	background: var(--occ_complementary);
	border-radius: 0.4em 0 0 0;
}

.sidemenu ul{
	text-transform: uppercase;
	font-size: var(--occ_caption_font_size);
}

.sidemenu li{
    position: relative;
	line-height: 2.5em;
	display: block;
	padding-left: 1em;
	border-radius: var(--occ_corner);
	margin-bottom: 0.5em;
}

.sidemenu li a{
	font-weight: 300;
	color: #333;
	text-decoration: none;
}

.sidemenu li img{
	height: 1em;
	padding-right: 1em;
}

.sidemenu li:hover{
	background: rgba(0,0,0,0.1);
}

.sidemenu li.active{background: var(--occ_active); font-weight: 300;}
.sidemenu li.active{color: var(--occ_white);}
.sidemenu li.active:hover{cursor: default;}

.menu_bg{
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 100%;
	background: rgba(0,0,0,0.75);
	z-index: 1;
	backdrop-filter: blur(8px);
	transition: width 400ms ease-in-out;
}

#hamburg:checked ~ nav.sidemenu{right: 0;}
#hamburg:checked ~ .menu_bg{width: 100%;}


main{
	flex: 1 0 auto; /* 2 */
	margin:10em 5% 3em 5%;
}
main::after {
  content: '\00a0'; /* &nbsp; */
  display: block;
  margin-top: var(--space);
  height: 0px;
  visibility: hidden;
}

/*
footer navigation - mobile
*/
nav.bottommenu{ 
	position: fixed;
	bottom: -2px;
    right:0px;
	width:100%;
    overflow: hidden;
	box-shadow: 0px -5px 15px 0px rgba(0,0,0,0.20);
	
	background: var(--occ_highlight_bg);
    z-index: 1;
}

.bottommenu ul{
	position: relative;
	display: inline-grid;
	grid-template-columns: repeat(5, 1fr);
	grid-column-gap: 0px;
	width:100%;
}

.bottommenu li{
	content: "";
    position: relative;
	display: inline-block;
	margin: 0 auto;
	width: 100%;
	aspect-ratio: 1 / 0.75;
}

.bottommenu li a{
	height: 100%;
	width: 100%;
	margin: auto;
	display: block;
	text-align: center;
	text-decoration: none;
	padding-top: calc(50% - 2.1em);
}


.bottommenu li img{
	width: 2em;
}

.bottommenu li.active::before {
    position: absolute;
    content: '';
    display: block;
    height: 5px;
    width: 100%;
    background-color: var(--occ_complementary);
    top: 0;
}

/*
Disclaimer
*/
p.cc{
	padding: 1em 0;
	font-weight: 900;
	width:15em;
}

p.policies{
	padding: 0 0 1em 0;
	font-size: var(--occ_text_font_size);
	line-height:1.5em;
	font-weight:300;
	color: #333;
}

p.policies span{
	font-weight: 700;
	color: #333;
	text-transform: uppercase;
}