@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url("../fonts/roboto-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Roboto";
	font-style: italic;
	font-weight: 300 800;
	font-display: swap;
	src: url("../fonts/roboto-italic.woff2") format("woff2");
}

:root {
	--ep-ink: #13283b;
	--ep-ink-dark: #091a29;
	--ep-ink-soft: #253d52;
	--ep-green: #62a33d;
	--ep-green-dark: #4d882d;
	--ep-green-pale: #edf5e8;
	--ep-sky: #eaf2f6;
	--ep-warm: #f6f5f1;
	--ep-white: #fff;
	--ep-text: #273948;
	--ep-muted: #6a7883;
	--ep-line: rgba(19, 40, 59, .14);
	--ep-shadow: 0 24px 70px rgba(9, 26, 41, .13);
	--ep-radius: 1.2rem;
	--ep-header: 74px;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ep-header) + 1rem);
}

body {
	margin: 0;
	color: var(--ep-text);
	background: var(--ep-white);
	font: 400 1rem/1.65 "Roboto", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

body.menu-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
}

a {
	color: inherit;
}

button,
input,
select,
textarea {
	font: inherit;
}

::selection {
	color: var(--ep-white);
	background: var(--ep-green);
}

.skip-link {
	position: fixed;
	top: -5rem;
	left: 1rem;
	z-index: 1000;
	padding: .65rem 1rem;
	color: var(--ep-white);
	background: var(--ep-ink);
	border-radius: .35rem;
	font-weight: 700;
}

.skip-link:focus {
	top: 1rem;
}

/* Header: mobile Basis */
.site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: var(--ep-header);
	background: rgba(255, 255, 255, .96);
	border-bottom: 1px solid var(--ep-line);
	backdrop-filter: blur(14px);
	transition: box-shadow .2s ease;
}

.site-header.is-scrolled {
	box-shadow: 0 12px 35px rgba(9, 26, 41, .1);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	gap: 1rem;
}

.site-brand {
	display: flex;
	align-items: center;
	width: 260px;
	height: 42px;
	overflow: hidden;
}

.site-brand img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.menu-toggle {
	position: relative;
	z-index: 102;
	display: block;
	width: 46px;
	height: 46px;
	padding: 10px;
	border: 0;
	background: transparent;
}

