:root {
    --background-color: #ebe8e3;
    --element-color: #172d13;
    --hover-color:  #6bb77b;
    --header-font-color: white;
    --font-color: #132510;
    --ease-in-out-time: 0.2s;
    --highlight-color: #2c387c;
    --min-header-sz: 11vh;
    --max-header-sz: 45vh;
    --opacity-home-opt-1: 0.55;
    --margin-home-opt-1: 45vh; /* 4.5 */
    --opacity-home-opt-2: 0.45;
    --margin-home-opt-2: 35vh;
}

body {
     background-color: var(--background-color);
     margin: 0;
     color: var(--font-color);
}

.full-height {
    height: 100%;
    margin: 0;
}

.clickable {
    cursor: pointer;
}

.text-block {
    flex: 1;
    padding-left: 2%;
}

.grid_nx2 {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 20px;
    padding: 20px;
}



/* Meine Website (Florian) */

a {
    color: var(--font-color);
    text-decoration-line: none;
    transition: ease-in-out var(--ease-in-out-time);
}

a:hover {
    /* color: var(--hover-color); */
    transition: ease-in-out var(--ease-in-out-time);
    text-decoration-line: underline;
}
h1 {
    scroll-margin-top: var(--min-header-sz);
}

.header {
    display: flex;
    justify-content: center;
    z-index: 1;
    width: 100%;
    padding-top: 4vh;
    color: var(--header-font-color);
    /* display: flex; */
    position: fixed;
    min-height: var(--min-header-sz);
    box-sizing: border-box;
    font-weight: bold;
    overflow: visible;

    background-color: var(--element-color);
    transition: ease-in-out var(--ease-in-out-time);
}

.header a {
    display: inline-block;
    padding: 0 3vw;
    transition: color ease-in-out var(--ease-in-out-time);

    color: var(--header-font-color) !important;
    transition: ease-in-out var(--ease-in-out-time);
}

/* .header a:hover { */
    /* background-color: var(--hover-color); */
    /* color: var(--hover-color); */
/*} */
.header:hover {
    background-color: var(--element-color);
    transition: ease-in-out var(--ease-in-out-time);
}

.header:hover  a {
    color: var(--header-font-color) !important;
    transition: ease-in-out var(--ease-in-out-time);
}

#spacer {
    width: 100%;
    height: 11vh;
}


/* Dropdown wrapper */
.dropdown {
    position: relative;
    display: inline-block; /* keeps it inline with other links */
    white-space: nowrap;
    text-align: center;
}

/* Dropdown menu (hidden by default) */
.dropdown-content {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    z-index: 3;
    width: 100%;
    left: 50%;
                      /* position left edge at 50% of parent */
    transform: translate(-49%,1vh);/* shift left by half of its own width */
    padding-top: 3vh;
}

.dropdown-content a {
    font-weight: normal;
    display: block;
    padding: 1.5vh 0;
    white-space: normal;
    word-wrap: break-word;
}

.dropdown-content a:hover {
    background-color: var(--hover-color);
    /* color: var(--hover-color); */
}


/* Show dropdown on hover */
.dropdown:hover .dropdown-content {
    visibility: visible;
    opacity: 1;
    transition: opacity calc(var(--ease-in-out-time) * 2) ease-in-out;
}


.header:hover:has(.dropdown:hover) {
    height: var(--max-header-sz);
    transition: height var(--ease-in-out-time) ease-in-out;
}

h1 {
    color: black;
    margin-top: 10vh;
}

h2 {
    color: #0e0151;
    margin-top: 5vh;
}

h3 {
    color: var(--highlight-color);
}

/* Home (Florian) */

.home {
    position: relative;
    width: 100%;
    height: 79vh;
    padding: 10vh 0 0 0;
    text-align: center;
}

.home .background-image {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
    
    overflow: hidden;
}

.home .image-opt-1 {
    opacity: var(--opacity-home-opt-1);
}

.home .image-opt-2 {
    opacity: var(--opacity-home-opt-2);
}

.home .text-opt-1 {
    margin-top: var(--margin-home-opt-1);
}

.home .text-opt-2 {
    margin-top: var(--margin-home-opt-2);
}

.home .text-overlay h1 {
    margin-top: 0 !important;
    color: var(--font-color);
}

.home .text-overlay h2 {
    font-style: italic;
    color: var(--font-color);
}

.home .text-overlay .links {
    height: 5vh;
}

.home .text-overlay .links img {
    height: 100%;
    padding: 0 2vw;
    cursor: pointer;
}

/* Über Mich (Florian) */

.about-me {
    width: 80vw;
    padding: 0 10vw 10vh 10vw;
}

.about-me table {
    width: 100%;
    font-size: large;
}

/* .about-me .header-block {
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5vw;
    color: var(--font-color);
    gap: 5vw;
} */

.about-me .text-block {
    font-size: large;
    display: flex;
    flex-direction: row;
    gap: 5vw;
}

.about-me .text-block .image {
    display: flex;
    align-items: stretch;
    width: 50%;
    padding: 1%;
}

.about-me .text-block .image div {
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: center;
}

.about-me .text-block .image div img {
    width: 100%;
    margin-top: -10vh;
    border-radius: 150px;
}


.about-me .text-block .text {
    width: 50%;
}

.about-me .text-block .text a {
    color: var(--font-color);
    font-weight: bold;
}

.about-me .icons-block {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    height: max-content;
    margin-top: 5vh;
    gap: 5vw;
}
.about-me .icons-block .icon-box {
    font-size: larger;
    font-weight: bold;
    text-align: center;
}

.about-me .icons-block .icon-box i {
    font-size: 10vh;
}

/* Software-Projekte (Florian) */

.software-projects {
    margin-top: 10vh;
    width: 100%;
    padding: 0 20vh;
    box-sizing: border-box;
}

.software-projects .project {
    display: flex;
    flex-direction: row;
    padding: 5vh 0;
    gap: 5vh;
}

.software-projects .project .image-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 25%;
}

.software-projects .project .image-container img {
    max-height: 100%;
    max-width: 100%;
    height: auto;
    width: auto;
    object-fit: contain;
    cursor: pointer;
}

.software-projects .project .text-container {
    width: 75%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* .software-projects .project .text-container i {
    font-size: small;
} */

.software-projects .project div a {
    font-weight: bold;
}


/* Kontakt (Florian) */

.contact {
    height: 100%;
    flex: 0 1 30%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: larger;
}

.contact img {
    width: 100%;
    cursor: pointer;
}

.contact p {
    margin-bottom: 0;
    margin-top: 8%;
}

.contact a:hover {
    color: var(--hover-color);
}

.mail-logo {
    margin: 18%;
}

.contacts {
    height: 28vh;
    padding: 30vh;
    color: var(--font-color);
    display: flex;
    justify-content: space-around; /* horizontal spacing */
    align-items: stretch;
}