/** David Müllers 2025
**/

@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fileadmin/Fonts/raleway_sub.woff2') format('woff2');
}

@font-face {
  font-family: 'font awesome min';
  font-style: normal;
  font-weight: 900;
  src: url('/fileadmin/Fonts/fa_min.woff2') format('woff2'),
  font-display: swap; 
}

/* UNIVERSAL */

html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  left: 0;
  top: 0;
  font-size: 100%;
  /*color: #303030;*/
  background: #FFFFFF;
  scroll-behavior: smooth;
}

a {
  color: #303030;
}

* {
  font-family: 'Raleway', Helvetica, sans-serif;
  /*color: #333447;*/
  line-height: 1.5;
}

.margin-top-h1 {
  margin-top: 1rem;
}

h1 {
  font-size: 1.8rem;
  color: #990000;
  font-weight: 300;
  margin-bottom: .5rem;
  margin-top: 1rem;
}

h2 {
  font-size: 1.4rem;
  color: #990000;
  font-weight: 300;
  margin-bottom: .5rem;
  margin-top: 1rem;
}

h3 {
  font-size: 1.375rem;
}

h4 {
  font-size: 1.125rem;
}

h5 {
  font-size: 1rem;
}

h6 {
  font-size: 0.875rem;
}

p {
  line-height: 175%;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.justify {
  text-align: justify;
}

.banner {
  display: block;
  width: 100%;
  overflow: hidden;
  /*margin-bottom: 1rem;*/
  background: #F2F2F2;
}

.banner-slider {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  aspect-ratio: 9/6;
}

.banner-text {
    padding: 2rem;
  }

.content {
  background: #FAFAFA;
  padding-top: 1rem;
}

.container {
  padding: 0 2rem 0 2rem;
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;

}

.card {
  flex: 1 1 25rem;
}


.button-link {
  padding: 1rem;
  text-decoration: none;
  border: solid 1px gray;
  margin: 2rem;
}

.button-link:hover {
  border: solid 1px black;
}

.navbar {
  position: relative;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 10;
}


.nav-collapsible {
  position: absolute;
  left: 0;
  bottom: 2px;
  background: #F5F5F5;
  transition: transform 1s;
  overflow: hidden;
  width: 100%;
  z-index: -1;
}

.nav-list {
    display: flex;
    padding-left: 1rem;
    flex-direction: column;
    list-style-type: none;
    gap: .8rem;
}


.menu-icon {
    display: block;
    width: 2em;
    font-size: 2rem;
    cursor: pointer;
}


.expand {
    transform: translateY(100%);
}


.footer {
  display: flex;
  flex-wrap: wrap;
  /*padding: 2rem 4rem 2rem 4rem;*/
  flex-direction: column;
  gap: .5rem;
  font-size: .9rem;
}

.footer-content {
  flex: 1 1;
  white-space: nowrap;
  text-align: center;
}


.gallery-image {
    /*object-fit: cover;
    height: 100%;*/
}

.gallery-item {
  flex: 1 1 20rem;
  max-width: 500px;
  height: auto;
  position: relative;
  overflow: hidden;
}

.overlay-caption {
    position: absolute;
    bottom: 0;
    max-height: 2.75rem;
    background: #2b241c;
    color: white;
    transition: max-height 1s;
    opacity: .9;
    cursor: pointer;
    box-sizing: border-box;
    width: 100%;
    padding: 1rem;
}

.gallery-item:hover .overlay-caption {
    max-height: 100%;
}


@media only screen and (max-width: 40em) {
  .overlay-caption {
      max-height: 100%;
  }
}

@media only screen and (min-width: 40em) { /*sm*/


    .menu-icon {
      display: none;
    }

    .nav-collapsible {
      display: flex;
      position: relative;
      background: none;
      transform: translateY(0);
      transition: transform 0s;
      width: auto;
      z-index: 1;
    }

    .nav-list {
      width: auto;
      flex-direction: row;
      margin: 1rem;
      gap: 2rem;
      vertical-align: middle;
      margin-left: auto;
      justify-content: flex-end;
      padding-right: 0;
    }

	.center-ssm {
		text-align: initial;
		margin-left: initial;
		margin-right: initial;
	}
	
	.show-sm {
		display: initial;
	}
	
	.center-sm {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}  
	
	.left-sm {
		text-align: left;
		margin-left: initial;
		margin-right: initial;
	}
	
	.hide-sm {
		display: none;	
	}
  
}


@media only screen and (min-width: 50em) { /*md*/

  .footer {
    flex: 1 1;
    flex-direction: row;
    padding: 2rem;
  }

  .navbar {
    position: absolute;
    width: 80%;
    min-width: 45em;
    left: 50%;
    top: 2rem;
    transform: translateX(-50%)
  }

  .banner-spacer {
    min-height: 8rem;
  }

  .right-md {
  		text-align: right;
	}
	
	.left-md {
  		text-align: left;
  		margin-left: initial;
  		margin-right: auto;
	}
	
	.right-md {
  		text-align: right;
  		margin-left: auto;
  		margin-right: initial;
	}

	.center-md {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}	
	
	.show-md {
		display: initial;
	}
	

	.hide-md {
		display: none;	
	}
	
}

@media only screen and (min-width: 65em) { /*lg*/

  .container {
    width: 80%;
    min-width: 65em;
  }


  .right-lg {
  		text-align: right;
  }
	
  .show-lg {
      display: initial;
  }

 /* banner lg */

   .banner {
    position: relative;
    padding-left: 10%;
    width: 90%;
    display: flex;
    align-items: stretch;
  }

  .banner-slider {
    position: relative;
    float: right;
    aspect-ratio: auto;
    flex: 2;
    order: 2;
  }

  .banner-text {
    width: 35%;
    max-width: 90%;
    float: left;
    margin-top: 8rem;
    padding-left: 0;
    padding-top: 0;
    padding-right: 3rem;
    padding-bottom: 2rem;
    flex: 1;
    order: 1;
  }

}


.dark {
	background: #222222;
}

.dark * {
	color: white;
}


.mail-icon::before {
	font-family: 'font awesome min';
	font-weight: 900;
	content: '\f0e0\00a0';
}

.nav-container {
    background: white;
	display: flex;
    /*padding: .5rem;*/
    align-items: center;
    justify-content: space-between;
   /* max-width: 60rem;*/
    margin-left: auto;
    margin-right: auto;
}

.menu-link {
	color: #202020;
	font-size: 1.1rem;
    font-weight: bold;
	text-decoration: none;
	transition: .5s;
    margin-left: .5rem;
}

.menu-link:hover {
	color: #606060;
	text-decoration: underline;
}

.no-dec:hover {
	text-decoration: none;
}

.logo {
  margin: .5rem;
  margin-left: 1rem;
}

.logo-h1 {
  font-size: 1.6rem;
  color: #990000;
  font-weight: 300;
  margin: 0;
}

.logo-h2 {
  font-size: 1.2rem;
  color: #404040;
  font-weight: 300;
  margin: 0;
}

.no-dec {
	text-decoration: none;
}

.flex {
	display: flex;
}

img {
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
}

figure {
	display: table;
	padding: 0;
	margin: 0 auto;
}

.box-shadow {
	box-shadow: 0 0 .5rem lightgray;
}

.hover-underline {
	text-decoration: none;
}

.hover-underline:hover {
	text-decoration: underline;
}

figcaption {
	display: table-caption;
	caption-side: bottom;
}

.no-top-margin {
	margin-top: 0;
}

.no-bottom-margin {
	margin-bottom: 0;
}

#lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    z-index: 21;
    cursor: pointer;
}

.img-zoom {
   cursor: pointer;
}

.zoomed {
   z-index: 22;
   position: fixed;
   object-fit: contain;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   color: white;
   cursor: pointer;
}

.zoomed img {
   box-shadow: none;
}

.hide {
	display: none;
}

.slide-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 1.5s;
}

.visible {
  opacity: 1;
  z-index: 5;
}

.lightgray {
  background: #F0F0F0;
}
