/**
 * BECKDESIGN Unterseiten im Stil der Startseite (Redesign 2026).
 *
 * Wird nur auf Seiten geladen, deren Elementor-Inhalt den Wrapper-Container .bd-page enthält
 * (functions.php: bd_page_enqueue_assets). Jede Regel ist auf .bd-page begrenzt.
 * Gestaltungsregeln, Tokens und Komponenten stammen aus der Startseite (home.css, /CLAUDE/styles.css).
 */

/* ---------- Tokens ---------- */
.bd-page {
	--bd-white: #FFFFFF;
	--bd-paper: #F4F4F8;
	--bd-ink: #101010;
	--bd-black: #000000;
	--bd-text: #1E1E20;
	--bd-text-inv: #F4F4F6;
	--bd-muted: #5C5C63;
	--bd-muted-inv: #9A9AA2;
	--bd-orange: #EF572D;
	--bd-orange-text: #C9411A;
	--bd-line: rgba(30, 30, 32, 0.14);
	--bd-line-inv: rgba(244, 244, 246, 0.16);

	--bd-fs-display: clamp(2.5rem, 0.2rem + 10.6vw, 11rem);
	--bd-fs-hero: clamp(2.5rem, 0.6rem + 7.4vw, 8rem);
	--bd-fs-h2: clamp(2.375rem, 1rem + 4.6vw, 5.5rem);
	--bd-fs-h3: clamp(1.5rem, 1.1rem + 1.3vw, 2.5rem);
	--bd-fs-lead: clamp(1.25rem, 1.05rem + 0.6vw, 1.625rem);
	--bd-fs-body: 1.125rem;
	--bd-fs-small: 0.875rem;

	--bd-m: max(clamp(1.25rem, 3vw, 3rem), calc((100vw - 1320px) / 2));
	--bd-g: clamp(1rem, 1.6vw, 1.5rem);
	--bd-sec: clamp(6rem, 11vw, 12rem);
	--bd-bar: 4.5rem;

	--bd-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--bd-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='24 362 385 311'%3E%3Cpath d='M24.3,362.07 L135.68,518.4 L25.11,673.11 L131.22,673.11 L239.76,517.59 L131.22,362.07 Z M193.59,362.07 L304.97,518.4 L194.4,673.11 L300.51,673.11 L409.05,517.59 L300.51,362.07 Z'/%3E%3C/svg%3E");
}

/* ---------- Basis: Kit-, Theme- und Elementor-Vorgaben nur innerhalb der Unterseite neutralisieren ---------- */
.bd-page.e-con {
	background: var(--bd-white);
	color: var(--bd-text);
	font-family: "Beck Sans", system-ui, sans-serif;
	font-weight: 300;
	font-size: var(--bd-fs-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.bd-page.e-con,
.bd-page .e-con {
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
	--widgets-spacing: 0px 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--container-max-width: none;
}
.bd-page *, .bd-page *::before, .bd-page *::after { box-sizing: border-box; }
.bd-page .elementor-widget:not(:last-child) { margin-block-end: 0; }
.bd-page.e-con :is(h1, h2, h3, p, ul, ol, figure, blockquote) { margin: 0; }
.bd-page.e-con :is(h1, h2, h3) { color: inherit; font-family: inherit; }
.bd-page.e-con :is(ul, ol) { padding: 0; list-style: none; }
.bd-page.e-con :is(img, video) { display: block; max-width: 100%; }
.bd-page.e-con a { color: inherit; font-family: inherit; text-decoration: none; }
.bd-page.e-con :is(strong, b) { font-weight: 700; }
.bd-page .elementor-widget-heading .elementor-heading-title { margin: 0; padding: 0; font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; text-transform: none; text-wrap: balance; }
.bd-page .elementor-widget-text-editor { font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; }
.bd-page .elementor-widget-text-editor p + p { margin-top: 1em; }
.bd-page p { text-wrap: pretty; }
.bd-page ::selection { background: var(--bd-orange); color: var(--bd-black); }
.bd-page :focus-visible { outline: 2px solid var(--bd-orange); outline-offset: 3px; }
/* Links im Fließtext: unterstrichen, orange bei Berührung */
.bd-page.e-con .elementor-widget-text-editor p a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; transition: color 180ms ease; }
.bd-page.e-con .elementor-widget-text-editor p a:hover { color: var(--bd-orange-text); }
.bd-page.e-con .bd-section--ink .elementor-widget-text-editor p a:hover { color: var(--bd-orange); }

/* Raster */
.bd-page .e-con.bd-frame { width: 100%; padding-inline: var(--bd-m); }
.bd-page .e-con.bd-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--bd-g); }
.bd-page .bd-grid > * { grid-column: 1 / -1; width: auto; max-width: none; }

/* Typografie (Klasse sitzt am Widget, der Titel erbt) */
.bd-page .bd-hero-h { font-size: var(--bd-fs-hero); line-height: 0.95; letter-spacing: -0.045em; font-weight: 700; }
.bd-page .bd-display { font-size: var(--bd-fs-display); line-height: 0.92; letter-spacing: -0.045em; font-weight: 700; }
.bd-page .bd-h2 { font-size: var(--bd-fs-h2); line-height: 1; letter-spacing: -0.035em; font-weight: 700; }
.bd-page .bd-h3 { font-size: var(--bd-fs-h3); line-height: 1.08; letter-spacing: -0.025em; font-weight: 700; }
.bd-page .bd-lead { font-size: var(--bd-fs-lead); line-height: 1.38; letter-spacing: -0.01em; }
.bd-page .bd-small { font-size: var(--bd-fs-small); line-height: 1.45; }
/* Light-Anteil in Überschriften (bisheriger Inhalt: <span style="font-weight: 300">) */
.bd-page .bd-h2 span[style*="300"] { font-weight: 300; }

/* ---------- Buttons und Links (Elementor-Button-Widget) ---------- */
.bd-page .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; fill: currentColor; font: inherit; font-weight: 700; font-size: 1rem; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.bd-page .elementor-widget-button .elementor-button-content-wrapper { gap: 0; }
.bd-page .bd-btn .elementor-button { justify-content: center; min-height: 3.25rem; padding: 0 1.5rem; background: var(--bd-orange); color: var(--bd-black); white-space: nowrap; transition: background-color 180ms ease, color 180ms ease, transform 140ms var(--bd-ease); }
.bd-page .bd-btn .elementor-button:hover,
.bd-page .bd-btn .elementor-button:focus-visible { background: var(--bd-text); color: var(--bd-white); }
.bd-page .bd-btn .elementor-button:active { transform: scale(0.97); }
.bd-page .bd-more .elementor-button { gap: 0.6rem; transition: color 180ms ease; }
.bd-page .bd-more .elementor-button::after { content: ""; flex: none; width: 0.85em; height: 0.7em; background: currentColor; -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; transition: transform 240ms var(--bd-ease); }
.bd-page .bd-more .elementor-button:hover { color: var(--bd-orange-text); }
.bd-page .bd-more .elementor-button:hover::after { transform: translateX(4px); }

