@charset "utf-8";

/* 
|----------------------------------------------------------- 
|   >>>   VARIABLES   	                                                      
|----------------------------------------------------------- 
*/

@color_bg_general: #FBFAF8;
@color_bg_akzent: #F5F1EA;
@color_bg_primary: #110C09;
@color_bg_sek: #F2F0EC;
@color_bg_warm: #FAF4EC;

@color_highlight: #DF2321;
@color_rahmen: #E1DDD8;
@color_rahmen_dark: #D6D2CC;
@color_content_border: #BFBBB5;

@color_txt_main: #110C09;
@color_txt_onblack: #F7F5F1;
@color_txt_sek: #8F8882;
@color_txt_muted: #47413C;

@color_btn_cta_dark: #110C09;
@color_btn_cta_light: #FCFCFC;

@color_white: #FFFFFF;
@color_black: #000000;

@font-face {
  font-family: 'play-medium';
  src: url('../typo/PlayfairDisplay-Medium.ttf') format('truetype');
}

@font-face {
  font-family: 'geist-reg';
  src: url('../typo/Geist-Regular.ttf') format('truetype');
}

@font-face {
  font-family: 'geist-medium';
  src: url('../typo/Geist-Medium.ttf') format('truetype');
}

@font-face {
  font-family: 'geist-semibold';
  src: url('../typo/Geist-SemiBold.ttf') format('truetype');
}
@font-face {
  font-family: 'geist-bold';
  src: url('../typo/Geist-Bold.ttf') format('truetype');
}

/* 
|----------------------------------------------------------- 
|   >>>   BODY - STYLES   	                                                           
|----------------------------------------------------------- 
*/

body {
	top: 0;
	left: 0;
	background-color: @color_bg_general;
	width: 100%;
	padding: 0 0 0 0;
	margin: 0 0 0 0;
}
figure {
	margin: 0 0 0 0;
}

hr.clear {
	clear: both;
	visibility: hidden;
	height: 0;
	overflow: hidden;
	border: 0;
	line-height: 0;
	font-size: 0;	
}

img  {
	border: 0px;
}


/* 
|----------------------------------------------------------- 
|   >>>   GRID & CONTAINER   	                                                           
|----------------------------------------------------------- 
*/

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .grid {
    grid-template-columns: repeat(8, 1fr);
  }
}

@media (max-width: 600px) {
  .grid {
    grid-template-columns: repeat(4, 1fr);
  }
}



/* 
|----------------------------------------------------------- 
|   >>>   TEXT - STYLES   	                                                           
|----------------------------------------------------------- 
*/

p {
	font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}

h1 {
	font: 30px 'play-medium', Georgia, Times,sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}
h3.big {
	font: 48px 'play-medium', Georgia, Times,sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}
h3.medium {
	font: 34px 'play-medium', Georgia, Times,sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}
h3.small {
	font: 30px 'play-medium', Georgia, Times,sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}
h3.xsmall {
	font: 22px 'play-medium', Georgia, Times,sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	
}
h4 {
	font: 13px 'geist-medium', Arial, Helvetica, sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: uppercase;
	margin: 20px 0;	
}


h2 {
	display: flex;
	align-items: center;
	gap: 12px;
	font: 12px 'geist-medium', Arial, Helvetica, sans-serif;
  	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: uppercase;
}
h2::before {	
	content: '';
	display: block;
	width: 32px;
	height: 1px;
	background-color: @color_txt_main;
	flex-shrink: 0;
}
h2.center {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
	font: 12px 'geist-medium', Arial, Helvetica, sans-serif;
  	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: uppercase;
}
h2.center::before {	
	content: '';
	display: block;
	width: 32px;
	height: 2px;
	background-color: @color_txt_main;
}

.section-label {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 12px;
	color: @color_txt_main;

	.number {
		font-size: 14px;
		font: 30px 'play-medium', Arial, Helvetica, sans-serif;
	}
	.title {
		font-size: 11px;
		letter-spacing: 0.1em;
		padding-top: 15px;
		text-transform: uppercase;
		font: 12px 'geist-medium', Arial, Helvetica, sans-serif;
	}
}

ul.numbers {

}
li {
	font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
	color: @color_txt_main;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-transform: normal;
	margin: 20px 0;	

	span {
		font: 18px 'geist-bold', Arial, Helvetica, sans-serif;
	}
}

@media (max-width: 600px) {

	h3.big { font-size: 36px; }
	h3.medium { font-size: 30px; }

}


/* ---------------------- */

a.button_cta_dark {
	padding: 10px 20px;
	color: @color_txt_onblack;
	border-radius: 10px;
	border: solid 1px @color_btn_cta_dark;
	background-color: @color_btn_cta_dark;

	font: 14px 'geist-med', Arial, Helvetica, sans-serif;
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
}
a.button_cta_dark:hover {
	background-color: @color_btn_cta_light;
	color: @color_txt_onblack;
}

.container {
	margin: 0 auto;
	max-width: 1200px;
}
@media (max-width: 1260px) {
	.container {
		margin: 0 30px;
	}
}

img {
	width: 100%;
}

/* 
|----------------------------------------------------------- 
|   >>>   STAGE & HEADER   	                                                           
|----------------------------------------------------------- 
*/

