:root {
	box-sizing: border-box;
	font-size: 1em;
	
	--Farbe_1: #ebfdfd;    			/* hellblau    ebfdfd */
	--Farbe_2: #FA96E2;				/* pink        FA96E2 */
	--Farbe_2_dunkler: #c645a7;		/* pink etwas dunkler, satter   c645a7 */
	--Farbe_3: #ADA993;				/* beige-grau  ADA993  */
	--Farbe_4: #FAF2C8;				/* gelb    FAF2C8 */
	--Farbe_5: #3E4F4F;				/* dunkelgrau 3E4F4F */
	--Farbe_6: #2254bd;				/* dunkelblau (erste Seite)  2254bd */
	--Farbe_5_trans: rgb( 62, 79, 79, 0.8);  /* grau leicht transparent*/
	--Farbe_Text: #3E4F4F;			/* dunkelgrau 3E4F4F */
	--HintergrundText: #f5fdfd;		/* hellblau    f5fdfd ebfdfd */
}

* { margin:0; padding:0; border:0;}

*,
::before,
::after {
	box-sizing: inherit;
}

.clearfix::after {
	display: block;
	content: " ";
	clear: both;
}

@font-face {
    font-family: 'Montserrat';
    src: url('type/Montserrat-Regular.ttf') format('woff2');
    font-weight: normal;
    font-style: normal;
	}

@font-face {
    font-family: 'Montserrat';
    src: url('type/Montserrat-SemiBold.ttf') format('woff2');
    font-weight: bold;
    font-style: normal;
	}

@font-face {
    font-family: 'Montserrat';
    src: url('type/Montserrat-Italic.ttf') format('woff2');
    font-weight: normal;
    font-style: italic;
	}
	
body {
	font-family: Montserrat, Arial, sans-serif;
	background-color: var(--HintergrundText);
	font-family: Montserrat, Arial, sans-serif;
	color: var(--Farbe_Text);
}

p {
	margin-bottom: 0.5em;
	line-height: 1.4;
}

h1 {
	font-size: 2em;
	margin: 0.5em 0 0 0.5em;
}

h2 {
	font-size: 1.4em;
	margin-top: 0.6em;
	margin-bottom: 0.3em;
}

h3 {
	font-size: 1.2em;
	margin: 1.2em 0 0.3em 0;
}

a {
	text-decoration: none;
	color: var(--Farbe_2_dunkler);
}

figcaption > a  {
	color: var(--Farbe_2);
}

.bildquelle {
	font-size: 0.6em;
	font-style: italic;
	text-align: right;
	margin: 0.2em 0.2em 0 0;
}	

/*  --------------  Header-Styles   ------------------  */

header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background-color: var(--Farbe_5);
	box-shadow: 0 4px 8px 0 rgba(62,79,79, 0.25),0 0 8px 0 rgba(62,79,79, 0.6);
	z-index: 50;
}

.container_logo_und_nav {
	display: flex;
	flex-direction: column;
	padding-top: 1em;
}

.logo_santner {
	flex-grow: 0;
	margin: 0 auto 0.65em 0;
	padding: 0.5em 1em;
	font-size: 1.2em;
	color: white;
	background-color: var(--Farbe_2);
	font-weight: bold;
	text-decoration: none;
}

/*  --------------  Navigation / Menu   ------------------  */

.haupt_nav {
	position: relative;
	flex-grow: 1;
	background-color: var(--Farbe_5_trans);
}

#hamburger_button {
	position: absolute;
	top: -1.15em;
	right: 0.3em;
	
	border: 0;
	background-color: transparent;
	
	font-size: 3.2em;
	width: 1em;
	height: 1em;
	line-height: 0.4;
	text-indent: 5em;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
}

#hamburger_button::after {
	position: absolute;
	top: 0.2em;
	right: 0.2em;
	display: block;
	content: "\2261";
	color: var(--Farbe_2);
	text-indent: 0;
}

.haupt_nav.menu_offen #hamburger_button::after{
	content: "\0078";
}

#hamburger_button:focus {
	outline: none;
}

.nav_menu {
	display: none;
	position: relative;
	top: 0.5em;
	left: 0;
	right: 0;
	background-color: var(--Farbe_5_trans);
	padding: 0;
}	

.haupt_nav.menu_offen .nav_menu{
	display: block;
}

.nav_links {
	display: block;
	padding: 0;
	list-style: none;
}	

.nav_links > li {
	border-style: none none solid none;
	border-color: var(--Farbe_2);
	border-width: 1px;
}

.dropdown_box .nav_links > li {
	border-style: none;
}

