Files
2026-09-10 14:31:05 +02:00

344 lines
5.9 KiB
CSS

.hero {
background: var(--color-background-linear);
padding-block: var(--space-16);
position: relative;
overflow: hidden;
}
.inner {
max-width: var(--container-width);
margin-inline: auto;
padding-inline: var(--space-4);
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
gap: var(--space-2);
align-items: left;
}
.decoration {
position: absolute;
top: var(--space-8);
right: var(--space-8);
display: none;
grid-template-columns: repeat(6, 1fr);
grid-template-rows: repeat(3, 1fr);
gap: var(--space-3);
pointer-events: none;
z-index: 0;
}
.dot {
width: 14px;
height: 14px;
border-radius: var(--radius-full);
background-color: var(--color-accent);
opacity: 0.8;
}
.heading {
color: var(--color-heading);
max-width: 20ch;
display: flex;
flex-direction: column;
gap: var(--space-1);
text-align: left;
align-self: left;
position: relative;
z-index: 2;
}
.headingSub {
font-size: var(--font-size-subhead);
font-weight: var(--font-weight-medium);
letter-spacing: var(--letter-spacing-tight);
}
.content {
display: flex;
flex-direction: column;
gap: var(--space-6);
}
.imageWrapper {
display: none;
position: relative;
width: 100%;
margin-inline: auto;
aspect-ratio: 21 / 9;
flex-shrink: 0;
z-index: 1;
}
.imageWrapper::before {
content: "";
position: absolute;
left: 8%;
right: 8%;
bottom: -4px;
height: 28%;
background: color-mix(in srgb, var(--color-accent) 55%, transparent);
filter: blur(22px);
opacity: 0.45;
border-radius: 999px;
z-index: -1;
pointer-events: none;
}
.imageFrame {
position: relative;
width: 100%;
height: 100%;
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.08),
0 24px 60px rgba(0, 0, 0, 0.06);
}
.image {
object-fit: cover;
}
.body {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--space-6);
text-align: left;
}
.lead {
font-size: var(--font-size-base);
text-align: left;
width: min(100%, 48ch);
}
/* --- Challenges Section: 1:1 Optik von MaintenanceCleaningSection --- */
.challengesSection {
background: var(--color-background-linear);
padding-block: var(--space-16);
}
.challengesInner {
max-width: var(--container-width);
margin-inline: auto;
padding-inline: var(--space-4);
}
.challengesHeading {
max-width: 24ch;
padding: 0 0 8px 0;
color: var(--color-heading);
}
.challengesLead {
margin-top: var(--space-3);
font-size: var(--font-size-base);
max-width: 48ch;
}
.challengesList {
margin-top: var(--space-6);
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--space-5);
list-style: none;
padding: 0;
}
.challengesItem {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: var(--space-4);
background: var(--color-surface-muted, #e6ede9);
border-radius: 12px;
padding: var(--space-5);
}
.challengesIcon {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 24px;
height: 24px;
color: var(--color-accent);
}
.challengesText {
color: var(--font-heading-color);
font-size: var(--font-size-xs);
}
/* --- Related Services Section --- */
.servicesSection {
padding-block: var(--space-16);
}
.servicesInner {
max-width: var(--container-width);
margin-inline: auto;
padding-inline: var(--space-4);
}
.servicesHeading {
max-width: 32ch;
color: var(--color-heading);
}
.servicesLead {
margin-top: var(--space-3);
max-width: 60ch;
font-size: var(--font-size-base);
}
.servicesGrid {
margin-top: var(--space-8);
display: grid;
grid-template-columns: 1fr;
gap: var(--space-6);
}
.serviceCard {
display: flex;
flex-direction: column;
border-radius: var(--radius-lg);
overflow: hidden;
background: #fff;
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.06),
0 2px 8px rgba(0, 0, 0, 0.04);
text-decoration: none;
color: inherit;
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.serviceCard:hover {
transform: translateY(-4px);
box-shadow:
0 16px 40px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.06);
}
.serviceCardImageWrapper {
position: relative;
width: 100%;
aspect-ratio: 4 / 3;
}
.serviceCardImage {
object-fit: cover;
}
.serviceCardBody {
padding: var(--space-4);
display: flex;
flex-direction: column;
gap: var(--space-2);
}
.serviceCardTitle {
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
color: var(--color-heading);
}
.serviceCardLink {
display: inline-flex;
align-items: center;
gap: var(--space-1);
font-size: var(--font-size-small, 0.875rem);
font-weight: var(--font-weight-medium);
color: var(--color-accent);
}
/* Tablet: 768px */
@media (min-width: 768px) {
.content {
flex-direction: row;
align-items: flex-start;
gap: var(--space-8);
}
.inner {
align-items: flex-start;
gap: var(--space-8);
}
.heading {
text-align: left;
align-self: flex-start;
}
.body {
align-items: flex-start;
text-align: left;
}
.lead {
text-align: left;
margin-inline: 0;
}
.decoration {
display: grid;
top: -24px;
}
.imageWrapper {
display: block;
width: 260px;
aspect-ratio: 4 / 3;
}
.dot {
width: 24px;
height: 24px;
}
.challengesSection {
padding-block: var(--space-24);
}
.challengesHeading,
.challengesLead {
text-align: left;
}
.challengesList {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.servicesSection {
padding-block: var(--space-24);
}
.servicesGrid {
grid-template-columns: repeat(3, 1fr);
}
}
/* Desktop: 1024px */
@media (min-width: 1024px) {
.hero {
padding-block: var(--space-36);
}
.decoration {
top: -42px;
}
.challengesInner {
padding-inline: var(--space-6);
}
.challengesList {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}