@import "fonts.css";
@import "forms.css";
/* Basiselemente */
:root {
	--backdrop: oklch(0.2791 0.0089 106.97);
	--shade: oklch(0.2791 0.0089 106.97 / 80%);
	--portfolio: oklch(0.8001 0.0069 106.56);
	--offWhite: oklch(0.9672 0 0);
	--cite: oklch(0.9154 0.0138 92.99);
	--textbg: oklch(0.9449 0.0257 94.74);
	--kaufbutton: oklch(0.6183 0.10555 194.769);
	--current: oklch(0.9246 0.1254 95.92);
	--secondary: oklch(0.7284 0.1551 72.99);
	--akzent1: oklch(0.652 0.2341 28.22);
	--akzent2: oklch(0.7839 0.1996 146.33);
	--lightLine: 1px solid oklch(0 0 0 / 50%);
	font-size: 10px;
	font-size: clamp(0.625rem, 0.5434rem + 0.4082vi, 0.875rem);
	font-family: 'Plex', sans-serif;
}

* {
	box-sizing: border-box;
	padding: 0px;
	margin: 0px;
}
html,
body {
	font-size: 1.4rem;
	line-height: 1.4;
	height: 100%;
	background-color: var(--offWhite);
}
h1 {
	font-size: 3rem;
	text-align: center;
	margin-bottom: 0.5em;
}
h2 {
	margin-bottom: 1rem;
	font-size: 2rem;
}
p {
	margin-bottom: 0.75rem;
	hyphens: auto;
}
sup {
	line-height: 0;
	font-size: 75%;
	vertical-align: super;
}
sub {
	display: inline;
	line-height: 0;
	font-size: 75%;
	vertical-align: sub;
}
q {
	display: block;
	font-size: 2rem;
	margin-bottom: 1.5rem;
	font-weight: 300;
	font-style: italic;
	text-align: center;
}
q::before {
	content: '\00BB';
	font-weight: 700;
}
q::after {
	content: '\00AB';
	font-weight: 700;
}
.nobreak {
	white-space: nowrap;
}
.invisible {
	position: absolute;
	left: 0;
	top: 0;
	display: none;
}
.hamburger {
	position: absolute;
	right: 1rem;
	top: 1rem;
	width: 60px;
	height: 60px;
	cursor: pointer;
}
.hamburger img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.page {
	display: grid;
	grid-template-columns: minmax(200px, min(25vw, 300px)) 1fr;
}
header {
	position: sticky;
	top: 0px;
	z-index: 100;
	height: 100vh;
	padding: 2rem;
	background-color: var(--backdrop);
	color: var(--offWhite);
}
main {
	position: relative;
	height: 100%;
}
main > footer {
	position: sticky;
	top: 100vh;
	background-color: var(--backdrop);
	color: var(--offWhite);
	padding: 2rem;
}
.main_logo {
	display: block;
	width: min(100%, 200px);
	cursor: pointer;
}
.main_logo img {
	width: 100%;
}
.hamburger {
	display: none;
}
.mainnav {
	padding-top: 2rem;
}
.footernav {
	justify-self: end;
}
.mainnav li {
	position: relative;
}
.mainnav ul,
.footernav ul {
	list-style-type: none;
	padding-left: 1rem;
	font-size: 2rem;
}
.mainnav ul ul {
	position: absolute;
	left: -0.5rem;
	top: 100%;
	z-index: 5;
	background-color: var(--backdrop);
	padding-left: 1.5rem;
	hyphens: auto;
	line-height: 1;
	padding-top: 0;
	height: 0;
	opacity: 0;
	transform: scaleY(0);
	transform-origin: top;
	transition: all 0.2s ease-in-out;
}
.mainnav li:hover ul {
	height: fit-content;
	padding-top: 0.5rem;
	opacity: 1;
	height: auto;
	transform: scaleY(1);
	font-size: 2rem;
}
.mainnav ul ul li {
	margin-bottom: 1rem;
	margin-left: 0.5em;
}
.mainnav ul ul li a {
	display: list-item;
	list-style-type: square;
}
.footernav ul {
	padding-left: 0;
	font-size: 100%;
}
.footernav li {
	display: inline-block;
}
.footernav li:not(:last-child) {
	margin-right: 2rem;
}
a {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}
.mainnav a:link,
.mainnav a:visited,
.footernav a:link,
.footernav a:visited {
	color: var(--offWhite);
	display: inline-block;
	width: 100%;
	hyphens: auto;
}
.mainnav a:hover,
.footernav a:hover {
	color: var(--akzent2);
}
.mainnav a:active,
.footernav a:active
{
	color: var(--akzent1);
}
.current > a {
	cursor: default;
	color: var(--current) !important;
	text-shadow: 0px 0px 10px var(--current);
}
li:has(ul li.current) > a {
	cursor: pointer;
	color: var(--current) !important;
	text-shadow: 0px 0px 10px var(--current);
}
.cover {
	width: 100%;
	height: 100vh;
}
img {
	pointer-events: none;
}
.cover figure {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
}
.cover img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	margin: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.covertext {
	position: absolute;
	right: 6rem;
	bottom: calc(-4vw + 200px);
	z-index: 10;
	padding-left: 2rem;
	color: var(--offWhite);
	text-shadow: 0px 0px 40px oklch(0 0 0 / 75%);
}
@keyframes throbbing {
    0%, 100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.1);
	}
}
.scrollthrobber {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 20px;
	display: block;
	width: 30px;
	height: 73px;
	animation: throbbing 2s infinite ease-in-out;
}
.scrollthrobber img {
	width: 100%;
	height: auto;
}
.cover h1 {
	font-size: 6rem;
	line-height: 1.2;
	text-decoration: none;
	margin-bottom: 0;
}
.cover p {
	font-size: 3rem;
}
figure {
	display: block;
	width: 100%;
}
figure img {
	display: block;
	margin: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.bildkarte {
	cursor: zoom-in;
	width: fit-content;
	margin: 0 auto;
}
.bildkarte:has(.portrait) img {
	max-height: min(900px, 90vw);
	width: auto;
	height: 100%;
	margin: 0px auto;
}
.bildkarte:has(.landscape) img {
	max-width: min(900px, 90vw);
	width: 100%;
	height: auto;
	margin: 0px auto;
}
.bildkarte img {
	display: block;
	object-fit: contain;
	box-shadow: 2px 2px 10px oklch(0 0 0 / 25%);
	transform-origin: center;
	transition: all 0.2s ease-in-out;
}
.bildkarte:hover {
	transform: scale(1.02);
}
.maincontainer {
	padding: 2rem;
}
.breadcrumbsleiste {
	display: block;
	background-color: var(--cite);
	padding: 0.5rem 2rem;
	margin: 0 2rem 3rem 2rem;
	font-weight: 700;
}
.breadcrumb {
	color: oklch(0 0 0 / 75%);
}
.siebefindensich {
	font-weight: 400 !important;
}
.breadcrumb:link,
.breadcrumb:visited {
	/* font-weight: 400 !important; */
	transform-origin: center;
	transition: all 0.2s ease-in-out;
}
.breadcrumb:hover {
	color: var(--akzent2);
}
.cta:link,
.cta:visited {
	display: block;
	width: fit-content;
	font-weight: 700;
	max-width: 70vw;
	margin: 2rem auto;
	padding: 1rem 3rem;
	border-radius: 10px;
	text-align: center;
	background-color: var(--kaufbutton);
	color: white;
	border: var(--lightLine);
	box-shadow: 5px 5px 10px oklch(0 0 0 / 25%);
	cursor: pointer;
	transition: all 0.2s ease-in-out;
	transform-origin: center;
}
.cta:hover {
	color: white;
	transform: scale(1.02);
	box-shadow: 10px 10px 20px oklch(0 0 0 / 25%);
}
.cta:active {
	color: white;
	transform: scale(1.01);
	box-shadow: 7px 7px 14px oklch(0 0 0 / 25%);
}
.maincontainer.portfolio {
	background-color: var(--portfolio);
	min-height: 100vh;
}
.maincontainer.zweispaltig {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(710px, 70vw), 1fr));
	grid-gap: 2rem;
	padding: 6rem;
}
.overlay {
	position: fixed;
	width: 100%;
	height: 100%;
	border: none;
	outline: none;
	margin: auto;
	background-color: transparent;
	overflow: hidden;
}
.overlay::backdrop {
	background-color: oklch(0 0 0 / 85%);
}
.overlaycontainer {
	display: grid;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}