header {
	width: 100%;
	height: 80px;
	top: 0;
	margin: 0;
	z-index: 9999;

	.container {
		display: flex;
		align-items: center;
		height: 80px;

		hr.clear { display: none; }
	}

	.logo {
		width: 173px;
		height: 25px;
		background-image: url(../images/logo.svg);
		background-repeat: no-repeat;
		background-position: left center;
		text-indent: -9999em;
		background-size: contain;
		flex-shrink: 0;

		a { display: block; width: 100%; height: 100%; }
	}

	ul#js_mainmenue {
		list-style: none;
		margin: 0 0 0 auto;
		padding: 0;
		display: flex;
		align-items: center;
		gap: 8px;

		li {
			display: inline-block;
		}
		a {
			display: block;
			padding: 8px 12px;
			font: 16px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_txt_main;
			font-style: normal;
			font-weight: 500;
			line-height: normal;
			text-decoration: none;
		}
		a.button_cta_dark {
			color: @color_txt_onblack;
		}
		a:hover {
			color: @color_highlight;
			text-decoration: none;
		}
		.m_close {
			display: none;
		}

		li.lang-switch {
			display: flex;
			align-items: center;
			gap: 2px;
			margin-left: 6px;

			a {
				padding: 8px 5px;
				font: 14px 'geist-medium', Arial, Helvetica, sans-serif;
				color: @color_txt_sek;
			}
			a.active {
				color: @color_txt_main;
			}
			a:hover {
				color: @color_highlight;
			}
			.sep {
				color: @color_rahmen_dark;
				font-size: 13px;
			}
		}
	}

	#mobile {
		display: none;
		align-items: center;
		margin-left: auto;
		cursor: pointer;

		#burgermenue {
			width: 28px;
			height: 20px;
			position: relative;
			cursor: pointer;
			flex-shrink: 0;

			&::before,
			&::after,
			span {
				content: '';
				display: block;
				width: 100%;
				height: 2px;
				background-color: @color_txt_main;
				position: absolute;
				left: 0;
				transition: transform 0.2s ease;
			}
			&::before { top: 0; }
			span { top: 9px; }
			&::after { bottom: 0; }
		}
	}
}

@media (max-width: 900px) {

	header {
		ul#js_mainmenue {
			display: none;

			&.show {
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 0;
				position: fixed;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background-color: @color_bg_primary;
				z-index: 99998;
				list-style: none;
				margin: 0;
				padding: 0;

				li {
					display: block;
					text-align: center;
					margin: 0;
					border-bottom: 1px solid rgba(255,255,255,0.1);
					width: 100%;
				}
				li:last-child {
					border-bottom: none;
					margin-top: 20px;
				}
				a {
					display: block;
					padding: 20px 40px;
					font: 28px 'play-medium', Georgia, Times, serif;
					color: @color_txt_onblack;
					text-align: center;
				}
				a:hover {
					color: @color_highlight;
				}
				a.button_cta_dark {
					display: inline-block;
					font: 18px 'geist-medium', Arial, Helvetica, sans-serif;
					background-color: @color_highlight;
					border-color: @color_highlight;
					color: @color_txt_onblack;
					border-radius: 10px;
					padding: 14px 32px;
				}
				.m_close {
					display: block;
					position: fixed;
					top: 20px;
					right: 24px;
					width: auto;
					height: auto;
					float: none;
					margin: 0;
					z-index: 99999;

					a {
						font: 32px 'geist-regular', Arial, sans-serif;
						color: @color_txt_onblack;
						padding: 0;
						line-height: 1;
						width: 40px;
						height: 40px;
						display: flex;
						align-items: center;
						justify-content: center;
					}
					a:hover {
						color: @color_highlight;
					}
				}
				li.lang-switch {
					display: flex;
					flex-direction: row;
					justify-content: center;
					align-items: center;
					gap: 6px;
					border-bottom: none;
					margin-top: 24px;

					a {
						display: inline-block;
						padding: 8px 12px;
						font: 18px 'geist-medium', Arial, Helvetica, sans-serif;
						color: @color_txt_sek;
					}
					a.active {
						color: @color_txt_onblack;
					}
					.sep {
						color: @color_txt_sek;
					}
				}
			}
		}

		#mobile {
			display: flex;

			#burgermenue {
				span { display: block; }
			}
		}
	}

}

/* -------------------------------------------------------------------- */
/*    CONTENT                                                           */
/* -------------------------------------------------------------------- */

#maincontent {
	width: 100%;
}

.intro {
	width: 100%;
	background-color: @color_bg_primary;
	text-align: center;
	padding: 100px 0 20px 0;

	.intro-div {
		text-align: center;
		margin: 0 auto;
		max-width: 1200px;
	}

	.tags {
		font: 14px 'geist-medium', Arial, Helvetica, sans-serif;
		color: @color_txt_onblack;
		font-size: 15px;
		font-style: normal;
		font-weight: 500;
		line-height: normal;
		text-transform: uppercase;
		margin: 0;
	}
	h1 {
		font: 80px 'play-medium', Georgia, Times, serif;
		font-weight: 500; 
		font-style: normal;
		text-decoration: none;
		text-transform: normal;
		line-height: 80px; /* 100% */
		color: @color_txt_onblack;
		max-width: 900px;
		margin: 25px auto 60px auto;
	}
	.subline {
		font: 24px 'play_medium', Georgia, Times, serif;
		color: @color_txt_sek;
		font-style: normal;
		font-weight: 500;
		line-height: normal;
		text-transform: normal;
		margin: 0 auto 60px auto;
		max-width: 900px;
	}
	p.img {
		padding: 0 25px;
	}
	img {
		max-width: 1200px;
	}	
}
@media (max-width: 600px) {

	.intro {
		padding: 60px 0 20px 0;
		
		h1 {
			font-size: 50px;
			line-height: 50px;
			margin-left: 30px; 
			margin-right: 30px; 
		}
		.subline {
			font-size: 20px;
			margin-left: 30px; 
			margin-right: 30px; 			
		}
	}

}


