/* ==========================================================================
   Bento-Grid-System — asymmetrische Kacheln, 3D-Tilt, Glass-Akzente
   ========================================================================== */

.section-head {
	max-width: 640px;
	margin-bottom: 40px;
}
.section-head--center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.section-head h2 {
	font-size: clamp(1.8rem, 3.4vw, 2.6rem);
}
.section-sub {
	color: var(--color-ink-soft);
	font-size: 1.05rem;
}

.bento-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: minmax(180px, auto);
	gap: var(--grid-gap);
}

.bento-cell {
	position: relative;
	grid-column: span 2;
	background: var(--color-surface);
	border-radius: var(--card-radius);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}
.bento-cell:hover {
	transform: scale(var(--hover-scale)) translateY(-2px);
	box-shadow: var(--shadow-lg);
}
a.bento-cell:hover .bento-cell__link {
	gap: 10px;
}

.bento-cell--sm { grid-column: span 1; }
.bento-cell--md { grid-column: span 2; }
.bento-cell--lg { grid-column: span 2; grid-row: span 2; }
.bento-cell--xl { grid-column: span 4; }

.bento-cell--dark {
	background: var(--color-dark);
	color: var(--color-dark-ink);
}
.bento-cell--dark .eyebrow { color: var(--color-accent-soft); }
.bento-cell--dark .bento-cell__icon { background: rgba(243, 240, 234, 0.1); color: var(--color-accent-soft); }
.bento-cell--dark p { color: rgba(243, 240, 234, 0.75); }

.bento-cell__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.bento-cell__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}
.bento-cell:hover .bento-cell__media img {
	transform: scale(1.06);
}
.bento-cell--lg .bento-cell__media { aspect-ratio: auto; flex: 1; }

.bento-cell__body {
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.bento-cell--lg .bento-cell__body { margin-top: auto; }

.bento-cell__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--color-accent-soft);
	color: var(--color-accent);
	margin-bottom: 12px;
}
.bento-cell__icon svg { max-width: 24px; max-height: 24px; }

.bento-cell h3 {
	font-size: 1.2rem;
	margin-bottom: 6px;
}
.bento-cell p {
	color: var(--color-ink-soft);
	font-size: 0.95rem;
	margin-bottom: 12px;
}
.bento-cell__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--color-accent);
	transition: gap var(--dur-fast) var(--ease-out);
}
.bento-cell--dark .bento-cell__link { color: var(--color-accent-soft); }

/* Media-left Variante (Über-uns-Vorschau) */
.bento-grid--about .bento-cell--media-left {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
}
.bento-grid--about .bento-cell__media { aspect-ratio: auto; }
.bento-grid--about .bento-cell__body { justify-content: center; padding: 40px; }
.bento-grid--about .bento-cell__body p { color: var(--color-ink-soft); }

/* Kontakt-Vorschau + Kontaktseite */
.bento-grid--contact-preview { grid-template-columns: repeat(4, 1fr); }
.bento-grid--contact-preview .bento-cell--sm { grid-row: span 1; }

.bento-grid--kontakt {
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: minmax(120px, auto);
}
.bento-grid--kontakt .bento-cell--lg { grid-row: span 1; min-height: 320px; }
.bento-cell--map { grid-column: span 2; min-height: 320px; padding: 0; }
.bento-cell--map iframe { width: 100%; height: 100%; border: 0; min-height: 320px; }
.bento-cell--form { grid-column: span 4; padding: 0; }
.bento-cell--form .bento-cell__body { padding: 40px; }

.contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 16px;
}
.contact-list li svg { flex-shrink: 0; margin-top: 2px; }
.bento-cell--dark .contact-list li { color: rgba(243, 240, 234, 0.85); }

/* Team */
.bento-grid--team { grid-template-columns: repeat(4, 1fr); }
.bento-cell--team { grid-column: span 2; }
.bento-grid--team:has(.bento-cell--team:only-child) { grid-template-columns: 1fr; justify-items: center; }
.bento-grid--team:has(.bento-cell--team:only-child) .bento-cell--team { grid-column: auto; width: 100%; max-width: 420px; }
.team-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-accent);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.1rem;
	margin-bottom: 14px;
}
.team-role {
	color: var(--color-accent);
	font-weight: 600;
	font-size: 0.9rem;
	margin-bottom: 10px;
}
.team-bio p { font-size: 0.92rem; }

/* CTA-Band */
.cta-band {
	background: var(--color-dark);
	color: var(--color-dark-ink);
	border-radius: var(--card-radius);
	padding: clamp(32px, 5vw, 56px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	box-shadow: var(--shadow-md);
}
.cta-band h2 { font-size: clamp(1.5rem, 3vw, 2rem); max-width: 20ch; }
.cta-band p { color: rgba(243, 240, 234, 0.75); max-width: 42ch; }
.cta-band__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Stats-Band */
.stats-band {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--grid-gap);
	background: var(--color-dark);
	border-radius: var(--card-radius);
	padding: clamp(32px, 5vw, 48px);
	box-shadow: var(--shadow-md);
}
.stats-band__item { text-align: center; color: var(--color-dark-ink); }
.stats-band__number {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(2.2rem, 5vw, 3.2rem);
	font-weight: 600;
	color: var(--color-accent-soft);
}
.stats-band__label {
	display: block;
	margin-top: 8px;
	color: rgba(243, 240, 234, 0.75);
	font-size: 0.9rem;
}

/* Service-Detail Querverweise */
.service-nav-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--grid-gap);
}
.service-nav-card {
	background: var(--color-surface);
	border-radius: var(--card-radius-sm);
	padding: 20px;
	display: flex;
	align-items: center;
	gap: 12px;
	box-shadow: var(--shadow-sm);
	transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
	font-weight: 600;
}
.service-nav-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}
.service-nav-card svg:last-child { margin-left: auto; color: var(--color-accent); }