/* ---------- Sektionen ---------- */
.bd-page .e-con.bd-section { padding-block: var(--bd-sec); }
.bd-page .e-con.bd-section--paper { background: var(--bd-paper); }
.bd-page .e-con.bd-section--ink { background: var(--bd-ink); color: var(--bd-text-inv); --bd-line: var(--bd-line-inv); --bd-muted: var(--bd-muted-inv); }
.bd-page .e-con.bd-sec-head { row-gap: 1.5rem; align-items: start; }
.bd-page .e-con.bd-sec-aside { display: grid; gap: 1.25rem; justify-items: start; }
.bd-page .bd-sec-aside p { max-width: 46ch; }

/* ---------- Einstieg: Breadcrumb, Headline, Film ---------- */
.bd-page .e-con.bd-hero { padding-top: calc(var(--bd-bar) + clamp(2.5rem, 7vh, 5rem)); padding-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.bd-page .bd-crumbs { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); font-size: var(--bd-fs-small); color: var(--bd-muted); }
.bd-page .bd-crumbs a { transition: color 180ms ease; }
.bd-page .bd-crumbs a:hover { color: var(--bd-orange-text); }
/* Light-Anteil der Headline; Variante --sub: der Light-Teil ist ein Untertitel */
.bd-page .bd-hero-h .elementor-heading-title > span { font-weight: 300; }
.bd-page .bd-hero-h .elementor-heading-title::after { content: "."; color: var(--bd-orange); }
.bd-page .bd-hero-h--sub .elementor-heading-title > span { display: block; margin-top: 0.35em; font-size: var(--bd-fs-h3); line-height: 1.15; letter-spacing: -0.02em; max-width: 26ch; }
.bd-page .bd-hero-h--sub .elementor-heading-title > br { display: none; }
.bd-page .bd-hero-h--sub .elementor-heading-title::after { content: none; }

/* Film öffnet sich vom Satzspiegel auf volle Breite (bd-page.js) */
.bd-page .e-con.bd-film { overflow: hidden; background: var(--bd-black); }
.bd-page .bd-film .elementor-wrapper { aspect-ratio: 2.39 / 1; }
.bd-page .bd-film :is(.elementor-widget-container, .elementor-wrapper) { height: 100%; }
.bd-page .bd-film video { width: 100%; height: 100%; object-fit: cover; background: var(--bd-black); }

/* Zweispaltiger Text */
.bd-page .e-con.bd-cols { row-gap: 2rem; align-items: start; }
.bd-page .bd-cols .bd-lead p { max-width: 36ch; }
.bd-page .bd-cols > :not(.bd-lead) p { max-width: 46ch; }

/* Zitat mit Porträt */
.bd-page .e-con.bd-quote { row-gap: 2.5rem; align-items: center; }
.bd-page .bd-quote-img { overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-quote-img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.bd-page .bd-quote-text blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
.bd-page .bd-quote-text blockquote p { position: relative; font-size: var(--bd-fs-h3); line-height: 1.15; letter-spacing: -0.025em; font-weight: 700; text-wrap: balance; }
.bd-page .bd-quote-text blockquote p::before { content: "„"; display: block; margin-bottom: 0.1em; font-size: 2.6em; line-height: 0.6; color: var(--bd-orange); }
.bd-page .bd-quote-text blockquote footer { margin-top: 1.5rem; font-size: 1rem; color: var(--bd-muted); }

/* Wechselseitige Paare aus Überschrift und Text */
.bd-page .e-con.bd-pair { row-gap: 2rem; align-items: start; }
.bd-page .e-con.bd-pair + .bd-pair { margin-top: clamp(4rem, 8vw, 8rem); padding-top: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--bd-line); }
.bd-page .bd-pair p { max-width: 46ch; }

/* Abschluss: Kontakt */
.bd-page .e-con.bd-cta { row-gap: 2rem; align-items: end; }
.bd-page .bd-cta .bd-display .elementor-heading-title { white-space: normal; }
.bd-page .bd-cta-text p { max-width: 40ch; }

/* ---------- Breakpoints ---------- */
@media (min-width: 64em) {
	.bd-page .bd-sec-head > .bd-h2 { grid-column: 1 / span 7; }
	.bd-page .bd-sec-head > .bd-sec-aside { grid-column: 9 / -1; padding-top: 0.6rem; }
	.bd-page .bd-cols > :nth-child(1) { grid-column: 1 / span 7; }
	.bd-page .bd-cols > :nth-child(2) { grid-column: 9 / -1; padding-top: 0.35rem; }
	.bd-page .bd-quote > .bd-quote-img { grid-column: 1 / span 5; }
	.bd-page .bd-quote > .bd-quote-text { grid-column: 7 / -1; }
	.bd-page .bd-quote--flip > .bd-quote-img { grid-column: 8 / -1; grid-row: 1; }
	.bd-page .bd-quote--flip > .bd-quote-text { grid-column: 1 / span 6; grid-row: 1; }
	.bd-page .bd-pair > .bd-h2 { grid-column: 1 / span 6; }
	.bd-page .bd-pair > :not(.bd-h2) { grid-column: 8 / -1; padding-top: 0.6rem; }
	.bd-page .bd-pair--flip > .bd-h2 { grid-column: 7 / -1; grid-row: 1; text-align: right; }
	.bd-page .bd-pair--flip > :not(.bd-h2) { grid-column: 1 / span 5; grid-row: 1; }
	.bd-page .bd-cta > .bd-display { grid-column: 1 / span 8; }
	.bd-page .bd-cta > .bd-cta-side { grid-column: 9 / -1; }
}
@media (min-width: 48em) and (max-width: 63.99em) {
	.bd-page .bd-quote > .bd-quote-img { grid-column: 1 / span 6; }
	.bd-page .bd-quote > .bd-quote-text { grid-column: 7 / -1; }
	.bd-page .bd-quote--flip > .bd-quote-img { grid-column: 7 / -1; grid-row: 1; }
	.bd-page .bd-quote--flip > .bd-quote-text { grid-column: 1 / span 6; grid-row: 1; }
}
/* Handy: Überschrift steht immer vor ihrem Text */
@media (max-width: 63.99em) {
	.bd-page .bd-pair--flip > .bd-h2 { order: -1; }
}
.bd-page .e-con.bd-cta-side { display: grid; gap: 1.5rem; justify-items: start; }