.summary {
	padding: 60px 0;

	.text {
		grid-column: span 7;

	}
	.keyfacts {
		grid-column: span 4;
		border-left: 1px solid @color_rahmen;
		padding: 0 0 0 22px;

		ul {
			margin: 0 0 0 0;
			padding: 0 0 0 0;
			text-align: left;
		}
		li {
			display: block;
			padding: 20px 0;
			margin: 0;
			border-bottom: 1px solid @color_rahmen;
		
			.tag {
				font: 11px 'geist-medium', Arial, Helvetica, sans-serif;
				color: @color_txt_sek;
				font-size: 15px;
				font-style: normal;
				font-weight: 500;
				line-height: normal;
				text-transform: uppercase;
				margin: 0;
				padding: 0;
			}
			.value {
				font: 16px 'geist-medium', Arial, Helvetica, sans-serif;
				color: @color_txt_main;
				font-size: 15px;
				font-style: normal;
				font-weight: 500;
				line-height: normal;
				text-transform: normal;
				margin: 0;
				padding: 0;
			}
		}
		li:last-child {
			border-bottom: none;
		}
		li:first-child {
			padding-top: 0;
		}
	}
}
@media (max-width: 1024px) {
.summary {
	
	.text {
		grid-column: 1 / 5;
	}
	.keyfacts {
		grid-column: 5 / 9;

		li {
			padding: 15px 0;
		}
	}
}
}
@media (max-width: 600px) {
.summary {
	
	.text {
		grid-column: 1 / 5;
	}
	.keyfacts {
		grid-column: span 4;
		border: 0;
		padding: 0;

	}
}
}

.highlight-facts {
	background-color: @color_bg_primary;
	padding: 20px 0;

	.keyfigures {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;

		.number {
			font: 54px 'play-medium', Gerorgia, Times, serif;
			color: @color_txt_onblack;
			margin: 0 0 8px 0;

			span {
				font-size: 30px;
			}
		}
		.label {
			font: 14px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_txt_onblack;
			margin: 0;
			max-width: 190px;
		}
	}

}
@media (max-width: 800px) {
.highlight-facts {
	.keyfigures {
		grid-template-columns: repeat(2, 1fr);

		.number {
			font: 44px 'play-medium', Gerorgia, Times, serif;
			color: @color_txt_onblack;
			margin: 0 0 8px 0;
		}
	}
}
}


.mod-head-left {
	background-color: @color_bg_akzent;
	padding: 40px 0;
		
	.headline {
		grid-column: span 12;
		margin: 0;
		padding: 0;
	}
	.hero {
		grid-column: 1 / 5;
		margin: 0;
		padding: 0;
	}
	.text {
		grid-column: 6 / 13;
		margin: 0;
		padding: 0;
	}
}
@media (max-width: 1024px) {

.mod-head-left {
	.hero { grid-column: 1 / 9; }
	.text { grid-column: 1 / 9; }
}
}
@media (max-width: 600px) {

.mod-head-left {
	.hero { grid-column: 1 / 5; }
	.text { grid-column: 1 / 5; }
}

}

.mod-head-center {
	text-align: center;
	padding: 40px 0;
}

