:root {
	--impressum-title: linear-gradient(90deg, #302e51, #5087d3);
	--impressum-name: #1e1e1e;
	--impressum-adress: rgba(0,0,0,0.75);
	--impressum-contact: rgba(0,0,0,0.4);
	--impressum-contact-link: #1487eb;
}

[data-theme="dark"] {
	--impressum-title: linear-gradient(90deg, #fff, #8a8a8a);
	--impressum-name: #fff;
	--impressum-adress: rgba(255,255,255,0.75);
	--impressum-contact: rgba(255,255,255,0.4);
	--impressum-contact-link: #9ad0ff;
}

/* Section */
.impressum-section {
	position: relative;
	padding: 4rem clamp(1rem, 5.4vw, 3rem);
}

/* Title */
.impressum-section h1 {
	display: inline;
	position: relative;
	font-size: calc(clamp(2.75rem, 10vw, 4rem) + var(--font-size-larger));
	letter-spacing: -0.03em;
	margin-bottom: 3rem;
	font-weight: 600;
	padding-left: 1.5rem;
	background: var(--impressum-title);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	margin-bottom: 5rem;
}

.impressum-section h1::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 5px;
	height: 90%;
	background: #43b2eb;
	border-radius: 8px 0px 0px 8px;
	transform-origin: left;
}

/* Content */
.impressum-content {
	margin-top: 2rem;
	padding: 0 1.5rem;
}

.impressum-content p {
	margin: 1.2rem 0;
	line-height: 1.6;
	font-size: calc(clamp(0.95rem, 3vw, 1.05rem) + var(--font-size-large));
}

/* Name emphasis */
.name {
	font-weight: 500;
	color: var(--impressum-name);
	letter-spacing: 0.02em;
}

/* Contact styling */
.contact span {
	display: block;
	font-size: calc(clamp(0.65rem, 2vw, 0.75rem) + var(--font-size-larger));
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--impressum-contact);
	margin-bottom: 0.3rem;
}

.contact a {
	color: var(--impressum-contact-link);
	text-decoration: none;
	position: relative;
}

.contact a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, var(--impressum-contact-link), transparent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.contact a:hover::after {
	transform: scaleX(1);
}