body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}.aspect--9\:16,.responsive.ratio-916{padding-bottom:177.7777%}.aspect--1\:1,.responsive.ratio-11{padding-bottom:100%}
/* ==========================================================================
   European Exchange – Wartungsseite / Landing Page
   Umsetzung nach Figma "EPDE" › EA Under Maintenance (Node 5707:420)
   ========================================================================== */


/* --------------------------------------------------------------------------
   Fonts (Pfade relativ zu dieser CSS-Datei)
   -------------------------------------------------------------------------- */

@font-face {
	font-display: swap;
	font-family: 'Roboto Mono';
	font-style: normal;
	font-weight: 400;
	src: url('../../files/european-exchange.org/css/roboto-mono-v31-latin-regular.woff2') format('woff2');
}

@font-face {
	font-display: swap;
	font-family: 'Roboto Mono';
	font-style: normal;
	font-weight: 500;
	src: url('../../files/european-exchange.org/css/roboto-mono-v31-latin-500.woff2') format('woff2');
}

@font-face {
	font-display: swap;
	font-family: 'Roboto Mono';
	font-style: normal;
	font-weight: 700;
	src: url('../../files/european-exchange.org/css/roboto-mono-v31-latin-700.woff2') format('woff2');
}


/* --------------------------------------------------------------------------
   Tokens (Werte aus Figma)
   -------------------------------------------------------------------------- */

:root {
	--ea-green: #afda00;      /* Linien, Hervorhebungen */
	--ea-text: #404040;       /* Fließtext & Headlines */
	--ea-border: #d9d9d9;     /* Kachelrahmen, Pfeil */
	--ea-bg: #ffffff;

	--ea-font: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

	--ea-container: 1160px;   /* 2 × 555px Kacheln + Gap */
	--ea-gutter: 30px;        /* Seitenrand mobil/tablet */
	--ea-gap: 48px;           /* Spaltenabstand */

	--ea-fs-h1: 50px;
	--ea-fs-h2: 30px;
	--ea-fs-text: 22px;
}


/* --------------------------------------------------------------------------
   Basis
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--ea-bg);
	color: var(--ea-text);
	font-family: var(--ea-font);
	font-weight: 400;
	font-size: var(--ea-fs-text);
	line-height: 1;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: inherit;
}

p {
	margin: 0 0 1em;
}

p:last-child {
	margin-bottom: 0;
}

h1,
h2 {
	margin: 0;
	font-weight: 500;
	text-transform: uppercase;
	line-height: 1;
	color: var(--ea-text);
}

h1 {
	font-size: var(--ea-fs-h1);
}

h2 {
	font-size: var(--ea-fs-h2);
}

.invisible {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}


/* --------------------------------------------------------------------------
   Layout-Container
   Contao: #header, #container, #footer bekommen den zentrierten Inhalt
   -------------------------------------------------------------------------- */

#header .inside,
#main .inside,
#footer .inside {
	max-width: calc(var(--ea-container) + 2 * var(--ea-gutter));
	margin: 0 auto;
	padding: 0 var(--ea-gutter);
}


/* --------------------------------------------------------------------------
   Header: Logo zentriert, grüne Linie darunter
   -------------------------------------------------------------------------- */

#header {
	padding: 94px 0 40px;
	border-bottom: 5px solid var(--ea-green);
}

.ea-logo {
	display: flex;
	justify-content: center;
	margin: 0;
}

.ea-logo img {
	width: 405px;
	height: auto;
}


/* --------------------------------------------------------------------------
   Artikel-Grundraster: 2 Spalten
   Klasse im Artikel (Contao: Experten-Einstellungen › CSS-Klasse)
   -------------------------------------------------------------------------- */

.ea-intro,
.ea-contact {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--ea-gap);
}

/* Contao 4.13 hat .inside im Artikel nicht, Contao 5 auch nicht –
   die Content-Elemente sind direkte Kinder des Artikels. */
.ea-intro > *,
.ea-contact > * {
	margin: 0;
	min-width: 0;
}


/* ---- Intro ---- */

.ea-intro {
	align-items: end;
	padding-top: 61px;
}

.ea-intro h1 {
	max-width: 480px;
}

.ea-intro p {
	max-width: 450px;
}

.ea-intro strong,
.ea-highlight {
	color: var(--ea-green);
	font-weight: 700;
}


/* --------------------------------------------------------------------------
   Programm-Kacheln
   -------------------------------------------------------------------------- */

.ea-programmes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 38px var(--ea-gap);
	padding: 56px 0 70px;
}