.nav_links > li > a {
	display: block;
	padding: 0.7em 2em;
	color: var(--Farbe_2);
	background-color: var(--Farbe_5);
	font-size: 1.2em;
	font-weight: bold;
	text-decoration: none;
	cursor: pointer;
}	

.nav_links > li > a:active, .nav_links > li > a:focus  {
	outline: none;
}

.dreieck {
	display: none;
	position: relative;
	margin-left: 0.5em;
	top: -0.8em;
	border: 0.3em solid;
	border-color: transparent transparent var(--Farbe_2);
}

.nav_links > li > a:active .dreieck, .nav_links > li > a:focus .dreieck {
	border-color: transparent transparent var(--Farbe_2);
}

#menuWebdesign.untermenu_offen .dreieck {
	display: inline;
}

.nav_untermenu {
	height: 0;
	width: 0;
	opacity: 0;
	overflow: hidden;
	transition: 0.3s ease-out;
}

.nav_untermenu .nav_links {
	padding: 0.3em 0.5em 0.3em 2.75em;
	font-size: 0.9em;
}

#untermenu_referenz {
	display: none;
}
	
/*   ------------------------------------- Body Styles   -------------------*/

.container_alle_inhalte {
	padding-top: 5em;
}

figcaption {
	background-color: var(--Farbe_5_trans);
	color: white;
	padding: 0.7em 1em 0.5em 1em;
}

.container_iframe {
	position: relative;
    overflow: hidden;
 	width: 100%;
	margin: 0;
	padding-top: 56.1%; /*  eigentlich 56.25% -> 315/560, aber je nach Viewport gibt es */
						/*dann eine scharzen Strich unter dem Bild   */
}

.container_iframe iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.sprungmarke {
	position: relative;
	top: -5em;
}

/*  -------------  Kacheln Startseite   ------------------   */

.container_kacheln {
	background-color: var(--HintergrundText);
	padding: 0 0 2em 0;
}

.container_einzelne_kachel {
	position: relative;
	display: block;
	width: 90%;
	margin: 0 auto;
}

.container_text_zw_kacheln {
	padding: 0 1em 2.5em 1em;
}

#kachel_einleitung {
	padding: 1.8em 1em 1em 1em;
}
	
#kachel_einleitung a {
	color: var(--Farbe_6);
	font-weight: bold;
}

#kachel_einleitung img {
	width: 100%;
	margin-bottom: 0.8em;
}

#kachel_projekt {
	width: 80%;
	margin: 1em 0 0 1em;
}

#kachel_kamera {
	width: 70%;
	margin-right: 8%;
	text-align: right;
}

#kachel_gartentisch img{
	width: 70%;
}

#kachel_tastatur {
	width: 70%;
	text-align: center;
}

#kachel_texte {
	width: 70%;
	margin-left: 5%;
}

.container_einzelne_kachel img {
	display: block;
	width: 100%;
}

.container_einzelne_kachel h2 {
	color: var(--Farbe_Text);
}

.titel_kachel {
	margin-bottom: 0.7em;
	font-size: 1.4em;
}

.foto {
	position: absolute;
	top: 0;
	opacity: 0;
	filter: drop-shadow(6px 6px 8px gray);
	transition: .7s ease;
}

.skizze {
	opacity: 1;
	transition: .7s ease;
}

.container_einzelne_kachel.foto_sichtbar .foto {
	opacity: 1;
}
	
.container_einzelne_kachel.foto_sichtbar .skizze {
	opacity: 0;
}
	
#kachel_tastatur.foto_sichtbar  img {
	margin-top: -20px;
	margin-bottom: -70px;
}

/*  -------------  Galerie   ------------------   */

.element_galerie {
	margin: 1.5em 0 3em 0;
	background-color: white;
	box-shadow: 0 4px 8px 0 rgba(62,79,79, 0.25),0 6px 8px 0 rgba(62,79,79, 0.4);
}

.detail_galerie {
	display: none;
}

.text_galerie {
	padding: 1em 1em;
}

.element_galerie img{
	display: block;
	width: 100%;
}
	
.zeige_mehr {
	display: block;
	margin-top: 0.5em;
}

.detail_galerie {
    display: none;
    position: fixed;
    top: 0;
	right: 0;
	bottom:0;
    left: 0;
    background-color: var(--Farbe_5_trans);
	z-index: 80;
}

.detail_galerie:target {
	display: block;
}

.detail_galerie_hintergrund_zum_anklicken {
	position: fixed;
	width: 100%;
	height: 100%;
	opacity: 0;
}

.detail_galerie_container {
	position: relative;
	width: 100%;
	max-height: 90vh;		/* Das Element muss eine Höhe haben, damit der Scollbalken kommt */
	margin: 9vh 0 0 0;
	background-color: white;
	padding: 2em;
	overflow: auto;
	z-index: 100;
}