.content-biggallery {
	text-align: left;
	padding: 40px 0;
	border-top: 1px solid @color_content_border;

	.text {
		grid-column: 3 / 11;

		.section-headline {
			margin-bottom: 30px;
		}
		.section-text {
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { margin: 15px 0; }
		}
	}
	.section-quote {
		background-color: @color_bg_akzent;
		border-left: 5px solid @color_highlight;
		padding: 20px;
		margin-bottom: 30px;
		h4 { margin: 0; }
		p { 
			margin: 0; 
			font: 18px 'play-medium', Gerorgia, Times, serif;
		}
	}
	.gallery {
		grid-column: span 12;
		background-color: @color_bg_sek;
		padding: 40px;

		.media {
			text-align: center;
			margin-bottom: 32px;
			position: relative;
			overflow: hidden;

			img {
				display: block;
				width: 100%;
				max-width: 900px;
				height: auto;
				margin: 0 auto;
			}

			// Sequenzieller Wechsel (Apple-Style): erst raus, dann rein - keine Ueberlagerung.
			// Nur EIN Bild ist sichtbar; Transition dauerhaft am Bild, ease-in fuer Aus- und Einblenden.
			.js_gallery_img {
				transition: opacity 0.3s ease-in, transform 0.3s ease-in;
			}
			// Phase 1 - altes Bild zieht sich nach hinten-links zurueck und blendet aus
			.js_gallery_img.gal_out {
				opacity: 0;
				transform: translateX(-40px) scale(0.96);
			}
			// Phase 2 - Startzustand des neuen Bildes: rechts-hinten, sofort gesetzt (ohne Transition),
			// danach wird die Klasse geloest und das Bild blendet nach vorne ein
			.js_gallery_img.gal_in {
				opacity: 0;
				transform: translateX(40px) scale(0.96);
				transition: none;
			}
		}
		.menu {
			ul {
				list-style: none;
				display: flex;
				gap: 8px;
				width: fit-content;
				max-width: 100%;
				margin: 0 auto;
				padding: 4px;
				overflow-x: auto;
				scrollbar-width: none;
				-ms-overflow-style: none;
			}
			ul::-webkit-scrollbar {
				display: none;
			}
			li {
				flex: 0 0 auto;
				display: block;
				padding: 0;
				margin: 0;

				a {
					display: block;
					white-space: nowrap;
					font: 14px 'geist-medium', Arial, Helvetica, sans-serif;
					color: @color_txt_main;
					text-transform: uppercase;
					text-decoration: none;
					border: 1px solid @color_txt_sek;
					border-radius: 100px;
					padding: 10px 18px;
					transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
				}
				a:hover {
					color: @color_txt_main;
					background-color: @color_bg_warm;
				}
				a.active {
					background-color: @color_bg_primary;
					color: @color_txt_onblack;
					border-color: @color_bg_primary;
				}
			}
		}
	}
}
@media (max-width: 1024px) {
.content-biggallery {
	
	.text {
		grid-column: 2 / 8;
	}
	.gallery {
		grid-column: span 8;
	}
}
}
@media (max-width: 600px) {
.content-biggallery {

	.text {
		grid-column: 1 / 5;
	}
	.gallery {
		grid-column: span 4;
		padding: 20px;

		.media {
			margin-bottom: 20px;
		}
		.menu ul {
			justify-content: flex-start;
		}
	}
}
}
	.gallery {
		grid-column: span 12;
		background-color: @color_bg_sek;
		padding: 40px;

		.media {
			text-align: center;
			margin-bottom: 32px;
			position: relative;
			overflow: hidden;

			img {
				display: block;
				width: 100%;
				max-width: 900px;
				height: auto;
				margin: 0 auto;
			}

			// Sequenzieller Wechsel (Apple-Style): erst raus, dann rein - keine Ueberlagerung.
			// Nur EIN Bild ist sichtbar; Transition dauerhaft am Bild, ease-in fuer Aus- und Einblenden.
			.js_gallery_img {
				transition: opacity 0.3s ease-in, transform 0.3s ease-in;
			}
			// Phase 1 - altes Bild zieht sich nach hinten-links zurueck und blendet aus
			.js_gallery_img.gal_out {
				opacity: 0;
				transform: translateX(-40px) scale(0.96);
			}
			// Phase 2 - Startzustand des neuen Bildes: rechts-hinten, sofort gesetzt (ohne Transition),
			// danach wird die Klasse geloest und das Bild blendet nach vorne ein
			.js_gallery_img.gal_in {
				opacity: 0;
				transform: translateX(40px) scale(0.96);
				transition: none;
			}
		}
		.menu {
			ul {
				list-style: none;
				display: flex;
				gap: 8px;
				width: fit-content;
				max-width: 100%;
				margin: 0 auto;
				padding: 4px;
				overflow-x: auto;
				scrollbar-width: none;
				-ms-overflow-style: none;
			}
			ul::-webkit-scrollbar {
				display: none;
			}
			li {
				flex: 0 0 auto;
				display: block;
				padding: 0;
				margin: 0;

				a {
					display: block;
					white-space: nowrap;
					font: 14px 'geist-medium', Arial, Helvetica, sans-serif;
					color: @color_txt_main;
					text-transform: uppercase;
					text-decoration: none;
					border: 1px solid @color_txt_sek;
					border-radius: 100px;
					padding: 10px 18px;
					transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
				}
				a:hover {
					color: @color_txt_main;
					background-color: @color_bg_warm;
				}
				a.active {
					background-color: @color_bg_primary;
					color: @color_txt_onblack;
					border-color: @color_bg_primary;
				}
			}
		}
	}

.content-img-left {
	text-align: left;
	padding: 40px 0;
	border-top: 1px solid @color_content_border;

	.headline {
		grid-column: 1 / 9;
	}
	.text {
		grid-column: 1 / 7;
		
		.section-headline {
			margin-bottom: 30px;
		}
		.section-text {
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { margin: 15px 0; }
		}
		.section-quote {
			background-color: @color_bg_akzent;
			border-left: 5px solid @color_highlight;
			padding: 20px;
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { 
				margin: 0; 
				font: 18px 'play-medium', Gerorgia, Times, serif;
			}
		}
	}
	.image {
		grid-column: 8 / 13;
	}

}
@media (max-width: 1024px) {

.content-img-left {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 1 / 5; }
	.image { grid-column: 5 / 9; }
}
}
@media (max-width: 850px) {

.content-img-left {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 2 / 8; }
	.image { grid-column: 2 / 8; }
}
}
@media (max-width: 600px) {

.content-img-left {
	.headline { grid-column: 1 / 5; }
	.text { grid-column: 1 / 5; }
	.image { grid-column: 1 / 5; }
}
}

.content-noimg-left {
	text-align: left;
	padding: 40px 0;
	border-top: 1px solid @color_content_border;

	.headline {
		grid-column: 1 / 6;
	}
	.text {
		grid-column: 7 / 13;
		
		.section-headline {
			margin-bottom: 30px;
		}
		.section-text {
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { margin: 15px 0; }
		}
		.section-quote {
			background-color: @color_bg_akzent;
			border-left: 5px solid @color_highlight;
			padding: 20px;
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { 
				margin: 0; 
				font: 18px 'play-medium', Gerorgia, Times, serif;
			}
		}
	}
	.bigimg {
		grid-column: 1 / 13;
	}

}
@media (max-width: 1024px) {

.content-noimg-left {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 1 / 6; }
	.bigimg { grid-column: 1 / 13; }
}
}
@media (max-width: 850px) {

.content-noimg-left {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 2 / 8; }
	.bigimg { grid-column: 1 / 8; }
}
}
@media (max-width: 600px) {

.content-noimg-left {
	.headline { grid-column: 1 / 5; }
	.text { grid-column: 1 / 5; }
	.bigimg { grid-column: 1 / 5; }

}
}

