@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  src: local('EB Garamond Regular'), local('EBGaramond-Regular'),
       url('../../assets/fonts/eb-garamond-v9-latin-regular.woff2') format('woff2'),
       url('../../assets/fonts/eb-garamond-v9-latin-regular.woff') format('woff');
}

@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 500;
  src: local('EB Garamond Medium'), local('EBGaramond-Medium'),
       url('../../assets/fonts/eb-garamond-v9-latin-500.woff2') format('woff2'),
       url('../../assets/fonts/eb-garamond-v9-latin-500.woff') format('woff');
}


@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  src: local('IBM Plex Sans'), local('IBMPlexSans'),
       url('../../assets/fonts/ibm-plex-sans-v2-latin-regular.woff2') format('woff2'),
       url('../../assets/fonts/ibm-plex-sans-v2-latin-regular.woff') format('woff');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-weight: 400;
  src: local('IBM Plex Sans Italic'), local('IBMPlexSans-Italic'),
       url('../../assets/fonts/ibm-plex-sans-v2-latin-italic.woff2') format('woff2'),
       url('../../assets/fonts/ibm-plex-sans-v2-latin-italic.woff') format('woff');
}

*, *:before, *:after {
	margin: 0;
	padding: 0;
	border: 0;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	vertical-align: top;
}

html {
	font-size: 50%;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	background: #fff;
	color: #2D374B;
	overflow-x: hidden;
	padding-top: 10rem; 
	position: relative;
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 1.6rem;
	line-height: 1.7;
}

html,
body {
	overflow-x: hidden;
}

a {
	color: #A94545;
	text-decoration: none;
}

a:hover {
	color: #2D374B;
}

img {
	width: 100%;
}

#impressum-panel {
  display:none;
  position:relative;
  top:0;
  left:0;
  margin-left: 0;
  width:100%;
  height:100%;
  background:#2D374B;
  z-index:2;
}

#wrapper {
	margin-left: 0;
	position: relative;
	width: 100%;
	transition: margin 800ms ease;
}

main {
	display: block;
	margin: 2rem auto;
	max-width: 1440px;
}

header {
	background-color: #fff;
	left: 0;
	padding: 1.5rem 0 .5rem;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 3; 
}

header:after {
	background: #666;
	bottom: 0;
	content: '';
	height: 1px;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: opacity 200ms ease-out;
	width: 100%;
}

html.scrolled header:after {
	opacity: .4;
}