/* ---------- Bewegung (ohne JS und im Elementor-Editor bleibt alles sichtbar) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.bd-js .bd-page .bd-hero-h .elementor-heading-title { animation: bd-rise 1100ms var(--bd-ease) both; }
	.bd-js .bd-page .bd-reveal { opacity: 0; transform: translateY(28px); transition: opacity 800ms var(--bd-ease), transform 1000ms var(--bd-ease); transition-delay: calc(var(--i, 0) * 70ms); }
	.bd-js .bd-page .bd-reveal.is-in { opacity: 1; transform: none; }
	.bd-js .bd-page .bd-quote-img.bd-reveal { opacity: 1; transform: none; clip-path: inset(100% 0 0 0); transition: clip-path 1100ms cubic-bezier(0.76, 0, 0.24, 1); }
	.bd-js .bd-page .bd-quote-img.bd-reveal img { transform: scale(1.15); transition: transform 1600ms var(--bd-ease); }
	.bd-js .bd-page .bd-quote-img.bd-reveal.is-in { clip-path: inset(0); }
	.bd-js .bd-page .bd-quote-img.bd-reveal.is-in img { transform: none; }
}
@keyframes bd-rise { from { opacity: 0; transform: translateY(0.35em); } }
@media (prefers-reduced-motion: reduce) {
	.bd-page *, .bd-page *::before, .bd-page *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
}

/* ---------- Filter-Chips (Team und Projekt-Index) ---------- */
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; padding: 0 1rem; border: 0; border-radius: 0; background: transparent; box-shadow: inset 0 0 0 1px var(--bd-line); color: var(--bd-text); font: inherit; font-size: 1rem; font-weight: 300; cursor: pointer; transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease; }
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button:hover { box-shadow: inset 0 0 0 1px var(--bd-text); background: transparent; color: var(--bd-text); }
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button[aria-pressed="true"] { background: var(--bd-text); color: var(--bd-white); box-shadow: none; font-weight: 700; }
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button span { font-size: var(--bd-fs-small); color: var(--bd-muted); font-weight: 300; }
.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button[aria-pressed="true"] span { color: var(--bd-muted-inv); }
.bd-page.e-con .bd-index-filter svg { width: 1rem; height: 1rem; fill: currentColor; }
.bd-page.e-con .bd-index-filter button[aria-pressed="true"] svg { fill: var(--bd-orange); }

/* ---------- Team nach Gewerken (Leute) ---------- */
.bd-page .e-con.bd-team { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem) var(--bd-g); }
.bd-page .bd-team > .e-con { width: auto; max-width: none; }
.bd-page .e-con.bd-person { display: block; transition: opacity 350ms ease; }
.bd-page .e-con.bd-person[hidden] { display: none; }
.bd-page .e-con.bd-person-media { position: relative; overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-person-img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; filter: grayscale(1) !important; transition: transform 900ms var(--bd-ease), filter 400ms ease; }
.bd-page .bd-person-roles { position: absolute; inset: auto 0 0 0; padding: 1rem; background: var(--bd-black); color: var(--bd-text-inv); font-size: var(--bd-fs-small); line-height: 1.6; transform: translateY(101%); transition: transform 420ms var(--bd-ease); }
.bd-page .bd-person-roles p { margin: 0; }
.bd-page .bd-person:is(:hover, :focus-within, .is-open) .bd-person-roles { transform: none; }
.bd-page .bd-person:is(:hover, :focus-within, .is-open) .bd-person-img img { transform: scale(1.04); filter: grayscale(0) !important; }
.bd-page .bd-person-name { margin-top: 1rem; font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); line-height: 1.2; font-weight: 700; letter-spacing: -0.01em; }
.bd-page .bd-person-name span { font-weight: 300; }
.bd-page .bd-person-nick { margin-top: 0.25rem; font-size: 1rem; color: var(--bd-muted); }
.bd-page .bd-person-media[tabindex] { cursor: pointer; }
@media (min-width: 48em) { .bd-page .e-con.bd-team { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 64em) { .bd-page .e-con.bd-team { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Projekte: editoriales Raster wie „Ausgewählte Arbeiten“ der Startseite ---------- */
.bd-page.e-con .bd-projects-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--bd-g); row-gap: clamp(3.5rem, 7vw, 7rem); }
.bd-page.e-con .bd-proj { grid-column: 1 / -1; }
.bd-page.e-con .bd-proj[hidden] { display: none; }
.bd-page.e-con .bd-proj a { display: block; text-decoration: none; }
.bd-page.e-con .bd-proj-img { margin: 0; overflow: hidden; background: var(--bd-paper); aspect-ratio: 4 / 3; }
.bd-page.e-con .bd-proj-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--bd-ease); }
.bd-page.e-con .bd-proj a:hover .bd-proj-img img { transform: scale(1.04); }
.bd-page.e-con .bd-proj-meta { display: flex; flex-direction: column; gap: 0.4rem; padding-top: 1rem; }
.bd-page.e-con .bd-proj-title { margin: 0; font-size: var(--bd-fs-h3); line-height: 1.08; letter-spacing: -0.025em; font-weight: 700; }
.bd-page.e-con .bd-proj-title::after { content: ""; display: inline-block; width: 0.55em; height: 0.45em; margin-left: 0.2em; background: var(--bd-orange); -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; opacity: 0; transform: translateX(-0.3em); transition: opacity 220ms ease, transform 320ms var(--bd-ease); }
.bd-page.e-con .bd-proj a:is(:hover, :focus-visible) .bd-proj-title::after { opacity: 1; transform: none; }
.bd-page.e-con .bd-proj-meta p { margin: 0; font-size: 1rem; color: var(--bd-muted); }
.bd-page.e-con .bd-projects-more { display: block; margin: clamp(3rem, 6vw, 5rem) auto 0; min-height: 3.25rem; padding: 0 1.5rem; border: 0; border-radius: 0; background: transparent; box-shadow: inset 0 0 0 1.5px var(--bd-text); color: var(--bd-text); font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; transition: background-color 180ms ease, color 180ms ease; }
.bd-page.e-con .bd-projects-more:hover { background: var(--bd-text); color: var(--bd-white); }
.bd-page.e-con .bd-projects-more[hidden] { display: none; }
.bd-page.e-con .bd-index-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* Rhythmus aus vier Positionen: Spalten, Formate und Versatz (Klassen setzt PHP bzw. nach dem Filtern JS) */
@media (min-width: 64em) {
	.bd-page.e-con .bd-proj--p0 { grid-column: 1 / span 7; }
	.bd-page.e-con .bd-proj--p1 { grid-column: 9 / -1; margin-top: 9vw; }
	.bd-page.e-con .bd-proj--p2 { grid-column: 1 / span 5; }
	.bd-page.e-con .bd-proj--p3 { grid-column: 7 / -1; margin-top: 8vw; }
	.bd-page.e-con :is(.bd-proj--p1, .bd-proj--p2) .bd-proj-img { aspect-ratio: 4 / 5; }
}
@media (min-width: 48em) and (max-width: 63.99em) {
	.bd-page.e-con .bd-proj { grid-column: span 6; }
	.bd-page.e-con :is(.bd-proj--p1, .bd-proj--p3) { margin-top: 6vw; }
}
@media (max-width: 47.99em) {
	.bd-page.e-con .bd-proj-title { font-size: 1.5rem; }
}
/* Bild öffnet sich beim Einblenden von unten (wie auf der Startseite) */
@media (prefers-reduced-motion: no-preference) {
	.bd-js .bd-page.e-con .bd-proj.bd-reveal { opacity: 1; transform: none; }
	.bd-js .bd-page.e-con .bd-proj.bd-reveal .bd-proj-img { clip-path: inset(100% 0 0 0); transition: clip-path 1100ms cubic-bezier(0.76, 0, 0.24, 1); }
	.bd-js .bd-page.e-con .bd-proj.bd-reveal .bd-proj-img img { transform: scale(1.15); }
	.bd-js .bd-page.e-con .bd-proj.bd-reveal.is-in .bd-proj-img { clip-path: inset(0); }
	.bd-js .bd-page.e-con .bd-proj.bd-reveal.is-in .bd-proj-img img { transform: none; transition: transform 1600ms var(--bd-ease); }
	.bd-js .bd-page.e-con .bd-proj.bd-reveal.is-in a:hover .bd-proj-img img { transform: scale(1.04); transition-duration: 900ms; }
}