.menu-toggle span {
	display: block;
	width: 100%;
	height: 2px;
	margin: 5px 0;
	background: var(--ep-ink);
	transition: transform .2s ease, opacity .2s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.main-nav {
	position: fixed;
	inset: var(--ep-header) 0 auto;
	display: grid;
	gap: 0;
	padding: 1rem max(1rem, calc((100vw - 720px) / 2));
	background: var(--ep-white);
	border-bottom: 1px solid var(--ep-line);
	box-shadow: 0 20px 45px rgba(9, 26, 41, .13);
	transform: translateY(-140%);
	visibility: hidden;
	transition: transform .24s ease, visibility .24s ease;
}

.main-nav.is-open {
	transform: translateY(0);
	visibility: visible;
}

.main-nav a {
	position: relative;
	padding: .78rem 0;
	color: var(--ep-ink);
	border-bottom: 1px solid var(--ep-line);
	font-size: .94rem;
	font-weight: 650;
	text-decoration: none;
}

.nav-contact {
	margin-top: .75rem;
	padding: .8rem 1rem !important;
	color: var(--ep-white) !important;
	background: var(--ep-ink);
	border: 0 !important;
	border-radius: 999px;
	text-align: center;
	transition: background .2s ease, transform .2s ease;
}

.nav-contact:hover {
	background: var(--ep-green-dark);
}

/* Gemeinsame Typografie und Komponenten */
.section {
	padding: 4.5rem 0;
}

.eyebrow {
	margin: 0 0 1.1rem;
	color: var(--ep-green);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.eyebrow-dark {
	color: var(--ep-green-dark);
}

.display-heading {
	margin: 0 0 1.8rem;
	color: var(--ep-ink);
	font-size: clamp(2.35rem, 11vw, 3.5rem);
	font-weight: 740;
	letter-spacing: -.04em;
	line-height: 1.02;
}

.display-heading span {
	color: var(--ep-green);
}

.lead-copy {
	color: var(--ep-ink);
	font-size: 1.2rem;
	font-weight: 450;
	line-height: 1.5;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: .82rem 1.4rem;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 750;
	text-decoration: none;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.button:hover,
.button:focus-visible {
	transform: translateY(-2px);
}

.button-primary {
	color: var(--ep-white);
	background: var(--ep-green);
	box-shadow: 0 12px 28px rgba(98, 163, 61, .25);
}

.button-primary:hover {
	color: var(--ep-white);
	background: var(--ep-green-dark);
}

.button-outline {
	color: var(--ep-white);
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .55);
}

.button-outline:hover {
	color: var(--ep-ink);
	background: var(--ep-white);
	border-color: var(--ep-white);
}

/* Hero: mobile Basis */
.hero-section {
	position: relative;
	display: flex;
	align-items: end;
	min-height: 780px;
	padding-top: var(--ep-header);
	color: var(--ep-white);
	background: var(--ep-ink-dark);
	overflow: hidden;
}

.hero-image,
.hero-shade {
	position: absolute;
	inset: var(--ep-header) 0 0;
}

.hero-image {
	background: url("../../images/hero.jpg") 63% center / cover no-repeat;
	transform: scale(1.012);
}

.hero-shade {
	background: linear-gradient(0deg, rgba(5, 20, 33, .9) 0%, rgba(7, 25, 39, .8) 52%, rgba(8, 27, 41, .2) 100%);
}

.hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-top: 16rem;
	padding-bottom: 14rem;
}

.hero-copy {
	max-width: 710px;
}

.hero-copy h1 {
	margin: 0 0 1.6rem;
	font-size: clamp(2.9rem, 13vw, 4.5rem);
	font-weight: 800;
	letter-spacing: -.04em;
	line-height: .88;
	text-transform: uppercase;
}

.hero-copy h1 span {
	color: #86c95e;
}

.hero-lead {
	max-width: 625px;
	margin: 0 0 2rem;
	color: rgba(255, 255, 255, .88);
	font-size: 1.08rem;
}

.hero-actions {
	display: flex;
	align-items: stretch;
	flex-direction: column;
	gap: .8rem;
}

.hero-actions .button {
	width: 100%;
}

.hero-facts {
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	width: calc(100% - 1.5rem);
	max-width: 1320px;
	padding: 0;
	background: rgba(13, 35, 52, .96);
	box-shadow: var(--ep-shadow);
	transform: translateX(-50%);
}

.hero-facts div {
	padding: 1rem;
	border-right: 1px solid rgba(255, 255, 255, .14);
}

.hero-facts div:nth-child(2n) {
	border-right: 0;
}

.hero-facts div:nth-child(-n+2) {
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.hero-facts strong,
.hero-facts span {
	display: block;
}

.hero-facts strong {
	color: #91d269;
	font-size: 1.05rem;
	line-height: 1.15;
}

.hero-facts span {
	margin-top: .25rem;
	color: rgba(255, 255, 255, .66);
	font-size: .74rem;
}

/* Objekt */
.object-section {
	background: var(--ep-white);
}

.object-section p:not(.eyebrow) {
	max-width: 650px;
}

.object-notes {
	display: grid;
	gap: .9rem;
	margin-top: 2rem;
}

.object-notes > div {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 1rem;
	align-items: start;
	padding-top: .9rem;
	border-top: 1px solid var(--ep-line);
}

.object-notes span {
	color: var(--ep-green-dark);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .1em;
}

.object-notes p {
	margin: 0;
	color: var(--ep-muted);
}

.object-notes strong {
	display: block;
	color: var(--ep-ink);
	font-weight: 700;
}

.image-frame {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: var(--ep-sky);
	box-shadow: var(--ep-shadow);
}

.image-frame img {
	width: 100%;
	height: 520px;
	object-fit: cover;
	object-position: center 44%;
}

.image-frame figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	padding: .8rem 1.1rem;
	color: var(--ep-white);
	background: var(--ep-ink);
	font-size: .84rem;
	font-weight: 600;
}

/* Verfügbare Flächen */
.availability-section {
	color: rgba(255, 255, 255, .77);
	background: var(--ep-ink-dark);
}

.section-intro {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: end;
	margin-bottom: 3rem;
}

.section-intro > p,
.section-intro > div:last-child > p {
	margin-bottom: 1rem;
	color: var(--ep-muted);
	font-size: 1.05rem;
}

.section-intro .display-heading {
	margin-bottom: 0;
}

.section-intro-light .display-heading {
	color: var(--ep-white);
}

.section-intro-light > div:last-child > p {
	color: rgba(255, 255, 255, .66);
}

.text-link {
	display: inline-flex;
	gap: .55rem;
	align-items: center;
	color: var(--ep-green);
	font-weight: 700;
	text-decoration: none;
}

.text-link:hover {
	color: var(--ep-white);
}

.floor-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 1rem;
}