.logo {
	font-size: 2rem;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.logo-image {
	max-height: 45px;
	width: auto;
	margin: 0 auto;
	display: block;
	transition: all 0.3s ease;
}

/* Mobile fix for logo centering */
h1 {
	font-size: 3.5rem;
	font-weight: 500;
	line-height: 1;
	font-family: "EB Garamond", serif;
	text-transform: uppercase;
	margin: 0 .5rem .3rem;
	white-space: nowrap;
}

header h2 { 
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1.5;
	text-transform: uppercase;
	white-space: nowrap;
}

.is-active {
	border: 1px solid #A94545;
	color: #A94545;
	padding: 0.4rem 0.5rem 0.1rem;
}

.portraits {
	display: flex;
	justify-content: center;
	margin-bottom: 5rem;
	margin-left: 5px;
	margin-right:5px;
}

/* Banner animations - SIMPLE AND BEAUTIFUL */
.banner-1 {
	position: absolute;
	top: 0; /* At the top */
	left: 0;
	width: 100%;
	z-index: 10;
	/* Transition removed - controlled directly via JS */
}

.banner-2 {
	/* Normal positioning for banner-2 */
	position: relative;
}



/* Interactive Detail Panel Styles */
figure {
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 2rem;
	line-height: 1;
	display: inline-block;
	flex: 0 0 100%;
	position: relative;
}

figcaption {
	text-align: center;
	margin: 2rem 0;
}


.left-caption {
	position: absolute;
	bottom: -10%;
	left: 5%;
	text-align: left;
	transition: all 0.3s ease;
}

.right-caption {
	position: absolute;
	bottom: -10%;
	right: 5%;
	text-align: right;
	transition: all 0.3s ease;
}

.left-caption h3,
.right-caption h3 {
	font-size: 2.2rem !important;
	margin: 0 0 0.5rem 0 !important;
	line-height: 1.2 !important;
	color: #2D374B !important;
}

.left-caption a {
	background: url("../img/arrow-left.svg") no-repeat left center;
	padding-left: 35px;
	padding-right: 0;
	font-size: 1.1rem;
	background-size: 25px auto;
	line-height: 1.2;
	transition: transform 0.3s ease;
}

.right-caption a {
	background: url("../img/arrow-right.svg") no-repeat right center;
	padding-right: 35px;
	padding-left: 0px;
	font-size: 1.1rem;
	background-size: 25px auto;
	line-height: 1.2;
	transition: transform 0.3s ease;
}

/* Hover efekti za caption-e - trigger on hover of name or link */
.left-caption h3:hover,
.right-caption h3:hover,
.left-caption:has(p a:hover) h3,
.right-caption:has(p a:hover) h3 {
	color: #A94545 !important;
}

.left-caption a:hover {
	transform: translateX(-3px);
	color: #A94545;
}

.right-caption a:hover {
	transform: translateX(3px);
	color: #A94545;
}

figcaption h3 {
	font-size: 3.5vw;
	font-weight: 400;
	margin: 1rem 0rem 1rem;
	font-family: "EB Garamond", serif;
	color: #2D374B;
}

figcaption a {
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	font-family: "IBM Plex Sans", sans-serif;
	font-weight: 400;
	line-height: 1.2;
	font-size: 1.2rem;
	color: #A94545;
	text-decoration: none;
	transition: all 0.3s ease;
	padding-right: 40px;
	background: url("../img/arrow-right.svg") no-repeat right center;
	background-size: 30px auto;
}

figcaption a:hover {
	color: #2D374B;
	transform: translateX(3px);
}

/* Image hover effect */
figure img {
	transition: transform 0.4s ease, filter 0.4s ease;
}

figure:hover img {
	transform: scale(1.02);
	filter: brightness(1.05);
}

/* Bio section animations */
.bio h2,
.bio h3,
.bio p,
.bio ul {
	opacity: 0;
	transform: translateY(20px);
	animation: fadeInUp 0.6s ease forwards;
}

.bio h2 { animation-delay: 0.1s; }
.bio h3:nth-of-type(2) { animation-delay: 0.2s; }
.bio p:nth-of-type(2) { animation-delay: 0.3s; }
.bio ul:nth-of-type(1) { animation-delay: 0.4s; }
.bio h3:nth-of-type(3) { animation-delay: 0.5s; }
.bio ul:nth-of-type(2) { animation-delay: 0.6s; }

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.detail {
	height: 100%;
	position: absolute;
	width: 100%;
	top: -3px;
	transition: left 400ms ease-out, right 400ms ease-out;
	z-index: 2;
	background: #f8f9fa;
	overflow-y: auto;
}

.detail-left {
	left: -100%;
}

.detail-left.visible {
	left: 0;
}

.detail-right {
	right: -100%;
}

.detail-right.visible {
	right: 0;
}

.arrow {
	padding: 1.5rem 1.5rem .5rem;
	background: #fff;
	line-height: 1;
	cursor: pointer;
}

.arrow img {
	line-height: 1;
	width: 60px;
	height: auto;
}

.detail-left .arrow {
	text-align: right;
	order: 1;
}

.detail-right .bio {
	order: 1;
}

.detail-right .image {
	order: 2;
}

.detail .image {
	max-width: 300px;
	width: 300px;
	flex-shrink: 0;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.detail .image img {
	width: 100%;
	height: auto;
	max-height: none;
}

.bio {
	padding: 3rem 5%;
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.7;
}

.bio ul {
	list-style: disc;
	margin-left: 1em;
}

.bio ul.quotes {
	list-style: none;
	margin: 2rem 0 0;
	text-align: center;
}

.bio blockquote {
	font-style: italic;
}

.bio h2 {
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 4.5rem;
	line-height: 1;
	margin: 1.5rem 0 3.5rem;
}

.bio h3 {
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 3rem;
	line-height: 1.7;
	margin: 2rem 0;
}

.bio p.versal {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 1.1rem;
	margin-top: -2rem;
}

/* Wrapper animation for smooth panel sliding */
#wrapper {
	transition: margin 800ms ease;
}

/* JavaScript controlled classes */
html.has-visible-detail #wrapper {
	margin-left: 0;
}