/* ---------- Leistungs-Kompass (lange Leistungsseiten) ---------- */
.bd-page .e-con.bd-compass-layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--bd-g); align-items: start; }
.bd-page .bd-compass-layout > * { grid-column: 1 / -1; width: auto; max-width: none; }
.bd-page .bd-compass-nav { font-size: 1rem; }
.bd-page .bd-compass-progress { height: 2px; background: var(--bd-line); margin-bottom: 1.25rem; }
.bd-page .bd-compass-progress span { display: block; height: 100%; background: var(--bd-orange); transform: scaleX(var(--p, 0)); transform-origin: left; }
.bd-page.e-con .bd-compass-nav ol { display: grid; gap: 0.15rem; }
.bd-page.e-con .bd-compass-nav a { display: block; padding: 0.45rem 0 0.45rem 0.9rem; border-left: 2px solid var(--bd-line); color: var(--bd-muted); line-height: 1.3; transition: color 180ms ease, border-color 180ms ease; }
.bd-page.e-con .bd-compass-nav a:hover { color: var(--bd-text); }
.bd-page.e-con .bd-compass-nav a[aria-current="true"] { border-left-color: var(--bd-orange); color: var(--bd-text); font-weight: 700; }
.bd-page .bd-compass-current { display: none; }
@media (min-width: 64em) {
	.bd-page .bd-compass-layout > .bd-compass { grid-column: 1 / span 3; position: sticky; top: calc(var(--bd-bar) + 2rem); }
	.bd-page .bd-compass-layout > .bd-compass-body { grid-column: 5 / -1; }
}
/* Handy und Tablet: schmale Leiste mit aktuellem Abschnitt und Fortschritt, klebt oben */
@media (max-width: 63.99em) {
	.bd-page .bd-compass-layout > .bd-compass { position: sticky; top: 0; z-index: 20; margin: 0 calc(-1 * var(--bd-m)) 2rem; padding: 0.75rem var(--bd-m) 0; background: var(--bd-white); }
	.bd-page .bd-compass-current { display: block; margin-bottom: 0.6rem; font-size: var(--bd-fs-small); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.bd-page.e-con .bd-compass-nav ol { display: none; }
	.bd-page .bd-compass-progress { margin: 0; }
}

/* Leistungsblöcke im Kompass-Inhalt, fortlaufend nummeriert */
.bd-page .e-con.bd-compass-body { counter-reset: bd-svc; }
.bd-page .e-con.bd-svcblock { counter-increment: bd-svc; row-gap: 1.5rem; margin-top: clamp(3rem, 6vw, 5rem); padding-top: 1.5rem; border-top: 1px solid var(--bd-line); }
.bd-page .bd-svcblock .bd-h3 .elementor-heading-title::before { content: counter(bd-svc, decimal-leading-zero); display: block; margin-bottom: 0.75rem; font-size: 1rem; letter-spacing: 0; color: var(--bd-orange-text); }
.bd-page .bd-svcblock-intro p { max-width: 40ch; margin-top: 1rem; }
.bd-page.e-con .bd-svclist li { border-bottom: 1px solid var(--bd-line); }
.bd-page.e-con .bd-svclist li:first-child { border-top: 1px solid var(--bd-line); }
.bd-page.e-con .bd-svclist li { padding: 0.7rem 0; }
/* Verlinkte Einträge: fett mit Pfeil am Zeilenende (auch wenn nur ein Teil des Eintrags verlinkt ist) */
.bd-page.e-con .bd-svclist li:has(a) { position: relative; padding-right: 2rem; }
.bd-page.e-con .bd-svclist li a { text-decoration: none; font-weight: 700; transition: color 180ms ease; }
.bd-page.e-con .bd-svclist li a::after { content: ""; position: absolute; right: 0; top: 50%; width: 0.85em; height: 0.7em; margin-top: -0.35em; background: currentColor; -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; transition: transform 240ms var(--bd-ease); }
.bd-page.e-con .bd-svclist li a:hover { color: var(--bd-orange-text); }
.bd-page.e-con .bd-svclist li a:hover::after { transform: translateX(4px); }
.bd-page .e-con.bd-why { margin-top: clamp(4rem, 8vw, 7rem); row-gap: 1.5rem; }
.bd-page .bd-why .bd-lead p:first-child { font-size: var(--bd-fs-lead); line-height: 1.38; }
.bd-page .bd-why p { max-width: 52ch; }
@media (min-width: 48em) {
	.bd-page .e-con.bd-svcblock { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--bd-g); }
	.bd-page .bd-svcblock > * { width: auto; max-width: none; }
}