.floor-card,
.floor-card-featured {
	grid-column: span 12;
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 1rem;
	min-height: 0;
	padding: 1.25rem;
	background: rgba(255, 255, 255, .065);
	border: 1px solid rgba(255, 255, 255, .13);
	transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.floor-card:hover {
	background: rgba(255, 255, 255, .09);
	border-color: rgba(143, 210, 101, .55);
	transform: translateY(-3px);
}

.floor-card-featured {
	background: var(--ep-green);
	border-color: var(--ep-green);
}

.floor-card-featured:hover {
	background: var(--ep-green-dark);
	border-color: var(--ep-green-dark);
}

.floor-number {
	color: var(--ep-green);
	font-size: 2rem;
	font-weight: 300;
	letter-spacing: -.04em;
	line-height: 1;
}

.floor-card-featured .floor-number {
	color: var(--ep-white);
}

.floor-card span,
.floor-card strong {
	display: block;
}

.floor-card span {
	margin-bottom: .5rem;
	color: rgba(255, 255, 255, .6);
	font-size: .76rem;
	font-weight: 750;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.floor-card-featured span {
	color: rgba(255, 255, 255, .78);
}

.floor-card strong {
	margin-bottom: .7rem;
	color: var(--ep-white);
	font-size: 1.55rem;
	line-height: 1.1;
}

.floor-card p {
	margin: 0;
	color: rgba(255, 255, 255, .62);
}

.floor-card-featured p {
	color: rgba(255, 255, 255, .88);
}

.availability-note {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 1.25rem;
	margin-top: 2rem;
	padding: 1.25rem 0;
	border-top: 1px solid rgba(255, 255, 255, .15);
	border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.availability-note p {
	margin: 0;
}

.availability-note strong {
	color: var(--ep-white);
}

.fine-print {
	margin: 1rem 0 0;
	color: rgba(255, 255, 255, .43);
	font-size: .78rem;
}

.floor-total {
	padding-top: 38px;
	border-top: 1px solid rgba(20, 38, 48, .12);
}
.floor-total-header {
	max-width: 620px;
	margin-bottom: 25px;
}
.floor-total-header h3 {
	margin: 5px 0 8px;
	font-size: clamp(1.4rem, 2vw, 1.8rem);
}
.floor-total-header p {
	margin: 0;
	color: #6d777c;
}

.floors {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
}
.floors > div {
	padding: 18px;
	background: rgba(20, 38, 48, 1);
	border-radius: 4px;
	border: 1px solid rgba(255, 255, 255, .13);
}
.floors span {
	display: block;
	margin-bottom: 6px;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
}
.floors strong {
	display: block;
	font-size: 1.3rem;
	font-weight: 600;
	color: #fff;
	white-space: nowrap;
}

/* Ausstattung */
.features-section {
	background: var(--ep-warm);
}
.feature-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.feature-grid article {
	position: relative;
	min-height: 380px;
	padding: 30px 35px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	color: #fff;
	background: #26353c;
}
.feature-grid article::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 1;
	transition: transform .5s ease;
}
.feature-grid article::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
			to bottom,
			rgba(17, 31, 38, .2) 50%,
			rgba(17, 31, 38, .6) 65%,
			rgba(17, 31, 38, 1) 100%
	);
	pointer-events: none;
}
.feature-grid article > span,
.feature-grid article > h3,
.feature-grid article > p {
	position: relative;
	z-index: 2;
}
.feature-grid article > span {
	display: block;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .12em;
	color: rgba(255,255,255,.75);
}
.feature-grid article h3 {
	margin: 0 0 12px;
	font-size: 24px;
	line-height: 1.2;
	font-weight: 600;
	color: #fff;
}
.feature-grid article p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: rgba(255,255,255,.9);
}
.feature-grid article:hover::before {
	transform: scale(1.035);
}

