
html { background:white;
	background: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(77, 195, 255, 1) 100%);
	background-attachment: fixed;
}


html, body { width: 100%;
	height: 100%;
	color: black;
	font-family: 'DejaVu Sans', sans-serif, Arial, Verdana;
	margin: 0px;
	padding: 0px;
}

* { box-sizing: border-box; }

/* Freie Google Fonts */
@font-face {
  font-family: 'Orbitron';
  src: url('../fonts/Orbitron_wght.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'Charm';
  src: url('../fonts/Charm-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

a:link {color: black; text-decoration: none; }
a:visited {color: black; text-decoration: none; }
a:active {color: black; text-decoration: none; }


/**************************************************************/
/*        GRID-CONTAINER für die Seitenaufteilung             */
/**************************************************************/
.grid-container {
  display: grid;
  grid-template-areas: 
    'head'
    'menu'
    'main' 
    'footer';
  /* grid-column-gap: 10px; - Wenn man eine Lücke zwischen den einzelnen grid-bereichen haben möchte */
  grid-template-columns: 100%;
  grid-template-rows: auto auto 1fr auto;

  /* Möchte man das der Footer stehen bleibt, muß man height: 100vh angeben. */
  /* Soll der Footer sich nach unten verschieben bei längerem Text, gibt man min-height: 100vh an. */
  min-height: 100vh;
} 


/* Macht das der Footer bei der mobilen Ansicht immer am Ende der Page ist */
@media (max-width: 700px) {
	.grid-container {
		height: auto;         /* Höhe richtet sich nach Inhalt */
		min-height: 100vh;    /* Mindestens so hoch wie der Viewport */
		width: 100%;
		grid-template-rows: auto auto auto auto;
	}
}
/******************************************/
/*        GRID-CONTAINER ENDE            */
/****************************************/


/***********************/
/* HEAD-Bereich START */
/*********************/
.head { grid-area: head;
	display: flex;
	justify-content: center;
}

.head_middle_title { font-family: 'Orbitron', sans-serif;
	font-size: clamp(34px, 3.5vw, 50px);
	color: #4dc3ff;
	text-shadow: 2px 2px 2px black;
	padding: 2px 30px 6px 30px;
}

.head_middle_slogan { display: flex;
	align-items: center;
	font-family: 'Charm', sans-serif;
	font-size: clamp(22px, 2vw, 34px);
	padding: 0px 30px 0px 30px;
}

.flags_container { display:flex;
	justify-content: space-between;
	padding: 10px 0px 0px 20px;
}

.flags_container img { border: 1px solid black;
	margin: 0px 10px 0px 10px;
}

/* Responsive layout - setzt die Menü-Buttons untereinander */
@media (max-width: 700px) {
	.head, .head_middle_slogan  {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
	}
	.flags_container { padding: 0px; }
}
/*********************/
/* HEAD-Bereich ENDE */
/*********************/




/***********************/
/* Menü-Bereich START */
/*********************/
.navigation { grid-area: menu;
	display: flex;
	justify-content: space-around; /* Läßt links und rechts Platz um die Inhalts-Items der Flexbox */
	/*background: #4dc3ff;*/
	background: linear-gradient(0deg,rgba(255, 255, 255, 1) 0%, rgba(77, 195, 255, 1) 100%);
	width: 100%;
}

/* Responsive layout - setzt die Menü-Buttons untereinander */
@media (max-width: 700px) {
	.navigation  {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
	}
}

a.menubutton, a.menubutton_selected { display: flex;
	width: 160px; 
	height: 40px;
	justify-content: center;
	align-items: center;
	border:1px solid gray;
	box-shadow: 2px 2px;
	background: white;
	margin: 6px 0px 6px 0px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	/* Falls ein weicherer Übergang beim Bewegen der Buttons gewünscht wird */
	/* transition: transform 0.2s ease;*/
	}

a.menubutton { font-size: 14px;
	color: black;
	font-weight: bold;
	text-decoration: none;
}

a.menubutton_selected { font-size: 14px;
	color: black;
	font-weight: bold;
	text-decoration: none;
	background: linear-gradient(180deg,rgba(79, 226, 255, 1) 0%, rgba(255, 255, 255, 1) 40%, rgba(255, 255, 255, 1) 60%, rgba(79, 226, 255, 1) 100%);
}

a.menubutton:hover, a.menubutton_selected:hover {
	transform: translate(-2px,-2px);
	box-shadow: 4px 4px;
}
/**********************/
/* Menü-Bereich ENDE */
/********************/


/***********************/
/* Main-Bereich START */
/*********************/
.main { grid-area: main;
	display: flex;
	justify-content: center;
	overflow: auto;
	padding: 20px;
}

@media (max-width: 700px) {
	.main { padding: 20px 0px 0px 0px; }
}


.mainblock { display: flex;
	flex-direction: column;
	/*background-image: url();*/
	justify-content: flex-start;
	align-items: flex-start;
	padding: 20px;
}

/* Standard Zentrierung für Inhalte des Main-Bereichs */
.center_container { display: flex;
	justify-content: center;
	width: 100%;
}
/**********************/
/* Main-Bereich ENDE */
/********************/


/*************************/
/* Footer-Bereich START */
/***********************/
.footer { grid-area: footer;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

a.foot_link:link, a.foot_link:visited { color: white;
	font-weight: bold;
	text-decoration: none;
	text-shadow: 2px 2px 2px black;
}
a.foot_link:active {color: rgba(79, 226, 255, 1); font-weight: bold; text-decoration: none; text-shadow: 2px 2px 2px black; }

a.foot_selected { color:yellow;
	font-weight: bold;
	text-decoration: none;
	text-shadow: 2px 2px 2px black;
}

.hr_width { width: 90%; }

.foot_link_container { display:flex;
	width: 50%;
	justify-content: space-around;
	font-size: 14px;
}

.tags { display: flex; font-size: 10px; color: #CCCCCC; }

/* Responsive layout - setzt die Footer-Elemente untereinander */
@media (max-width: 700px) {
	.tags, .foot_link_container  {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
	}
}
/************************/
/* Footer-Bereich ENDE */
/**********************/



/****************************/
/* Home / About Me - START */
/**************************/

.home_container { display:flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
}

.startpic img { width: clamp(600px, 45vw, 1000px); }

.home_text { font-size: 18px;
	text-align:center;
	width: clamp(600px, 45vw ,1000px);
	text-shadow: 1px 1px 2px white;
}

.home_welcome { font-family: 'Charm', sans-serif;
	font-size: clamp(22px, 2vw, 34px);
}

.home_text p { text-align:center; }

.home_slogan { font-size: 24px; }

@media (max-width: 700px) {
	.startpic img, .home_text {
		width: 300px;
	}
}

/***************************/
/* Home / About Me - ENDE */
/*************************/



/**********************/
/* Datenschutz START */
/********************/
.datenschutz { font-family: Arial, Verdana, 'DejaVu Sans', sans-serif;
	font-size: 15px;
	max-width: 800px;
	text-align: left;
	border: 2px solid #AAAAAA;
	padding: 20px;
	margin-bottom: 80px;
}

.datenschutz_headline { text-align:center; font-size:20px; }

.datenschutz a {
  color: black;
  text-decoration: none;
}
/*********************/
/* Datenschutz ENDE */
/*******************/


/*******************/
/* Services START */
/*****************/

.service_card { display:flex;
	justify-content: center;
	margin-top: 50px;
	margin-bottom: 100px;
}

.service_card video { width: clamp(300px, 28vw, 512px);
	height: auto;
}

.service_card_margin_left { margin-left: 6vw; }
.service_card_margin_right { margin-right: 6vw; }

.service_card.reverse {
	flex-direction: row-reverse;
}

.service_title_container {  display: flex;
	flex-direction: column;
	justify-content: center;
}

.service_title { display:flex; 
	font-size: 24px;
	text-shadow: 2px 2px 2px white;
	padding: 10px;
	align-items: center;
}

.service_description { width: clamp(300px,50vw,900px); padding: 10px; }

/* Responsive layout - setzt Titel und Bild untereinander */
@media (max-width: 700px) {
	.service_card,
	.service_card.reverse {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
	}
	.service_title_container { align-items: center; }
	.service_description, .service_title { width: 300px; }
	.service_card_margin_left, .service_card_margin_right { margin-left: 0px; margin-right: 0px; }
}


/* Video-Overlay in Full HD */
.videoOverlay {
	visibility: hidden;
	position: fixed;
	inset: 0; /* Kurz-Schreibweise für top:0; right:0; bottom:0; und left:0; */
	background: rgba(0,0,0,0.8);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
}

.video-wrapper {
	position: relative;

	/* Maximal Full HD */
	max-width: 1920px;
	max-height: 1080px;

	/* 80% der Viewport-Größe */
	width: 80vw;
	height: 80vh;
}

.video-wrapper video {
	width: 100%;
	height: 100%;
}

#close-video {
	position: absolute;
	top: -40px;
	right: 0;
	background: none;
	color: white;
	border: none;
	font-size: 2rem;
	cursor: pointer;
}

/******************/
/* Services ENDE */
/****************/


/********************/
/* Portfolio START */
/******************/
.portfolio_container { display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 100px;
}

.text_block { font-size: 20px; 
	padding: 30px 0px 30px 0px; 
	text-align:left;
}

.homepage_bild { box-shadow: 2px 2px 4px black; }

a.website_link { font-size: 28px; 
	color: black;
	padding: 20px 0px 20px 20px;
	text-decoration: underline;
}

.title_3D { padding: 0px 30px 0px 30px;
	font-size: 18px;
}

@media (max-width: 700px) {
	.portfolio_container { flex-direction: column; }
	.text_block { text-align:center; padding: 0px; }
	.homepage_bild { width: 290px; }
	a.website_link { font-size: 20px; padding: 0px; }
	.content_3D { width: 280px; height: auto; }
	.title_3D { padding: 0px; }
}


/*******************/
/* Portfolio ENDE */
/*****************/


/******************/
/* Kontakt START */
/****************/
.text-center { text-align:center; }

.kontakt { font-size: 18px;
	text-align:center;
	width: 650px;
}

@media (max-width: 700px) {
	.kontakt { width: 300px; }
}

/*****************/
/* Kontakt ENDE */
/***************/