/* ---------- Auszeichnungen (wie Startseite) ---------- */
.bd-page .e-con.bd-section--black { background: var(--bd-black); color: var(--bd-text-inv); }
.bd-page .e-con.bd-awards { display: grid; gap: clamp(1.75rem, 3vw, 2.5rem); justify-items: start; }
.bd-page .e-con.bd-badges { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bd-g); }
.bd-page .bd-badges > .elementor-element { width: auto; max-width: none; }
.bd-page .bd-badges img { width: 100%; height: auto; aspect-ratio: 317 / 193; object-fit: contain; }
@media (min-width: 48em) { .bd-page .e-con.bd-badges { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* Projekte unter einer Leistungsseite */
.bd-page .elementor-widget.bd-projects-head { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
/* Award-Logos mit weißem Grund (Leistungsseiten): auf Papier, Weiß wegmultipliziert */
.bd-page .bd-section--paper .bd-badges img { mix-blend-mode: multiply; }
/* Team: Abstand zwischen Einleitung und Filterleiste */
.bd-page .bd-team-filter-widget { margin-top: clamp(3rem, 6vw, 5rem); }
/* Handy: Filter-Chips als wischbare Zeile, damit die Ergebnisse direkt darunter beginnen */
@media (max-width: 47.99em) {
	.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--bd-m)); padding-inline: var(--bd-m); scrollbar-width: none; margin-bottom: 1.75rem; }
	.bd-page.e-con :is(.bd-team-filter, .bd-index-filter)::-webkit-scrollbar { display: none; }
	.bd-page.e-con :is(.bd-team-filter, .bd-index-filter) button { flex: none; }
}
/* Kompass-Leiste (Handy/Tablet) randlos: Elementor begrenzt Widgets sonst auf 100 % (.elementor.elementor .e-con > .elementor-widget) */
@media (max-width: 63.99em) {
	.elementor .bd-page .bd-compass-layout > .elementor-widget.bd-compass { max-width: none; width: calc(100% + 2 * var(--bd-m)); }
}

/* ========== Bausteine Runde 2: Leistungen, Kategorien, Kontakt, Jobs ========== */

/* Bild im Kompass-Inhalt (Leistungs-Kategorien) */
.bd-page .bd-compass-img { margin-top: clamp(3rem, 6vw, 5rem); overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-compass-img img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* Disziplin-Kacheln (Leistungen-Übersicht), Optik der Leistungskacheln der Startseite */
.bd-page .e-con.bd-tiles { display: grid; grid-template-columns: 1fr; gap: 1px; margin-top: clamp(3rem, 6vw, 5rem); background: var(--bd-line); border-block: 1px solid var(--bd-line); }
.bd-page .e-con.bd-tile { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 1rem; min-height: clamp(12rem, 20vw, 18rem); padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--bd-white); text-decoration: none; transition: background-color 260ms ease; }
.bd-page .bd-tile > * { width: auto; max-width: none; }
.bd-page .bd-tile-glyph { grid-row: 1; grid-column: 1; }
.bd-page .bd-tile-glyph svg { width: clamp(2.5rem, 3.6vw, 3.5rem); height: auto; aspect-ratio: 1; fill: var(--bd-text); transition: fill 220ms ease; }
.bd-page .bd-tile-go { grid-row: 1; grid-column: 2; }
.bd-page .bd-tile-go span { display: grid; place-items: center; width: 3rem; height: 3rem; box-shadow: inset 0 0 0 1px var(--bd-line); transition: background-color 220ms ease, box-shadow 220ms ease; }
.bd-page .bd-tile-go span::after { content: ""; width: 1rem; height: 0.8rem; background: var(--bd-text); -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; transform: rotate(90deg); }
.bd-page .bd-tile > .bd-tile-title { grid-column: 1 / -1; align-self: end; font-size: clamp(1.625rem, 1rem + 2vw, 3rem); line-height: 1; letter-spacing: -0.035em; font-weight: 700; }
.bd-page .bd-tile > .bd-tile-desc { grid-column: 1 / -1; color: var(--bd-muted); font-size: 1rem; }
@media (hover: hover) {
	.bd-page .e-con.bd-tile:hover { background: var(--bd-paper); }
	.bd-page .bd-tile:hover .bd-tile-glyph svg { fill: var(--bd-orange); }
	.bd-page .bd-tile:hover .bd-tile-go span { background: var(--bd-orange); box-shadow: none; }
}
@media (min-width: 48em) { .bd-page .e-con.bd-tiles { grid-template-columns: 1fr 1fr; } }
@media (min-width: 75em) { .bd-page .e-con.bd-tiles { grid-template-columns: repeat(4, 1fr); } }

/* Bild-/Text-Abschnitte im Wechsel (Leistungen-Übersicht) */
.bd-page .e-con.bd-feature { row-gap: 2.5rem; align-items: start; }
.bd-page .bd-feature-img { overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-feature-img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.bd-page .e-con.bd-feature-body { display: grid; gap: 1.5rem; justify-items: start; }
.bd-page .bd-feature-body > * { width: 100%; max-width: none; }
.bd-page .bd-feature-body > .bd-more { width: auto; }
.bd-page .bd-feature-body p { max-width: 52ch; }
@media (min-width: 64em) {
	.bd-page .bd-feature > .bd-feature-img { grid-column: 1 / span 5; position: sticky; top: calc(var(--bd-bar) + 2rem); }
	.bd-page .bd-feature > .bd-feature-body { grid-column: 7 / -1; }
	.bd-page .bd-feature--flip > .bd-feature-img { grid-column: 8 / -1; grid-row: 1; }
	.bd-page .bd-feature--flip > .bd-feature-body { grid-column: 1 / span 6; grid-row: 1; }
}
/* Lange Leistungslisten zweispaltig */
@media (min-width: 48em) {
	.bd-page.e-con .bd-svclist--cols ul { columns: 2; column-gap: var(--bd-g); }
	.bd-page.e-con .bd-svclist--cols li { break-inside: avoid; }
	.bd-page.e-con .bd-svclist--cols li:first-child { border-top: 0; }
	.bd-page.e-con .bd-svclist--cols ul { border-top: 1px solid var(--bd-line); }
}

/* Kontaktkarte */
.bd-page .bd-contact-card { font-size: var(--bd-fs-lead); line-height: 1.45; }
.bd-page .bd-contact-card p + p { margin-top: 1.25em; }
.bd-page .bd-contact-card abbr { text-decoration: none; font-weight: 700; }
.bd-page.e-con .bd-contact-card a { text-decoration: none; box-shadow: inset 0 -2px 0 var(--bd-orange); transition: color 180ms ease; }
.bd-page.e-con .bd-contact-card a:hover { color: var(--bd-orange-text); }

/* FAQ (natives Elementor-Akkordeon) */
.bd-page .bd-faq .e-n-accordion-item { border-top: 1px solid var(--bd-line); }
.bd-page .bd-faq .e-n-accordion-item:last-child { border-bottom: 1px solid var(--bd-line); }
.bd-page .bd-faq .e-n-accordion-item-title { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.4rem 0; border: 0; background: none; color: var(--bd-text); cursor: pointer; list-style: none; }
.bd-page .bd-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.bd-page .bd-faq .e-n-accordion-item-title-text { font-family: inherit; font-size: var(--bd-fs-lead); line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; color: inherit; }
.bd-page .bd-faq .e-n-accordion-item-title-icon { position: relative; flex: none; width: 1rem; height: 1rem; transition: transform 320ms var(--bd-ease); }
.bd-page .bd-faq .e-n-accordion-item-title-icon > span { display: none; }
.bd-page .bd-faq .e-n-accordion-item-title-icon::before,
.bd-page .bd-faq .e-n-accordion-item-title-icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 100%; height: 2px; background: currentColor; transform: translate(-50%, -50%); }
.bd-page .bd-faq .e-n-accordion-item-title-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.bd-page .bd-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { transform: rotate(45deg); color: var(--bd-orange); }
.bd-page .bd-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--bd-orange-text); }
.bd-page .bd-faq .e-n-accordion-item > .e-con { padding: 0 0 1.75rem; border: 0; background: none; }
.bd-page .bd-faq .e-n-accordion-item > .e-con p,
.bd-page .bd-faq .e-n-accordion-item > .e-con li { max-width: 60ch; }
.bd-page.e-con .bd-faq .e-n-accordion-item > .e-con ul { padding-left: 1.2em; list-style: disc; }
.bd-page .bd-faq .e-n-accordion-item > .e-con li p { margin: 0; }

