/* MD Hausbau – Design CSS (portiert aus mockup styles.css) */
/* Generiert: 2026-05-01 10:51 */

:root {
  /* Brand */
  --c-primary:        #002c58;
  --c-primary-dark:   #00182b;
  --c-accent-blue:    #345578;
  --c-anthracite:     #1a1f26;

  /* Text */
  --c-text:           #3c3c3b;
  --c-muted:          #808291;
  --c-line:           #dcdde1;
  --c-line-soft:      #ececef;

  /* Surface */
  --c-bg:             #ffffff;
  --c-bg-alt:         #f5f5f3;
  --c-bg-pure:        #ffffff;
  --c-bg-dark:        #002c58;

  /* Status */
  --c-success:        #2e7d32;

  /* Type — Open Sans only */
  --ff-display: "Open Sans", system-ui, sans-serif;
  --ff-body:    "Open Sans", system-ui, sans-serif;
  --ff-mono:    "JetBrains Mono", "Menlo", monospace;

  /* Type scale — ruhig, nicht editorial-groß */
  --fs-h1:            64px;
  --fs-h2:            40px;
  --fs-h3:            22px;
  --fs-body:          17px;
  --fs-small:         14px;
  --fs-micro:         11px;

  /* Layout */
  --container:        1320px;
  --container-narrow: 1080px;
  --section-py:       150px;
  --radius-card:      2px;
  --radius-btn:       2px;
  --shadow-card:      none;
  --shadow-card-hover: 0 18px 50px rgba(0,24,43,0.08);

  --hero-vh:          90vh;
}
img { max-width: 100%; display: block; }
h1, h2, h3, h4 {
  font-family: var(--ff-body);
  font-weight: 600;
  color: var(--c-primary);
  margin: 0 0 .4em;
  line-height: 1.1;
  letter-spacing: -0.015em;
}
h1 {
  font-size: var(--fs-h1);
  font-weight: 600;
  letter-spacing: -0.022em;
  line-height: 1.04;
}
h2 {
  font-size: var(--fs-h2);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.1;
}
h3 {
  font-size: var(--fs-h3);
  font-weight: 600;
  letter-spacing: -0.005em;
  font-family: var(--ff-body);
}
p { margin: 0 0 1em; }
.smc {
  font-family: var(--ff-body);
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-muted);
}
.stage-mode-both { grid-template-columns: minmax(0, 1440px) 390px; align-items: start; }
.stage-mode-desktop { grid-template-columns: minmax(0, 1440px); }
.stage-mode-mobile { grid-template-columns: 390px; }
@media (max-width: 1400px) {
  .stage-mode-both { grid-template-columns: 1fr; }
}
.page { background: var(--c-bg); color: var(--c-text); font-size: 16px; }
* { box-sizing: border-box; }
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 72px;
}
.ph {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246,243,236,0.92);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--c-line-soft);
}
.ph__row {
  display: flex; align-items: center; gap: 32px;
  height: 104px;
  transition: height .35s ease;
}
.ph.is-shrunk .ph__row { height: 76px; }
.ph__logo {
  display: flex; align-items: baseline; gap: 14px;
  color: var(--c-primary);
  font-family: var(--ff-body);
  font-weight: 400;
  font-size: 28px;
  letter-spacing: -0.01em;
  line-height: 1;
}
.ph__logo-mark {
  display: inline-flex; align-items: baseline; gap: 2px;
  font-family: var(--ff-body); font-weight: 400;
}
.ph__logo-text {
  font-family: var(--ff-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--c-muted);
  position: relative;
  padding-left: 14px;
}
.ph__logo-text::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 6px; height: 1px;
  background: var(--c-line);
}
.ph__nav {
  display: flex; gap: 36px;
  margin-left: auto;
  align-items: center;
}
.ph__nav a {
  position: relative;
  color: var(--c-anthracite);
  font-family: var(--ff-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 6px 0;
}
.ph__nav a sup {
  font-size: 9px;
  color: var(--c-muted);
  font-weight: 400;
  margin-right: 4px;
  letter-spacing: 0;
}
.ph__nav a::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 1px; background: var(--c-primary);
  transform: scaleX(0); transform-origin: left;
  transition: transform .25s ease;
}
.ph__nav a:hover::after { transform: scaleX(1); }
.ph__nav a.is-current { color: var(--c-primary); }
.ph__nav a.is-current::after { transform: scaleX(1); }
.ph__nav a:hover { text-decoration: none; }
.ph__cta {
  display: inline-flex; align-items: center; gap: 10px;
  background: transparent; color: var(--c-primary);
  padding: 0;
  font-family: var(--ff-body);
  font-size: 12px; font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 0;
  text-decoration: none;
}
.ph__cta::after { content: "→"; font-size: 14px; transition: transform .25s; }
.ph__cta:hover { text-decoration: none; }
.ph__cta:hover::after { transform: translateX(4px); }
.ph__burger {
  display: none;
  width: 40px; height: 40px;
  align-items: center; justify-content: center;
  margin-left: auto;
  background: transparent; border: 0; cursor: pointer;
  flex-direction: column; gap: 5px;
}
.ph__burger span {
  display: block; width: 22px; height: 1px;
  background: var(--c-primary);
}
.btn {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 0;
  font: 500 12px var(--ff-body);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  border-radius: 0;
  text-decoration: none;
  cursor: pointer;
  border: 0;
  background: transparent;
  color: var(--c-primary);
  transition: gap .3s ease;
  position: relative;
}
.btn::before {
  content: "";
  display: inline-block;
  width: 24px; height: 1px;
  background: currentColor;
  transition: width .3s ease;
}
.btn:hover { text-decoration: none; gap: 18px; }
.btn:hover::before { width: 36px; }
.btn--primary {
  padding: 18px 28px;
  background: var(--c-primary);
  color: var(--c-bg);
  letter-spacing: 0.22em;
}
.btn--primary::before { display: none; }
.btn--primary::after { content: "→"; font-size: 14px; transition: transform .3s; }
.btn--primary:hover { background: var(--c-primary-dark); gap: 18px; }
.btn--primary:hover::after { transform: translateX(4px); }
.btn--outline {
  padding: 18px 28px;
  background: transparent;
  color: var(--c-primary);
  border: 1px solid var(--c-primary);
}
.btn--outline::before { display: none; }
.btn--outline::after { content: "→"; font-size: 14px; transition: transform .3s; }
.btn--outline:hover { background: var(--c-primary); color: var(--c-bg); gap: 18px; }
.btn--outline:hover::after { transform: translateX(4px); }
.btn--on-dark-filled {
  padding: 18px 28px;
  background: var(--c-bg);
  color: var(--c-primary);
}
.btn--on-dark-filled::before { display: none; }
.btn--on-dark-filled::after { content: "→"; font-size: 14px; transition: transform .3s; }
.btn--on-dark-filled:hover { background: var(--c-bg-alt); gap: 18px; }
.btn--on-dark-filled:hover::after { transform: translateX(4px); }
.btn--on-dark-outline {
  padding: 18px 28px;
  background: transparent;
  color: var(--c-bg);
  border: 1px solid rgba(246,243,236,0.5);
}
.btn--on-dark-outline::before { display: none; }
.btn--on-dark-outline::after { content: "→"; font-size: 14px; transition: transform .3s; }
.btn--on-dark-outline:hover { background: rgba(246,243,236,0.08); border-color: var(--c-bg); gap: 18px; }
.btn--on-dark-outline:hover::after { transform: translateX(4px); }
.btn--link {
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--c-primary);
}
.btn--link::after { content: "→"; transition: transform .3s; margin-left: 4px; }
.btn--link:hover { gap: 18px; }
.btn--link:hover::after { transform: translateX(4px); }
.hero {
  position: relative;
  min-height: var(--hero-vh);
  display: flex; align-items: end;
  overflow: hidden;
  color: var(--c-bg);
  background: var(--c-primary-dark);
}
.hero__bg {
  position: absolute; inset: 0;
  z-index: 0;
}
.hero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6,26,48,0.20) 0%, rgba(6,26,48,0.55) 60%, rgba(6,26,48,0.85) 100%);
  z-index: 1;
}
.hero__content {
  position: relative; z-index: 2;
  width: 100%;
  padding: 80px 0 88px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 64px;
  align-items: end;
}
.hero__lead-block { max-width: 56ch; }
.hero__eyebrow {
  display: flex; align-items: baseline; gap: 14px;
  font-family: var(--ff-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(246,243,236,0.7);
  margin: 0 0 56px;
}
.hero__eyebrow::before {
  content: "—";
  color: rgba(246,243,236,0.5);
  font-weight: 400;
  letter-spacing: 0;
}
.hero__title {
  font-family: var(--ff-body);
  color: var(--c-bg);
  font-size: 72px;
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 0.92;
  max-width: 12ch;
  margin: 0;
}
.hero__title em { font-weight: 400;
  color: rgba(246,243,236,0.92);
}
.hero__caption {
  align-self: end;
  text-align: right;
  font-family: var(--ff-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(246,243,236,0.65);
  line-height: 1.7;
  border-right: 1px solid rgba(246,243,236,0.3);
  padding-right: 20px;
  white-space: nowrap;
}
.hero__caption strong { color: var(--c-bg); font-weight: 500; display: block; margin-bottom: 4px; }
.hero__subline {
  font-family: var(--ff-body); font-weight: 400;
  font-size: 28px;
  color: rgba(246,243,236,0.88);
  max-width: 28ch;
  margin: 40px 0 56px;
  line-height: 1.35;
  letter-spacing: -0.005em;
}
.hero__ctas { display: flex; gap: 32px; flex-wrap: wrap; align-items: center; }
.hero--split {
  background: var(--c-bg);
  color: var(--c-text);
  align-items: stretch;
  min-height: auto;
  padding: 96px 0 0;
}
.hero--split .hero__overlay, .hero--split .hero__bg { display: none; }
.hero--split .hero__content {
  grid-template-columns: 1.1fr 1fr;
  gap: 96px;
  align-items: center;
  padding: 80px 0 100px;
}
.hero--split .hero__title {
  color: var(--c-primary);
  font-size: 44px;
  max-width: none;
}
.hero--split .hero__subline { color: var(--c-text); }
.hero--split .hero__eyebrow { color: var(--c-muted); }
.hero--split .hero__eyebrow::before { color: var(--c-line); }
.hero--split .hero__media { aspect-ratio: 4/5; min-height: 720px; }
.hero--split .hero__caption { color: var(--c-muted); border-right-color: var(--c-line); }
.hero--split .hero__caption strong { color: var(--c-primary); }
.hero--editorial {
  background: var(--c-bg);
  color: var(--c-text);
  min-height: auto;
  padding: 60px 0 100px;
  align-items: stretch;
}
.hero--editorial .hero__overlay, .hero--editorial .hero__bg { display: none; }
.hero--editorial .hero__content {
  grid-template-columns: 7fr 5fr;
  gap: 80px;
  align-items: end;
  padding: 80px 0 0;
}
.hero--editorial .hero__title {
  color: var(--c-primary);
  font-size: 80px;
  letter-spacing: -0.045em;
  line-height: 0.88;
  max-width: none;
}
.hero--editorial .hero__subline { color: var(--c-text); margin-top: 32px; }
.hero--editorial .hero__eyebrow { color: var(--c-muted); }
.hero--editorial .hero__eyebrow::before { color: var(--c-line); }
.hero--editorial .hero__media { aspect-ratio: 3/4; min-height: 640px; }
.hero--editorial .hero__caption { color: var(--c-muted); border-right-color: var(--c-line); }
.hero--editorial .hero__caption strong { color: var(--c-primary); }
.hero-stripe {
  position: relative;
  background: var(--c-primary-dark);
  color: var(--c-bg);
  min-height: 560px;
  display: flex; align-items: end;
}
.hero-stripe__bg {
  position: absolute; inset: 0; opacity: 0.28;
}
.hero-stripe__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6,26,48,0.3) 0%, rgba(6,26,48,0.92) 100%);
}
.hero-stripe__content { position: relative; z-index: 2; padding: 80px 0; width: 100%; }
.hero-stripe__crumbs {
  font-size: 11px;
  color: rgba(246,243,236,0.6);
  margin-bottom: 56px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  display: flex; gap: 14px; align-items: baseline;
}
.hero-stripe__crumbs a { color: rgba(246,243,236,0.6); }
.hero-stripe__crumbs::before {
  content: "§";
  font-family: var(--ff-body); font-size: 16px;
  color: rgba(246,243,236,0.55);
  letter-spacing: 0;
  margin-right: 6px;
}
.hero-stripe h1 {
  color: var(--c-bg);
  font-size: 44px;
  margin: 0;
  letter-spacing: -0.03em;
  line-height: 0.94;
}
.hero-stripe__lead {
  font-family: var(--ff-body); color: rgba(246,243,236,0.85);
  font-size: 26px;
  max-width: 36ch;
  margin: 32px 0 0;
  line-height: 1.35;
}
.s {
  padding: var(--section-py) 0;
  background: var(--c-bg);
  position: relative;
}
.s--alt { background: var(--c-bg-alt); }
.s--paper { background: var(--c-bg-pure); }
.s--dark { background: var(--c-primary); color: var(--c-bg); }
.s--darker { background: var(--c-primary-dark); color: var(--c-bg); }
.s--dark h2, .s--darker h2, .s--dark h3, .s--darker h3 { color: var(--c-bg); }
.s__head {
  display: grid;
  grid-template-columns: 1fr 5fr 5fr;
  gap: 80px;
  margin-bottom: 120px;
  align-items: start;
  padding-top: 32px;
  border-top: 1px solid var(--c-line);
}
.s--dark .s__head, .s--darker .s__head { border-top-color: rgba(246,243,236,0.18); }
.s__chapter {
  font-family: var(--ff-body); font-weight: 400;
  font-size: 22px;
  color: var(--c-primary);
  letter-spacing: -0.005em;
  line-height: 1;
}
.s__chapter sup {
  font-size: 11px;
  font-style: normal;
  font-family: var(--ff-body);
  font-weight: 500;
  letter-spacing: 0.18em;
  margin-left: 6px;
  vertical-align: super;
}
.s--dark .s__chapter, .s--darker .s__chapter { color: var(--c-bg); }
.s__head--center { display: block; text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }
.s__head--center .s__chapter { margin-bottom: 24px; display: inline-block; }
.s__eyebrow {
  display: inline-flex; align-items: baseline; gap: 12px;
  font-family: var(--ff-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin-bottom: 28px;
}
.s__eyebrow::before {
  content: "—";
  color: var(--c-line);
}
.s--dark .s__eyebrow, .s--darker .s__eyebrow {
  color: rgba(246,243,236,0.7);
}
.s--dark .s__eyebrow::before, .s--darker .s__eyebrow::before { color: rgba(246,243,236,0.4); }
.s__title { margin: 0; }
.s__lead {
  font-family: var(--ff-body); font-size: 24px;
  color: var(--c-text);
  max-width: 36ch;
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
}
.s--dark .s__lead, .s--darker .s__lead { color: rgba(246,243,236,0.88); }
.intro {
  display: grid;
  grid-template-columns: 1fr 5fr 6fr;
  gap: 80px;
  align-items: start;
}
.intro__col-a { padding-top: 8px; }
.intro__title {
  font-size: 40px;
  line-height: 1.0;
  margin-bottom: 0;
  letter-spacing: -0.02em;
}
.intro__body { padding-top: 12px; }
.intro__body p { font-size: 18px; line-height: 1.75; max-width: 50ch; }
.intro__body p:first-child {
  font-size: 22px;
  line-height: 1.55;
  color: var(--c-anthracite);
  font-weight: 400;
}
.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--c-line);
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.card {
  background: var(--c-bg);
  border-radius: 0;
  padding: 64px 48px 56px;
  box-shadow: none;
  display: flex; flex-direction: column; gap: 24px;
  transition: background .35s ease, color .35s ease;
  min-height: 420px;
}
.s--alt .card { background: var(--c-bg-alt); }
.card:hover { background: var(--c-primary); }
.card:hover .card__title, .card:hover .card__body, .card:hover .card__num, .card:hover .card__icon, .card:hover .btn--link, .card:hover .smc { color: var(--c-bg); }
.card:hover .card__icon { border-color: rgba(246,243,236,0.5); }
.card:hover .card__num::before { background: rgba(246,243,236,0.5); }
.card__icon {
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border: 1px solid var(--c-primary);
  color: var(--c-primary);
  border-radius: 0;
  transition: border-color .3s, color .3s;
}
.card__icon svg { width: 22px; height: 22px; }
.card__num {
  font-family: var(--ff-body);
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--c-muted);
  display: flex; align-items: baseline; gap: 14px;
  transition: color .3s;
}
.card__num::before {
  content: "";
  width: 32px; height: 1px;
  background: var(--c-primary);
  display: inline-block;
  transition: background .3s;
}
.card__title {
  font-family: var(--ff-body);
  font-weight: 400;
  color: var(--c-primary);
  margin: 0;
  font-size: 26px;
  letter-spacing: -0.015em;
  line-height: 1;
  transition: color .3s;
}
.card__body { color: var(--c-text); font-size: 16px; line-height: 1.7; margin: 0; transition: color .3s; max-width: 32ch; }
.card__cta { margin-top: auto; padding-top: 12px; }
.card--image-top {
  padding: 0;
  overflow: hidden;
  display: flex; flex-direction: column;
}
.card--image-top .card__image {
  aspect-ratio: 4/3;
  background: repeating-linear-gradient(135deg, #ddd9cd 0 14px, #d4d0c4 14px 28px);
  color: var(--c-anthracite);
  display: grid; place-items: center;
  font: 400 11px var(--ff-mono);
  text-align: center;
  padding: 16px;
}
.card--image-top .card__inner {
  padding: 36px 36px 40px;
  display: flex; flex-direction: column; gap: 14px;
  flex: 1;
}
.card--numbered {
  border-top: 0;
}
.highlight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: var(--c-primary);
  color: var(--c-bg);
  border-radius: 0;
  overflow: hidden;
}
.highlight__col {
  padding: 96px 80px;
  border-right: 1px solid rgba(246,243,236,0.12);
  display: flex; flex-direction: column; gap: 24px;
  position: relative;
}
.highlight__col:last-child { border-right: 0; border-bottom: 0; }
.highlight__num {
  font-family: var(--ff-body); font-size: 18px;
  color: rgba(246,243,236,0.6);
  letter-spacing: -0.005em;
  margin-bottom: 8px;
}
.highlight__icon { display: none; }
.highlight h3 {
  font-family: var(--ff-body);
  color: var(--c-bg);
  font-size: 32px;
  font-weight: 400;
  margin: 0;
  letter-spacing: -0.018em;
  line-height: 1;
}
.highlight p {
  font-family: var(--ff-body); color: rgba(246,243,236,0.85);
  margin: 8px 0 0;
  font-size: 22px;
  line-height: 1.45;
  max-width: 30ch;
  font-weight: 400;
}
.highlight__cta { margin-top: 24px; align-self: flex-start; }
.baufi {
  display: grid;
  grid-template-columns: 1fr 5fr 7fr;
  gap: 80px;
  align-items: start;
}
.baufi__chapter {
  font-family: var(--ff-body); font-size: 22px;
  color: var(--c-primary);
  padding-top: 8px;
}
.baufi__copy h2 { margin-bottom: 24px; }
.baufi__copy p { font-size: 18px; line-height: 1.7; max-width: 44ch; }
.baufi__features {
  list-style: none; padding: 0; margin: 32px 0 0;
  display: flex; flex-direction: column; gap: 14px;
}
.baufi__features li {
  display: flex; align-items: baseline; gap: 14px;
  font-size: 15px;
  border-top: 1px solid var(--c-line);
  padding-top: 14px;
}
.baufi__check {
  flex: 0 0 auto;
  font-family: var(--ff-body); font-size: 13px;
  color: var(--c-muted);
}
.baufi__widget {
  background: var(--c-bg-pure);
  border: 1px solid var(--c-line);
  border-radius: 0;
  padding: 12px;
}
.baufi__iframe {
  background: var(--c-bg);
  border: 1px dashed var(--c-line);
  min-height: 640px;
  border-radius: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  padding: 48px 32px;
  color: var(--c-muted);
  gap: 14px;
}
.baufi__iframe-label {
  font: 500 11px var(--ff-mono);
  color: var(--c-anthracite);
  background: var(--c-bg-alt);
  padding: 8px 14px;
  border-radius: 0;
  letter-spacing: 0.04em;
}
.baufi__iframe-meta {
  font-size: 13px;
  max-width: 36ch;
  line-height: 1.6;
}
.baufi__hint {
  font-size: 13px !important;
  color: var(--c-muted) !important;
  margin-top: 24px !important;
  padding-top: 24px !important;
  border-top: 1px solid var(--c-line);
  max-width: 44ch;
  line-height: 1.65; font-family: var(--ff-body) !important;
}
.projects {
  display: grid;
  gap: 80px 48px;
}
.projects--3 { grid-template-columns: repeat(3, 1fr); }
.projects--2 { grid-template-columns: repeat(2, 1fr); gap: 96px 64px; }
.project {
  background: transparent;
  border-radius: 0;
  display: flex; flex-direction: column;
  cursor: pointer;
  transition: transform .5s ease;
}
.project:hover .project__image::after { opacity: 0.18; }
.project:hover .project__title { color: var(--c-accent-blue); }
.project__image {
  aspect-ratio: 4/3;
  background: repeating-linear-gradient(135deg, #d8d4c7 0 14px, #cec9bc 14px 28px);
  color: var(--c-anthracite);
  display: grid; place-items: center;
  text-align: center;
  font: 400 11px var(--ff-mono);
  padding: 24px;
  position: relative;
  overflow: hidden;
}
.project__image::after {
  content: "";
  position: absolute; inset: 0;
  background: var(--c-primary-dark);
  opacity: 0;
  transition: opacity .5s ease;
}
.project__badge {
  position: absolute;
  top: 24px; left: 24px;
  background: var(--c-bg);
  color: var(--c-primary);
  font-family: var(--ff-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: 0;
  z-index: 2;
}
.project__badge--current { background: var(--c-primary); color: var(--c-bg); }
.project__badge--done { background: var(--c-bg); color: var(--c-primary); }
.project__body {
  padding: 28px 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 24px;
  align-items: baseline;
  border-top: 1px solid var(--c-line);
  margin-top: 0;
  padding-top: 24px;
}
.project__body-main { grid-column: 1; }
.project__body-meta { grid-column: 2; text-align: right; }
.project__type {
  font-family: var(--ff-body);
  font-size: 10px;
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 500;
  margin: 0 0 6px;
}
.project__title {
  font-family: var(--ff-body);
  font-weight: 400;
  color: var(--c-primary);
  font-size: 22px;
  letter-spacing: -0.018em;
  margin: 0;
  line-height: 1.05;
  transition: color .3s;
}
.project__meta {
  font-family: var(--ff-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin: 6px 0 0;
}
.project__year {
  font-family: var(--ff-body); font-size: 18px;
  color: var(--c-primary);
  letter-spacing: -0.005em;
}
.filters {
  display: flex; flex-wrap: wrap; gap: 0;
  margin-bottom: 64px;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 0;
  align-items: baseline;
}
.filters::before {
  content: "Index";
  font-family: var(--ff-body); font-size: 18px;
  color: var(--c-muted);
  margin-right: 32px;
  padding-bottom: 18px;
}
.filter-btn {
  background: transparent;
  border: 0;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
  color: var(--c-text);
  padding: 18px 24px;
  cursor: pointer;
  font: 500 11px var(--ff-body);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.filter-btn:hover { color: var(--c-primary); }
.filter-btn.is-active {
  color: var(--c-primary);
  border-bottom-color: var(--c-primary);
}
.projects.var-mosaic { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 320px; }
.projects.var-mosaic .project:nth-child(1) { grid-row: span 2; }
.projects.var-mosaic .project:nth-child(1) .project__image { aspect-ratio: auto; height: 100%; min-height: 100%; }
.projects.var-mosaic .project:nth-child(1) .project__body { display: none; }
.projects.var-mosaic .project:nth-child(1) .project__overlay-meta {
  position: absolute; inset: auto 0 0 0;
  background: linear-gradient(180deg, transparent, rgba(6,26,48,0.92));
  color: var(--c-bg);
  padding: 36px;
  z-index: 3;
}
.projects.var-mosaic .project:nth-child(1) .project__overlay-meta h3 { color: var(--c-bg); margin: 0; font-family: var(--ff-body); font-size: 26px; font-weight: 400; }
.projects.var-list { grid-template-columns: 1fr; gap: 0; }
.projects.var-list .project {
  display: grid;
  grid-template-columns: 280px 1fr auto;
  gap: 56px;
  padding: 40px 0;
  border-top: 1px solid var(--c-line);
  align-items: center;
}
.projects.var-list .project:last-child { border-bottom: 1px solid var(--c-line); }
.projects.var-list .project__image { aspect-ratio: 4/3; height: auto; }
.projects.var-list .project__body {
  border-top: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: start;
}
.projects.var-list .project__body-main { width: 100%; }
.projects.var-list .project__body-meta { display: none; }
.reviews-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: end;
  margin-bottom: 96px;
  padding-top: 32px;
  border-top: 1px solid var(--c-line);
}
.reviews-head h2 { margin: 0; }
.reviews-rating {
  display: flex; align-items: center; gap: 24px;
  background: transparent;
  border: 0;
  padding: 0;
  border-radius: 0;
  justify-self: end;
}
.reviews-rating__google {
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: 17px;
  color: var(--c-anthracite);
  font-family: var(--ff-body);
}
.reviews-rating__google span:nth-child(1) { color: #4285F4; }
.reviews-rating__google span:nth-child(2) { color: #EA4335; }
.reviews-rating__google span:nth-child(3) { color: #FBBC05; }
.reviews-rating__google span:nth-child(4) { color: #4285F4; }
.reviews-rating__google span:nth-child(5) { color: #34A853; }
.reviews-rating__google span:nth-child(6) { color: #EA4335; }
.reviews-rating__score {
  display: flex; flex-direction: column;
  border-left: 1px solid var(--c-line);
  padding-left: 24px;
}
.reviews-rating__num {
  font-family: var(--ff-body);
  font-size: 26px; font-weight: 400; color: var(--c-primary);
  line-height: 1;
  letter-spacing: -0.02em;
}
.reviews-rating__stars { color: #FBBC05; font-size: 13px; letter-spacing: 1px; margin-top: 4px; }
.reviews-rating__count { font-size: 11px; color: var(--c-muted); margin-top: 4px; letter-spacing: 0.12em; text-transform: uppercase; }
.reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--c-line);
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.review {
  background: var(--c-bg);
  border: 0;
  border-radius: 0;
  padding: 48px 40px;
  display: flex; flex-direction: column; gap: 24px;
}
.s--alt .review { background: var(--c-bg-alt); }
.review__head {
  display: flex; align-items: baseline; gap: 14px;
  font-family: var(--ff-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-muted);
}
.review__name { font-weight: 600; color: var(--c-primary); font-size: 11px; letter-spacing: 0.18em; }
.review__date { color: var(--c-muted); }
.review__stars { color: #FBBC05; letter-spacing: 2px; font-size: 13px; }
.review__body {
  font-family: var(--ff-body); font-size: 22px;
  line-height: 1.45;
  color: var(--c-anthracite);
  margin: 0;
  font-weight: 400;
  letter-spacing: -0.005em;
}
.review__source {
  font-size: 10px;
  color: var(--c-muted);
  display: flex; align-items: center; gap: 6px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--c-line);
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 120px;
  align-items: center;
}
.split--reverse .split__media { order: 2; }
.split__media { aspect-ratio: 4/5; min-height: 640px; }
.split__copy h2 { margin-bottom: 24px; font-size: 44px; }
.split__copy p { font-size: 18px; line-height: 1.7; max-width: 44ch; }
.split__list {
  list-style: none; padding: 0; margin: 40px 0 0;
  display: grid; gap: 0; grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--c-line);
}
.split__list li {
  display: flex; align-items: baseline; gap: 14px;
  font-family: var(--ff-body);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--c-text);
  padding: 18px 0;
  border-bottom: 1px solid var(--c-line);
}
.split__list li::before {
  content: counter(l, decimal-leading-zero);
  counter-increment: l;
  font-family: var(--ff-body); font-size: 16px;
  color: var(--c-muted);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  flex: 0 0 auto;
}
.split__list { counter-reset: l; }
.cta-band {
  text-align: center;
  padding: 200px 0;
  background: var(--c-primary-dark);
  color: var(--c-bg);
  position: relative;
}
.cta-band__chapter {
  font-family: var(--ff-body); font-size: 22px;
  color: rgba(246,243,236,0.5);
  margin-bottom: 56px;
}
.cta-band h2 {
  color: var(--c-bg);
  font-size: 40px;
  max-width: 18ch;
  margin: 0 auto 32px;
  line-height: 0.96;
  letter-spacing: -0.028em;
}
.cta-band p {
  font-family: var(--ff-body); color: rgba(246,243,236,0.78);
  font-size: 24px;
  max-width: 38ch;
  margin: 0 auto 56px;
  line-height: 1.4;
}
.foot {
  background: var(--c-primary-dark);
  color: rgba(246,243,236,0.7);
  padding: 140px 0 0;
  font-size: 14px;
  font-family: var(--ff-body);
}
.foot__cols {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 80px;
  padding-bottom: 120px;
}
.foot__brand-mark {
  font-family: var(--ff-body);
  font-size: 40px;
  color: var(--c-bg);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 16px;
  display: block;
}
.foot__brand-mark em { }
.foot__brand h4, .foot__col h4 {
  color: var(--c-bg);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0 0 24px;
  font-weight: 500;
  font-family: var(--ff-body);
}
.foot ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.foot a { color: rgba(246,243,236,0.7); text-decoration: none; }
.foot a:hover { color: var(--c-bg); }
.foot__address { line-height: 1.85; }
.foot__address strong { color: var(--c-bg); font-weight: 500; }
.foot__copy {
  border-top: 1px solid rgba(246,243,236,0.1);
  padding: 32px 0;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px;
  color: rgba(246,243,236,0.5);
  flex-wrap: wrap;
  gap: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.values {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--c-line);
}
.value {
  display: flex; flex-direction: column; gap: 28px;
  padding: 48px 32px 0 0;
  border-right: 1px solid var(--c-line);
}
.value:last-child { border-right: 0; padding-right: 0; }
.value__num {
  font-family: var(--ff-body); font-weight: 400;
  font-size: 22px;
  color: var(--c-primary);
  letter-spacing: -0.005em;
  display: flex; align-items: baseline; gap: 12px;
}
.value__num sup {
  font-family: var(--ff-body);
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
  color: var(--c-muted);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.value__icon { display: none; }
.value h3 {
  font-family: var(--ff-body);
  font-weight: 400;
  font-size: 40px;
  margin: 0;
  letter-spacing: -0.018em;
  line-height: 1;
}
.value p { margin: 0; font-size: 16px; line-height: 1.7; max-width: 36ch; }
.gf {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 120px;
  align-items: start;
}
.gf__media { aspect-ratio: 4/5; min-height: 700px; }
.gf__role {
  font-family: var(--ff-body);
  font-size: 11px; font-weight: 500; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--c-muted);
  margin: 0 0 24px;
}
.gf__name {
  font-family: var(--ff-body);
  font-weight: 400;
  font-size: 80px; margin: 0 0 56px;
  letter-spacing: -0.025em;
  line-height: 0.96;
}
.gf__quote {
  font-family: var(--ff-body); font-size: 32px;
  color: var(--c-primary);
  font-weight: 400;
  line-height: 1.35;
  border-left: 0;
  padding: 32px 0;
  margin: 0 0 48px;
  letter-spacing: -0.01em;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  position: relative;
}
.gf__quote::before {
  content: "“";
  position: absolute;
  top: 14px; left: -36px;
  font-size: 80px;
  color: var(--c-line);
  line-height: 1;
}
.gf__bio { font-size: 17px; line-height: 1.8; color: var(--c-text); max-width: 50ch; }
.contact {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 120px;
}
.contact-form {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 36px;
}
.field { display: flex; flex-direction: column; gap: 14px; }
.field label {
  font-family: var(--ff-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-muted);
  display: flex; align-items: baseline; gap: 14px;
}
.field label::before {
  content: counter(f, decimal-leading-zero);
  counter-increment: f;
  font-family: var(--ff-body); font-size: 14px;
  color: var(--c-muted);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
}
.contact-form { counter-reset: f; }
.field input, .field textarea {
  font: 400 18px var(--ff-body);
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid var(--c-line);
  border-radius: 0;
  background: transparent;
  color: var(--c-primary);
  width: 100%;
}
.field input::placeholder, .field textarea::placeholder {
  color: var(--c-muted);
  opacity: 0.6; font-family: var(--ff-body);
  font-size: 18px;
}
.field input:focus, .field textarea:focus {
  outline: 0;
  border-bottom-color: var(--c-primary);
  box-shadow: none;
}
.field textarea { resize: vertical; min-height: 160px; }
.checkbox {
  display: flex; gap: 12px; align-items: start;
  font-size: 13px; color: var(--c-muted);
  margin: 24px 0 32px;
  line-height: 1.6;
  max-width: 60ch;
}
.checkbox input {
  margin-top: 4px;
  flex-shrink: 0;
}
.contact-info {
  display: flex; flex-direction: column; gap: 0;
  border-top: 1px solid var(--c-line);
}
.info-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  display: flex; flex-direction: column; gap: 0;
}
.info-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid var(--c-line);
  font-size: 16px;
}
.info-row__icon {
  font-family: var(--ff-body); font-size: 14px;
  color: var(--c-muted);
  width: auto;
  height: auto;
  background: transparent;
  display: block;
  text-align: left;
  letter-spacing: 0.04em;
}
.info-row__icon svg { display: none; }
.info-row__body strong {
  display: block;
  color: var(--c-primary);
  margin-bottom: 4px;
  font-family: var(--ff-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.info-row__body { color: var(--c-text); line-height: 1.6; }
.info-row__body a { color: var(--c-primary); }
.map-card {
  position: relative;
  margin-top: 48px;
  background: repeating-linear-gradient(0deg, #ddd9cd 0 28px, #d4d0c4 28px 56px),
              repeating-linear-gradient(90deg, #ddd9cd 0 28px, transparent 28px 56px);
  border: 1px solid var(--c-line);
  border-radius: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.map-card__pin {
  position: absolute;
  top: 50%; left: 50%;
  width: 28px; height: 28px;
  background: var(--c-primary);
  border: 3px solid var(--c-bg);
  border-radius: 50% 50% 50% 0;
  transform: translate(-50%, -100%) rotate(-45deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.map-card__pin::after {
  content: "";
  position: absolute;
  width: 8px; height: 8px;
  background: var(--c-bg);
  border-radius: 50%;
  top: 7px; left: 7px;
}
.map-card__overlay {
  position: absolute; inset: 0;
  background: rgba(6,26,48,0.92);
  color: var(--c-bg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  padding: 40px;
  gap: 20px;
}
.map-card__overlay h4 {
  color: var(--c-bg);
  margin: 0;
  font-family: var(--ff-body);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.015em;
}
.map-card__overlay p { font-size: 13px; margin: 0; max-width: 38ch; line-height: 1.6; opacity: 0.85; font-family: var(--ff-body); }
.bh-block {
  background: transparent;
  border-left: 0;
  padding: 56px 0 0;
  display: grid;
  grid-template-columns: 5fr 6fr auto;
  gap: 80px;
  align-items: start;
  border-radius: 0;
  box-shadow: none;
  border-top: 1px solid var(--c-line);
}
.bh-block__tag {
  font-family: var(--ff-body); font-size: 18px;
  color: var(--c-primary);
  letter-spacing: -0.005em;
}
.bh-block h3 {
  font-family: var(--ff-body);
  font-weight: 400;
  margin: 0 0 16px;
  font-size: 40px;
  letter-spacing: -0.018em;
  line-height: 1.05;
}
.bh-block p { margin: 0; font-size: 17px; line-height: 1.7; max-width: 50ch; }
.bh-block__cta { padding-top: 18px; }
.s__chapter sup, .cta-band__chapter, .s__chapter, .baufi__chapter { display: none !important; }
.filters::before { display: none !important; }
.hero__title em, .foot__brand-mark em, .ph__logo-mark { font-weight: 600; color: inherit; }
.ph__logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
/* MD: Logo-Höhe wird in Elementor gesteuert – keine harte Sperre mehr. */
.ph__row { gap: 28px; height: 96px; }
.ph.is-shrunk .ph__row { height: 72px; }
.ph__nav { gap: 28px; margin-left: auto; flex-wrap: nowrap; }
.ph__nav a {
  font-size: 13px;
  letter-spacing: 0.02em;
  text-transform: none;
  font-weight: 500;
  white-space: nowrap;
  padding: 8px 0;
}
.ph__cta.btn--primary {
  margin-left: 8px;
  padding: 14px 22px;
  font-size: 11px;
  letter-spacing: 0.16em;
  white-space: nowrap;
}
.ph__cta.btn--primary::before { display: none; }
.ph__cta.btn--primary::after { content: "→"; font-size: 13px; transition: transform .3s; margin-left: 6px; }
.ph__cta.btn--primary:hover::after { transform: translateX(4px); }
.container { padding: 0 56px; }
.hero { align-items: center; padding: 120px 0; min-height: 84vh; }
.hero__content {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center;
  grid-template-columns: 1fr;
  gap: 0;
}
.hero__caption { display: none !important; }
.hero__lead-block { max-width: 60ch; }
.hero__eyebrow { margin-bottom: 32px; }
.hero__subline { margin: 28px 0 44px; }
.hero--split, .hero--editorial {
  padding: 100px 0 !important;
  min-height: auto;
}
.hero--split .hero__content, .hero--editorial .hero__content {
  grid-template-columns: 1.05fr 1fr !important;
  gap: 80px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center;
}
.hero--split .hero__media, .hero--editorial .hero__media {
  aspect-ratio: 4/3;
  min-height: 520px;
  width: 100%;
}
.hero-stripe { padding: 60px 0; align-items: center; min-height: 480px; }
.hero-stripe__crumbs { margin-bottom: 32px; }
.s__head {
  grid-template-columns: 1fr 1fr;
  margin-bottom: 80px;
  padding-top: 24px;
}
.intro { grid-template-columns: 1fr 1fr; }
.intro__col-a { display: none; }
.baufi { grid-template-columns: 5fr 7fr; gap: 64px; }
.hero__subline, .hero-stripe__lead, .s__lead, .cta-band p, .highlight p, .review__body, .baufi__hint {
  font-style: normal !important;
  font-family: var(--ff-body) !important;
}
.review__body { font-size: 17px; line-height: 1.6; font-weight: 400; }
.s__lead { font-size: 19px; line-height: 1.5; font-weight: 400; }
.hero__subline { font-size: 21px; font-weight: 400; line-height: 1.5; }
.hero-stripe__lead { font-size: 19px; font-weight: 400; }
.cta-band p { font-size: 19px; font-weight: 400; }
.highlight p { font-size: 17px; font-weight: 400; }
.project__title { font-weight: 600; }
.project__year { font-weight: 600; font-size: 14px; letter-spacing: 0; color: var(--c-muted); }
.card__title { font-weight: 600; }
.highlight h3 { font-weight: 600; }
.foot__brand-mark { font-weight: 700; font-size: 28px; letter-spacing: -0.005em; }
.hero-stripe__crumbs::before { display: none !important; }
.reviews-rating__num { font-weight: 700; }
.card__icon { display: none; }
.split__list li::before {
  font-family: var(--ff-body);
  font-weight: 600;
  color: var(--c-primary);
  font-size: 13px;
  letter-spacing: 0.06em;
}
.baufi__check { font-family: var(--ff-body); font-weight: 700; color: var(--c-success); font-size: 14px; }
.trustindex {
  background: #fff;
  border: 1px solid var(--c-border);
  padding: 48px 56px 40px;
  border-radius: 0;
}
.trustindex__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 32px;
  flex-wrap: wrap;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--c-border);
  margin-bottom: 40px;
}
.trustindex__brand { display: flex; align-items: center; gap: 16px; }
.trustindex__google-icon { flex-shrink: 0; }
.trustindex__brand-text { display: flex; flex-direction: column; }
.trustindex__brand-name {
  font-family: var(--ff-body);
  font-weight: 600;
  font-size: 17px;
  color: var(--c-primary);
  letter-spacing: 0;
}
.trustindex__brand-meta {
  font-size: 13px;
  color: var(--c-muted);
  margin-top: 2px;
}
.trustindex__score { text-align: right; }
.trustindex__score-num {
  font-family: var(--ff-body);
  font-weight: 700;
  font-size: 40px;
  color: var(--c-primary);
  line-height: 1;
  letter-spacing: -0.02em;
}
.trustindex__score-stars {
  color: #fbbc05;
  font-size: 18px;
  letter-spacing: 2px;
  margin-top: 6px;
}
.trustindex__score-count {
  font-size: 12px;
  color: var(--c-muted);
  margin-top: 6px;
  letter-spacing: 0.02em;
}
.trustindex__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ti-card {
  background: #fafaf8;
  border: 1px solid var(--c-border);
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ti-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ti-card__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--c-primary);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 16px;
  flex-shrink: 0;
}
.ti-card__author { display: flex; flex-direction: column; flex: 1; }
.ti-card__name {
  font-weight: 600;
  font-size: 14px;
  color: var(--c-primary);
}
.ti-card__date { font-size: 12px; color: var(--c-muted); }
.ti-card__google { flex-shrink: 0; opacity: 0.7; }
.ti-card__stars { color: #fbbc05; font-size: 15px; letter-spacing: 1px; }
.ti-card__body {
  font-size: 14px;
  line-height: 1.6;
  color: var(--c-primary);
  margin: 0;
}
.trustindex__footer {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--c-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.trustindex__more {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-primary);
  letter-spacing: 0.04em;
  text-decoration: none;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2px;
}
.trustindex__more:hover { color: var(--c-accent); border-color: var(--c-accent); }
.trustindex__powered {
  font-size: 11px;
  color: var(--c-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.trustindex__powered strong { color: var(--c-primary); font-weight: 700; }
.ig__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 32px;
  flex-wrap: wrap;
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--c-border);
}
.ig__title {
  font-family: var(--ff-body);
  font-weight: 600;
  font-size: 36px;
  letter-spacing: -0.01em;
  color: var(--c-primary);
  margin: 12px 0 14px;
}
.ig__lead {
  font-size: 17px;
  line-height: 1.5;
  color: var(--c-muted);
  max-width: 52ch;
  margin: 0;
}
.ig__follow { white-space: nowrap; align-self: center; display: inline-flex; align-items: center; }
.ig__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
}
.ig__tile {
  position: relative;
  aspect-ratio: 1 / 1;
  display: block;
  overflow: hidden;
  background: #eee;
}
.ig__tile-img {
  position: absolute; inset: 0;
  transition: transform .5s ease;
}
.ig__tile-overlay {
  position: absolute; inset: 0;
  background: rgba(0, 44, 88, 0.75);
  color: #fff;
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity .25s ease;
}
.ig__tile:hover .ig__tile-overlay { opacity: 1; }
.ig__tile:hover .ig__tile-img { transform: scale(1.05); }
.ig__widget-tag {
  margin-top: 24px;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--c-muted);
  text-align: right;
}

/* — Patch: aliases used in trustindex/insta blocks but never defined in :root */
:root {
  --c-border: #e6e6e2;
  --c-accent: #0073aa;
}

/* MD: don't double-clamp inside Elementor wide sections */
.elementor-section.elementor-section-stretched .container { max-width: var(--container); padding: 0 56px; margin: 0 auto; }
@media (max-width: 768px) { .container { padding: 0 24px; } }

/* MD: tame Hello Elementor's body resets that fight our buttons */
.btn, .btn:hover { text-decoration: none; }
.elementor a.btn, .elementor a.btn:hover { text-decoration: none; }
header.ph a, footer.foot a { text-decoration: none; }

body, .elementor-widget-text-editor, .elementor-widget-html { font-family: 'Open Sans', system-ui, sans-serif; }

/* =========================================================================
   AGGRESSIVE OVERRIDES — beat Elementor frontend.min.css specificity.
   Reason: Elementor's `.elementor img` (specificity 0,2,0) was overriding
   our `.ph__logo-img` (0,1,0) and stretching the logo PNG to full width.
   Also Elementor wraps every HTML widget in `.elementor-widget-container`
   inside an `e-con` flex parent — which broke .hero, .container, .s widths.
   These overrides use `!important` deliberately to ensure mockup parity.
   ========================================================================= */

/* MD: Logo-!important-Sperren entfernt – Größe wird vollständig in Elementor gesteuert. */

/* --- HEADER: keep light bg + flex row even inside Elementor wrap --- */
.elementor header.ph,
header.ph {
  display: block !important;
  width: 100% !important;
  background: rgba(255,255,255,0.92) !important;
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--c-line-soft);
  position: sticky; top: 0; z-index: 50;
}
.elementor .ph__row,
.ph__row {
  display: flex !important;
  align-items: center !important;
  gap: 28px !important;
  height: 96px !important;
  width: 100% !important;
}
.ph.is-shrunk .ph__row { height: 72px !important; }
.elementor .ph__nav, .ph__nav {
  display: flex !important;
  gap: 28px !important;
  margin-left: auto !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}

/* --- CONTAINER: enforce max-width + horizontal padding everywhere --- */
.elementor .container,
.container {
  width: 100% !important;
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 56px !important;
  padding-right: 56px !important;
  box-sizing: border-box !important;
}
@media (max-width: 768px) {
  .elementor .container, .container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* --- ELEMENTOR HTML WIDGET WRAPPER: full width, no display:flex break --- */
.elementor-widget-html,
.elementor-widget-html > .elementor-widget-container {
  width: 100% !important;
  display: block !important;
}

/* --- HERO: own its layout, fill viewport width --- */
.elementor .hero,
.hero {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  min-height: 86vh !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: #fff !important;
  background: var(--c-primary-dark) !important;
}
.hero__bg, .hero__overlay {
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
}
.hero__overlay {
  background: linear-gradient(180deg, rgba(0,24,43,0.20) 0%, rgba(0,24,43,0.55) 60%, rgba(0,24,43,0.85) 100%) !important;
  z-index: 1 !important;
}
.hero__content {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: block !important;
}
.hero__lead-block {
  max-width: 720px !important;
  width: 100% !important;
}
.hero__title {
  font-family: 'Open Sans', system-ui, sans-serif !important;
  color: #fff !important;
  font-size: 80px !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.0 !important;
  max-width: 14ch !important;
  margin: 0 !important;
}
@media (max-width: 768px) {
  .hero__title { font-size: 44px !important; }
}
.hero__eyebrow {
  display: flex !important;
  align-items: baseline !important;
  gap: 14px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.75) !important;
  margin: 0 0 32px !important;
}
.hero__subline {
  font-size: 22px !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,0.92) !important;
  max-width: 36ch !important;
  margin: 32px 0 44px !important;
  line-height: 1.45 !important;
}
.hero__ctas { display: flex !important; gap: 24px !important; flex-wrap: wrap !important; align-items: center !important; }

/* --- HERO STRIPE (subpages) --- */
.elementor .hero-stripe,
.hero-stripe {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  min-height: 460px !important;
  padding: 60px 0 !important;
  background: var(--c-primary-dark) !important;
  color: #fff !important;
}
.hero-stripe__bg { position: absolute !important; inset: 0 !important; opacity: 0.32 !important; z-index: 0 !important; }
.hero-stripe__overlay { position: absolute !important; inset: 0 !important; background: linear-gradient(180deg, rgba(0,24,43,0.3) 0%, rgba(0,24,43,0.92) 100%) !important; z-index: 1 !important; }
.hero-stripe__content { position: relative !important; z-index: 2 !important; padding: 60px 0 !important; width: 100% !important; }
.hero-stripe h1 { color: #fff !important; font-size: 56px !important; margin: 0 !important; line-height: 1.0 !important; letter-spacing: -0.025em !important; font-weight: 600 !important; }
.hero-stripe__lead { font-size: 20px !important; color: rgba(255,255,255,0.88) !important; max-width: 44ch !important; margin: 24px 0 0 !important; line-height: 1.5 !important; font-weight: 400 !important; }
.hero-stripe__crumbs {
  font-size: 11px !important;
  color: rgba(255,255,255,0.65) !important;
  margin-bottom: 32px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  display: flex !important; gap: 14px !important; align-items: baseline !important;
}
.hero-stripe__crumbs a { color: rgba(255,255,255,0.65) !important; }

/* --- SECTION RHYTHM --- */
.elementor .s, .s { display: block !important; padding: 120px 0 !important; width: 100% !important; }
.elementor .s.s--alt, .s--alt { background: #f5f5f3 !important; }
.elementor .s.s--dark, .s--dark { background: var(--c-primary) !important; color: #fff !important; }
.s--dark h2, .s--dark h3, .s--dark .s__title { color: #fff !important; }
.elementor .s.s--darker, .s--darker { background: var(--c-primary-dark) !important; color: #fff !important; }
@media (max-width: 768px) { .elementor .s, .s { padding: 70px 0 !important; } }

/* --- SECTION HEAD --- */
.s__head {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  margin-bottom: 80px !important;
  align-items: start !important;
  padding-top: 32px !important;
  border-top: 1px solid var(--c-line) !important;
}
@media (max-width: 768px) { .s__head { grid-template-columns: 1fr !important; gap: 24px !important; margin-bottom: 56px !important; } }
.s__title { margin: 0 !important; font-size: 44px !important; line-height: 1.05 !important; letter-spacing: -0.022em !important; color: var(--c-primary) !important; font-weight: 600 !important; }
@media (max-width: 768px) { .s__title { font-size: 32px !important; } }
.s--dark .s__title, .s--darker .s__title, .cta-band h2, .s--dark h2, .s--darker h2 { color: #fff !important; }
.s__lead { font-size: 19px !important; color: var(--c-text) !important; line-height: 1.5 !important; max-width: 36ch !important; margin: 0 !important; font-weight: 400 !important; }
.s--dark .s__lead, .s--darker .s__lead { color: rgba(255,255,255,0.88) !important; }
.s__eyebrow {
  display: inline-flex !important; align-items: baseline !important; gap: 12px !important;
  font-size: 11px !important; font-weight: 500 !important;
  letter-spacing: 0.28em !important; text-transform: uppercase !important;
  color: var(--c-muted) !important; margin-bottom: 28px !important;
}

/* --- INTRO --- */
.intro { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 80px !important; align-items: start !important; }
@media (max-width: 768px) { .intro { grid-template-columns: 1fr !important; gap: 32px !important; } }

/* --- CARDS --- */
.cards { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 1px !important; background: var(--c-line) !important; border-top: 1px solid var(--c-line) !important; border-bottom: 1px solid var(--c-line) !important; }
@media (max-width: 768px) { .cards { grid-template-columns: 1fr !important; } }
.card { background: #fff !important; padding: 64px 48px 56px !important; min-height: 420px !important; display: flex !important; flex-direction: column !important; gap: 24px !important; transition: background .35s ease, color .35s ease !important; }
.s--alt .card { background: #f5f5f3 !important; }
.card:hover { background: var(--c-primary) !important; color: #fff !important; }
.card:hover .card__title, .card:hover .card__body, .card:hover .card__num, .card:hover .btn--link { color: #fff !important; }
.card__title { font-size: 26px !important; color: var(--c-primary) !important; font-weight: 600 !important; margin: 0 !important; line-height: 1.05 !important; }
.card__num { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 0.28em !important; text-transform: uppercase !important; color: var(--c-muted) !important; display: flex !important; align-items: baseline !important; gap: 14px !important; }
.card__body { color: var(--c-text) !important; font-size: 16px !important; line-height: 1.7 !important; max-width: 32ch !important; margin: 0 !important; }
.card__cta { margin-top: auto !important; padding-top: 12px !important; }

/* --- BUTTONS --- */
.elementor a.btn, a.btn, .btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-family: 'Open Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--c-primary) !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.btn::before { content: "" !important; display: inline-block !important; width: 24px !important; height: 1px !important; background: currentColor !important; transition: width .3s ease !important; }
.btn:hover::before { width: 36px !important; }
.btn--primary {
  padding: 16px 26px !important;
  background: var(--c-primary) !important;
  color: #fff !important;
}
.btn--primary::before { display: none !important; }
.btn--primary::after { content: "→" !important; font-size: 14px !important; margin-left: 6px !important; }
.btn--primary:hover { background: var(--c-primary-dark) !important; }
.btn--outline {
  padding: 16px 26px !important;
  background: transparent !important;
  color: var(--c-primary) !important;
  border: 1px solid var(--c-primary) !important;
}
.btn--outline::before { display: none !important; }
.btn--outline::after { content: "→" !important; font-size: 14px !important; margin-left: 6px !important; }
.btn--outline:hover { background: var(--c-primary) !important; color: #fff !important; }
.btn--on-dark-filled {
  padding: 16px 26px !important;
  background: #fff !important;
  color: var(--c-primary) !important;
}
.btn--on-dark-filled::before { display: none !important; }
.btn--on-dark-filled::after { content: "→" !important; font-size: 14px !important; margin-left: 6px !important; }
.btn--on-dark-outline {
  padding: 16px 26px !important;
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.55) !important;
}
.btn--on-dark-outline::before { display: none !important; }
.btn--on-dark-outline::after { content: "→" !important; font-size: 14px !important; margin-left: 6px !important; }
.btn--on-dark-outline:hover { background: rgba(255,255,255,0.08) !important; border-color: #fff !important; }
.btn--link { padding: 0 !important; background: transparent !important; border: 0 !important; color: var(--c-primary) !important; }
.btn--link::before { display: none !important; }
.btn--link::after { content: "→" !important; margin-left: 6px !important; }

/* --- HEADER NAV LINKS --- */
.elementor .ph__nav a, .ph__nav a {
  position: relative !important;
  color: var(--c-anthracite) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  padding: 8px 0 !important;
}
.elementor .ph__cta.btn--primary, .ph__cta.btn--primary {
  margin-left: 8px !important;
  padding: 12px 20px !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  white-space: nowrap !important;
  background: var(--c-primary) !important;
  color: #fff !important;
}

/* --- PROJECTS GRID + CARDS --- */
.projects { display: grid !important; gap: 64px 32px !important; }
.projects--3 { grid-template-columns: repeat(3, 1fr) !important; }
.projects--2 { grid-template-columns: repeat(2, 1fr) !important; gap: 80px 48px !important; }
@media (max-width: 768px) { .projects--3, .projects--2 { grid-template-columns: 1fr !important; gap: 48px !important; } }
.project { display: flex !important; flex-direction: column !important; cursor: pointer !important; background: transparent !important; }
.project__image { aspect-ratio: 4/3 !important; background-color: #d8d4c7 !important; position: relative !important; overflow: hidden !important; }
.project__badge { position: absolute !important; top: 20px !important; left: 20px !important; font-size: 10px !important; font-weight: 600 !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; padding: 8px 14px !important; z-index: 2 !important; }
.project__badge--current { background: var(--c-primary) !important; color: #fff !important; }
.project__badge--done { background: #fff !important; color: var(--c-primary) !important; }
.project__body { padding: 24px 0 0 !important; border-top: 1px solid var(--c-line) !important; margin-top: 0 !important; padding-top: 24px !important; display: grid !important; grid-template-columns: 1fr auto !important; gap: 8px 24px !important; align-items: baseline !important; }
.project__title { font-size: 22px !important; font-weight: 600 !important; color: var(--c-primary) !important; margin: 0 !important; line-height: 1.1 !important; letter-spacing: -0.01em !important; }
.project__type { font-size: 10px !important; color: var(--c-muted) !important; text-transform: uppercase !important; letter-spacing: 0.22em !important; font-weight: 500 !important; margin: 0 0 6px !important; }
.project__meta { font-size: 11px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--c-muted) !important; margin: 6px 0 0 !important; }

/* --- FILTERS (Projekte page) --- */
.filters { display: flex !important; flex-wrap: wrap !important; gap: 0 !important; margin-bottom: 64px !important; border-bottom: 1px solid var(--c-line) !important; padding-bottom: 0 !important; align-items: baseline !important; background: transparent !important; }
.filter-btn { background: transparent !important; border: 0 !important; border-bottom: 2px solid transparent !important; margin-bottom: -1px !important; color: var(--c-text) !important; padding: 16px 22px !important; cursor: pointer !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; }
.filter-btn:hover { color: var(--c-primary) !important; }
.filter-btn.is-active { color: var(--c-primary) !important; border-bottom-color: var(--c-primary) !important; }

/* --- HIGHLIGHT (Beratung & Finanzierung) --- */
.highlight { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0 !important; background: var(--c-primary) !important; color: #fff !important; overflow: hidden !important; }
@media (max-width: 768px) { .highlight { grid-template-columns: 1fr !important; } }
.highlight__col { padding: 80px 64px !important; border-right: 1px solid rgba(255,255,255,0.12) !important; display: flex !important; flex-direction: column !important; gap: 18px !important; }
.highlight__col:last-child { border-right: 0 !important; }
.highlight h3 { color: #fff !important; font-size: 32px !important; font-weight: 600 !important; margin: 0 !important; letter-spacing: -0.018em !important; line-height: 1.1 !important; }
.highlight p { color: rgba(255,255,255,0.85) !important; font-size: 17px !important; margin: 6px 0 0 !important; line-height: 1.5 !important; max-width: 36ch !important; font-weight: 400 !important; }
.highlight__num { font-size: 16px !important; color: rgba(255,255,255,0.6) !important; }
.highlight__cta { margin-top: 18px !important; align-self: flex-start !important; }

/* --- BAUFI BLOCK --- */
.baufi { display: grid !important; grid-template-columns: 5fr 7fr !important; gap: 56px !important; align-items: start !important; }
@media (max-width: 768px) { .baufi { grid-template-columns: 1fr !important; gap: 32px !important; } }
.baufi__widget { background: #fff !important; border: 1px solid var(--c-line) !important; padding: 12px !important; }
.baufi__iframe { background: #fff !important; border: 1px dashed var(--c-line) !important; min-height: 560px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important; padding: 40px !important; color: var(--c-muted) !important; gap: 16px !important; }

/* --- SPLIT BLOCKS (Leistungen) --- */
.split { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 96px !important; align-items: center !important; }
@media (max-width: 768px) { .split { grid-template-columns: 1fr !important; gap: 40px !important; } }
.split--reverse .split__media { order: 2 !important; }
@media (max-width: 768px) { .split--reverse .split__media { order: 1 !important; } }
.split__copy h2 { font-size: 44px !important; margin-bottom: 24px !important; }
.split__copy p { font-size: 17px !important; line-height: 1.7 !important; max-width: 44ch !important; }
.split__list { list-style: none !important; padding: 0 !important; margin: 32px 0 0 !important; display: grid !important; gap: 0 !important; grid-template-columns: 1fr 1fr !important; border-top: 1px solid var(--c-line) !important; counter-reset: l !important; }
.split__list li { display: flex !important; align-items: baseline !important; gap: 14px !important; font-size: 12px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; font-weight: 600 !important; color: var(--c-text) !important; padding: 18px 0 !important; border-bottom: 1px solid var(--c-line) !important; }
.split__list li::before { content: counter(l, decimal-leading-zero) !important; counter-increment: l !important; font-size: 13px !important; color: var(--c-primary) !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; flex: 0 0 auto !important; }

/* --- VALUES (Über uns) --- */
.values { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 0 !important; border-top: 1px solid var(--c-line) !important; }
@media (max-width: 768px) { .values { grid-template-columns: 1fr !important; } }
.value { display: flex !important; flex-direction: column !important; gap: 24px !important; padding: 48px 32px 0 0 !important; border-right: 1px solid var(--c-line) !important; }
.value:last-child { border-right: 0 !important; padding-right: 0 !important; }
.value h3 { font-size: 36px !important; margin: 0 !important; letter-spacing: -0.018em !important; line-height: 1.05 !important; font-weight: 600 !important; color: var(--c-primary) !important; }
.value p { margin: 0 !important; font-size: 16px !important; line-height: 1.7 !important; max-width: 36ch !important; color: var(--c-text) !important; }
.value__num { font-size: 22px !important; color: var(--c-primary) !important; font-weight: 600 !important; display: flex !important; align-items: baseline !important; gap: 12px !important; }

/* --- GF PORTRAIT BLOCK --- */
.gf { display: grid !important; grid-template-columns: 5fr 6fr !important; gap: 96px !important; align-items: start !important; }
@media (max-width: 768px) { .gf { grid-template-columns: 1fr !important; gap: 40px !important; } }
.gf__media { aspect-ratio: 4/5 !important; min-height: 600px !important; background-color: #d8d4c7 !important; }
@media (max-width: 768px) { .gf__media { min-height: 360px !important; aspect-ratio: 4/3 !important; } }
.gf__quote { font-size: 28px !important; color: var(--c-primary) !important; font-weight: 600 !important; line-height: 1.35 !important; padding: 32px 0 !important; margin: 0 0 40px !important; letter-spacing: -0.01em !important; border-top: 1px solid var(--c-line) !important; border-bottom: 1px solid var(--c-line) !important; }
.gf__bio { font-size: 16px !important; line-height: 1.75 !important; color: var(--c-text) !important; max-width: 50ch !important; }

/* --- CONTACT FORM --- */
.contact { display: grid !important; grid-template-columns: 7fr 5fr !important; gap: 96px !important; }
@media (max-width: 768px) { .contact { grid-template-columns: 1fr !important; gap: 48px !important; } }
.contact-form { counter-reset: f !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
.field { display: flex !important; flex-direction: column !important; gap: 12px !important; }
.field label { font-size: 11px !important; font-weight: 600 !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; color: var(--c-muted) !important; }
.field input, .field textarea { font: 400 17px 'Open Sans', system-ui, sans-serif !important; padding: 14px 0 !important; border: 0 !important; border-bottom: 1px solid var(--c-line) !important; border-radius: 0 !important; background: transparent !important; color: var(--c-primary) !important; width: 100% !important; }
.field input:focus, .field textarea:focus { outline: 0 !important; border-bottom-color: var(--c-primary) !important; }
.form-row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 36px !important; margin-bottom: 32px !important; }
@media (max-width: 768px) { .form-row { grid-template-columns: 1fr !important; gap: 24px !important; } }

/* --- CTA BAND --- */
.elementor .cta-band, .cta-band { text-align: center !important; padding: 140px 0 !important; background: var(--c-primary-dark) !important; color: #fff !important; width: 100% !important; }
.cta-band h2 { color: #fff !important; font-size: 44px !important; max-width: 20ch !important; margin: 0 auto 24px !important; line-height: 1.05 !important; letter-spacing: -0.022em !important; font-weight: 600 !important; }
.cta-band p { color: rgba(255,255,255,0.8) !important; font-size: 19px !important; max-width: 40ch !important; margin: 0 auto 40px !important; line-height: 1.5 !important; }

/* --- FOOTER --- */
.elementor footer.foot, footer.foot { background: var(--c-primary-dark) !important; color: rgba(255,255,255,0.7) !important; padding: 100px 0 0 !important; font-size: 14px !important; width: 100% !important; display: block !important; }
.foot__cols { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr !important; gap: 64px !important; padding-bottom: 80px !important; }
@media (max-width: 768px) { .foot__cols { grid-template-columns: 1fr 1fr !important; gap: 32px !important; padding-bottom: 56px !important; } }
.foot__brand-mark { font-family: 'Open Sans', system-ui, sans-serif !important; font-size: 28px !important; color: #fff !important; font-weight: 700 !important; letter-spacing: -0.005em !important; line-height: 1 !important; margin-bottom: 16px !important; display: block !important; }
.foot__brand h4, .foot__col h4 { color: #fff !important; font-size: 11px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; margin: 0 0 20px !important; font-weight: 600 !important; }
.foot ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 10px !important; }
.foot a { color: rgba(255,255,255,0.7) !important; text-decoration: none !important; }
.foot a:hover { color: #fff !important; }
.foot__address { line-height: 1.85 !important; }
.foot__address strong { color: #fff !important; font-weight: 600 !important; }
.foot__copy { border-top: 1px solid rgba(255,255,255,0.1) !important; padding: 28px 0 !important; display: flex !important; justify-content: space-between !important; align-items: center !important; font-size: 11px !important; color: rgba(255,255,255,0.5) !important; flex-wrap: wrap !important; gap: 12px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; }

/* --- TRUSTINDEX --- */
.trustindex { background: #fff !important; border: 1px solid var(--c-line) !important; padding: 40px 48px !important; }
.trustindex__header { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; gap: 32px !important; flex-wrap: wrap !important; padding-bottom: 28px !important; border-bottom: 1px solid var(--c-line) !important; margin-bottom: 36px !important; }
.trustindex__cards { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; }
@media (max-width: 768px) { .trustindex__cards { grid-template-columns: 1fr !important; } }
.ti-card { background: #fafaf8 !important; border: 1px solid var(--c-line) !important; padding: 24px 22px !important; display: flex !important; flex-direction: column !important; gap: 12px !important; }

/* --- INSTAGRAM --- */
.ig__head { display: flex !important; justify-content: space-between !important; align-items: flex-end !important; gap: 32px !important; flex-wrap: wrap !important; margin-bottom: 40px !important; padding-bottom: 28px !important; border-bottom: 1px solid var(--c-line) !important; }
.ig__title { font-size: 36px !important; font-weight: 600 !important; letter-spacing: -0.01em !important; color: var(--c-primary) !important; margin: 12px 0 12px !important; }
.ig__grid { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; gap: 4px !important; }
@media (max-width: 768px) { .ig__grid { grid-template-columns: repeat(3, 1fr) !important; } }
.ig__tile { position: relative !important; aspect-ratio: 1/1 !important; display: block !important; overflow: hidden !important; background: #eee !important; }

/* --- BURGER MENU MOBILE --- */
.ph__burger { display: none; background: transparent; border: 0; width: 40px; height: 40px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; cursor: pointer; margin-left: auto; }
.ph__burger span { display: block; width: 22px; height: 1px; background: var(--c-primary); }
@media (max-width: 900px) {
  .ph__burger { display: inline-flex !important; }
  .ph__nav { display: none !important; }
  .ph__nav.is-open {
    display: flex !important; flex-direction: column !important;
    position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important;
    background: rgba(255,255,255,0.98) !important;
    backdrop-filter: blur(10px) !important;
    padding: 20px 24px !important; gap: 14px !important;
    border-bottom: 1px solid var(--c-line-soft) !important;
  }
  .ph__cta.btn--primary { display: none !important; }
}

/* --- HELLO ELEMENTOR layout cleanup: remove default content padding --- */
.site-main, .page-content { padding: 0 !important; max-width: none !important; }
.site-main > article, .post-thumbnail { padding: 0 !important; margin: 0 !important; }
.site-header, .site-footer { display: none !important; }
.elementor-section-wrap > .elementor-section { width: 100% !important; }

/* --- Map card mock --- */
.map-card { position: relative !important; margin-top: 32px !important; background: repeating-linear-gradient(0deg, #ddd9cd 0 28px, #d4d0c4 28px 56px), repeating-linear-gradient(90deg, #ddd9cd 0 28px, transparent 28px 56px) !important; border: 1px solid var(--c-line) !important; aspect-ratio: 4/3 !important; overflow: hidden !important; }
.map-card__overlay { position: absolute !important; inset: 0 !important; background: rgba(0,24,43,0.92) !important; color: #fff !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important; padding: 32px !important; gap: 16px !important; }
.map-card__overlay h4 { color: #fff !important; margin: 0 !important; font-size: 24px !important; font-weight: 600 !important; }

/* --- BH-BLOCK (Bauherren-Modell) --- */
.bh-block { background: transparent !important; padding: 48px 0 0 !important; display: grid !important; grid-template-columns: 4fr 7fr auto !important; gap: 56px !important; align-items: start !important; border-top: 1px solid var(--c-line) !important; }
@media (max-width: 768px) { .bh-block { grid-template-columns: 1fr !important; gap: 24px !important; } }
.bh-block h3 { font-size: 32px !important; line-height: 1.1 !important; margin: 0 0 14px !important; font-weight: 600 !important; color: var(--c-primary) !important; }
.bh-block p { font-size: 16px !important; line-height: 1.7 !important; max-width: 50ch !important; margin: 0 !important; }

/* --- POLISH PASS 2 --- */
/* Reduce hero height a touch (was 86vh = too tall) */
.elementor .hero, .hero { min-height: 74vh !important; }
@media (max-width: 768px) { .elementor .hero, .hero { min-height: 560px !important; } }

/* Filter pills more visible */
.filters { padding: 0 !important; gap: 8px !important; border-bottom-width: 1px !important; }
.filter-btn { padding: 14px 22px !important; font-size: 12px !important; letter-spacing: 0.18em !important; color: var(--c-muted) !important; border-bottom: 2px solid transparent !important; }
.filter-btn:hover { color: var(--c-primary) !important; background: rgba(0,44,88,0.04) !important; }
.filter-btn.is-active { color: var(--c-primary) !important; border-bottom: 2px solid var(--c-primary) !important; background: transparent !important; font-weight: 700 !important; }

/* Tighten section padding-top after a hero (it was double-paddding) */
.elementor .hero-stripe + .elementor-element .s,
.elementor .hero + .elementor-element .s { padding-top: 100px !important; }

/* Highlight CTA buttons proper white outline */
.s--dark .highlight, .s--darker .highlight { background: transparent !important; border: 1px solid rgba(255,255,255,0.18) !important; }

/* Card num: ensure visible "I · Kernleistung" */
.card__num::before { content: "" !important; width: 28px !important; height: 1px !important; background: var(--c-primary) !important; display: inline-block !important; }
.card:hover .card__num::before { background: rgba(255,255,255,0.6) !important; }

/* Project grid better spacing in 3-cols */
.projects--3 { gap: 56px 28px !important; }
@media (max-width: 1024px) { .projects--3 { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 768px)  { .projects--3 { grid-template-columns: 1fr !important; } }

/* Insta tiles sharper hover */
.ig__tile-overlay { background: rgba(0,44,88,0.78) !important; opacity: 0 !important; transition: opacity .25s ease !important; }
.ig__tile:hover .ig__tile-overlay { opacity: 1 !important; }

/* Section head two-column: left = title block, right = lead */
.s__head > div:first-child { display: flex !important; flex-direction: column !important; }

/* Hero stripe contents more breathable */
.hero-stripe__content { padding: 80px 0 !important; }

/* --- PROJECT CARD as <a> link --- */
a.project, .elementor a.project {
  text-decoration: none !important;
  color: inherit !important;
  display: flex !important;
  flex-direction: column !important;
  background: transparent !important;
  cursor: pointer !important;
}
a.project:hover, .elementor a.project:hover { text-decoration: none !important; }
a.project:hover .project__title { color: var(--c-accent-blue) !important; }
a.project:hover .project__image::after {
  content: "" !important;
  position: absolute !important; inset: 0 !important;
  background: rgba(0, 24, 43, 0.18) !important;
  transition: opacity .35s ease !important;
}

/* =====================================================================
   ELEMENTOR-NATIVE LAYOUT OVERLAY
   Klassen für native-Pro-Widget-Container, damit das Grid-Layout aus dem
   Mockup auf Elementor-Container greift (Elementor nutzt von Haus aus
   flex; wir overriden gezielt zu CSS-Grid für 3-Spalten-Karten etc.).
   Generiert: 2026-05-05
   ===================================================================== */

/* Container-Stride: zentrale Sektion, max-width, x-padding ----------- */
body .elementor-section-wrap > .elementor-element.e-con-full,
body .elementor-section-wrap > .elementor-element.e-con-boxed { /* nothing */ }

/* Boxed inner – mockup-typische 1320px max-width + 56px x-padding */
.elementor .md-inner.e-con,
.elementor .md-inner.e-flex {
  max-width: 1320px !important;
  width: 100% !important;
  padding-left: 56px !important;
  padding-right: 56px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 768px) {
  .elementor .md-inner.e-con,
  .elementor .md-inner.e-flex {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Section vertical padding overrides --------------------------------- */
.elementor .md-section.e-con,
.elementor .md-section.e-flex {
  padding-top: 150px !important;
  padding-bottom: 150px !important;
}
@media (max-width: 1024px) {
  .elementor .md-section.e-con,
  .elementor .md-section.e-flex {
    padding-top: 90px !important;
    padding-bottom: 90px !important;
  }
}
@media (max-width: 640px) {
  .elementor .md-section.e-con,
  .elementor .md-section.e-flex {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
}

/* Hero (full-bleed, 90vh, BG image + overlay-aware) ----------------- */
.elementor .md-hero.e-con,
.elementor .md-hero.e-flex {
  min-height: 84vh !important;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
.elementor .md-hero .elementor-heading-title,
.elementor .md-hero .elementor-widget-text-editor p { max-width: 60ch; }
@media (max-width: 768px) {
  .elementor .md-hero.e-con,
  .elementor .md-hero.e-flex { min-height: 72vh !important; padding-top: 80px !important; padding-bottom: 80px !important; }
}

/* Hero-Stripe (Sub-Page Hero) --------------------------------------- */
.elementor .md-hero-stripe.e-con,
.elementor .md-hero-stripe.e-flex {
  min-height: 480px !important;
  padding-top: 60px !important;
  padding-bottom: 60px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 3-spaltiges Grid (Cards, Values, Reviews, Insta-Tiles) ------------ */
.elementor .md-grid-3.e-con,
.elementor .md-grid-3.e-flex {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1px !important;
  background: var(--c-line) !important;
  border-top: 1px solid var(--c-line) !important;
  border-bottom: 1px solid var(--c-line) !important;
  padding: 0 !important;
}
.elementor .md-grid-3 > .e-con-inner,
.elementor .md-grid-3 > .e-con-full,
.elementor .md-grid-3 > .e-con-boxed { display: contents !important; }
.elementor .md-grid-3 > .elementor-element { width: auto !important; max-width: none !important; }

@media (max-width: 1024px) {
  .elementor .md-grid-3.e-con,
  .elementor .md-grid-3.e-flex { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .elementor .md-grid-3.e-con,
  .elementor .md-grid-3.e-flex { grid-template-columns: 1fr !important; }
}

/* 2-spaltiges Grid (Highlight, Baufi, Split, Contact, GF) ----------- */
.elementor .md-grid-2.e-con,
.elementor .md-grid-2.e-flex {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  padding: 0 !important;
}
.elementor .md-grid-2 > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-grid-2.e-con,
  .elementor .md-grid-2.e-flex { grid-template-columns: 1fr !important; }
}

/* Card cell (innerhalb md-grid-3) -- weißer Hintergrund + Hover --- */
.elementor .md-card.e-con,
.elementor .md-card.e-flex {
  background: #ffffff !important;
  padding: 64px 48px 56px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  min-height: 420px !important;
  transition: background .35s ease, color .35s ease !important;
  border: 0 !important;
  width: auto !important;
  max-width: none !important;
}
.elementor .md-section[class*="md-bg-alt"] .md-card,
.elementor .md-bg-alt .md-card { background: var(--c-bg-alt) !important; }
.elementor .md-card:hover { background: var(--c-primary) !important; }
.elementor .md-card:hover .elementor-heading-title,
.elementor .md-card:hover .elementor-widget-text-editor,
.elementor .md-card:hover .elementor-widget-text-editor p,
.elementor .md-card:hover .elementor-button { color: #ffffff !important; }
.elementor .md-card:hover .elementor-button { border-bottom-color: rgba(255,255,255,0.7) !important; }

/* Value cell (Über uns – Werte) --------------------------------------- */
.elementor .md-value.e-con,
.elementor .md-value.e-flex {
  background: transparent !important;
  padding: 48px 32px 48px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 28px !important;
  border-right: 1px solid var(--c-line) !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  width: auto !important;
  max-width: none !important;
}
.elementor .md-value:last-child { border-right: 0 !important; padding-right: 0 !important; }
@media (max-width: 1024px) {
  .elementor .md-value:nth-child(2) { border-right: 0 !important; }
}
@media (max-width: 640px) {
  .elementor .md-value { border-right: 0 !important; border-bottom: 1px solid var(--c-line) !important; padding: 32px 0 !important; }
  .elementor .md-value:last-child { border-bottom: 0 !important; }
}

/* Werte-Grid – kein 1px-Linien-BG wie Cards, sondern transparent -- */
.elementor .md-grid-3.md-values-grid {
  background: transparent !important;
  gap: 0 !important;
  border-top: 1px solid var(--c-line) !important;
  border-bottom: 0 !important;
}

/* Highlight (zwei Spalten innerhalb dunkler Sektion) ----------------- */
.elementor .md-highlight-col.e-con,
.elementor .md-highlight-col.e-flex {
  padding: 96px 80px !important;
  border-right: 1px solid rgba(255,255,255,0.12) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  width: auto !important;
  max-width: none !important;
}
.elementor .md-highlight-col:last-child { border-right: 0 !important; }
@media (max-width: 900px) {
  .elementor .md-highlight-col { padding: 64px 36px !important; border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,0.12) !important; }
  .elementor .md-highlight-col:last-child { border-bottom: 0 !important; }
}

/* Baufi (Zweispalter mit asymmetrischem Verhältnis) ----------------- */
.elementor .md-baufi.e-con,
.elementor .md-baufi.e-flex {
  display: grid !important;
  grid-template-columns: 5fr 7fr !important;
  gap: 64px !important;
  padding: 0 !important;
  align-items: start !important;
}
.elementor .md-baufi > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-baufi.e-con,
  .elementor .md-baufi.e-flex { grid-template-columns: 1fr !important; gap: 40px !important; }
}

/* Split (Leistungen — Bild/Text 50/50) ----------------------------- */
.elementor .md-split.e-con,
.elementor .md-split.e-flex {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 120px !important;
  padding: 0 !important;
  align-items: center !important;
}
.elementor .md-split > .elementor-element { width: auto !important; max-width: none !important; }
.elementor .md-split-reverse.e-con > :first-child,
.elementor .md-split-reverse.e-flex > :first-child { order: 2 !important; }
@media (max-width: 900px) {
  .elementor .md-split.e-con,
  .elementor .md-split.e-flex { grid-template-columns: 1fr !important; gap: 40px !important; }
  .elementor .md-split-reverse.e-con > :first-child,
  .elementor .md-split-reverse.e-flex > :first-child { order: 0 !important; }
}

/* GF (Geschäftsführer-Block) --------------------------------------- */
.elementor .md-gf.e-con,
.elementor .md-gf.e-flex {
  display: grid !important;
  grid-template-columns: 5fr 6fr !important;
  gap: 80px !important;
  padding: 0 !important;
  align-items: start !important;
}
.elementor .md-gf > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-gf.e-con,
  .elementor .md-gf.e-flex { grid-template-columns: 1fr !important; gap: 40px !important; }
}

/* Contact (Form 7fr / Info 5fr) ------------------------------------- */
.elementor .md-contact.e-con,
.elementor .md-contact.e-flex {
  display: grid !important;
  grid-template-columns: 7fr 5fr !important;
  gap: 80px !important;
  padding: 0 !important;
}
.elementor .md-contact > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-contact.e-con,
  .elementor .md-contact.e-flex { grid-template-columns: 1fr !important; gap: 48px !important; }
}

/* Bauherren-Modell-Block ------------------------------------------- */
.elementor .md-bh.e-con,
.elementor .md-bh.e-flex {
  display: grid !important;
  grid-template-columns: 5fr 6fr auto !important;
  gap: 80px !important;
  align-items: start !important;
  padding-top: 56px !important;
  border-top: 1px solid var(--c-line) !important;
}
.elementor .md-bh > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-bh.e-con,
  .elementor .md-bh.e-flex { grid-template-columns: 1fr !important; gap: 24px !important; }
}

/* Footer columns 2fr 1fr 1fr 1fr ------------------------------------ */
.elementor .md-foot-cols.e-con,
.elementor .md-foot-cols.e-flex {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr 1fr !important;
  gap: 80px !important;
  padding: 0 !important;
}
.elementor .md-foot-cols > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-foot-cols.e-con,
  .elementor .md-foot-cols.e-flex { grid-template-columns: 1fr 1fr !important; gap: 40px !important; }
}

/* CTA-Band fully centered ------------------------------------------ */
.elementor .md-cta-band.e-con,
.elementor .md-cta-band.e-flex {
  text-align: center !important;
  padding: 200px 24px !important;
  background: var(--c-primary-dark) !important;
}
.elementor .md-cta-band .md-inner { align-items: center !important; }
.elementor .md-cta-band .elementor-widget-heading,
.elementor .md-cta-band .elementor-widget-text-editor,
.elementor .md-cta-band .elementor-widget-button { text-align: center !important; width: 100% !important; }
.elementor .md-cta-band .elementor-button-wrapper { text-align: center !important; }
@media (max-width: 768px) {
  .elementor .md-cta-band.e-con,
  .elementor .md-cta-band.e-flex { padding: 110px 20px !important; }
}

/* Section-Head: 2-spaltige Eyebrow+H2 / Lead Anordnung -------------- */
.elementor .md-shead.e-con,
.elementor .md-shead.e-flex {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  padding-top: 24px !important;
  padding-bottom: 0 !important;
  margin-bottom: 80px !important;
  border-top: 1px solid var(--c-line) !important;
  align-items: end !important;
}
.elementor .md-section.md-bg-dark .md-shead { border-top-color: rgba(255,255,255,0.18) !important; }
.elementor .md-shead > .elementor-element { width: auto !important; max-width: none !important; }
@media (max-width: 900px) {
  .elementor .md-shead.e-con,
  .elementor .md-shead.e-flex { grid-template-columns: 1fr !important; gap: 24px !important; margin-bottom: 56px !important; }
}

/* Hero CTA row -------------------------------------------------------- */
.elementor .md-hero-ctas.e-con,
.elementor .md-hero-ctas.e-flex {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  margin-top: 32px !important;
  padding: 0 !important;
}
.elementor .md-hero-ctas > .elementor-element { width: auto !important; flex: 0 0 auto !important; }

/* Eyebrow fix marker before text ::before "§ I." style ---------- */
.elementor .md-eyebrow .elementor-heading-title {
  position: relative;
  padding-left: 0;
  font-family: 'Open Sans', sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--c-muted) !important;
  margin: 0 0 16px 0;
}
.elementor .md-section.md-bg-dark .md-eyebrow .elementor-heading-title { color: rgba(255,255,255,0.7) !important; }

/* Header sticky shrink behavior --------------------------------------- */
.elementor .md-site-header.e-con {
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
  background: rgba(255,255,255,0.96) !important;
  backdrop-filter: saturate(140%) blur(10px) !important;
  border-bottom: 1px solid var(--c-line-soft) !important;
  transition: padding .35s ease !important;
}
/* MD: Header-Logo-Höhensperre entfernt – Logo-Größe wird in Elementor eingestellt. */
.elementor .md-site-header.is-shrunk { padding-top: 8px !important; padding-bottom: 8px !important; }

/* Footer dark BG mode ------------------------------------------------- */
.elementor .md-foot.e-con {
  background: var(--c-primary-dark) !important;
  color: rgba(255,255,255,0.7) !important;
  padding: 140px 32px 0 !important;
}
.elementor .md-foot a { color: rgba(255,255,255,0.7) !important; }
.elementor .md-foot a:hover { color: #fff !important; }
.elementor .md-foot .elementor-heading-title { color: #fff !important; }
.elementor .md-foot-copy {
  border-top: 1px solid rgba(255,255,255,0.1) !important;
  padding: 32px 0 !important;
  margin-top: 80px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  font-size: 11px !important;
  color: rgba(255,255,255,0.5) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
}
@media (max-width: 600px) {
  .elementor .md-foot-copy { flex-direction: column; gap: 12px; align-items: flex-start !important; }
}

/* Sane spacing inside form widget so it matches mockup ------------------ */
.elementor .md-form .elementor-field-group input,
.elementor .md-form .elementor-field-group textarea {
  border: 0 !important;
  border-bottom: 1px solid var(--c-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 14px 0 !important;
  color: var(--c-primary) !important;
  font-size: 17px !important;
}
.elementor .md-form .elementor-field-group input:focus,
.elementor .md-form .elementor-field-group textarea:focus {
  border-bottom-color: var(--c-primary) !important;
  box-shadow: none !important;
  outline: none !important;
}
.elementor .md-form .elementor-field-label {
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--c-muted) !important;
  font-weight: 500 !important;
  margin-bottom: 8px !important;
}

/* Form button = primary on light --------------------------------------- */
.elementor .md-form .elementor-button {
  background: var(--c-primary) !important;
  color: #fff !important;
  border-radius: 2px !important;
  padding: 16px 32px !important;
  font-size: 14px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
}
.elementor .md-form .elementor-button:hover { background: var(--c-primary-dark) !important; }

/* Buttons – mockup-typische Optik (filled/outline/link) ----------------- */
.elementor .elementor-widget-button .elementor-button {
  border-radius: 2px !important;
  font-family: 'Open Sans', sans-serif !important;
  letter-spacing: 0.04em !important;
  font-weight: 600 !important;
  padding: 16px 28px !important;
  font-size: 13px !important;
  text-transform: none;
}
.elementor .md-btn-arrow .elementor-button::after {
  content: " →";
  display: inline-block;
  margin-left: 6px;
  transition: transform .3s;
}
.elementor .md-btn-arrow .elementor-button:hover::after { transform: translateX(4px); }

/* Image inside split blocks gets aspect-ratio + cover ------------------ */
.elementor .md-split-img .elementor-widget-image,
.elementor .md-split-img .elementor-widget-image img {
  width: 100% !important;
  aspect-ratio: 4/5 !important;
  object-fit: cover !important;
  display: block !important;
}
@media (max-width: 900px) {
  .elementor .md-split-img .elementor-widget-image img { aspect-ratio: 4/3 !important; }
}

.elementor .md-portrait .elementor-widget-image img {
  width: 100% !important;
  aspect-ratio: 4/5 !important;
  object-fit: cover !important;
}
@media (max-width: 900px) {
  .elementor .md-portrait .elementor-widget-image img { aspect-ratio: 4/3 !important; }
}

/* Containers should not overflow horizontally on small screens --------- */
@media (max-width: 768px) {
  .elementor section.e-con > .e-con-inner,
  .elementor .e-con > .e-con-inner { padding-left: 0 !important; padding-right: 0 !important; }
}

/* =====================================================================
   PROJEKT-FILTER (Werkverzeichnis-Seite)
   ===================================================================== */
.md-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding-top: 24px;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  align-items: baseline;
}
.md-filter-btn {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  color: var(--c-text);
  padding: 18px 28px;
  cursor: pointer;
  font: 500 11px 'Open Sans', sans-serif;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition: color .25s ease, border-color .25s ease;
}
.md-filter-btn:first-child { padding-left: 0; }
.md-filter-btn:hover { color: var(--c-primary); }
.md-filter-btn.is-active {
  color: var(--c-primary);
  border-bottom-color: var(--c-primary);
}
.md-filter-btn:focus-visible {
  outline: 2px solid var(--c-primary);
  outline-offset: 2px;
}