.closebtn {
	position: absolute;
	top: 0;
	right: 1rem;
    text-decoration: none;
    font-size: 3.5em;
    font-weight: bold;
    color: var(--Farbe_5_trans);
}

.closebtn:hover,
.closebtn:focus {
    color: black;
}

.text_galerie li {
	list-style-type: circle;
	line-height: 1.4;
	margin-left: 1em;
}

.detail_galerie_inhalt {
	padding: 0 10% 0 0;
}

.detail_galerie_inhalt figure {
	margin: 1em 0 2em 0;
}
	
/*  --------------  Footer-Styles   ------------------  */

footer {
	color: var(--Farbe_4);
	background-color: var(--Farbe_5);
	font-size: 0.7em;
	padding-top: 0.5em;
}

footer a  {
	color: var(--Farbe_1);
}

.container_footer {
	display: flex;
	width: 100%;
	margin-top: 0.5rem;
	padding: 0 0.5rem 1rem 1.5rem;
}

.element_footer {
	flex: 1;
}	

.weglassen_mobil {
	display: none;
}

/* ----------------------------  Media Queries     ---------------------------*/

/*------------------------------------------------------------------------------------------------------*/
/* ----------------------------  Viewport Bildschirm-Grösse   800px -> 50em  ---------------------------*/
/*------------------------------------------------------------------------------------------------------*/