@media (max-width: 1100px) {
	.feature-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.feature-grid {
		grid-template-columns: 1fr;
	}
	.feature-grid article {
		min-height: 320px;
		padding: 30px;
	}
}
.feature-klima::before { background-image: url(../../images/feature-klima.jpg) }
.feature-grundrisse::before { background-image: url(../../images/feature-grundrisse.jpg) }
.feature-verkabelung::before { background-image: url(../../images/feature-verkabelung.jpg) }
.feature-hohlraumboeden::before { background-image: url(../../images/feature-hohlraumboeden.jpg) }
.feature-barrierefrei::before { background-image: url(../../images/feature-barrierefrei.jpg) }
.feature-stellplaetze::before { background-image: url(../../images/feature-stellplaetze.jpg) }
.feature-fahrradfreundlich::before { background-image: url(../../images/feature-fahrradfreundlich.jpg) }
.feature-fitnessraum::before { background-image: url(../../images/feature-fitnessraum.jpg) }

/* Ecomotional */
.concept-section {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 520px;
	color: var(--ep-white);
	background: var(--ep-ink);
	overflow: hidden;
}

.concept-media {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(8, 27, 41, .98) 0%, rgba(8, 27, 41, .86) 45%, rgba(8, 27, 41, .2) 100%),
		url("../../images/ecomotional-offices.jpg") center / cover no-repeat;
}

.concept-inner {
	position: relative;
	z-index: 1;
}

.concept-inner h2 {
	max-width: 850px;
	margin: 0 0 1.7rem;
	font-size: clamp(3rem, 13vw, 4.5rem);
	font-weight: 780;
	letter-spacing: -.04em;
	line-height: .95;
}

.concept-inner h2 span {
	color: var(--ep-green);
}

.concept-inner > p:last-child {
	max-width: 620px;
	margin: 0;
	color: rgba(255, 255, 255, .78);
	font-size: 1.08rem;
}

/* Grundrisse */
.plans-section {
	background: var(--ep-white);
}

.plan-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

.plan-card {
	display: flex;
	flex-direction: column;
	margin: 0;
	background: var(--ep-warm);
	border: 1px solid var(--ep-line);
	overflow: hidden;
}

.plan-card a {
	display: block;
	overflow: hidden;
	background: var(--ep-white);
}

.plan-card img {
	width: 100%;
	height: 330px;
	padding: 1rem;
	object-fit: contain;
	transition: transform .25s ease;
}

.plan-card a:hover img {
	transform: scale(1.018);
}

.plan-card figcaption {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: .15rem;
	padding: 1.15rem 1.35rem;
	color: var(--ep-muted);
	font-size: .9rem;
}

.plan-card figcaption strong {
	color: var(--ep-ink);
	font-size: 1rem;
}

/* Standort */
.location-section {
	color: rgba(255, 255, 255, .76);
	background: var(--ep-ink);
}

.location-section .display-heading {
	color: var(--ep-white);
}

.location-lead {
	max-width: 510px;
	font-size: 1.08rem;
}

.location-section address {
	margin: 1.7rem 0;
	color: var(--ep-white);
	font-style: normal;
	font-weight: 650;
}

.travel-board {
	border-top: 1px solid rgba(255, 255, 255, .2);
}

