/* =========================
   Basis / Design Tokens
   ========================= */
:root {
	--font-base: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--color-text: #1f1f1f;
	--color-muted: #555;
	--color-border: #e0e0e0;
	--color-bg: #f7f9fc;
	--color-surface: #fff;
	--color-accent: #336699; /* an dein bestehendes Farbschema angelehnt */
	--radius: 14px;
	--shadow: 0 8px 24px rgba(0,0,0,.10);
	--maxw: 1320px;
}

/* Dark Mode (optional, automatisch) */
@media (prefers-color-scheme: dark) {
	:root {
		--color-text: #eaeaea;
		--color-muted: #bdbdbd;
		--color-border: #2a2a2a;
		--color-bg: #121417;
		--color-surface: #181b1f;
		--shadow: 0 8px 24px rgba(0,0,0,.35);
		--color-accent: #5da0ff;
	}
}

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

html {
	font-size: 16px;
}

body {
	margin: 0;
	font-family: var(--font-base);
	color: var(--color-text);
	background: var(--color-bg);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.container {
	max-width: var(--maxw);
	padding: 2rem 1.25rem;
	margin: 0 auto;
}

/* Sorgt dafür, dass Zielanker nicht vom oberen Rand überdeckt werden */
section:target,
[id]:target {
	scroll-margin-top: 80px; /* ggf. an Headerhöhe anpassen */
}

h1, h2, h3 {
	line-height: 1.25;
	color: var(--color-accent);
	margin: 0 0 .75rem 0;
	font-weight: 650;
}

h1 {
	font-size: clamp(1.8rem, 2.5vw + 1rem, 2.4rem);
}

h2 {
	font-size: clamp(1.3rem, 1.2vw + .9rem, 1.6rem);
	margin-bottom: 1.2rem;
}

h3 {
	font-size: 1.05rem;
	color: var(--color-text);
	margin-bottom: .6rem;
}

p {
	margin: 0 0 1.2rem 0;
    /*max-width: 68ch*/
}

/*.section p {
	max-width: 75ch;
}
*/
ul {
	margin: 0 0 1rem 0;
	padding-left: 1.2rem;
}

li {
	margin-bottom: .4rem;
}

	li::marker {
		color: var(--color-accent);
	}

/* Skip-Link für Screenreader / Tastatur */
.skip-link {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.skip-link:focus {
	position: static;
	width: auto;
	height: auto;
	padding: .5rem 1rem;
	background: var(--color-accent);
	color: #fff;
	border-radius: 6px;
}

/* Header / Hero */

.site-header {
	background: linear-gradient( 155deg, rgba(51,102,153,.28) 0%, rgba(51,102,153,.16) 28%, rgba(51,102,153,.08) 48%, rgba(51,102,153,.03) 62%, transparent 75% ), var(--color-surface);
	border-bottom: 2px solid var(--color-accent);
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.hero-copy h1 {
	margin-bottom: .25rem;
}

.subtitle {
	margin-bottom: .6rem;
}

.header-grid {
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	gap: 2.5rem;
	align-items: center;
	min-height: 360px; /* NEU */
}
.section:first-of-type {
	margin-top: 3rem;
}

.section {
	margin-top: 4rem;
	/*padding: 1.8rem 2rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);*/
}

.subtitle {
	color: var(--color-text);
	font-weight: 600;
	margin-top: .25rem;
}

.tagline {
	color: var(--color-muted);
	max-width: 60ch;
}

.hero-photo img {
	display: block;
	width: 100%;
	max-width: 240px;
	height: auto;
	border-radius: var(--radius);
	border: 6px solid #fff;
	box-shadow: 0 20px 40px rgba(0,0,0,.18), 0 6px 12px rgba(0,0,0,.12);
	filter: grayscale(100%);
	margin: 0 auto;
}

.cta {
	margin-top: 1rem;
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
}

.btn, .btn:visited {
	display: inline-block;
	padding: .65rem 1rem;
	border-radius: 10px;
	background: var(--color-accent);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	box-shadow: var(--shadow);
}

.btn-ghost,
.btn-ghost:visited {

	background: transparent;
	color: var(--color-accent);
	border: 2px solid var(--color-accent);
	box-shadow: none;
}

	.btn-ghost:hover,
	.btn-ghost:focus {
		background: var(--color-accent);
		color: #fff;
	}

/* Grids / Cards */

.card-grid {
	display: grid;
	gap: 1.2rem;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	margin-top: 1.4rem;
	/* grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: .75rem;*/
}

.card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 1.2rem 1.2rem 1rem;
	box-shadow: var(--shadow);
}

.card h3 {
	margin-bottom: .4rem;
}

.card p {
	margin: 0;
	color: var(--color-muted);
}


.grid.two {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem 1rem;
}

.contact-grid {
	display: grid;
	grid-template-columns: 180px 1fr;
	row-gap: .6rem;
	column-gap: 1rem;
	margin-top: .75rem;
}

.contact-label {
	font-weight: 600;
	color: var(--color-muted);
}

.contact-value a {
	font-weight: 600;
}

.contact-links {
	margin-top: 1rem;
}

#projects .card {
	margin-top: 1rem;
}

.card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 1rem 1rem .75rem;
	box-shadow: var(--shadow);
}

	.card header {
		margin-bottom: .5rem;
	}

	.card .meta {
		font-size: .9rem;
		color: var(--color-muted);
	}

	.card .stack {
		margin-top: .6rem;
		font-size: .9rem;
		color: var(--color-muted);
	}

	.card ul {
		margin-top: .4rem;
	}

	.card li {
		margin-bottom: .35rem;
		line-height: 1.55;
	}

.pill-list {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	list-style: none;
	padding: 0;
	margin: .5rem 0 0 0;
}

	.pill-list li {
		margin: 0;
		padding: .32rem .55rem;
		border-radius: 999px;
		background: rgba(51,102,153,.08);
		border: 1px solid rgba(51,102,153,.18);
		font-size: .9rem;
	}

.site-footer {
	margin-top: 3rem;
}


/* Kontakt */
.contact a {
	color: var(--color-accent);
	text-decoration: none;
}

.contact .links a {
	margin-right: .5rem;
}

/* Footer */
.site-footer {
	margin-top: 2rem;
	border-top: 1px solid var(--color-border);
	background: var(--color-surface);
}

	.site-footer .container {
		padding-top: 1rem;
		padding-bottom: 1rem;
	}

	.site-footer small {
		color: var(--color-muted);
	}

/* Responsiv */
@media (min-width: 1500px) {
	.header-grid {
		gap: 4rem;
	}
}
@media (max-width: 1200px) {
	.header-grid {
		grid-template-columns: 1fr 320px;
		gap: 3rem;
	}

	.hero-photo img {
		max-width: 260px;
	}
}
@media (max-width: 900px) {

	.header-grid {
		grid-template-columns: 1fr;
		text-align: left;
		gap: 2rem;
	}

	/* Hero-Text darf zentriert werden */
	.hero-copy {
		max-width: 620px;
	}

	/* Bild bekommt bewusst Platz */
	.hero-photo {
		display: flex;
		justify-content: left;
		margin-top: 1rem;
	}

		.hero-photo img {
			max-width: 260px;
		}

	/* CTA Buttons wirken besser zentriert */
	.cta {
		justify-content: flex-start;
	}
}

@media (max-width: 600px) {
	.grid.two {
		grid-template-columns: 1fr;
	}

	.card-grid {
		grid-template-columns: 1fr;
	}

	.container {
		padding: 1.5rem 1rem;
	}
}
