/*--- general settings ---*/

:root {
    --green: #007f61;
    --white: #ffffff;
    --black: #232323;
    --lightgray: #b0b0b0;
    --gray: #666666;
}

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

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

body{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}


/*--- navigation bar ---*/

.navbar {
    background: var(--black);
}

.navbar a {
    margin-left: 1em;
}

.navbar-collapse {
    justify-content: flex-end;
}

.navbar-brand, .nav-link {
    color: var(--white);
    cursor: pointer;
}

.navbar-brand {
    margin-left: 1em;
    font-family: 'Caveat';
    font-size: 26px;
}

.navbar-brand:hover {
    color: var(--white);
}

.navbar-brand:focus {
    color: var(--white);
}

.nav-link {
    margin-right: 1em;
    font-family: 'Montserrat';
    font-size: 16px;
}

.nav-link.active {
    color: var(--green);
}

.nav-link:hover {
    color: var(--green);
}

.nav-link:focus {
    color: var(--white);
}


/*--- content ---*/

.content {
    margin-left: max(1em, 5%);
    margin-right: max(1em, 8%);
    margin-top: max(6em, 12%);
    margin-bottom: max(6em, 15%);
    background: var(--white);
    font-family: 'arial';
    font-size: 18px;
    color: var(--black);
}

.content a {
    text-decoration: none;
    color: var(--green);
}

.image-modal {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.content a[href^="http"]::after,
.content a[href^="https://"]::after
{
  content: "";
  width: 11px;
  height: 11px;
  margin-left: 0.3em;
  background-image: url("../icons/external-link-icon.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  display: inline-block;
}


/*--- intro ---*/

#profile-img img {
    max-width: 55%;
    height: auto;
    border-radius: 50%;
}

#profile-img h1 {
    color: var(--black);
    font-size: 22px;
    margin-top: 1.2em;
    margin-bottom: 2.2em;
    font-family: 'Montserrat';
}

#profile-contact {
    margin-left: max(0.1em, 12%);
}

.profile-contact-elem {
    margin-bottom: 1.2em;
    font-size: 16px;
}

.icon {
    width: 18px;
    height: auto;
    padding-bottom: 5px;
    margin-right: 15px;
}

#profile-contact a::after {
  display: none !important;
}


#welcome-text h2 {
    font-size: 32px;
    font-family: 'Montserrat';
    margin-bottom: 1.2em;
}

#welcome-text p {
    margin-bottom: 1.4em;
    line-height: 1.8em;
}

.welcome-text-section {
    padding-left: 1.5em;
    text-indent: -1.5em;
}

.welcome-text-subtitle {
    font-family: 'Montserrat';
    font-size: 20px;
    text-decoration: underline;
    margin-right: 0.6em;
}


/*--- sections ---*/

.section {
	margin-top: 4.0em;
	padding: 1.0em;
}

.section h2 {
	color: var(--green);
	margin-left: 1.0em;
    margin-right: 1.0em;
    margin-top: 2.0em;
    margin-bottom: 2.8em;
    font-size: 38px;
    font-family: 'Montserrat';
}


/*--- cv section ---*/

#cv h3 {
    margin-top: 1.0em;
    margin-bottom: 1.5em;
    font-weight: bold;
    color: var(--black);
}

#cv p {
    /*line-height: 1.8em;*/
}

.section-cv-categorie {
    margin-bottom: 5.5em;
}

.section-cv-item {
    margin-bottom: 4em;
    margin-left: 1em;
    border-left: 2px solid var(--green);
    padding-left: 1.6em;
    padding-right: 1.6em;
}

.section-cv-item::before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--green);
    display: inline-block;
    margin-left: -2.2em;
}

.section-cv-item h4 {
    color: var(--green);
    line-height: 20px;
    margin-bottom: 0.75em;
}

.section-cv-item-subtitle {
    text-decoration: underline;
    margin-right: 0.3em;
}

.section-cv-languages-item {
    line-height: 12px;
    margin-bottom: 1.75em;
    margin-left: 0.1em;
}

.progress-bar {
    background-color: var(--green);
}

.remark {
    font-size: 16px;
}


/*--- publications section ---*/

#publications p {
    line-height: 1.8em;
}

#section-publications-list {
    margin-top: 3em;
}

#section-publications-list a::after {
    display: none !important;
}

.section-publications-list-entry {
    margin-top: 0.5em;
    margin-bottom: 2.5em;
    padding-top: 1.0em;
}

#_2024-thesis {
    scroll-margin-top: 80px;
}

.section-publications-list-entry-title {
    font-weight: bold;
    font-size: 18px;
}

.section-publications-list-entry-details {
    margin-top: 0.25em;
    font-size: 15px;
}

.section-publications-list-entry-links {
    margin-top: 0.75em;
    margin-bottom: 3em;
}

.section-publications-list-entry img {
    max-width: 100%;
    height: auto;
    margin-top: 0.5em;
}

.section-publications-list-entry em {
    font-weight: bold;
    font-style: normal;
}


/*--- blog content ---*/

.blog-content h2 {
    font-size: 38px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 1.0em;
}

.blog-content p {
    margin-left: 1.0em;
}

.blog-content img {
    max-width: 100%;
    height: auto;
}

.blogpost-list-entry {
    margin-left: max(1em, 5%);
    margin-right: max(1em, 8%);
}

.blogpost-list-entry hr {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

.blogpost-list-entry-title {
    font-size: 20px;
}

.blogpost-list-entry-date {
    margin-top: 0.25em;
    font-size: 15px;
    margin-bottom: 2.5em;
}

.blogpost-content h2 {
    font-size: 34px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 1.0em;
}

.blogpost-content-date {
    font-size: 17px;
    margin-top: -1.0em;
}

.blogpost-content-text {
    margin-top: 5.0em;
    margin-left: max(1em, 5%);
    margin-right: max(1em, 8%);
    line-height: 1.8em;
    font-size: 20px;
}


/*--- contact ---*/

.contact-content h2 {
    font-size: 38px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 1.0em;
}

.contact-content p {
    margin-left: 1.0em;
}

.svg-email-protection {
    margin-left: 1.0em;
    height: 20px;
    width: auto;
    margin-top: 1.0em;
}


/*--- impressum content ---*/

.impressum-content h2 {
    font-size: 34px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 1.5em;
}

.impressum-content h3 {
    font-weight: bold;
    font-size: 19px;
    margin-left: 0.8em;
    margin-top: 2.5em;
    margin-bottom: 1.2em;
}

.impressum-content h4 {
    font-style: italic;
    font-size: 18px;
    margin-left: 1.0em;
    margin-top: 1.5em;
    margin-bottom: 0.8em;
}

.impressum-content p {
    margin-left: 1.0em;
}

.impressum-content img {
    margin-left: 1.0em;
    height: 20px;
    width: auto;
    margin-bottom: 0.5em;
}

.impressum-content .remark {
    font-size: 17px;
    margin-top: 4.0em;
    font-style: italic;
}

/*--- error content ---*/

.error-404-content h2 {
    font-size: 32px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 0.75em;
}

.error-500-content h2 {
    font-size: 32px;
    font-family: 'Montserrat';
    color: var(--green);
    margin-bottom: 0.75em;
}


/*--- page footer ---*/

footer {
    background-color: var(--black);
    padding-top: 3.2em;
    padding-bottom: 3.2em;
    font-family: 'Montserrat';
    font-size: 14px;
    color: var(--gray);
    margin-top: auto;
}

footer span {
    margin: 0.5em;
}

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

footer a:hover {
    color: var(--green);
}

#footer-sm-copyright {
    margin-top: 1.0em;
}