/* Elementor bridge for the local LWIK v2 migration. */
.lwik-elementor-page > .elementor,
.lwik-elementor-page .elementor-section-wrap {
  width: 100%;
}

/*
 * Shared content axis for the migrated page sections.  The Elementor shells
 * remain full-width surface wrappers; only their visible content containers
 * align to the theme's 1220px desktop measure and responsive page gutters.
 * Header and footer are outside .lwik-elementor-page and are intentionally
 * not affected.
 */
.lwik-elementor-page {
  --lwik-elementor-content-max: 1220px;
  --lwik-elementor-content-gutter: clamp(1.25rem, 4vw, 3.25rem);
}

.lwik-elementor-page .lwik-elementor-shell:not(.lwik-elementor-contact-form) .container {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--lwik-elementor-content-max);
  margin-inline: auto;
  padding-inline: var(--lwik-elementor-content-gutter);
}

.lwik-elementor-page .elementor-section.lwik-elementor-shell > .elementor-container,
.lwik-elementor-page .e-con.lwik-elementor-shell {
  max-width: none;
  padding: 0;
  width: 100%;
}

.lwik-elementor-page .lwik-elementor-shell .elementor-column-gap-default > .elementor-column > .elementor-element-populated,
.lwik-elementor-page .lwik-elementor-shell > .elementor-widget-wrap,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-html,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-text-editor,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-shortcode,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-container {
  margin: 0;
  padding: 0;
}

.lwik-elementor-page .lwik-elementor-shell .elementor-widget-html,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-text-editor,
.lwik-elementor-page .lwik-elementor-shell .elementor-widget-shortcode {
  width: 100%;
}

/* The 13-layout system deliberately carries no numbered steps or orange rules. */
.lwik-elementor-page .lwik-process::before,
.lwik-elementor-page .line-left::before,
.lwik-elementor-page .lwik-region-map__label::before,
.lwik-elementor-page .contact-panel::after {
  display: none !important;
}

.lwik-elementor-page .lwik-elementor-contact-form {
  background: #f1f4f7;
  margin: 0;
  max-width: none;
  padding: clamp(3rem, 7vw, 6rem) 0;
  width: 100%;
}

.lwik-elementor-page .elementor-section.lwik-elementor-contact-form > .elementor-container {
  margin: 0 auto;
  max-width: 1220px;
  padding: 0 var(--lwik-elementor-content-gutter);
}

.lwik-elementor-page .lwik-elementor-contact-form .elementor-widget-shortcode {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(8, 33, 58, 0.11);
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.lwik-elementor-page .text-copy.klein,
.lwik-elementor-page .page-content a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.lwik-elementor-page .lwik-page-head-inner > *,
.lwik-elementor-page .lwik-page-head h1 {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Leistungsübersicht: eigenständige, bildgetragene Navigation. */
.lwik-elementor-page .lwik-services-overview {
  --services-navy: #0a3255;
  --services-ink: #0c2233;
  --services-paper: #eef1f0;
  --services-signal: #f58714;
  color: var(--services-ink);
}

.lwik-elementor-page .lwik-services-intro {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: clamp(2rem, 5vw, 5.75rem);
  align-items: center;
  padding: clamp(3rem, 6vw, 6.25rem) 0 clamp(2.5rem, 5vw, 5rem);
}

.lwik-elementor-page .lwik-services-intro h2,
.lwik-elementor-page .lwik-services-section-head h2,
.lwik-elementor-page .lwik-services-cta h2 {
  max-width: 17ch;
  margin: 0;
  color: var(--services-navy);
  text-wrap: balance;
}

.lwik-elementor-page .lwik-services-intro p {
  margin: 1.35rem 0 0;
}

.lwik-elementor-page .lwik-services-intro__eyebrow,
.lwik-elementor-page .lwik-service-card__eyebrow,
.lwik-elementor-page .lwik-services-cta__eyebrow {
  margin: 0;
  color: var(--services-signal);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.35;
  text-transform: uppercase;
}

.lwik-elementor-page .lwik-services-intro__visual {
  position: relative;
  min-height: clamp(20rem, 34vw, 31rem);
  overflow: hidden;
  background: var(--services-navy);
}

.lwik-elementor-page .lwik-services-intro__visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.lwik-elementor-page .lwik-services-intro__caption {
	position: static;
	max-width: none;
	margin: 0;
	padding: .85rem 0 0;
	background: transparent;
	color: var(--services-ink);
  font-size: .93rem;
  font-weight: 700;
  line-height: 1.45;
}

.lwik-elementor-page .lwik-services-groups {
  margin-inline: calc(50% - 50vw);
  padding: clamp(3.75rem, 7vw, 7rem) max(1.25rem, calc((100vw - min(1220px, 100vw - 2.5rem)) / 2));
  background: var(--services-paper);
}

.lwik-elementor-page .lwik-services-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  max-width: 1220px;
  margin: 0 auto clamp(2rem, 4vw, 3.25rem);
}

.lwik-elementor-page .lwik-services-section-head p {
  max-width: 49ch;
  margin: 0;
}

.lwik-elementor-page .lwik-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.75rem);
  max-width: 1220px;
  margin: 0 auto;
}