/* Stellenliste (Jobs) */
.bd-page .e-con.bd-jobs-list { border-bottom: 1px solid var(--bd-line); }
.bd-page .e-con.bd-job { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 1.5rem; row-gap: 0.4rem; padding: clamp(1.5rem, 3vw, 2.25rem) 0; border-top: 1px solid var(--bd-line); text-decoration: none; transition: padding 320ms var(--bd-ease); }
.bd-page .bd-job > * { grid-column: 1; width: auto; max-width: none; }
.bd-page .bd-job::after { content: ""; grid-column: 2; grid-row: 1 / span 3; width: 1.25rem; height: 1rem; background: currentColor; -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; transition: transform 300ms var(--bd-ease); }
.bd-page .bd-job-title { font-size: var(--bd-fs-h3); line-height: 1.1; letter-spacing: -0.025em; font-weight: 700; transition: color 180ms ease; }
.bd-page .bd-job-teaser { color: var(--bd-muted); max-width: 60ch; }
.bd-page .bd-job-cta { font-size: 1rem; font-weight: 700; color: var(--bd-orange); }
@media (hover: hover) {
	.bd-page .e-con.bd-job:hover { padding-left: 0.75rem; }
	.bd-page .bd-job:hover .bd-job-title { color: var(--bd-orange); }
	.bd-page .bd-job:hover::after { transform: translateX(4px); }
}

/* Großes Statement über der H1 (Jobs) */
.bd-page .bd-hero-sub { margin-top: clamp(1.5rem, 3vw, 2.5rem); font-size: var(--bd-fs-h3); line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; }
.bd-page .bd-hero-sub .elementor-heading-title > span { font-weight: 300; }