.travel-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1rem;
	align-items: center;
	padding: 1.1rem .15rem;
	border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.travel-row-head {
	padding-top: .7rem;
	padding-bottom: .7rem;
	color: var(--ep-green);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.travel-row strong,
.travel-row small {
	display: block;
}

.travel-row strong,
.travel-row b {
	color: var(--ep-white);
}

.travel-row small {
	color: rgba(255, 255, 255, .48);
}

.travel-row b {
	font-size: 1rem;
	font-weight: 750;
}

/* Galerie */
.gallery-section {
	background: var(--ep-ink-dark);
}
.gallery-section img {
	height: 380px;
	object-fit: cover;
}
.gallery-section img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
.gallery-grid {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(3, 280px);
	gap: 4px;
}
.gallery-grid figure {
	margin: 0;
	overflow: hidden;
}
.gallery-grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.gallery-grid figure:hover img {
	transform: scale(1.025);
}
*/

/* Kontakt */
.contact-section {
	padding: 4.5rem 0;
	background: var(--ep-green-pale);
}

.contact-shell {
	display: grid;
	grid-template-columns: 1fr;
	box-shadow: var(--ep-shadow);
}

.contact-copy {
	padding: 2rem 1.25rem;
	color: rgba(255, 255, 255, .74);
	background: var(--ep-ink-dark);
}

.contact-copy h2 {
	margin: 0 0 1.5rem;
	color: var(--ep-white);
	font-size: clamp(2.4rem, 11vw, 3.8rem);
	font-weight: 760;
	letter-spacing: -.04em;
	line-height: 1;
}

.contact-direct {
	display: grid;
	gap: .2rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .15);
}

.contact-direct span {
	margin-bottom: .4rem;
	color: var(--ep-green);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.contact-link {
	color: var(--ep-white);
	font-size: 1.05rem;
	font-weight: 650;
	text-decoration: none;
}

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

.brochure-link {
	display: inline-flex;
	gap: .5rem;
	margin-top: 2rem;
	color: var(--ep-green);
	font-weight: 700;
	text-decoration: none;
}

.contact-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.1rem;
	align-content: start;
	padding: 2rem 1.25rem;
	background: var(--ep-white);
}

.form-row {
	display: grid;
	gap: .35rem;
}

.form-row label {
	color: var(--ep-ink);
	font-size: .84rem;
	font-weight: 700;
}