.content-img-right {
	text-align: left;
	padding: 40px 0;
	border-top: 1px solid @color_content_border;

	.headline {
		grid-column: 1 / 9;
	}
	.text {
		grid-column: 7 / 13;;
		
		.section-headline {
			margin-bottom: 30px;
		}
		.section-text {
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { margin: 15px 0; }
		}
		.section-quote {
			background-color: @color_bg_akzent;
			border-left: 5px solid @color_highlight;
			padding: 20px;
			margin-bottom: 30px;
			h4 { margin: 0; }
			p { 
				margin: 0; 
				font: 18px 'play-medium', Gerorgia, Times, serif;
			}
		}
	}
	.image {
		grid-column: 1 / 6;
	}

}
@media (max-width: 1024px) {

.content-img-right {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 5 / 9; }
	.image { grid-column: 1 / 5; }
}
}
@media (max-width: 850px) {

.content-img-right {
	.headline { grid-column: 1 / 7; }
	.text { grid-column: 2 / 8; }
	.image { grid-column: 2 / 8; }
}
}
@media (max-width: 600px) {

.content-img-right {
	.headline { grid-column: 1 / 5; }
	.text { grid-column: 1 / 5; }
	.image { grid-column: 1 / 5; }
}
}


.mod-result {
	text-align: center;
	padding: 40px 0;
	background-color: @color_bg_akzent;

	.modhead {
		grid-column: 3 / 11;
	}

	ul {
		margin: 0 0 0 0;
		padding: 0 0 0 0;
		text-align: left;
		grid-column: 3 / 11;
	}
	li {
		display: block;
		padding: 20px 0;
		margin: 0 0 0 0;
		border-top: 1px solid @color_rahmen_dark;

		.number {
			font: 24px 'play-medium', Gerorgia, Times, serif;
			color: @color_txt_sek;
			margin: 0 0 0 0;
			padding: 0;
		}
		h3 {
			margin: 0 0 0 0;
			padding: 0;			
		}
		p {
			margin: 15px 0 0 0;
			padding: 0;
		}
	}
}
@media (max-width: 1024px) {

.mod-result {
	ul { grid-column: 2 / 8; }
	.modhead { grid-column: 2 / 8; }
}
}
@media (max-width: 600px) {

.mod-result {
	ul { grid-column: 1 / 5; }
	.modhead { grid-column: 1 / 5; }
}
}

.big_quote {
	background-color: @color_bg_primary;
	padding: 40px 0;
	vertical-align: top;

	.head {
		grid-column: 1 / 3;
		color: @color_txt_onblack;
	}
	h2::before {	
		background-color: @color_txt_onblack;
	}
	.quote {
		grid-column: 5 / 13;

		h3, p {
			color: @color_txt_onblack;
		}
		h3 {
			margin-top: 0;
		}
	}

}
@media (max-width: 1024px) {

.big_quote {
	.head { grid-column:  1 / 3; }
	.quote { grid-column: 4 / 8; }
}
}
@media (max-width: 600px) {

.big_quote {
	.head { grid-column:  1 / 5; }
	.quote { grid-column: 1 / 5; }
}
}


/* ------------------------------------------------------- */

#footer {
  border-top: 1px solid @color_content_border;
}

#footer .home-contact {
  padding: 64px 0 44px 0;
}

#footer .footer-bar {
  border-top: 1px solid @color_rahmen;
}

#footer .footer-bar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
}

#footer .footer-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: 14px;
  font: 16px 'geist-medium', Arial, Helvetica, sans-serif;
}

#footer .footer-nav a {
	text-decoration: none;
	color: @color_txt_main;
}

/*
|-----------------------------------------------------------
|   >>>   STARTSEITE
|-----------------------------------------------------------
*/