.lwik-elementor-page .lwik-service-card {
  position: relative;
  display: flex;
  min-width: 0;
	min-height: 0;
  flex-direction: column;
	justify-content: flex-start;
  overflow: hidden;
	border: 1px solid rgba(10, 50, 85, .14);
	background: #fff;
	color: var(--services-ink);
}

.lwik-elementor-page .lwik-service-card::before {
	display: none;
}

.lwik-elementor-page .lwik-service-card > img {
	position: static;
	width: 100%;
	height: clamp(12rem, 18vw, 15rem);
	object-fit: cover;
}

.lwik-elementor-page .lwik-service-card__body {
  position: relative;
	z-index: auto;
  padding: clamp(1.4rem, 2.4vw, 2rem);
}

.lwik-elementor-page .lwik-service-card__eyebrow {
	color: var(--services-signal);
}

.lwik-elementor-page .lwik-service-card h3 {
  margin: .55rem 0 1rem;
	color: var(--services-navy);
  font-size: clamp(1.38rem, 1.7vw, 1.75rem);
}

.lwik-elementor-page .lwik-service-card ul {
  display: grid;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lwik-elementor-page .lwik-service-card li {
  margin: 0;
  padding: 0;
  font-size: .98rem;
  line-height: 1.35;
}

.lwik-elementor-page .lwik-service-card li::before {
  display: none;
}

.lwik-elementor-page .lwik-service-card a {
  display: inline-flex;
  align-items: baseline;
  gap: .5rem;
	color: var(--services-navy) !important;
  font-weight: 700;
	text-decoration-color: rgba(10, 50, 85, .35) !important;
  text-underline-offset: .22em;
}

.lwik-elementor-page .lwik-service-card a::before {
  flex: 0 0 auto;
  color: #f8b364;
  content: "→";
}

.lwik-elementor-page .lwik-service-card a:hover,
.lwik-elementor-page .lwik-service-card a:focus-visible {
  color: #f8b364 !important;
  text-decoration-color: currentColor !important;
}

.lwik-elementor-page .lwik-services-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: end;
  padding: clamp(3.5rem, 7vw, 7rem) 0 clamp(4.25rem, 8vw, 7.5rem);
  background: #fff;
}

.lwik-elementor-page .lwik-services-cta p:not(.lwik-services-cta__eyebrow) {
  max-width: 61ch;
  margin: 1.2rem 0 0;
}

.lwik-elementor-page .lwik-services-cta .lwik-button {
  margin-bottom: .25rem;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .lwik-elementor-page .lwik-services-intro,
  .lwik-elementor-page .lwik-services-cta {
    grid-template-columns: 1fr;
  }

  .lwik-elementor-page .lwik-services-intro__visual {
    min-height: min(110vw, 32rem);
  }

  .lwik-elementor-page .lwik-service-grid {
    grid-template-columns: 1fr;
  }

  .lwik-elementor-page .lwik-service-card {
    min-height: 26rem;
  }
}

@media (max-width: 600px) {
  .lwik-elementor-page .lwik-services-section-head {
    display: block;
  }

  .lwik-elementor-page .lwik-services-section-head p {
    margin-top: 1.1rem;
  }

  .lwik-elementor-page .lwik-services-groups {
    margin-inline: calc(50% - 50vw);
    padding-inline: 1.25rem;
  }

  .lwik-elementor-page .lwik-services-cta .lwik-button {
    width: 100%;
  }
}