/* Bild über die volle Breite */
.bd-page .bd-wideimg { overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-wideimg img { width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; }
/* FAQ: Frage links, Plus rechts (Elementor ordnet das Icon je nach Einstellung vorne an) */
.bd-page .bd-faq .e-n-accordion-item-title-header { order: 0; flex: 1; justify-content: flex-start; text-align: left; }
.bd-page .bd-faq .e-n-accordion-item-title-icon { order: 1; }
/* Headline endet schon mit Satzzeichen: kein zusätzlicher oranger Punkt */
.bd-page .bd-hero-h--nodot .elementor-heading-title::after { content: none; }
/* Kontakt: Links der Karte nur mit oranger Linie; auf Handy/Tablet steht die Karte vor dem Fließtext */
.bd-page.e-con .bd-contact-card p a { text-decoration: none; }
@media (max-width: 63.99em) { .bd-page .bd-cols > .bd-contact-card { order: -1; margin-bottom: 1rem; } }

/* ========== Leistungs-Detailseiten ========== */
/* Hero-Bild statt Video im Film-Rahmen (öffnet sich ebenfalls beim Scrollen) */
.bd-page .bd-film .elementor-widget-image img { width: 100%; height: auto; aspect-ratio: 2.39 / 1; object-fit: cover; }
/* Hero: Lead und Buttons unter der Headline */
.bd-page .elementor-widget.bd-hero-lead { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.bd-page .bd-hero-lead p { max-width: 46ch; }
.bd-page .bd-hero .bd-btn { margin-top: 2rem; }
/* YouTube-Video im Satzspiegel */
.bd-page .bd-yt .elementor-wrapper { aspect-ratio: 16 / 9; background: var(--bd-black); }
/* Bild/Text-Abschnitte in Folge, Bilder im natürlichen Format */
.bd-page .e-con.bd-feature + .bd-feature,
.bd-page .e-con.bd-feature + .bd-sec-head,
.bd-page .e-con.bd-sec-head + .bd-feature { margin-top: clamp(4rem, 8vw, 8rem); }
.bd-page .bd-feature--natural .bd-feature-img img { aspect-ratio: auto; }
.bd-page .e-con.bd-feature-body > .elementor-widget-text-editor ul { padding-left: 1.2em; list-style: disc; }
.bd-page .e-con.bd-feature-body > .elementor-widget-text-editor li + li { margin-top: 0.35em; }
.bd-page .e-con.bd-feature-body > .bd-btn { width: auto; margin-top: 0.5rem; }
/* Sektionskopf ohne Abstand nach unten, wenn er allein steht */
.bd-page .e-con.bd-sec-head--solo { margin-bottom: 0; }
/* Dunkles Band: Paare aus Überschrift und Text */
.bd-page .bd-section--ink .elementor-widget-text-editor ul { padding-left: 1.2em; list-style: disc; }
.bd-page .bd-section--ink .bd-pair .e-con.bd-pair-texts { display: grid; gap: 1.25rem; }
@media (min-width: 64em) { .bd-page .bd-pair > .bd-pair-texts { grid-column: 8 / -1; padding-top: 0.6rem; } }
/* Aufeinanderfolgende Sektionsköpfe und Videos brauchen Abstand */
.bd-page .e-con.bd-sec-head + .bd-sec-head,
.bd-page .e-con.bd-feature + .bd-yt,
.bd-page .e-con.bd-sec-head + .bd-yt,
.bd-page .bd-yt + .e-con { margin-top: clamp(4rem, 8vw, 7rem); }
/* Lange Wörter in Überschriften trennen statt überlaufen */
.bd-page .elementor-heading-title { overflow-wrap: break-word; }
.bd-page :is(.bd-feature-body, .bd-sec-head, .bd-pair) .bd-h2 .elementor-heading-title { hyphens: auto; -webkit-hyphens: auto; }
.bd-page .e-con.bd-cols + .bd-feature,
.bd-page .e-con.bd-feature + .bd-cols,
.bd-page .e-con.bd-sec-head + .bd-cols { margin-top: clamp(4rem, 8vw, 7rem); }

/* ========== SEO-Landingpages ========== */
/* Logo-/Award-Raster (aus Karussells), Optik der Kundenlogos der Startseite */
.bd-page .e-con.bd-logos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 1.5rem; background: var(--bd-line); border-block: 1px solid var(--bd-line); }
.bd-page .bd-logos > .elementor-element { width: auto; max-width: none; background: var(--bd-paper); aspect-ratio: 3 / 2; overflow: hidden; }
.bd-page .bd-logos .elementor-widget-container { height: 100%; display: grid; place-items: center; }
/* !important nötig, weil style.css des Child-Themes global img { filter: none !important } setzt */
.bd-page .bd-logos img { width: 100%; height: 100%; object-fit: contain; padding: 12%; mix-blend-mode: multiply; filter: grayscale(1) !important; opacity: 0.6; transition: filter 300ms ease, opacity 300ms ease; }
.bd-page .bd-logos > .elementor-element:hover img { filter: none !important; opacity: 1; }
.bd-page .bd-section--ink .e-con.bd-logos { background: var(--bd-line-inv); }
.bd-page .bd-section--ink .bd-logos > .elementor-element { background: var(--bd-white); }
@media (min-width: 48em) { .bd-page .e-con.bd-logos { grid-template-columns: repeat(4, 1fr); } }

/* Icon-Listen (native Widgets): Zeilen mit Linie, Links fett mit Pfeil */
.bd-page .bd-iconlist .elementor-icon-list-items { margin: 0; padding: 0; border-top: 1px solid var(--bd-line); }
.bd-page .bd-iconlist .elementor-icon-list-item { position: relative; display: block; margin: 0 !important; padding: 0.7rem 2rem 0.7rem 0 !important; border-bottom: 1px solid var(--bd-line); }
.bd-page .bd-iconlist .elementor-icon-list-item::after { display: none; }
.bd-page .bd-iconlist .elementor-icon-list-icon { display: none; }
.bd-page .bd-iconlist .elementor-icon-list-text { padding: 0 !important; color: inherit !important; font: inherit; }
.bd-page .bd-iconlist .elementor-icon-list-item > a { display: block; color: inherit; font-weight: 700; text-decoration: none; transition: color 180ms ease; }
.bd-page .bd-iconlist .elementor-icon-list-item > a::after { content: ""; position: absolute; right: 0; top: 50%; width: 0.85em; height: 0.7em; margin-top: -0.35em; background: currentColor; -webkit-mask: var(--bd-arrow) center / contain no-repeat; mask: var(--bd-arrow) center / contain no-repeat; transition: transform 240ms var(--bd-ease); }
.bd-page .bd-iconlist .elementor-icon-list-item > a:hover { color: var(--bd-orange-text); }
.bd-page .bd-iconlist .elementor-icon-list-item > a:hover::after { transform: translateX(4px); }

/* Kennzahlen (native Zähler), Optik der Fakten der Startseite */
.bd-page .e-con.bd-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--bd-g); row-gap: 2.5rem; margin-top: clamp(3rem, 6vw, 5rem); }
.bd-page .bd-facts > .elementor-element { width: auto; max-width: none; border-top: 1px solid var(--bd-line); padding-top: 1.25rem; }
.bd-page .bd-facts .elementor-counter { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.bd-page .bd-facts .elementor-counter-number-wrapper { order: 0; display: flex; font-size: var(--bd-fs-h2); line-height: 1; letter-spacing: -0.035em; font-weight: 700; color: inherit; font-variant-numeric: tabular-nums; font-family: inherit; }
.bd-page .bd-facts .elementor-counter-number-suffix,
.bd-page .bd-facts .elementor-counter-number-prefix { color: var(--bd-orange); }
.bd-page .bd-facts .elementor-counter-title { order: 1; font-size: 1rem; line-height: 1.45; font-weight: 300; color: inherit; font-family: inherit; text-align: left; }
@media (min-width: 48em) { .bd-page .e-con.bd-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Karten aus Bild + Text (z. B. Ansprechpartner) */
.bd-page .e-con.bd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 2rem var(--bd-g); margin-top: 2rem; }
.bd-page .bd-cards > .e-con { width: auto; max-width: none; display: grid; gap: 1rem; align-content: start; }
.bd-page .bd-cards img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1) !important; }