@media (min-width: 50em) {

	.weglassen_mobil {
		display: initial;
	}

	.nur_mobil {
		display: none;
	}

	h1 {
		margin-top: 1em;
		margin-left: 0.35em;
		font-size: 2.5em;
	}

	.container_logo_und_nav {
		flex-direction: row;
		width: calc(40% + 26em);
		max-width: 1080px;
		margin: 0 auto;
	}
	

	/*  --------------  Navigation / Menu für Bildschirm-Grösse  ------------------  */

	#hamburger_button {
		display: none;
	}

	.nav_menu {
		display: block;
		position: static;
		width: 100%;
		padding-right: 0;
		padding-left: 2.4em;
	}	
	
	.nav_links {
		display: flex;
	}

	.nav_links > li > a {
		font-size: 1.2em;
		padding: 0.5em;
		margin: 0;
	}	
	
	#menu_referenz {
		display: none;
	}
	
	#untermenu_referenz {
		display: block;
	}
	
	.nav_links > li {
	border-style: none;
	}

	.nav_links > .nav_rechts {
		margin-left: auto
	}

	.nav_links > li > a:hover {
		color: white;
		background-color: var(--Farbe_3);
	}
	
	.dropdown_box {
		position: relative;
	}
	
	.nav_untermenu {
		position: absolute;
		top: 3.3em;
		padding: 0.5em 0;
		background-color: var(--Farbe_5_trans);
	}
	
	.nav_untermenu .nav_links {
		display: block;
		padding: 0;
	}
	
	.nav_untermenu .nav_links > li > a {
		margin: 0 0.3em 0.1em 0.5em;
		padding: 0.6em 1em;
	}	
	
	.dreieck {
		border-color: transparent transparent var(--Farbe_2);
	}

	.nav_links > li > a:hover .dreieck {
		border-color: transparent transparent white;
	}

	/*   --------------------------- Body Styles für Bildschirm-Grösse   -------------------*/

	.container_alle_inhalte {
		width: calc(40% + 26em);
		max-width: 1080px;
		margin:  0 auto;
	}

	/*  -------------  Kacheln Startseite für Bildschirm-Grösse  ------------------   */

	.container_kacheln {
		position: relative;
		overflow: hidden;
		display: grid;
		grid-template-columns: 24fr 13fr 11fr 10fr 7fr 22fr 16fr 12fr 8fr 32fr;
		grid-template-rows:  22fr 10fr 2fr 10fr 24fr 3fr 3fr 7fr 4fr 36fr;
		padding: 3em 0 1.5em 0;
	}

	.container_einzelne_kachel {
		width: 100%;
	}

	.container_einzelne_kachel img {

	}

	@keyframes slideInVonLinks {
		0% {
			opacity:0;
			transform: translateX(-600px);
		}
		100% {
			opacity:1;
			transform: translateX(0);
		}
	}

	#kachel_einleitung {
		grid-column: 4 / 8;
		grid-row: 4 / 6;
		color: var(--Farbe_5);
		background-color: transparent;
		transition: .2s ease;
		width: 100%;
		margin: 1em 0 0 0;
		padding: 0 1em;
		border-radius: 5px;
	}
	
	#kachel_einleitung:hover img, #kachel_einleitung:hover a {
		filter: drop-shadow(0px 0px 6px var(--Farbe_6));
	}

	#kachel_projekt {
		grid-column: 5 / 8;
		grid-row: 1 / 4;
		animation: slideInVonLinks 0.4s ease both;
		width: 100%;
		margin: 0;
	}

	#kachel_kamera {
		grid-column: 9 / 11;
		grid-row: 3 / 10;
		animation: slideInVonLinks 0.4s ease 0.4s both;
		text-align: right;
		width: 100%;
		margin: 0;
	}

	#kachel_kamera h2{
		display: inline-block;
		width: 70%;
		right: 0;
	}

	#kachel_gartentisch {
		grid-column: 7 / 10;
		grid-row: 8 / 12;
		animation: slideInVonLinks 0.4s ease 0.8s both;
		width: 100%;
		margin: 0;
	}

	#kachel_gartentisch img{
		width: 90%;
	}

	#kachel_tastatur {
		grid-column: 2 / 6;
		grid-row: 7 / 11;
		animation: slideInVonLinks 0.4s ease 1.2s both;
		text-align: left;
		width: 90%;
		margin: 0 auto;
	}

	#kachel_tastatur h2{
		margin-top: -25px;
	}

	#kachel_tastatur.foto_sichtbar  img{
		margin: 0;
	}

	#kachel_texte {
		grid-column: 1 / 3;
		grid-row: 2 / 9;
		animation: slideInVonLinks 0.4s ease 1.6s both;
		width: 93%;
		margin: 0;
	}

	#kachel_texte h2{
		display: inline-block;
		width: 80%;
	}

	.container_einzelne_kachel.foto_sichtbar .foto {
		opacity: 0;
	}
		
	.container_einzelne_kachel.foto_sichtbar .skizze {
		opacity: 1;
	}
	
	.skizze {
		position: static;
		opacity: 1;
		filter: drop-shadow(0px 0px 5px var(--HintergrundText)) drop-shadow(0px 0px 8px var(--HintergrundText)) drop-shadow(0px 0px 10px var(--HintergrundText)) drop-shadow(0px 0px 12px var(--HintergrundText));
		transition: .2s ease;
	}

	.foto {
		position: absolute;
		top: 0;
		opacity: 0;
		transition: 0.15s ease;
	}

	.titel_kachel {
		visibility: hidden;
		transition: 0.08s ease;
		margin-bottom: 0;
	}

	.container_einzelne_kachel:hover {
		cursor: pointer;
	}

	.container_einzelne_kachel:hover .skizze {
		opacity: 0;
	}

	.container_einzelne_kachel:hover .foto {
		opacity: 1;
	}

	.container_einzelne_kachel:hover .titel_kachel {
		visibility: visible;
	}

	/*  -------------  Galerie für Bildschirmgrösse  ------------------   */

	.container_galerie {
		display: grid;
		margin: 1.5em 0;
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
		grid-auto-rows: 1fr;
		grid-gap: 2.5em;
		grid-auto-flow: dense;
	}
	
	.element_galerie {
		grid-row: span 2;
		margin: 0;
		padding: 0;
		box-shadow: none;
		border: 1px solid rgb( 62, 79, 79, 0.15);
		border-radius: 2px;
	}
	
	.element_groesser {
		grid-row: span 3;
	}
	
	.element_galerie .bild_hochformat,  .element_galerie .bild_hochformat .bildquelle{
		width:75%;
		margin: 0 auto;
		background-color: white;
	}

	.element_galerie .bild_hochformat_klein,  .element_galerie .bild_hochformat_klein .bildquelle {
		width:60%;
		margin: 0 auto;
		background-color: white;
	}

	.detail_galerie_container {
		width: 80%;
		margin: 10vh auto;
		max-width: 700px;
		max-height: 80vh;		/* Das Element muss eine Höhe haben, damit der Scollbalken kommt */
	}

	
	/*  --------------  Footer-Styles für Bildschirmgrösse  ------------------  */

	.container_footer {
		width: calc(40% + 26rem);
		max-width: 1080px;
		margin: 1rem auto;
		padding: 0 0 1rem 0;
	}

	.footer_rechts {
		flex-grow: 0;
		text-align: right;
	}
	
}


/*------------------------------------------------------------------------------------------------------*/
/* ----------------------------  Viewport gosser Bildschirm, grösser als   1100px -> 67em  ---------------------------*/
/*------------------------------------------------------------------------------------------------------*/

@media (min-width: 67em) {

	#menu_referenz {
		display: block;
	}
	
	#untermenu_referenz {
		display: none;
	}
	
	.container_galerie {
		grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	}
	
}