.overlaywrapper {
	display: block;
	position: relative;
	width: fit-content;
	margin: auto auto;
}
.overlaychliesser {
	position: absolute;
	right: -15px;
	top: -15px;
	cursor: pointer;
}
.schliesskreuz {
	width: 30px;
	height: 30px;
	object-fit: contain;
}
.overlaybild {
	width: calc(fit-content + 30px);
	height: calc(fit-content + 30px);
	display: grid;
	/* overflow: hidden; */
}
.overlaybild img {
	display: block;
	max-width: min(2000px, calc(90vw - 30px));
	max-height: min(2000px, calc(90vh - 30px));
	object-fit: contain;
	align-self: center;
}
.cardimage {
	cursor: pointer;
	width: 100%;
}
.cardimage:link img,
.cardimage:visited img {
	transition: all 0.2s;
}
.cardimage:hover img {
	color: inherit;
	transform: scale(1.05);
}
.cardimage:active img {
	color: inherit;
	transform: scale(1.025);
}
.cards {
	display: grid;
	/* grid-template-columns: repeat(auto-fit, minmax(min(500px, 70vw), 700px)); */
	grid-template-columns: repeat(auto-fit, minmax(min(400px, 70vw), 450px));
	padding: 2rem;
	gap: 2rem;
	justify-content: center;
	justify-items: center;
	/* align-items: center; */
}
.cards:has(.textbg),
.cards:has(.kategorieheader) {
	padding-bottom: 0;
}
.cards h2 {
	grid-column: 1 / -1;
	margin-bottom: 0;
	font-size: 2.5rem;
}
.textbg {
	grid-column: span 2;
	padding: 2rem 3rem;
	background-color: var(--cite);
}
.kategorieheader {
	grid-column: span 2;
	display: grid;
	padding: 2rem;
	gap: 2rem;
	background-color: var(--cite);
	justify-items: center;
	max-width: fit-content;
	margin: 0 auto;
	grid-template-columns: 2fr 6fr;
}
@media only screen and (max-width:2310px) {
	.kategorieheader,
	.textbg {
		grid-column: span 3;
	}
}
@media only screen and (max-width: 1832px) {
	.kategorieheader,
	.textbg {
		grid-column: span 2; 
	}
}
@media only screen and (max-width: 1354px) {
	.kategorieheader,
	.textbg {
		grid-column: span 1; 
	}
}
.kategorieBack img {
	width: min(100%, 60px);
	margin: 0 auto 1rem auto;
}
.kategorieBack:link,
.kategorieBack:visited {
	width: 100%;
	align-self: start;
	cursor: pointer;
	/* padding: 2rem; */
	transition: all 0,2s ease-in-out;
	text-align: center;
	font-weight: 700;
	font-size: 2vmin;
	line-height: 1;
	display: grid;
	grid-template-rows: 1fr 2.5rem;
	align-items: start;
}
.kategorieBack:hover {
	transform: scale(1.05);
}
.textbg h1 {
	font-size: 2.1rem;
	margin-bottom: 1rem;
	text-decoration: none;
	text-align: left;
}
.card {
	display: grid;
	position: relative;
	padding: 2rem;
	background-color: var(--cite);
}
.cardimage img {
	box-shadow: 5px 5px 15px oklch(0 0 0 / 25%);
}
.card img {
	display: block;
	margin: 0;
	width: 100%;
	max-width: fit-content;
	margin: 0 auto;
	max-height: 70vh;
	height: auto;
	object-fit: contain;
}
.card:has(.landscape) {
	/* grid-template-rows: auto auto; */
	grid-template-columns: 1fr;
	align-content: start;
}
.card:has(.landscape) .cardtext {
	padding: 2rem 0;
}
.card:has(.portrait) {
	/* grid-template-rows: 1fr; */
	grid-template-columns: 4fr 2fr;
}
.card:has(.portrait) .cardlower {
	margin-top: 1.5rem;
}
.card.textumfluss:has(.portrait) {
	aspect-ratio: auto;
}
.card:has(.portrait) .cardtext {
	padding: 0 0 2rem 2rem;
}
.card.textumfluss h2 {
	font-size: 2rem;
	line-height: 1.2;
	margin-bottom: 1rem;
}
.card h3 {
	font-weight: 700;
	hyphens: auto;
	font-size: 1.6rem;
}
.cardtext p {
	hyphens: auto;
}
.cardimagewrapper {
	position: relative;
}
.einzelkategorie .card {
	grid-template-columns: 1fr;
	align-content: start;
	width: 100%;
}
.einzelkategorie .card:has(.zitat) {
	align-content: center;
}
.einzelkategorie .card .cardimage {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	cursor: zoom-in;
}
.einzelkategorie .card .cardimage img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	box-shadow: none;
}
.einzelkategorie .card .cardtext {
	padding: 2rem 0;
	text-align: center;
}
.cardlower {
	grid-column: 1 / -1;
	width: 100%;
}
.cardlower h2 {
	font-size: 1.3rem;
}
.cardlower summary {
	font-size: 1.1rem;
	font-weight: 700;
	background-color: oklch(0 0 0 / 15%);
	padding: 0.5rem 1rem;
	margin-top: 0.5rem;
}
.formateblock {
	display: grid;
	align-items: end;
}
.legaltext {
	display: block;
	width: min(100%, 800px);
	margin: 2rem auto 0;
	padding: 2rem;
	background-color: oklch(1 0 0);
}
.zitat {
	width: min(100%, 800px);
	padding: 2rem;
	background-color: var(--cite);
	text-align: right;
	margin: 0 auto;
	align-self: center;
	/* border: var(--lightLine); */
	border: 1px solid oklch(1 0 0 / 50%)
	border-right: 0;
	border-bottom: 0;
	box-shadow: 10px 10px 30px oklch(0 0 0 / 25%);
	transform-origin: center;
	transform: rotate(-2.5deg);
}
.aboutzitat {
	margin: 3rem auto;
}
.footercontent {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 2rem;
}
h3 {
	font-size: 1.6rem;
}
.legaltext h3 {
	margin-left: 1.5rem;
}
.legaltext h4 {
	margin-left: 3rem;
	font-size: 1.4rem;
}
.legaltext p {
	margin-left: 4.5rem;
	margin-bottom: 1rem;
}
.legaltext ul {
	margin-left: 6rem;
	margin-bottom: 1rem;
	font-size: 1.2rem;
}
.verkaufspraesentation {
	display: grid;
	width: max(80%, 60vw);
	max-width: 900px;
	max-height: 900px;
	margin: 0 auto;
	padding: 3rem;
	background-color: var(--cite);
	gap: 2rem;
	justify-content: center;
	margin-bottom: 2rem;
}
.vpanfrageseite {
	max-width: none;
}
.verkaufspraesentation > div {
	cursor: zoom-in;
	width: 100%;
	max-width: 900px;
	transform-origin: center;
	transition: all 0.2s ease-in-out;
}
.verkaufspraesentation:has(.portrait) > div {
	aspect-ratio: 1 / 1;
}
.verkaufspraesentation > div:hover {
	transform: scale(1.05);
}
.verkaufspraesentation > div:active {
	transform: scale(1.025);
}
.verkaufspraesentation.vpanfrageseite > div {
	cursor: default;
}
.verkaufspraesentation.vpanfrageseite > div:hover {
	transform: scale(1);
}
.verkaufspraesentation.vpanfrageseite > div:active {
	transform: scale(1);
}
.verkaufsbild {
	box-shadow: 10px 10px 20px oklch(0 0 0 / 25%);
	width: 100%;
	max-width: fit-content;
	display: block;
	margin: 0 auto;
	max-height: 100%;
	object-fit: contain;
}
.textumfluss {
	display: flow-root;
}
.verdraenger {
	display: block;
	width: 30%;
	min-width: 160px;
	border: var(--lightLine);
	shape-outside: url(img/Holger.webp);
	shape-margin: 1em;
	margin-right: 2rem !important;
	margin-bottom: 0.5rem !important;
	float: left;
}
.card.textumfluss .verdraenger {
	border: none;
	box-shadow: 5px 5px 10px oklch(0 0 0 / 25%);
}
.card.textumfluss:has(.landscape) .verdraenger {
	width: 60%;
	min-width: 250px;
}
.card.textumfluss:has(.portrait) .verdraenger {
	width: 40%;
	min-width: 165px;
}