a.button_cta_light {
	display: inline-block;
	padding: 12px 24px;
	color: @color_txt_main;
	border-radius: 10px;
	border: solid 1px @color_btn_cta_light;
	background-color: @color_btn_cta_light;

	font: 18px 'geist-medium', Arial, Helvetica, sans-serif;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
a.button_cta_light:hover {
	background-color: @color_highlight;
	border-color: @color_highlight;
	color: @color_txt_onblack;
}

/* ----- HERO ----- */

.home-hero {
	background-color: @color_bg_primary;
	text-align: center;
	padding: 120px 0 130px 0;

	.eyebrow {
		font: 15px 'geist-medium', Arial, Helvetica, sans-serif;
		color: @color_txt_sek;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		margin: 0 0 28px 0;
	}
	h1 {
		font: 76px 'play-medium', Georgia, Times, serif;
		color: @color_txt_onblack;
		font-weight: 500;
		line-height: 1.04;
		max-width: 920px;
		margin: 0 auto 32px auto;
	}
	.subline {
		font: 24px 'play-medium', Georgia, Times, serif;
		color: @color_txt_onblack;
		line-height: 1.4;
		max-width: 760px;
		margin: 0 auto 22px auto;
	}
	.body {
		font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
		color: @color_txt_sek;
		line-height: 1.6;
		max-width: 640px;
		margin: 0 auto 40px auto;
	}
	.cta {
		margin: 0;
	}
}
@media (max-width: 600px) {
.home-hero {
	padding: 80px 0 90px 0;

	h1 { font-size: 44px; }
	.subline { font-size: 20px; }
}
}

/* ----- METRIKEN-LEISTE ----- */

.home-metrics {
	background-color: @color_bg_akzent;
	padding: 64px 0;

	.figures {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 40px;
	}
	.figure {
		.number {
			font: 56px 'play-medium', Georgia, Times, serif;
			color: @color_txt_main;
			margin: 0 0 12px 0;
		}
		.label {
			font: 16px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.5;
			margin: 0;
			max-width: 300px;
		}
	}
}
@media (max-width: 800px) {
.home-metrics {
	.figures {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.figure .label { max-width: none; }
}
}

/* ----- CASE-KACHELN ----- */

.case-tiles {
	padding: 90px 0;
	border-top: 1px solid @color_content_border;

	.section-head {
		text-align: center;
		margin-bottom: 50px;

		h2 { justify-content: center; }
		h2::before { display: none; }
		h3 { margin: 12px 0 0 0; }
	}
	.tiles {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
	}
	.tile {
		display: flex;
		flex-direction: column;
		background-color: @color_white;
		border: 1px solid @color_rahmen;
		border-radius: 16px;
		padding: 32px;
		text-decoration: none;
		transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;

		.section-label {
			padding-top: 0;
			margin-bottom: 18px;
		}
		h3 {
			margin: 0 0 16px 0;
		}
		.tile-text {
			font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.5;
			margin: 0 0 24px 0;
		}
		.tags {
			font: 13px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_txt_sek;
			text-transform: uppercase;
			letter-spacing: 0.03em;
			line-height: 1.6;
			margin: 0 0 24px 0;
		}
		.tile-cta {
			margin-top: auto;
			font: 15px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_highlight;
			text-transform: uppercase;
			letter-spacing: 0.03em;

			&::after {
				content: ' \2192';
				white-space: nowrap;
			}
		}
	}
	.tile:hover {
		border-color: @color_txt_main;
		transform: translateY(-4px);
		box-shadow: 0 12px 30px rgba(17, 12, 9, 0.08);
	}
}
@media (max-width: 900px) {
.case-tiles {
	.tiles { grid-template-columns: 1fr; }
}
}

/* ----- BIO ----- */

.home-bio {
	background-color: @color_bg_akzent;
	padding: 90px 0;

	.head {
		grid-column: 1 / 4;
	}
	.text {
		grid-column: 5 / 13;

		p { margin: 0 0 24px 0; }
		p:first-child { margin-top: 0; }
	}
	.bio-links {
		display: flex;
		gap: 28px;
		margin: 8px 0 0 0;

		a {
			font: 16px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_txt_main;
			text-decoration: none;
			border-bottom: 1px solid @color_txt_main;
			padding-bottom: 2px;
		}
		a:hover {
			color: @color_highlight;
			border-color: @color_highlight;
		}
	}
}
@media (max-width: 1024px) {
.home-bio {
	.head { grid-column: 1 / 9; margin-bottom: 12px; }
	.text { grid-column: 1 / 9; }
}
}
@media (max-width: 600px) {
.home-bio {
	.head { grid-column: 1 / 5; }
	.text { grid-column: 1 / 5; }
	.bio-links { flex-direction: column; gap: 16px; align-items: flex-start; }
}
}

/* ----- TESTIMONIAL ----- */

.home-testimonial {
	background-color: @color_bg_primary;
	padding: 90px 0;

	.head {
		grid-column: 1 / 4;
		color: @color_txt_onblack;
	}
	h2::before {
		background-color: @color_txt_onblack;
	}
	.quote {
		grid-column: 5 / 13;

		h3 {
			margin: 0 0 24px 0;
			color: @color_txt_onblack;
		}
		.attribution {
			font: 16px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_sek;
			margin: 0;
		}
	}
}
@media (max-width: 1024px) {
.home-testimonial {
	.head { grid-column: 1 / 9; margin-bottom: 12px; }
	.quote { grid-column: 1 / 9; }
}
}
@media (max-width: 600px) {
.home-testimonial {
	.head { grid-column: 1 / 5; }
	.quote { grid-column: 1 / 5; }
}
}

/* ----- KONTAKT ----- */

.home-contact {
	text-align: center;
	padding: 90px 0;

	h3 {
		margin: 20px 0 16px 0;
	}
	.body {
		font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
		color: @color_txt_muted;
		margin: 0 auto 32px auto;
	}
	.contact-links {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		margin: 0;

		a {
			font: 22px 'play-medium', Georgia, Times, serif;
			color: @color_txt_main;
			text-decoration: none;
			border-bottom: 1px solid @color_rahmen_dark;
			padding-bottom: 4px;
		}
		a:hover {
			color: @color_highlight;
			border-color: @color_highlight;
		}
	}
}

/*
|-----------------------------------------------------------
|   >>>   ABOUT
|-----------------------------------------------------------
*/

.about-intro {
	background-color: @color_bg_akzent;
	padding: 90px 0;

	.photo {
		grid-column: 1 / 6;

		img {
			display: block;
			border-radius: 16px;
		}
	}
	.intro-text {
		grid-column: 7 / 13;
		align-self: center;

		h2 { margin-bottom: 0; }
		h3 { margin: 18px 0 0 0; }
	}
}
@media (max-width: 1024px) {
.about-intro {
	.photo { grid-column: 1 / 4; align-self: center; }
	.intro-text { grid-column: 4 / 9; }
}
}
@media (max-width: 600px) {
.about-intro {
	.photo { grid-column: 1 / 5; margin-bottom: 28px; }
	.intro-text { grid-column: 1 / 5; }
}
}

.about-block {
	padding: 80px 0;
	border-top: 1px solid @color_content_border;
}

.about-col {
	max-width: 760px;
	margin: 0 auto;

	h2 { margin-bottom: 4px; }
	p { line-height: 1.6; }
}

.about-talks {
	background-color: @color_bg_akzent;
	padding: 80px 0;

	.lead {
		font: 22px 'play-medium', Georgia, Times, serif;
		color: @color_txt_main;
		line-height: 1.4;
		margin: 12px 0 0 0;
	}
	.talks {
		list-style: none;
		margin: 36px 0 0 0;
		padding: 0;

		li {
			display: block;
			margin: 0;
			padding: 28px 0;
			border-top: 1px solid @color_rahmen_dark;

			h3 { margin: 0 0 10px 0; }
			p {
				margin: 0;
				color: @color_txt_muted;
				line-height: 1.6;
			}
		}
		li:last-child {
			border-bottom: 1px solid @color_rahmen_dark;
		}
	}
	.talks-cta {
		margin: 36px 0 0 0;

		a {
			color: @color_txt_main;
			text-decoration: none;
			border-bottom: 1px solid @color_txt_main;
			padding-bottom: 2px;
		}
		a:hover {
			color: @color_highlight;
			border-color: @color_highlight;
		}
	}
}

.about-col .cv-line {
	margin: 32px 0 0 0;

	a {
		font: 16px 'geist-medium', Arial, Helvetica, sans-serif;
		color: @color_txt_main;
		text-decoration: none;
		border-bottom: 1px solid @color_txt_main;
		padding-bottom: 2px;
	}
	a:hover {
		color: @color_highlight;
		border-color: @color_highlight;
	}
}

/* ----- WIE ICH ARBEITE (2x2) ----- */

.about-approach {
	padding: 80px 0;
	border-top: 1px solid @color_content_border;

	.approach-head {
		margin-bottom: 24px;
	}
	.grid2 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 56px;
	}
	.item {
		padding: 32px 0;
		border-top: 1px solid @color_rahmen_dark;

		h3 { margin: 0 0 12px 0; }
		p {
			margin: 0;
			color: @color_txt_muted;
			line-height: 1.6;
		}
	}
}
@media (max-width: 700px) {
.about-approach {
	.grid2 { grid-template-columns: 1fr; column-gap: 0; }
}
}

/* ----- LEHRTAETIGKEIT (Cards) ----- */

.about-teaching {
	padding: 80px 0;
	border-top: 1px solid @color_content_border;

	.teaching-head {
		text-align: center;
		margin-bottom: 50px;

		h2 { justify-content: center; }
		h2::before { display: none; }
		h3 { margin: 12px 0 0 0; }
		.subtext {
			font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.6;
			max-width: 660px;
			margin: 20px auto 0 auto;
		}
	}
	.teaching-contact {
		text-align: center;
		margin-top: 50px;

		a {
			color: @color_txt_main;
			text-decoration: none;
			border-bottom: 1px solid @color_txt_main;
			padding-bottom: 2px;
		}
		a:hover {
			color: @color_highlight;
			border-color: @color_highlight;
		}
	}
	.tiles {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
	}
	.tile {
		display: flex;
		flex-direction: column;
		background-color: @color_white;
		border: 1px solid @color_rahmen;
		border-radius: 16px;
		padding: 32px;

		h3 {
			margin: 0 0 16px 0;
		}
		.tile-text {
			font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.5;
			margin: 0;
		}
	}
}
@media (max-width: 900px) {
.about-teaching {
	.tiles { grid-template-columns: 1fr; }
}
}

/*
|-----------------------------------------------------------
|   >>>   CASES (Teaser-Cards + Kundenliste)
|-----------------------------------------------------------
*/

.case-teasers {
	padding: 80px 0;

	.page-head {
		text-align: center;
		margin-bottom: 50px;

		h2 { justify-content: center; }
		h2::before { display: none; }
		h3 { margin: 12px 0 0 0; }
	}
	.teasers {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 32px;
	}
	.teaser {
		display: flex;
		flex-direction: column;
		background-color: @color_white;
		border: 1px solid @color_rahmen;
		border-radius: 16px;
		overflow: hidden;
		text-decoration: none;
		transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;

		.thumb {
			width: 100%;
			aspect-ratio: 16 / 9;
			overflow: hidden;
			background-color: @color_bg_sek;

			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
				display: block;
			}
		}
		.body {
			display: flex;
			flex-direction: column;
			flex: 1;
			padding: 28px 32px 32px 32px;
		}
		.section-label {
			padding-top: 0;
			margin-bottom: 14px;
		}
		h3 {
			margin: 0 0 12px 0;
		}
		.teaser-text {
			font: 18px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.5;
			margin: 0 0 20px 0;
		}
		.tags {
			font: 13px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_txt_sek;
			text-transform: uppercase;
			letter-spacing: 0.03em;
			line-height: 1.6;
			margin: 0 0 20px 0;
		}
		.teaser-cta {
			margin-top: auto;
			font: 15px 'geist-medium', Arial, Helvetica, sans-serif;
			color: @color_highlight;
			text-transform: uppercase;
			letter-spacing: 0.03em;

			&::after {
				content: ' \2192';
				white-space: nowrap;
			}
		}
	}
	.teaser:hover {
		border-color: @color_txt_main;
		transform: translateY(-4px);
		box-shadow: 0 12px 30px rgba(17, 12, 9, 0.08);
	}
}
@media (max-width: 800px) {
.case-teasers {
	.teasers { grid-template-columns: 1fr; }
}
}