.form-row input,
.form-row select,
.form-row textarea {
	width: 100%;
	padding: .75rem .85rem;
	color: var(--ep-ink);
	background: var(--ep-warm);
	border: 1px solid transparent;
	border-radius: .2rem;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.form-row textarea {
	resize: vertical;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
	border-color: var(--ep-green);
	box-shadow: 0 0 0 3px rgba(98, 163, 61, .14);
}

.form-submit {
	margin-top: .4rem;
}

.form-submit > p {
	margin: .7rem 0 0;
	color: var(--ep-muted);
	font-size: .78rem;
}

.form-submit a {
	color: var(--ep-green-dark);
}

.form-status:empty {
	display: none;
}

.form-status {
	font-weight: 650;
}

/* Footer */
.site-footer {
	padding: 4rem 0 1.5rem;
	color: rgba(255, 255, 255, .62);
	background: #061522;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding-bottom: 3rem;
}

.footer-grid p {
	margin: .55rem 0 0;
}

.footer-grid strong {
	color: var(--ep-white);
	font-size: .85rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.footer-grid a {
	text-decoration: none;
}

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

.footer-brand {
	display: inline-flex;
	align-items: baseline;
	gap: .32rem;
	color: var(--ep-white);
	font-size: 1.3rem;
	font-weight: 750;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.footer-brand span {
	color: var(--ep-green);
}

.footer-brand small {
	margin-left: .25rem;
	color: rgba(255, 255, 255, .48);
	font-size: .6rem;
	font-weight: 500;
	letter-spacing: .22em;
}

.footer-bottom {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
	font-size: .82rem;
}

.footer-bottom p {
	margin: 0;
}

.footer-bottom nav {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: .55rem;
}

.footer-bottom a {
	text-decoration: none;
}

.footer-bottom a:hover {
	color: var(--ep-white);
}

/* Rechtliche Unterseiten */
.legal-hero {
	padding: calc(var(--ep-header) + 5rem) 0 4rem;
	background: var(--ep-green-pale);
}

.legal-hero h1,
.error-page h1 {
	margin: 0;
	color: var(--ep-ink);
	font-size: clamp(3rem, 14vw, 5rem);
	font-weight: 780;
	letter-spacing: -.04em;
	line-height: 1;
}

.legal-content {
	padding: 4.5rem 0;
}

.legal-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	justify-content: start;
}

.legal-grid aside {
	color: var(--ep-muted);
	font-size: .9rem;
}

.legal-grid aside a {
	color: var(--ep-green-dark);
	font-weight: 700;
	text-decoration: none;
}

.legal-review-note {
	margin-bottom: 2rem;
	padding: 1rem 1.2rem;
	color: #624b12;
	background: #fff4cf;
	border-left: 4px solid #d6a921;
	font-size: .92rem;
}

.error-page {
	min-height: 70vh;
	padding: calc(var(--ep-header) + 7rem) 0 7rem;
	background: var(--ep-warm);
}

.error-page .container-xl {
	max-width: 900px;
}

.error-page p:not(.eyebrow) {
	max-width: 600px;
	margin: 1.5rem 0 2rem;
	font-size: 1.2rem;
}

/* Kleine Tablets */
@media (min-width: 576px) {
	body {
		font-size: 1.05rem;
	}

	.hero-actions {
		align-items: center;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.hero-actions .button {
		width: auto;
	}

	.hero-facts div {
		padding: 1.15rem 1.25rem;
	}

	.hero-facts span {
		font-size: .82rem;
	}

	.floor-card,
	.floor-card-featured {
		grid-template-columns: 76px 1fr;
		gap: 1.2rem;
		padding: 1.5rem;
	}

	.floor-number {
		font-size: 2.35rem;
	}

	.contact-copy,
	.contact-form {
		padding: 2.5rem;
	}

	.footer-brand {
		font-size: 1.5rem;
	}
}

/* Tablets */
@media (min-width: 768px) {
	.section,
	.contact-section {
		padding: 6rem 0;
	}

	.display-heading {
		font-size: clamp(3rem, 7vw, 4.1rem);
	}

	.hero-section {
		min-height: 760px;
	}

	.hero-inner {
		padding-top: 14rem;
		padding-bottom: 13rem;
	}

	.hero-copy h1 {
		font-size: clamp(4.2rem, 10vw, 6rem);
	}

	.hero-lead {
		font-size: 1.2rem;
	}

	.hero-facts {
		grid-template-columns: repeat(4, 1fr);
	}

	.hero-facts div,
	.hero-facts div:nth-child(2n) {
		border-right: 1px solid rgba(255, 255, 255, .14);
		border-bottom: 0;
	}

	.hero-facts div:last-child {
		border-right: 0;
	}

	.hero-facts strong {
		font-size: 1.2rem;
	}

	.floor-card {
		grid-column: span 6;
		min-height: 180px;
	}

	.floor-card-featured {
		grid-column: span 12;
	}

	.availability-note {
		align-items: center;
		justify-content: space-between;
		flex-direction: row;
		gap: 2rem;
	}

	.floors {
		grid-template-columns: repeat(4, 1fr);
	}

	.concept-section {
		min-height: 580px;
	}

	.concept-inner h2 {
		font-size: clamp(4rem, 9vw, 5.5rem);
	}

	.plan-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.plan-card-wide {
		grid-column: span 2;
	}

	.plan-card figcaption {
		align-items: center;
		justify-content: space-between;
		flex-direction: row;
		gap: 1rem;
	}

	.gallery-grid {
		grid-template-columns: 1.55fr 1fr;
		grid-template-rows: repeat(2, minmax(260px, 37vw));
	}
	.gallery-large {
		grid-row: span 2;
	}

	.contact-form {
		grid-template-columns: repeat(2, 1fr);
	}

	.form-row-full {
		grid-column: span 2;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}

	.footer-grid > div:first-child {
		grid-column: span 2;
	}

	.footer-bottom,
	.footer-bottom nav {
		align-items: center;
		flex-direction: row;
	}

	.footer-bottom {
		justify-content: space-between;
	}

	.footer-bottom nav {
		gap: 1.2rem;
		align-self: end;
	}

	.legal-content {
		padding: 5rem 0 7rem;
	}

	.legal-grid {
		grid-template-columns: 180px minmax(0, 780px);
		gap: 3rem;
	}
}

/* Desktop */
@media (min-width: 992px) {
	:root {
		--ep-header: 82px;
	}

	.site-brand {
		width: 320px;
		height: 49px;
	}

	.menu-toggle {
		display: none;
	}

	.main-nav {
		position: static;
		display: flex;
		align-items: center;
		gap: clamp(1rem, 2vw, 2rem);
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		transform: none;
		visibility: visible;
		transition: none;
	}

	.main-nav a {
		padding: 0;
		border: 0;
	}

	.main-nav a:not(.nav-contact)::after {
		content: "";
		position: absolute;
		left: 0;
		right: 100%;
		bottom: -.35rem;
		height: 2px;
		background: var(--ep-green);
		transition: right .2s ease;
	}

	.main-nav a:not(.nav-contact):hover::after,
	.main-nav a:not(.nav-contact):focus-visible::after {
		right: 0;
	}

	.nav-contact {
		margin-top: 0;
		padding: .7rem 1.1rem !important;
	}

	.nav-contact:hover {
		transform: translateY(-1px);
	}

	.section {
		padding: 8rem 0;
	}

	.display-heading {
		font-size: clamp(3.4rem, 5vw, 4.5rem);
	}

	.lead-copy {
		font-size: 1.4rem;
	}

	.hero-section {
		align-items: center;
		min-height: 780px;
	}

	.hero-image {
		background-position: center 48%;
	}

	.hero-shade {
		background:
			linear-gradient(90deg, rgba(5, 20, 33, .9) 0%, rgba(7, 25, 39, .8) 35%, rgba(8, 27, 41, .2) 68%, rgba(8, 27, 41, .08) 100%),
			linear-gradient(0deg, rgba(6, 21, 34, .7) 0%, transparent 45%);
	}

	.hero-inner {
		padding-top: 5rem;
		padding-bottom: 10rem;
	}

	.hero-copy h1 {
		font-size: clamp(5.5rem, 8vw, 7.1rem);
	}

	.hero-lead {
		font-size: 1.35rem;
	}

	.hero-facts div {
		padding: 1.35rem 1.5rem;
	}

	.hero-facts strong {
		font-size: 1.5rem;
	}

	.hero-facts span {
		font-size: .84rem;
	}

	.image-frame-tall {
		margin-left: clamp(0rem, 4vw, 3rem);
	}

	.image-frame img {
		height: clamp(520px, 60vw, 700px);
	}

	.section-intro {
		grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
		gap: clamp(2rem, 8vw, 8rem);
		margin-bottom: 5.5rem;
	}

	.section-intro > p,
	.section-intro > div:last-child > p {
		font-size: 1.12rem;
	}

	.floor-card strong {
		font-size: 2.05rem;
	}

	.floors {
		grid-template-columns: repeat(7, 1fr);
	}

	.concept-section {
		min-height: 680px;
	}

	.concept-inner h2 {
		font-size: clamp(5rem, 7vw, 6.4rem);
	}

	.concept-inner > p:last-child,
	.location-lead {
		font-size: 1.15rem;
	}

	.plan-card img {
		height: 360px;
	}

	.plan-card-wide img {
		height: 620px;
	}

	.travel-row {
		gap: 1.5rem;
		padding: 1.25rem .3rem;
	}

	.travel-row b {
		font-size: 1.15rem;
	}

	.contact-section {
		padding: 8rem 0;
	}

	.contact-shell {
		grid-template-columns: .82fr 1.18fr;
	}

	.contact-copy,
	.contact-form {
		padding: 4.5rem;
	}

	.contact-copy h2 {
		font-size: 4.6rem;
	}

	.footer-grid {
		grid-template-columns: 1.5fr .75fr 1fr;
	}

	.footer-grid > div:first-child {
		grid-column: span 1;
	}

	.legal-grid {
		grid-template-columns: 250px minmax(0, 780px);
		gap: clamp(3rem, 8vw, 8rem);
	}
}

/* Große Desktops */
@media (min-width: 1200px) {
	.feature-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
