:root {
    --primary-color: #136B52;
    --secondary-color: #2C2E35;
    --third-color: #16D48D;
    --text-color: rgba(255, 255, 255, 0.7);
}
body {
    background-color: var(--secondary-color);
    overflow-y: scroll;
}
main {
    animation: fadeInAnimation ease 2s;
    animation-iteration-count: 1; 
    animation-fill-mode: forwards;
    max-width: 1200px;
    margin: 30px auto;
}

@keyframes fadeInAnimation { 
    0% { 
        opacity: 0; 
    } 
    100% { 
        opacity: 1; 
     } 
} 

h1 {
    color: var(--secondary-color);
    font-size: 3em;
}
h2 {
    color: var(--third-color);
    font-size: 2em;
    padding-bottom: 20px;
}
h3 {
    color: var(--text-color);
    font-size: 1.2em;
    padding-top: 10px;
    padding-bottom: 10px;
}
h4 {
    color: #159c69;
    font-size: 1.5em;
}
h5 {
    font-size: 2em;
    color: var(--text-color);
    vertical-align: center;
}
p {
    color: var(--text-color);
    font-size: 1.1em !important;
    line-height: 2em !important;
}
ol li {
    color: var(--text-color);
    font-size: 1.1em !important;
    line-height: 2em !important;
}
a {
    text-decoration: none;
    color: var(--text-color);
}
li {
    color: var(--text-color) !important;
}
a:hover {
    color: white;
}
.table th {
    border-bottom-color: rgba(255, 255, 255, 0.2);
    color: var(--text-color);
}
.table td {
    border-bottom-color: rgba(255, 255, 255, 0.2);
    color: var(--text-color);
}
.slide-btn {
    overflow: hidden;
    position: relative;
    height: 60px;
    width: 170px;
    border: 0;
    background-color: var(--primary-color);
    color: white;
    padding: 10px 20px;
    font-size: 1.2em;
}
.container-text {
    margin: 0 auto;
    width: 900px;
    max-width: 90%;
}
.container-text h2 {
    margin: 0 auto;
    max-width: 90%;
}
.slide-btn:hover:before {
    animation: btn-right-animate-border 0.15s ease;
    position: absolute;
    content: "";
    width: 30px;
    margin-top: -20px;
    margin-left: 103px;
    height: 80px;
    background-color: rgba(0, 0, 0, 0.2);
}
@keyframes btn-right-animate-border {
    0% {
        transform: translateX(35px);
    }
    100% {
        transform: translateX(0px);
    }
}
.slide-btn:hover:after {
    animation: btn-right-animate-icon 0.15s ease;
    content: "";
    position: absolute;
    margin-left: 12px;
    margin-top: 7.5px;
    width: 15px;
    height: 15px;
    border-top: 5px;
    border-right: 5px;
    border-bottom: 0;
    border-left: 0;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.35);
    transform: rotate(45deg);
}
@keyframes btn-right-animate-icon {
    0% {
        transform: translateX(35px) rotate(45deg);
    }
    100% {
        transform: translateX(0px) rotate(45deg);
    }
}
/* ============ logo ============ */
.logo-wrapper {
    background-color: var(--primary-color);
    padding: 30px 0px 30px 86px;
}
.logo-wrapper img {
    display: block;
    margin: 0 auto;
    width: 500px;
    max-width: 85vw;
    height: auto;
}
/* ============ navbar ============ */
.navbar-custom {
    background-color: var(--primary-color) !important;
    padding: 0;
    position: -webkit-sticky; /* Safari */
    position: sticky;
    top: 0;
    z-index: 100;
    padding-left: 38px;
}
.nav-link {
    color: white !important;
    padding: 10px 20px 10px 20px !important;
}
.navbar-nav {
    margin: 0 auto;
}
.navbar-nav > .active {
    background-color: var(--secondary-color) !important;
}
.dropdown-menu > li .active {
    background-color: initial;
    color: var(--third-color);
}
.dropdown-menu li:hover .active {
    background-color: white;
}
.nav-item:hover .nav-link {
    color: var(--third-color) !important;
}
.dropdown-menu {
    left: -1px;
    border-radius: 0;
    background-color: var(--primary-color);
    padding-top: 8px;
    padding-bottom: 8px;
}
.dropdown-item {
    color: white;
}
.dropdown-item:hover {
    background-color: white;
    color: var(--primary-color);
}
.navbar-toggler {
    border: none;
    padding: 10px 20px 10px 20px;
}
.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler-icon:focus {
    outline: none;
    box-shadow: none;
}
@media all and (max-width: 991px) {
    .logo-wrapper {
        background-color: var(--primary-color);
        padding-left: 0px;
    }
    .navbar-custom {
        padding-left: 0px;
    }
    .box-container-text p {
        line-height: 1.6em !important;
    }
}
/* ============ footer ============ */
footer {
    background-color: rgba(0, 0, 0, 0.1);
    color: var(--primary-color);
    margin-top: 30px;
    line-height: 40px;
}
/* ============ box-container ============ */
.box-container-2c {
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    max-width: 840px;
}
@media all and (max-width: 855px) {
    .box-container-2c {
        max-width: 420px;
    }
}
.box-container-item {
    position: relative;
    width: 400px;
    height: 400px;
    margin: 10px;
}
.box-container-text {
    z-index: 0;
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.4);
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
}
.box-container-home .box-container-text:hover {
    overflow: hidden;
    cursor: pointer;
}
.box-container-home .box-container-text:hover:before {
    animation: right-animate-border 0.15s ease;
    position: absolute;
    content: "";
    width: 70px;
    margin-left: 330px;
    height: 400px;
    background-color: rgba(0, 0, 0, 0.2);
}
@keyframes right-animate-border {
    0% {
        transform: translateX(35px);
    }
    100% {
        transform: translateX(0px);
    }
}
.box-container-home .box-container-text:hover:after {
    animation: right-animate-icon 0.15s ease;
    content: "";
    position: absolute;
    margin-left: 345px;
    width: 25px;
    height: 25px;
    border-top: 5px;
    border-right: 5px;
    border-bottom: 0;
    border-left: 0;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.35);
    transform: rotate(45deg);
}
@keyframes right-animate-icon {
    0% {
        transform: translateX(35px) rotate(45deg);
    }
    100% {
        transform: translateX(0px) rotate(45deg);
    }
}
.box-container-text p {
    font-size: 1.2em;
    padding: 0 10%;
}
.box-container-2c h2 {
    padding-bottom: 20px;
}
.img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media all and (max-width: 900px) {
    .box-container-home .box-container-item:nth-child(3) {
        order: 4;
    }
}
@media all and (max-width: 500px) {
    .box-container-2c {
        max-width: 320px;
    }
    .box-container-item {
        width: 300px;
        height: 300px;
        margin: 10px;
    }
    h2 {
        font-size: 1.5em;
    }
    .box-container-text p {
        font-size: 0.9em !important;
    }
}
/* ============ only desktop view ============ */
@media all and (min-width: 992px) {
	.navbar .nav-item .dropdown-menu{  display:block; opacity: 0;  visibility: hidden; transition:.3s; margin-top:0;  }
	.navbar .nav-item:hover .nav-link{ color: #fff;  }
	.navbar .dropdown-menu.fade-down{ top:80%; transform: rotateX(-75deg); transform-origin: 0% 0%; }
	.navbar .dropdown-menu.fade-up{ top:180%;  }
	.navbar .nav-item:hover .dropdown-menu{ transition: .1s; opacity:1; visibility:visible; top:100%; transform: rotateX(0deg); }
}
/* ============ CV ============ */
.cv-foto {
    margin-top: 15px;
    margin-left: 8px;
    max-width: 100%;
}
/* ============ Referenzseite ============ */
.img-container div {
    position: absolute;
    right: 0;
    bottom: 0;
    background-color: #1A1C20;
    opacity: 0;
    transition: opacity 0.3s ease;
    overflow: hidden;
}
.img-container h5 {
    text-align: right;
    padding: 10px 20px;
    line-height: 100% !important;
}
.img-text-container:hover {
    cursor: pointer;
}
.img-text-container:hover div {
    opacity: 0.8;
}
.img-container:hover h5 {
    animation: h5-right-animate-icon 0.3s ease;
}
@keyframes h5-right-animate-icon {
    0% {
        transform: translateX(35px);
    }
    100% {
        transform: translateX(0);
    }
}
/* ============ image Layout ============ */

.image-layout {
    width: 900px;
    max-width: 90%;
    margin: 40px auto;
    padding-left: 0;
    display: flex;
    flex-wrap: wrap;
}
.image-layout > li {
    list-style: none;
    padding: 5px;
    height: 30vh;
    flex-grow: 1;
}
.image-layout > li:last-child {
    flex-grow: 10;
}
.image-layout > li > img {
    max-height: 100%;
    min-width: 100%;
    object-fit: cover;
    vertical-align: bottom;
}
/* Portrait */
@media (max-aspect-ratio: 1/1) {
    .image-layout > li {
      height: 30vh;
    }
}
.layout-image:hover {
    transition: filter 0.3s ease;
    cursor: pointer;
    filter: brightness(50%);
}
.kontakt-text p {
    text-align: center;
}
.kontakt-text h4 {
    margin-bottom: 0;
    text-align: center;
}
.kontaktformular {
    background:rgba(0, 0, 0, 0.2);
    max-width: 100%;
    width: 500px;
    margin: 30px auto;
    padding: 20px 10px;
}
.kontaktformular input {
    display: block;
    margin: 0 auto;
}
.kontaktformular label {
    font-size: 1.2em;
    color: var(--text-color);
}
.kontaktformular textarea {
    display: block;
    margin: 0 auto;
}
.kontaktformular p {
    margin-top: 10px;
    margin-bottom: 5px;
}
input.submit {
    margin-top: 15px;
    background-color: var(--primary-color);
    border: none;
    border-radius: none;
    color: white;
    padding: 10px 20px;
}
/* Short screens
@media (max-height: 480px) {
    .image-layout > li {
      height: 80vh;
    }
}

Smaller screens in portrait
@media (max-aspect-ratio: 1/1) and (max-width: 480px) {
    .image-layout {
      flex-direction: row;
    }
    .image-layout > li {
      height: auto;
      width: 100%;
    }
    .image-layout > li > img {
      width: 100%;
      max-height: 75vh;
      min-width: 0;
    }
}  */