.ea-card {
	position: relative;
	display: grid;
	grid-template-columns: 160px 1fr;
	align-items: center;
	column-gap: 28px;
	min-height: 135px;
	padding: 20px 50px 20px 40px;
	border: 1px solid var(--ea-border);
	border-radius: 6px;
	color: var(--ea-text);
	font-weight: 500;
	text-decoration: none;
	transition: border-color .25s ease, box-shadow .25s ease;
}

/* Pfeil oben rechts */
.ea-card::after {
	content: "";
	position: absolute;
	top: 14px;
	right: 16px;
	width: 20px;
	height: 20px;
	background-color: var(--ea-border);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M2 18 18 2M7 2h11v11'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M2 18 18 2M7 2h11v11'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: background-color .25s ease, transform .25s ease;
}

.ea-card:hover,
.ea-card:focus-visible {
	border-color: var(--ea-green);
	outline: none;
}

.ea-card:hover::after,
.ea-card:focus-visible::after {
	background-color: var(--ea-green);
	transform: translate(2px, -2px);
}

.ea-card__logo {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.ea-card__logo img {
	max-height: 90px;
	width: auto;
}

.ea-card__title {
	font-size: var(--ea-fs-text);
	line-height: 1;
}


/* --------------------------------------------------------------------------
   Kontakt
   -------------------------------------------------------------------------- */

.ea-contact {
	position: relative;
	align-items: start;
	padding: 40px 0 70px;
}

/* Grüne Linie über volle Fensterbreite wie im Design */

.ea-contact::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	height: 5px;
	background: var(--ea-green);
	transform: translateX(-50%);
}

.ea-contact a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ea-contact a:hover {
	color: var(--ea-green);
}

/* --------------------------------------------------------------------------
   Fußzeile: Impressum / Datenschutz
   Contao: Modul "Eigene Navigation" in der Fußzeile, CSS-Klasse nav--footer
   -------------------------------------------------------------------------- */

#footer {
	padding: 24px 0 32px;
	border-top: 1px solid var(--ea-border);
	font-size: 16px;
}

.nav--footer ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav--footer li {
	margin: 0;
}

.nav--footer a,
.nav--footer strong {
	display: inline-block;
	padding: 4px 0;
	color: var(--ea-text);
	font-weight: 400;
	text-decoration: none;
	transition: color .25s ease;
}

.nav--footer a:hover,
.nav--footer a:focus-visible,
.nav--footer strong.active {
	color: var(--ea-green);
}

/* Horizontales Scrollen durch die 100vw-Linie verhindern */
body {
	overflow-x: hidden;
}


/* --------------------------------------------------------------------------
   Textseiten (Impressum, Datenschutz)
   Artikel mit CSS-Klasse ea-text
   -------------------------------------------------------------------------- */

.ea-text {
	max-width: 820px;
	padding: 61px 0 70px;
	font-size: 18px;
	line-height: 1.5;
}

.ea-text h1 {
	margin-bottom: 40px;
}

.ea-text h2,
.ea-text h3 {
	margin: 40px 0 12px;
	font-size: 22px;
	line-height: 1.2;
}

.ea-text a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ea-text a:hover {
	color: var(--ea-green);
}


/* --------------------------------------------------------------------------
   Tablet
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {

	:root {
		--ea-fs-h1: 40px;
		--ea-fs-h2: 26px;
		--ea-fs-text: 18px;
		--ea-gap: 30px;
	}

	.ea-card {
		grid-template-columns: 110px 1fr;
		column-gap: 20px;
		padding: 20px 44px 20px 24px;
	}

	.ea-card__logo img {
		max-height: 70px;
	}
}


/* --------------------------------------------------------------------------
   Mobil
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

	:root {
		--ea-fs-h1: 32px;
		--ea-fs-h2: 22px;
		--ea-fs-text: 16px;
		--ea-gutter: 20px;
	}

	body {
		line-height: 1.2;
		hyphens: auto;
		overflow-wrap: break-word;
	}

	#header {
		padding: 40px 0 28px;
	}

	.ea-logo img {
		width: 240px;
	}

	.ea-intro,
	.ea-contact,
	.ea-programmes {
		grid-template-columns: 1fr;
	}

	.ea-intro {
		row-gap: 24px;
		padding-top: 40px;
	}

	.ea-programmes {
		gap: 16px;
		padding: 40px 0 50px;
	}

	.ea-card {
		min-height: 110px;
	}

	.ea-contact {
		row-gap: 24px;
		padding: 32px 0 50px;
	}

	.ea-text {
		padding: 40px 0 50px;
		font-size: 16px;
	}

	#footer {
		font-size: 14px;
	}

	.nav--footer ul {
		gap: 8px 24px;
	}
}