.clients {
	background-color: @color_bg_akzent;
	padding: 80px 0;

	.clients-head {
		margin-bottom: 24px;

		h3 { margin: 12px 0 0 0; }
	}
	.client-row {
		display: grid;
		grid-template-columns: 1fr 2fr;
		gap: 32px;
		padding: 28px 0;
		border-top: 1px solid @color_rahmen_dark;

		.cat {
			font: 20px 'play-medium', Georgia, Times, serif;
			color: @color_txt_main;
			line-height: 1.3;
			margin: 0;
		}
		.names {
			font: 17px 'geist-regular', Arial, Helvetica, sans-serif;
			color: @color_txt_muted;
			line-height: 1.7;
			margin: 0;
		}
	}
	.client-row:last-child {
		border-bottom: 1px solid @color_rahmen_dark;
	}
}
@media (max-width: 700px) {
.clients {
	.client-row {
		grid-template-columns: 1fr;
		gap: 10px;
	}
}
}

/*
|-----------------------------------------------------------
|   >>>   KONTAKT-LIGHTBOX
|-----------------------------------------------------------
*/

.lightbox {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100000;
	padding: 24px;
}
.lightbox-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(17, 12, 9, 0.6);
	cursor: pointer;
}
.lightbox-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 620px;
	background-color: @color_bg_general;
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(17, 12, 9, 0.25);
}
.lightbox-content .home-contact {
	padding: 48px 24px 40px 24px;
}
.lightbox-close {
	position: absolute;
	top: 14px;
	right: 18px;
	z-index: 2;
	width: 40px;
	height: 40px;
	background: none;
	border: 0;
	padding: 0;
	font: 34px 'geist-regular', Arial, Helvetica, sans-serif;
	line-height: 1;
	color: @color_txt_main;
	cursor: pointer;
}
.lightbox-close:hover {
	color: @color_highlight;
}