@media only screen and (max-width:1930px) {
	.maincontainer.zweispaltig {
		grid-template-columns: repeat(auto-fit, minmax(min(500px, 70vw), 1fr));
	}
}
@media only screen and (max-width:800px) {
	.page {
		grid-template-columns: 1fr;
		grid-template-rows: auto 1fr;
		max-width: 100vw;
	}
	header {
		position: fixed;
		width: 100vw;
		height: auto;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
		align-items: center;
	}
	main {
		position: absolute;
		top: 85px;
		width: 100%;
	}
	.cover {
		height: calc(100vh - 85px);
	}
	.covertext {
		right: 4rem;
		bottom: calc(-5vw + 150px);
	}
	.cover h1 {
		font-size: 4.5rem;
		line-height: 1.2;
		text-decoration: none;
	}
	.cover p {
		font-size: 1.7rem;
	}
	.hamburger {
		display: block;
	}
	.mainnav {
		background-color: var(--backdrop);
		position: absolute;
		right: 1rem;
		top: 6rem;
		padding: 1rem;
		padding-top: 0;
		justify-self: end;
		transform-origin: top;
		transform: scaleY(0);
		transition: all 0.2s;
	}
	.mainnav ul {
		padding-right: 1rem;
	}
	.mainnav ul ul {
		position: relative;
		padding-top: 0.5rem;
		height: auto;
		transform: scaleY(1);
		opacity: 1 !important;
		font-size: 2rem;
	}
	.mainnav li a {
		overflow: hidden;
	}
	#navtoggle:checked ~ .mainnav {
		transform: scaleY(1);
	}
	.main_logo {
		width: min(100%, 100px);
	}
	.cards {
		width: 100%;
		padding: 0;
		gap: 2rem;
	}
	.cards:has(.textbg),
	.cards:has(.kategorieheader) {
		padding-bottom: 2rem;
	}
	.textbg {
		max-width: 100%;
	}
	.card:has(.portrait),
	.card:has(.landscape) {
		grid-template-rows: auto auto;
		grid-template-columns: 1fr;
		max-width: 100vw;
		aspect-ratio: auto;
	}
	.card:has(.portrait) .cardtext {
		padding: 2rem 0 0 0;
	}
	.verkaufspraesentation:has(.portrait) {
		grid-template-columns: 1fr;
	}
	.maincontainer.zweispaltig {
		grid-template-columns: 1fr;
		padding: 2rem;
	}
}
@media only screen and (max-width:800px) and (orientation: landscape) {
	.mainnav {
		display: block;
		background-color: var(--backdrop);
		position: absolute;
		right: 0;
		top: 6rem;
		padding: 1rem;
		padding-top: 0;
		justify-self: end;
		transform-origin: top;
		transform: scaleY(0);
		transition: all 0.2s;
		max-height: calc(100vh - 6rem);
		overflow-x: hidden;
		overflow-y: auto;
	}
	
}
@media only screen and (max-width:480px) {
	.footernav li {
		display: list-item;
	}
}