/* Bildraster (aus Bild-Karussells und Galerien) */
.bd-page .e-con.bd-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bd-g); margin-top: clamp(2rem, 4vw, 3rem); }
.bd-page .bd-gallery > .elementor-element { width: auto; max-width: none; overflow: hidden; background: var(--bd-paper); }
.bd-page .bd-gallery img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 900ms var(--bd-ease); }
.bd-page .bd-gallery > .elementor-element:hover img { transform: scale(1.04); }
@media (min-width: 64em) { .bd-page .e-con.bd-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Blöcke: Überschrift links, Inhalt rechts; breite Elemente darunter */
.bd-page .e-con.bd-block { row-gap: 1.5rem; align-items: start; }
.bd-page .e-con.bd-block-body { display: grid; gap: 1.25rem; justify-items: start; }
.bd-page .bd-block-body > * { width: 100%; max-width: none; }
.bd-page .bd-block-body > :is(.bd-btn, .bd-more) { width: auto; }
.bd-page .bd-block-body p { max-width: 60ch; }
.bd-page.e-con .bd-block-body > .elementor-widget-text-editor :is(ul, ol) { padding-left: 1.2em; list-style: disc; }
@media (min-width: 64em) {
	.bd-page .bd-block > .bd-block-h { grid-column: 1 / span 5; position: sticky; top: calc(var(--bd-bar) + 2rem); }
	.bd-page .bd-block > .bd-block-body { grid-column: 7 / -1; }
	.bd-page .bd-block--noh > .bd-block-body { grid-column: 1 / span 8; }
}
.bd-page .e-con:is(.bd-block, .bd-feature, .bd-sec-head) + :is(.bd-block, .bd-feature, .bd-logos, .bd-facts, .bd-gallery, .bd-cards, .bd-wide),
.bd-page :is(.bd-logos, .bd-facts, .bd-gallery, .bd-cards, .bd-wide) + .e-con:is(.bd-block, .bd-feature) { margin-top: clamp(4rem, 8vw, 7rem); }
.bd-page .bd-wide.bd-yt { width: 100%; }

/* Tabs (native Widgets) */
.bd-page .bd-tabs .e-n-tabs-heading { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.bd-page .bd-tabs .e-n-tab-title { min-height: 2.75rem; padding: 0 1rem; border: 0; border-radius: 0; background: transparent; box-shadow: inset 0 0 0 1px var(--bd-line); color: inherit; font: inherit; font-size: 1rem; cursor: pointer; }
.bd-page .bd-tabs .e-n-tab-title[aria-selected="true"] { background: var(--bd-text); color: var(--bd-white); box-shadow: none; font-weight: 700; }
.bd-page .bd-tabs .e-n-tabs-content > .e-con { padding: 0; border: 0; background: none; }

/* Dunkles Band: FAQ, Buttons und Listen in Weiß */
.bd-page .bd-section--ink .bd-faq .e-n-accordion-item-title { color: inherit; }
.bd-page .bd-section--ink .bd-btn .elementor-button:hover { background: var(--bd-white); color: var(--bd-black); }
.bd-page .bd-section--ink .bd-iconlist .elementor-icon-list-item > a:hover { color: var(--bd-orange); }
/* Block-Überschriften in der linken Spalte: etwas kleiner als h2, lange Wörter getrennt */
.bd-page .bd-block-h.bd-h2 { font-size: clamp(2rem, 1rem + 3.2vw, 4rem); }
.bd-page :is(.bd-block-h, .bd-feature-body .bd-h3) .elementor-heading-title { hyphens: auto; -webkit-hyphens: auto; }
.bd-page .bd-feature-body > .bd-h2 { font-size: clamp(2rem, 1rem + 3.2vw, 4rem); }
/* Lange Button-Texte dürfen umbrechen (SEO-Seiten), statt die Seite zu verbreitern */
.bd-page .bd-btn .elementor-button { white-space: normal; text-align: left; padding-block: 0.75rem; max-width: 100%; }
.bd-page .bd-more .elementor-button { max-width: 100%; text-align: left; }
.bd-page .bd-tabs .e-n-tabs-heading { justify-content: flex-start; }
.bd-page .e-con:is(.bd-block, .bd-feature) + .bd-tabs { margin-top: 2.5rem; }

/* ========== Projektseiten ========== */
.bd-page .bd-hero-h--project { font-size: clamp(2.25rem, 1rem + 5.2vw, 6.5rem); line-height: 1; }
.bd-page .bd-hero-h--project .elementor-heading-title { hyphens: auto; -webkit-hyphens: auto; }
/* Fakten (Kunde, Aufgaben, Link) neben dem Projekttext */
.bd-page .e-con.bd-projfacts { display: grid; gap: 1.5rem; align-content: start; }
.bd-page .bd-projfacts > * { width: 100%; max-width: none; border-top: 1px solid var(--bd-line); padding-top: 1rem; }
.bd-page .bd-projfact-label { font-size: var(--bd-fs-small); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--bd-orange-text); }
.bd-page .bd-projfact-value { margin-top: 0.4rem; font-size: 1rem; line-height: 1.6; }
@media (min-width: 64em) {
	.bd-page .bd-projintro > :nth-child(1) { grid-column: 1 / span 7; }
	.bd-page .bd-projintro > .bd-projfacts { grid-column: 9 / -1; }
}
/* Bilder im natürlichen Format (Projektgeschichten) */
.bd-page .e-con.bd-gallery--natural { align-items: start; }
.bd-page .bd-gallery--natural img { height: auto; aspect-ratio: auto; }
@media (min-width: 64em) { .bd-page .e-con.bd-gallery--natural { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bd-page .bd-projimg img { width: 100%; height: auto; }
/* Zitat ohne Porträt */
.bd-page .e-con.bd-projquote { padding-block: clamp(1rem, 3vw, 2rem); }
.bd-page .bd-projquote blockquote p { font-size: var(--bd-fs-h3); max-width: 28ch; }
/* Native Galerie */
.bd-page .bd-projgallery .e-gallery-item { overflow: hidden; }
.bd-page .bd-projgallery .e-gallery-image { transition: transform 900ms var(--bd-ease); }
.bd-page .bd-projgallery .e-gallery-item:hover .e-gallery-image { transform: scale(1.03); }
/* Abstände zwischen den Bausteinen der Projektgeschichte */
.bd-page .bd-projbody > * + * { margin-top: clamp(4rem, 8vw, 7rem); }
/* Vorheriges / nächstes Projekt (natives Widget; style.css des Child-Themes dreht die Reihenfolge global um) */
.bd-page .bd-postnav .elementor-post-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bd-g); flex-direction: row; }
.bd-page .bd-postnav .elementor-post-navigation__separator-wrapper { display: none; }
.bd-page .bd-postnav .elementor-post-navigation__link { width: auto; }
.bd-page .bd-postnav .elementor-post-navigation__next { text-align: right; }
.bd-page .bd-postnav .elementor-post-navigation__link a { display: flex; flex-direction: column; gap: 0.5rem; flex-direction: column !important; align-items: flex-start; color: inherit; text-decoration: none; }
.bd-page .bd-postnav .elementor-post-navigation__next a { align-items: flex-end; }
.bd-page .bd-postnav .post-navigation__arrow-wrapper { display: none; }
.bd-page .bd-postnav :is(.post-navigation__prev--label, .post-navigation__next--label) { font-size: var(--bd-fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--bd-orange-text); }
.bd-page .bd-postnav :is(.post-navigation__prev--title, .post-navigation__next--title) { font-size: var(--bd-fs-h3); line-height: 1.1; letter-spacing: -0.025em; font-weight: 700; color: var(--bd-text); transition: color 180ms ease; }
.bd-page .bd-postnav a:hover :is(.post-navigation__prev--title, .post-navigation__next--title) { color: var(--bd-orange-text); }
.bd-page .e-con.bd-projall { margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (max-width: 47.99em) {
	.bd-page .bd-postnav .elementor-post-navigation { grid-template-columns: 1fr; }
	.bd-page .bd-postnav .elementor-post-navigation__next { text-align: left; }
	.bd-page .bd-postnav .elementor-post-navigation__next a { align-items: flex-start; }
}
.bd-page .bd-btn--ghost .elementor-button { background: transparent; color: var(--bd-text); box-shadow: inset 0 0 0 1.5px var(--bd-text); }
.bd-page .bd-postnav .elementor-post-navigation__link,
.bd-page .bd-postnav .elementor-post-navigation__link a,
.bd-page .bd-postnav :is(.post-navigation__prev--title, .post-navigation__next--title) { white-space: normal; overflow: visible; text-overflow: clip; max-width: 100%; }
/* Notfall-Umbruch: lange Wörter und URLs dürfen die Seite nie verbreitern (greift nur, wenn sie sonst nicht passen) */
.bd-page.e-con { overflow-wrap: anywhere; }