/*
|-----------------------------------------------------------
|   >>>   CASE PREV / NEXT
|-----------------------------------------------------------
*/

.case-nav {
	border-top: 1px solid @color_content_border;
	padding: 50px 0;

	.container {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 24px;
	}
	a {
		display: flex;
		flex-direction: column;
		gap: 6px;
		max-width: 48%;
		text-decoration: none;
		color: @color_txt_main;
	}
	a.next {
		text-align: right;
		align-items: flex-end;
	}
	.dir {
		font: 13px 'geist-medium', Arial, Helvetica, sans-serif;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: @color_txt_sek;
	}
	.case-name {
		font: 28px 'play-medium', Georgia, Times, serif;
		color: @color_txt_main;
	}
	a:hover .case-name {
		color: @color_highlight;
	}
}
@media (max-width: 600px) {
.case-nav {
	.case-name { font-size: 20px; }
}
}

/* ------------------------------------------------------- */

.fixed {
	position: fixed;
	z-index: 999999;
	margin: 0;
	top: 0;
}
.show {
	display: block;
}
.hide {
	display: none;
}

/*
|-----------------------------------------------------------
|   >>>   CASE TABLE OF CONTENTS (floating)
|-----------------------------------------------------------
*/

/* opened via the floating button on every screen size */
/* default = mobile: full-width bottom sheet */
.case-toc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9002;
	max-height: 72vh;
	overflow-y: auto;
	padding: 22px 24px 30px;
	background: @color_bg_general;
	box-shadow: 0 -10px 40px rgba(17, 12, 9, 0.18);
	border-radius: 18px 18px 0 0;
	font-family: 'geist-reg', Arial, Helvetica, sans-serif;
	transform: translateY(100%);
	visibility: hidden;
	transition: transform 0.28s ease, opacity 0.28s ease, visibility 0.28s ease;
}
.case-toc.open {
	transform: translateY(0);
	visibility: visible;
}
.case-toc .case-toc-title {
	margin: 0 0 14px;
	font-family: 'geist-reg', Arial, Helvetica, sans-serif;
	font-weight: normal;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: @color_txt_sek;
}
.case-toc ol {
	list-style: none;
	margin: 0;
	padding: 0;
}
.case-toc li {
	margin: 0;
}
.case-toc a {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	padding: 10px 0;
	font-family: 'geist-medium', Arial, Helvetica, sans-serif;
	font-weight: normal;
	color: @color_txt_main;
	font-size: 15px;
	line-height: 1.35;
	text-decoration: none;
}
/* override the global `li span { geist-bold/18px }` rule for the label */
.case-toc .toc-label {
	font: 15px/1.35 'geist-medium', Arial, Helvetica, sans-serif;
	color: inherit;
}
.case-toc .toc-tick {
	display: block;
	flex: none;
	width: 16px;
	height: 1px;
	background: @color_rahmen_dark;
	transition: width 0.2s ease, background-color 0.2s ease;
}
.case-toc a:hover {
	color: @color_txt_main;
}
.case-toc a:hover .toc-tick {
	background: @color_txt_main;
}
.case-toc a.active {
	color: @color_txt_main;
	font: 15px/1.35 'geist-bold', Arial, Helvetica, sans-serif;
}
/* the visible text lives in the label span, which has its own rule above */
.case-toc a.active .toc-label {
	font: 15px/1.35 'geist-bold', Arial, Helvetica, sans-serif;
	color: inherit;
}
.case-toc a.active .toc-tick {
	width: 26px;
	background: @color_highlight;
}

.case-toc-backdrop {
	position: fixed;
	inset: 0;
	z-index: 9001;
	background: rgba(17, 12, 9, 0.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}
.case-toc-backdrop.open {
	opacity: 1;
	visibility: visible;
}

.case-toc-fab {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 9003;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	box-sizing: border-box;
	border: 1px solid rgba(247, 245, 241, 0.65);
	border-radius: 50%;
	background: @color_bg_primary;
	color: @color_txt_onblack;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(17, 12, 9, 0.28);
}
.case-toc-fab svg {
	width: 22px;
	height: 22px;
}
.case-toc-fab:hover {
	background: @color_black;
}

/* leave breathing room when jumping to a section */
#maincontent > div {
	scroll-margin-top: 80px;
}

/* desktop/tablet: compact box anchored above the button, not full width */
@media (min-width: 768px) {
	.case-toc {
		left: auto;
		right: 24px;
		bottom: 88px;
		width: 300px;
		max-height: 70vh;
		border-radius: 14px;
		box-shadow: 0 16px 44px rgba(17, 12, 9, 0.16);
		transform: translateY(12px);
		opacity: 0;
	}
	.case-toc.open {
		transform: translateY(0);
		opacity: 1;
	}
	/* keep an invisible click-catcher to close on outside click, without dimming */
	.case-toc-backdrop {
		background: transparent;
	}
}