html.has-animated-detail #wrapper {
	transition: margin 800ms ease;
}

html.detail-right #wrapper {
	margin-left: 0;
}

html.scrolled header:after {
	opacity: .4;
}

.content ul.quotes {

	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.7;
	list-style: none;
	text-align: center;
}

.content blockquote {
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.7;
	font-style: italic;
}



.content {
	background: #f8f9fa;
	padding: 7rem 2rem 5rem;
}

.content:nth-child(even) {
	background: #fff;
}

.content h3 {	
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 3.5rem;
	line-height: 1.3;
	max-width: 840px;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.content p {
	max-width: 840px;
	margin: 0 auto 2.5rem;
	font-family: "IBM Plex Sans", sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.7;
}

.content p,
.content ul {
	max-width: 840px;
}

.content ul {
	margin: 0 auto 3rem;
	column-count: 2;	
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 1.6rem;
	line-height: 1.5;
	text-align: center;
	list-style: none;
}

.content p:first-of-type {
	text-indent: 0;
}

nav {
	text-align: center;
	margin: 0 auto;
	width: 100%;
	max-width: 1440px;
	position: relative;
}

nav ul {
	border-top: 1rem solid #fff;
	list-style: none;
	order: 1;
	width: 100%;
	position: absolute;
	display: none;
	left: 0;
	text-align: left;
}

nav ul + ul {
	left: 50%;
	width: 50%;
}

nav li {
	text-transform: uppercase;
	font-size: 1.2rem;
	padding: 2.2rem 1.2rem;
	border-bottom: 1px solid #fff;
	display: inline-block;
	width: 100%;
	font-family: "IBM Plex Sans", sans-serif;
}

nav a {
	text-decoration: none;
	color: #2D374B;
	width: 100%;
	display: block;
}

nav .lang-switch a {
	display: inline;
	margin: 0 1.5rem 0 0;
}

nav li a:hover {
	color: #A94545;
}

.show-menu {
	color: #2D374B;
	text-align: center;
	padding: 10px;
	display: block;
	margin: .5rem auto 0;
	width: 50px;
}

input[type=checkbox] {
	display: none;
}

input[type=checkbox]:checked ~ ul {
	display: inline-block;
	z-index: 999;
	background: #DEE2E5;
}

label {
	cursor: pointer;
}

.navicon {
	margin: 0 auto;
	background: #333;
	display: block;
	height: 2px;
	position: relative;
	width: 18px;
}

.navicon:before,
.navicon:after {
	background: #333;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	width: 100%;
}

.navicon:before {
	top: 5px;
}

.navicon:after {
	top: -5px;
}

.rating {
	margin: 2rem auto;
	width: 400px;
	text-align: center;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.box {
	border: 2px solid #A94545;
	max-width: 500px;
	height: 100%;
	margin: 1rem 2rem;
	width: 360px;
}

.box div {
	margin: 2px;
	border: 1px solid #A94545;
	padding: 3rem 1.5rem;
}

.box p {
	text-transform: uppercase;
	font-size: 1.2rem;
	text-indent: 0;
	margin: 0 auto .3rem;
}

.box p.rank {
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 2rem;
	line-height: 1.4;
	text-transform: none;
	margin: 1rem 0;
}

.box p.rank span {
	display: block;
	font-size: 4rem;
	margin-top: -1rem;
}

footer {
	padding: 4rem;
	background: #2D374B;
	color: #DEE2E5;
	position: relative;
	z-index: 2;
}

footer .inner {
	max-width: 1000px;
	margin: 0 auto;
}

footer div.legal {
	display: flex;
}

footer h3 {
	text-transform: uppercase; 
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 2.5rem;
	line-height: 1.5;
	margin: 0 0 1rem 0;
}

footer .addr p {
	padding: .5rem 4rem .5rem 0;
	font-size: 1.6rem;
}

footer a,
footer a:hover,
a[href^="tel:"] {
	color: #DEE2E5;
}

footer a:hover {
	text-decoration: underline;
}

footer div.legal {
	justify-content: space-between;
	margin: 4rem 4rem 4rem 0;
	font-size: 1.6rem;
}

.imprint {
	width: 100%;
	max-width: 800px;
	margin: 0 0 1rem 0;
}

.imprint h2 {
	font-family: "EB Garamond", serif;
	font-weight: 400;
	font-size: 2.5rem;
	line-height: 1.5;
	text-align: left;
	margin-bottom: 0 0 1rem 0;
}

.imprint p {
	margin-bottom: 1.5rem;
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0 0 1rem 0;
}

nav article {
            height:auto;
	    position:absolute;
            right:-5px;
            bottom:-3px;
}
nav li.lang-switch {
	    border-bottom: 0px;
            display: inline;
}
@media screen and (min-width: 1024px) {
	h1 {
		font-size: 4rem;
	}
	.content h3 {
		font-size: 4rem;
		margin-bottom: 4rem;
	}

	footer div.addr {
		display: flex;
	}

	footer .addr p {
		padding: 2rem 4rem 2rem 0;
	}

	nav article {
            position:absolute;
            right:0px;
            top:0px;
	    padding-bottom: 0rem;	
	    padding: 0rem;	
	}
	nav li.lang-switch {
	    border-bottom: 0px;
	    display: inline;
	}
	
	.logo-image {
		max-height: 65px;
	}
	
	/* Detail panel responsive styles - medium screens */
	figure {
		position: relative;
	}

	figcaption {
		position: absolute;
		top: 15%;
		right: 3rem;
		text-align: right;
	}

	figcaption h3 {
		font-size: 2.8rem;
		margin-bottom: 1rem;
	}

	figcaption a {
		background: url("../img/arrow-right.svg") no-repeat right center;
		padding-right: 40px;
		background-size: 30px auto;
	}
	
	/* Modal image on tablet devices */
	.detail .image {
		max-width: 300px !important;
		width: 300px !important;
		display: flex;
		align-items: flex-start;
		justify-content: center;
	}
	
	.detail .image img {
		width: 100%;
		height: auto;
		max-height: none;
	}

	/* Advanced desktop layout */
	html {
		font-size: 62.5%;
	}

	body {
		padding-top: 17rem; 
	}

	header {
		margin: 0;
		padding: 4rem 0 0;
	}

	.portraits {
		margin-left: 10px;
		margin-right:10px
	}

	.image {
		max-width: 500px;
	}

	nav {
		font-size: 0;
	}

	nav ul {
		display: inline-block;
   		margin: 0;
		width: 50%;
		text-align: right;
		position: static;
	}

	nav ul + ul {
		text-align: left;
	}

	nav li {
    		display: inline-block;
		margin: 0 0.6rem;
    		width: auto;
	}

	nav a {
		display: inline;
	}

	.show-menu {
		display: none;
	}

	nav .lang-switch a {
		margin: 0 1rem 0 0;
	}

	input[type=checkbox]:checked ~ ul {
		background: none;
	}

	.rating {
		flex-wrap: nowrap;
	}

	nav article {
            position:absolute;
            right:0px;
            top:0px;
	    padding:0;	
	}
	
	nav li.lang-switch {
	    display: inline;
	    border-bottom: 0px;
	}
	
	.logo-image {
		max-height: 90px;
	}
	
	/* Detail panel responsive styles - large screens */
	.detail {
		display: flex;
		align-items: flex-start;
		background: #fff;
		margin-top: 0;
		min-height: 100vh;
	}

	.detail-left {
		justify-content: flex-start;
		flex-direction: row;
	}

	.detail-right {
		justify-content: flex-end;
	}

	.bio {
		max-width: 600px;
		flex: 1;
		background: #f8f9fa;
	}

	.detail .image {
		max-width: 350px;
		width: 350px;
		flex-shrink: 0;
		display: flex;
		align-items: flex-start;
		justify-content: center;
	}
	
	.detail .image img {
		width: 100%;
		height: auto;
		max-height: none;
		margin-top: 20px;
	}
	
	figure {
		font-family: "EB Garamond", serif;
		font-weight: 400;
		font-size: 2rem;
		line-height: 1;
		display: inline-block;
		flex: 0 0 100%;
		position: relative;
	}

	figcaption {
		position: absolute;
		top: 20%;
		right: 4rem;
		text-align: right;
	}
	
	/* Larger fonts for large devices */
	.left-caption h3,
	.right-caption h3 {
		font-size: 4.2rem !important;
	}
	
	.left-caption a {
		font-size: 1.8rem !important;
		background-size: 35px auto !important;
		padding-left: 45px !important;
	}
	
	.right-caption a {
		font-size: 1.8rem !important;
		background-size: 35px auto !important;
		padding-right: 45px !important;
	}
}
@media screen and (max-width: 1023px) {
	.logo {
		position: relative;
		text-align: center;
		margin: 0 auto;
		padding: 0 10px;
	}
	
	.logo-image {
		max-height: 40px;
		width: auto;
		display: block;
		margin: 0 auto;
	}
	
	/* Mobile fix for figcaption */
	figcaption h3 {
		font-size: 2.2rem !important;
	}
	
	figcaption {
		margin: 1.5rem 1rem;
	}
	
	/* Mobile styles for two people - left and right below image */
	.left-caption {
		position: absolute !important;
		bottom: -57px !important;
		left: 3% !important;
		text-align: left !important;
		margin: 0 !important;
		display: block !important;
		background: none !important;
		padding: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		max-width: 45% !important;
	}
	
	.right-caption {
		position: absolute !important;
		bottom: -57px !important;
		right: 3% !important;
		text-align: right !important;
		margin: 0 !important;
		display: block !important;
		background: none !important;
		padding: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		max-width: 45% !important;
	}
	
	/* Reduce spacing after portraits section on mobile */
	.portraits {
		margin-bottom: 2rem !important;
	}
	
	/* Smaller image in modal on mobile */
	.detail .image {
		max-width: 250px !important;
		width: 250px !important;
		display: flex;
		align-items: flex-start;
		justify-content: center;
	}
	
	.detail .image img {
		width: 100%;
		height: auto;
		max-height: none;
	}
	
	.bio {
		padding: 2rem 3% !important;
		font-size: 1.4rem !important;
	}
	
	.bio h2 {
		font-size: 3.5rem !important;
	}
	
	.bio h3 {
		font-size: 2.5rem !important;
	}
	
	.left-caption h3,
	.right-caption h3 {
		font-size: 3.3rem !important;
		margin: 0 0 0.3rem 0 !important;
	}
	
	.left-caption a {
		background: url("../img/arrow-left.svg") no-repeat left center !important;
		padding-left: 25px !important;
		padding-right: 0 !important;
		font-size: 1.4rem !important;
		background-size: 18px auto !important;
	}
	
	.right-caption a {
		background: url("../img/arrow-right.svg") no-repeat right center !important;
		padding-left: 0 !important;
		padding-right: 25px !important;
		font-size: 1.4rem !important;
		background-size: 18px auto !important;
	}
}

@media screen and (max-width: 380px) {
	.left-caption h3,
	.right-caption h3 {
		font-size: 2.5rem !important;
	}
}