/* ==========================================================
   KWRFX · Elementor Widget-Baukasten · V4.5.0
   Einmal unter Design > Customizer > Zusätzliches CSS einfügen.
   Alle Regeln sind auf .kwr-demo begrenzt und verändern Header/Footer nicht.
   ========================================================== */

/* ---------- 1. Zentrale Bildpfade ----------
   Standardmäßig werden die Bilder des vorhandenen KWR-Block-Themes genutzt.
   Falls der Theme-Ordner nicht auf dem Server liegt, NUR diese Variablen
   durch die URLs aus der WordPress-Mediathek ersetzen.
------------------------------------------------------------- */
:root {
  --kwr-img-hero: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/hero.webp');
  --kwr-img-building: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/exterior_day.webp');
  --kwr-img-evening: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/abend_front.webp');
  --kwr-img-courtyard: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/inside_court.webp');
  --kwr-img-courtyard-2: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/inside_court2.webp');
  --kwr-img-kitchen: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/eg_kitchen.webp');
  --kwr-img-entry: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/eg_entry.webp');
  --kwr-img-garden: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/eg_garden.webp');
  --kwr-img-terrace: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/eg_terrace.webp');
  --kwr-img-og-room: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/og_room.webp');
  --kwr-img-og-room-2: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/og_room2.webp');
  --kwr-img-og-balcony: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/wide_balcony_sunset.webp');
  --kwr-img-dg-room: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/dg_room.webp');
  --kwr-img-dg-balcony: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/dg_balcony.webp');
  --kwr-img-location-1: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/location_1.webp');
  --kwr-img-location-2: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/location_2.webp');
  --kwr-img-tech: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/tech.webp');
  --kwr-img-health: url('/wp-content/themes/klimawohnraum-block-theme/assets/images/baumit-zertifikat.webp');
}

/* ---------- 2. Markenbasis ---------- */
.kwr-demo {
  --kwr-forest: var(--kwrfx-text, #24382d);
  --kwr-forest-2: var(--kwrfx-text, #24382d);
  --kwr-moss: var(--kwrfx-gradient-2, #bdecc8);
  --kwr-sage: var(--kwrfx-gradient-2, #bdecc8);
  --kwr-moor: var(--kwrfx-gradient-1, #65e0fc);
  --kwr-sky: var(--kwrfx-gradient-1, #65e0fc);
  --kwr-lime: var(--kwrfx-gradient-2, #bdecc8);
  --kwr-gold: var(--kwrfx-gradient-3, #f7e5d3);
  --kwr-terra: var(--kwrfx-gradient-3, #f7e5d3);
  --kwr-sand: var(--kwrfx-gradient-3, #f7e5d3);
  --kwr-cream: #f6f3ec;
  --kwr-paper: #fbf8f0;
  --kwr-graphite: #2e3230;
  --kwr-white: #ffffff;
  --kwr-line: rgba(32, 58, 44, 0.16);
  --kwr-shadow: 0 28px 90px rgba(19, 42, 29, 0.18);
  --kwr-shadow-deep: 0 40px 120px rgba(8, 20, 13, 0.34);
  --kwr-radius: 0px;
  --kwr-max: 1440px;
  --kwr-content-max: 100%;
  --kwr-gutter: clamp(20px, 4.4vw, 78px);
  --kwr-serif: Georgia, 'Times New Roman', serif;
  --kwr-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  position: relative;
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  overflow: clip;
  color: var(--kwr-graphite);
  background: var(--kwr-cream);
  font-family: var(--kwr-sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.kwr-demo,
.kwr-demo *,
.kwr-demo *::before,
.kwr-demo *::after {
  box-sizing: border-box;
}

.kwr-demo a {
  color: inherit;
  text-decoration: none;
}

.kwr-demo button,
.kwr-demo input,
.kwr-demo summary {
  font: inherit;
}

.kwr-demo h1,
.kwr-demo h2,
.kwr-demo h3,
.kwr-demo h4,
.kwr-demo p,
.kwr-demo figure {
  margin: 0;
}

.kwr-demo h1,
.kwr-demo h2,
.kwr-demo h3,
.kwr-demo h4 {
  color: inherit;
  font-family: var(--kwr-serif);
  font-weight: 400;
  line-height: 0.99;
  letter-spacing: -0.035em;
}

.kwr-demo h1 { font-size: clamp(3.6rem, 8.5vw, 9.4rem); }
.kwr-demo h2 { font-size: clamp(2.6rem, 5.8vw, 6.8rem); }
.kwr-demo h3 { font-size: clamp(1.65rem, 2.4vw, 3.1rem); }

.kwr-inner {
  position: relative;
  z-index: 2;
  width: min(100%, var(--kwr-content-max, 100%));
  margin-inline: auto;
  padding-inline: var(--kwr-gutter);
}

.kwr-section {
  position: relative;
  padding-block: clamp(84px, 10vw, 168px);
}

.kwr-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: currentColor;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-transform: uppercase;
}

.kwr-kicker::before {
  width: 2.9rem;
  height: 1px;
  background: currentColor;
  content: '';
  opacity: 0.55;
}

.kwr-lede {
  max-width: 64ch;
  font-size: clamp(1.04rem, 1.35vw, 1.35rem);
  line-height: 1.6;
}

.kwr-btn {
  position: relative;
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  overflow: hidden;
  border: 1px solid currentColor;
  padding: 0.84rem 1.25rem;
  color: var(--kwr-forest);
  background: transparent;
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  isolation: isolate;
}

.kwr-btn::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--kwr-lime);
  content: '';
  transform: translateX(-102%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.kwr-btn:hover,
.kwr-btn:focus-visible {
  color: #14261a;
  border-color: var(--kwr-lime);
  box-shadow: 0 18px 50px rgba(184, 219, 36, 0.22);
  transform: translateY(-2px);
}

.kwr-btn:hover::before,
.kwr-btn:focus-visible::before { transform: translateX(0); }

.kwr-btn--solid {
  color: #fff;
  border-color: var(--kwr-forest);
  background: var(--kwr-forest);
}

.kwr-btn--light {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.62);
}

.kwr-btn--light::before { background: #fff; }
.kwr-btn--light:hover,
.kwr-btn--light:focus-visible { color: var(--kwr-forest); border-color: #fff; }

.kwr-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
}

.kwr-demo :focus-visible {
  outline: 3px solid var(--kwr-lime);
  outline-offset: 4px;
}

/* Elementor/Enwoo: Lücken und Boxed-Container auf der Demo-Seite neutralisieren */
body:has(.kwr-demo) #content,
body:has(.kwr-demo) .site-content,
body:has(.kwr-demo) .content-area,
body:has(.kwr-demo) .elementor,
body:has(.kwr-demo) .elementor-widget-wrap,
body:has(.kwr-demo) .elementor-widget-html,
body:has(.kwr-demo) .elementor-widget-html > .elementor-widget-container {
  overflow: visible;
}

body:has(.kwr-demo) .elementor-widget-html,
body:has(.kwr-demo) .elementor-widget-html > .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}

/* ---------- 3. Scrollfortschritt ---------- */
.kwr-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  width: 100%;
  height: 4px;
  pointer-events: none;
  background: linear-gradient(90deg, var(--kwr-lime), var(--kwr-gold), var(--kwr-terra));
  box-shadow: 0 0 20px rgba(184, 219, 36, 0.6);
  transform: scaleX(0);
  transform-origin: left center;
  animation: kwr-progress linear both;
  animation-timeline: scroll(root block);
}

@keyframes kwr-progress { to { transform: scaleX(1); } }

/* ---------- 4. Allgemeine Scroll-Reveals ---------- */
@supports (animation-timeline: view()) {
  .kwr-reveal {
    opacity: 0;
    transform: translateY(54px);
    animation: kwr-reveal both;
    animation-timeline: view();
    animation-range: entry 5% cover 32%;
  }

  .kwr-reveal--left {
    opacity: 0;
    transform: translateX(-80px);
    animation: kwr-reveal-left both;
    animation-timeline: view();
    animation-range: entry 0% cover 38%;
  }

  .kwr-reveal--right {
    opacity: 0;
    transform: translateX(80px);
    animation: kwr-reveal-right both;
    animation-timeline: view();
    animation-range: entry 0% cover 38%;
  }
}

@keyframes kwr-reveal { to { opacity: 1; transform: translateY(0); } }
@keyframes kwr-reveal-left { to { opacity: 1; transform: translateX(0); } }
@keyframes kwr-reveal-right { to { opacity: 1; transform: translateX(0); } }

/* ==========================================================
   WIDGET 01 · CINEMATIC HERO · HELLES OVERLAY
   ========================================================== */
.kwr-hero {
  min-height: min(960px, 100svh);
  display: grid;
  align-items: end;
  color: var(--kwr-forest);
  background: var(--kwr-cream);
}

.kwr-hero__media,
.kwr-hero__shade,
.kwr-hero__grain {
  position: absolute;
  inset: 0;
}

.kwr-hero__media {
  background-image: var(--kwr-img-hero);
  background-position: center 48%;
  background-size: cover;
  filter: saturate(.9) contrast(.95) brightness(1.05);
  transform: scale(1.035);
}

@supports (animation-timeline: scroll()) {
  .kwr-hero__media {
    animation: kwr-hero-zoom linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 100vh;
  }
}

@keyframes kwr-hero-zoom {
  from { transform: scale(1.03); filter: saturate(.94) contrast(.96) brightness(1.05); }
  to { transform: scale(1.16); filter: saturate(.82) contrast(1.01) brightness(1.08); }
}

.kwr-hero__shade {
  background:
    linear-gradient(90deg, rgba(251,248,240,.98) 0%, rgba(246,243,236,.91) 35%, rgba(246,243,236,.52) 72%, rgba(246,243,236,.18) 100%),
    linear-gradient(0deg, rgba(246,243,236,.94) 0%, rgba(246,243,236,.1) 68%);
}

.kwr-hero__grain {
  opacity: .09;
  mix-blend-mode: multiply;
  background-image:
    radial-gradient(circle at 30% 20%, rgba(32,58,44,.52) 0 .7px, transparent .9px),
    radial-gradient(circle at 70% 60%, rgba(32,58,44,.34) 0 .8px, transparent 1px);
  background-size: 6px 6px, 9px 9px;
  pointer-events: none;
}

.kwr-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.52fr);
  gap: clamp(34px, 7vw, 120px);
  align-items: end;
  padding-top: clamp(160px, 18vh, 240px);
  padding-bottom: clamp(46px, 7vw, 92px);
}

.kwr-hero__title {
  max-width: 1050px;
  color: var(--kwr-forest);
  text-wrap: balance;
  text-shadow: 0 18px 70px rgba(255,255,255,.5);
}

.kwr-hero__title em {
  color: #708500;
  font-style: normal;
}

.kwr-hero__copy {
  max-width: 670px;
  margin-top: 1.7rem;
  color: rgba(32,58,44,.84);
}

.kwr-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 2rem;
}

.kwr-hero__facts {
  display: grid;
  border: 1px solid rgba(32,58,44,.22);
  background: rgba(255,255,255,.56);
  box-shadow: 0 28px 90px rgba(32,58,44,.16);
  backdrop-filter: blur(22px) saturate(118%);
  -webkit-backdrop-filter: blur(22px) saturate(118%);
}

.kwr-hero__fact {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 15px;
  align-items: center;
  padding: 20px 22px;
  border-bottom: 1px solid rgba(32,58,44,.15);
}

.kwr-hero__fact:last-child { border-bottom: 0; }

.kwr-hero__fact strong {
  color: #708500;
  font-family: var(--kwr-serif);
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
}

.kwr-hero__fact span {
  color: rgba(32,58,44,.78);
  font-size: .74rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.kwr-hero__scroll {
  position: absolute;
  right: var(--kwr-gutter);
  bottom: 24px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(32,58,44,.68);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.kwr-hero__scroll::after {
  width: 1px;
  height: 76px;
  background: linear-gradient(var(--kwr-forest), transparent);
  content: '';
  animation: kwr-scroll-line 1.8s ease-in-out infinite;
  transform-origin: top;
}

/* Helle Outline-Buttons nur im Hero und im Abschluss-CTA */
.kwr-hero .kwr-btn--light,
.kwr-final .kwr-btn--light {
  color: var(--kwr-forest);
  border-color: rgba(32,58,44,.52);
  background: rgba(255,255,255,.32);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.kwr-hero .kwr-btn--light::before,
.kwr-final .kwr-btn--light::before { background: var(--kwr-forest); }

.kwr-hero .kwr-btn--light:hover,
.kwr-hero .kwr-btn--light:focus-visible,
.kwr-final .kwr-btn--light:hover,
.kwr-final .kwr-btn--light:focus-visible {
  color: #fff;
  border-color: var(--kwr-forest);
  box-shadow: 0 18px 50px rgba(32,58,44,.18);
}

@keyframes kwr-scroll-line {
  0%, 100% { transform: scaleY(.25); opacity: .35; }
  50% { transform: scaleY(1); opacity: 1; }
}

/* ==========================================================
   WIDGET 02 · STICKY STORY
   ========================================================== */
.kwr-story {
  color: var(--kwr-graphite);
  background:
    linear-gradient(90deg, rgba(32,58,44,.045) 1px, transparent 1px),
    var(--kwr-paper);
  background-size: 72px 72px;
}

.kwr-story__grid {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
  gap: clamp(46px, 8vw, 132px);
  align-items: start;
}

.kwr-story__intro {
  position: sticky;
  top: clamp(92px, 12vh, 150px);
  padding-bottom: 10vh;
}

.kwr-story__intro h2 {
  margin-top: 1.5rem;
  color: var(--kwr-forest);
}

.kwr-story__intro .kwr-lede {
  margin-top: 1.8rem;
  color: rgba(46,50,48,.78);
}

.kwr-story__index {
  display: flex;
  gap: 8px;
  margin-top: 2rem;
}

.kwr-story__index span {
  width: 38px;
  height: 4px;
  background: var(--kwr-line);
}

.kwr-story__index span:nth-child(1) { background: var(--kwr-lime); }
.kwr-story__index span:nth-child(2) { background: var(--kwr-gold); }
.kwr-story__index span:nth-child(3) { background: var(--kwr-terra); }

.kwr-story__cards {
  display: grid;
  gap: clamp(42px, 8vh, 96px);
}

.kwr-story-card {
  position: relative;
  min-height: min(720px, 78vh);
  overflow: hidden;
  color: #fff;
  background: var(--kwr-forest);
  box-shadow: var(--kwr-shadow);
  isolation: isolate;
}

.kwr-story-card__media,
.kwr-story-card::before {
  position: absolute;
  inset: 0;
}

.kwr-story-card__media {
  background-position: center;
  background-size: cover;
  transition: transform .9s cubic-bezier(.22,1,.36,1), filter .9s ease;
}

.kwr-story-card:nth-child(1) .kwr-story-card__media { background-image: var(--kwr-img-building); }
.kwr-story-card:nth-child(2) .kwr-story-card__media { background-image: var(--kwr-img-courtyard); }
.kwr-story-card:nth-child(3) .kwr-story-card__media { background-image: var(--kwr-img-location-2); }

.kwr-story-card::before {
  z-index: 1;
  background: linear-gradient(0deg, rgba(6,19,11,.92) 0%, rgba(6,19,11,.15) 72%);
  content: '';
}

.kwr-story-card__content {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(20px, 3vw, 42px);
  align-items: end;
  padding: clamp(28px, 5vw, 66px);
}

.kwr-story-card__number {
  color: var(--kwr-lime);
  font-family: var(--kwr-serif);
  font-size: clamp(4rem, 8vw, 8rem);
  line-height: .72;
}

.kwr-story-card h3 { color: #fff; }
.kwr-story-card p {
  max-width: 52ch;
  margin-top: .9rem;
  color: rgba(255,255,255,.78);
}

.kwr-story-card:hover .kwr-story-card__media {
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.045);
}

@supports (animation-timeline: view()) {
  .kwr-story-card {
    clip-path: inset(14% 0 14% 0);
    animation: kwr-story-unclip both;
    animation-timeline: view();
    animation-range: entry 0% cover 45%;
  }
}

@keyframes kwr-story-unclip {
  to { clip-path: inset(0 0 0 0); }
}

/* ==========================================================
   WIDGET 03 · OVERLAY CARDS
   ========================================================== */
.kwr-principles {
  color: var(--kwr-forest);
  background: var(--kwr-cream);
}

.kwr-principles__head {
  display: grid;
  grid-template-columns: 1fr minmax(260px, .52fr);
  gap: 40px;
  align-items: end;
  margin-bottom: clamp(46px, 6vw, 84px);
}

.kwr-principles__head h2 { margin-top: 1.3rem; }
.kwr-principles__head .kwr-lede { color: rgba(46,50,48,.72); }

.kwr-principles__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.kwr-principle-card {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  color: #fff;
  background: var(--kwr-forest);
  box-shadow: 0 18px 50px rgba(32,58,44,.12);
  transform: translateZ(0);
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease;
  isolation: isolate;
}

/* Asymmetrisches Editorial-Raster */
.kwr-principle-card:nth-child(1) { grid-column: 1 / span 5; }
.kwr-principle-card:nth-child(2) { grid-column: 6 / span 3; }
.kwr-principle-card:nth-child(3) { grid-column: 9 / span 4; }
.kwr-principle-card:nth-child(4) { grid-column: 1 / span 5; }
.kwr-principle-card:nth-child(5) { grid-column: 6 / span 7; }

.kwr-principle-card__media,
.kwr-principle-card::before,
.kwr-principle-card::after {
  position: absolute;
  inset: 0;
}

.kwr-principle-card__media {
  background-position: center;
  background-size: cover;
  filter: saturate(.84) contrast(1.03);
  transition: transform .7s cubic-bezier(.22,1,.36,1), filter .7s ease;
}

.kwr-principle-card:nth-child(1) .kwr-principle-card__media { background-image: var(--kwr-img-building); }
.kwr-principle-card:nth-child(2) .kwr-principle-card__media { background-image: var(--kwr-img-og-room); }
.kwr-principle-card:nth-child(3) .kwr-principle-card__media { background-image: var(--kwr-img-tech); }
.kwr-principle-card:nth-child(4) .kwr-principle-card__media { background-image: var(--kwr-img-courtyard-2); }
.kwr-principle-card:nth-child(5) .kwr-principle-card__media { background-image: var(--kwr-img-location-1); }

.kwr-principle-card::before {
  z-index: 1;
  background: linear-gradient(0deg, rgba(7,22,13,.94), rgba(7,22,13,.08) 72%);
  content: '';
}

.kwr-principle-card::after {
  z-index: 2;
  border: 1px solid rgba(255,255,255,.35);
  content: '';
  clip-path: inset(0 100% 100% 0);
  transition: clip-path .65s cubic-bezier(.22,1,.36,1);
}

.kwr-principle-card__content {
  position: absolute;
  inset: auto 0 0;
  z-index: 3;
  padding: clamp(24px, 3vw, 42px);
}

.kwr-principle-card__icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  margin-bottom: 1.2rem;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}

.kwr-principle-card__icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: var(--kwr-lime);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.kwr-principle-card h3 { color: #fff; }
.kwr-principle-card p {
  max-width: 44ch;
  margin-top: .8rem;
  color: rgba(255,255,255,.76);
  transform: translateY(18px);
  opacity: .72;
  transition: transform .45s ease, opacity .45s ease;
}

.kwr-principle-card:hover,
.kwr-principle-card:focus-within {
  z-index: 4;
  box-shadow: 0 36px 100px rgba(21,48,31,.28);
  transform: perspective(1100px) translateY(-10px) rotateX(1deg) rotateY(-1deg);
}

.kwr-principle-card:hover .kwr-principle-card__media,
.kwr-principle-card:focus-within .kwr-principle-card__media {
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.07);
}

.kwr-principle-card:hover::after,
.kwr-principle-card:focus-within::after { clip-path: inset(0 0 0 0); }

.kwr-principle-card:hover p,
.kwr-principle-card:focus-within p { opacity: 1; transform: translateY(0); }

/* ==========================================================
   WIDGET 04 · EDITORIAL IMAGE REVEAL
   ========================================================== */
.kwr-editorial {
  min-height: 900px;
  display: grid;
  align-items: center;
  color: var(--kwr-forest);
  background: #e8e5dc;
}

.kwr-editorial__grid {
  display: grid;
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
  gap: clamp(44px, 7vw, 120px);
  align-items: center;
}

.kwr-editorial__copy h2 { margin-top: 1.3rem; }
.kwr-editorial__copy .kwr-lede {
  margin-top: 1.7rem;
  color: rgba(46,50,48,.72);
}

.kwr-editorial__quote {
  margin-top: 2rem;
  padding-left: 1.4rem;
  border-left: 3px solid var(--kwr-lime);
  color: var(--kwr-forest);
  font-family: var(--kwr-serif);
  font-size: clamp(1.45rem, 2vw, 2.2rem);
  line-height: 1.2;
}

.kwr-editorial__canvas {
  position: relative;
  min-height: 690px;
}

.kwr-editorial__image {
  position: absolute;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  box-shadow: var(--kwr-shadow);
}

.kwr-editorial__image--back {
  inset: 0 0 12% 18%;
  background-image: var(--kwr-img-courtyard);
  clip-path: polygon(10% 0, 100% 0, 100% 94%, 0 100%, 0 12%);
}

.kwr-editorial__image--front {
  inset: 42% 46% 0 0;
  z-index: 2;
  background-image: var(--kwr-img-building);
  border: 10px solid var(--kwr-cream);
}

.kwr-editorial__stamp {
  position: absolute;
  top: 9%;
  right: -16px;
  z-index: 3;
  display: grid;
  width: 138px;
  height: 138px;
  place-items: center;
  border: 1px solid rgba(32,58,44,.36);
  border-radius: 50%;
  color: var(--kwr-forest);
  background: rgba(246,243,236,.82);
  box-shadow: 0 18px 60px rgba(32,58,44,.18);
  backdrop-filter: blur(14px);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .15em;
  text-align: center;
  text-transform: uppercase;
  animation: kwr-stamp-spin 22s linear infinite;
}

@keyframes kwr-stamp-spin { to { transform: rotate(360deg); } }

@supports (animation-timeline: view()) {
  .kwr-editorial__image--back {
    clip-path: polygon(48% 0, 52% 0, 52% 100%, 48% 100%, 48% 0);
    animation: kwr-editorial-unfold both;
    animation-timeline: view();
    animation-range: entry 0% cover 42%;
  }

  .kwr-editorial__image--front {
    transform: translate(-55px, 85px) rotate(-4deg);
    opacity: 0;
    animation: kwr-editorial-front both;
    animation-timeline: view();
    animation-range: entry 18% cover 50%;
  }
}

@keyframes kwr-editorial-unfold {
  to { clip-path: polygon(10% 0, 100% 0, 100% 94%, 0 100%, 0 12%); }
}

@keyframes kwr-editorial-front {
  to { opacity: 1; transform: translate(0,0) rotate(0); }
}

/* ==========================================================
   WIDGET 05 · HORIZONTAL SCROLL-SNAP GALLERY
   ========================================================== */
.kwr-slider {
  color: #fff;
  background: var(--kwr-forest);
}

.kwr-slider__head {
  display: grid;
  grid-template-columns: 1fr minmax(260px, .5fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 42px;
}

.kwr-slider__head h2 { margin-top: 1.25rem; color: #fff; }
.kwr-slider__head .kwr-lede { color: rgba(255,255,255,.72); }

.kwr-slider__track {
  display: grid;
  grid-auto-columns: min(76vw, 820px);
  grid-auto-flow: column;
  gap: 18px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 0 var(--kwr-gutter) 34px;
  scroll-padding-inline: var(--kwr-gutter);
  scroll-snap-type: inline mandatory;
  scrollbar-color: var(--kwr-lime) rgba(255,255,255,.16);
  scrollbar-width: thin;
  cursor: grab;
}

.kwr-slider__track:active { cursor: grabbing; }

.kwr-slider__track::-webkit-scrollbar { height: 8px; }
.kwr-slider__track::-webkit-scrollbar-track { background: rgba(255,255,255,.12); }
.kwr-slider__track::-webkit-scrollbar-thumb { background: var(--kwr-lime); }

.kwr-slide {
  position: relative;
  min-height: min(660px, 72vh);
  overflow: hidden;
  scroll-snap-align: center;
  background: #14251a;
  isolation: isolate;
}

.kwr-slide__media,
.kwr-slide::before { position: absolute; inset: 0; }

.kwr-slide__media {
  background-position: center;
  background-size: cover;
  transition: transform .8s cubic-bezier(.22,1,.36,1), filter .8s ease;
}

.kwr-slide:nth-child(1) .kwr-slide__media { background-image: var(--kwr-img-evening); }
.kwr-slide:nth-child(2) .kwr-slide__media { background-image: var(--kwr-img-courtyard-2); }
.kwr-slide:nth-child(3) .kwr-slide__media { background-image: var(--kwr-img-og-room-2); }
.kwr-slide:nth-child(4) .kwr-slide__media { background-image: var(--kwr-img-og-balcony); }
.kwr-slide:nth-child(5) .kwr-slide__media { background-image: var(--kwr-img-garden); }
.kwr-slide:nth-child(6) .kwr-slide__media { background-image: var(--kwr-img-location-1); }

.kwr-slide::before {
  z-index: 1;
  background:
    linear-gradient(0deg, rgba(7,18,11,.9) 0%, rgba(7,18,11,.08) 64%),
    linear-gradient(90deg, rgba(7,18,11,.45), transparent 42%);
  content: '';
}

.kwr-slide__content {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 22px;
  align-items: end;
  padding: clamp(24px, 4vw, 54px);
}

.kwr-slide__count {
  color: var(--kwr-lime);
  font-family: var(--kwr-serif);
  font-size: clamp(3.2rem, 6vw, 6.6rem);
  line-height: .8;
}

.kwr-slide h3 { color: #fff; }
.kwr-slide p { margin-top: .7rem; color: rgba(255,255,255,.73); }

.kwr-slide:hover .kwr-slide__media,
.kwr-slide:focus-within .kwr-slide__media {
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.055);
}

.kwr-slider__hint {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  color: rgba(255,255,255,.6);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.kwr-slider__hint::before {
  width: 70px;
  height: 1px;
  background: linear-gradient(90deg, var(--kwr-lime), transparent);
  content: '';
}

/* ==========================================================
   WIDGET 06 · STICKY APARTMENT STACK
   ========================================================== */
.kwr-apartments {
  --kwr-apartment-media-share: 62%;
  color: var(--kwr-forest);
  background: linear-gradient(180deg, #f4f0e6, #eceee8);
}

/* V5.4.9 · frei steuerbare Bild-/Textposition und Kartenproportionen */
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card {
  grid-template-columns: minmax(0, var(--kwr-apartment-media-share)) minmax(0, calc(100% - var(--kwr-apartment-media-share)));
}
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card__media { order: 1; }
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card__content { order: 2; }
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card {
  grid-template-columns: minmax(0, calc(100% - var(--kwr-apartment-media-share))) minmax(0, var(--kwr-apartment-media-share));
}
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card__content { order: 1; }
.elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card__media { order: 2; }

.kwr-apartments__head {
  max-width: 920px;
  margin-bottom: clamp(58px, 8vw, 112px);
}

.kwr-apartments__head h2 { margin-top: 1.25rem; }
.kwr-apartments__head .kwr-lede { margin-top: 1.8rem; color: rgba(46,50,48,.72); }

.kwr-apartment-stack { padding-bottom: 16vh; }

.kwr-apartment-card {
  --stack: 0;
  position: sticky;
  top: calc(90px + (var(--stack) * 30px));
  min-height: min(700px, 76vh);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .7fr);
  overflow: hidden;
  margin-bottom: 80px;
  color: #fff;
  background: var(--kwr-forest);
  box-shadow: var(--kwr-shadow-deep);
}

.kwr-apartment-card:nth-child(1) { --stack: 0; }
.kwr-apartment-card:nth-child(2) { --stack: 1; }
.kwr-apartment-card:nth-child(3) { --stack: 2; margin-bottom: 0; }

.kwr-apartment-card__media {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  background-position: center;
  background-size: cover;
}

.kwr-apartment-card:nth-child(1) .kwr-apartment-card__media { background-image: var(--kwr-img-terrace); }
.kwr-apartment-card:nth-child(2) .kwr-apartment-card__media { background-image: var(--kwr-img-og-balcony); }
.kwr-apartment-card:nth-child(3) .kwr-apartment-card__media { background-image: var(--kwr-img-dg-balcony); }

.kwr-apartment-card__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 60%, rgba(20,38,25,.75));
  content: '';
}

.kwr-apartment-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(30px, 4.5vw, 68px);
  background:
    radial-gradient(circle at 100% 0%, rgba(184,219,36,.16), transparent 35%),
    var(--kwr-forest);
}

.kwr-apartment-card__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: rgba(255,255,255,.62);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.kwr-apartment-card__count {
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 50%;
  color: var(--kwr-lime);
  font-family: var(--kwr-serif);
  font-size: 2rem;
}

.kwr-apartment-card h3 {
  margin-top: 1.4rem;
  color: #fff;
  font-size: clamp(3.2rem, 5vw, 6rem);
}

.kwr-apartment-card__text {
  margin-top: 1rem;
  color: rgba(255,255,255,.72);
  font-size: 1.05rem;
}

.kwr-apartment-card__features {
  display: grid;
  gap: 10px;
  margin-top: 2rem;
}

.kwr-apartment-card__features span {
  display: flex;
  align-items: center;
  gap: 11px;
  padding-block: 10px;
  border-top: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.84);
  font-size: .82rem;
  letter-spacing: .04em;
}

.kwr-apartment-card__features span::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--kwr-lime);
  box-shadow: 0 0 18px rgba(184,219,36,.65);
  content: '';
}

@supports (animation-timeline: view()) {
  .kwr-apartment-card {
    animation: kwr-stack-scale linear both;
    animation-timeline: view();
    animation-range: exit 15% exit 88%;
  }
}

@keyframes kwr-stack-scale {
  from { transform: scale(1); filter: brightness(1); }
  to { transform: scale(.955); filter: brightness(.72); }
}

/* ==========================================================
   WIDGET 07 · CSS IMAGE MORPH / TOGGLE
   ========================================================== */
.kwr-morph {
  color: var(--kwr-forest);
  background: var(--kwr-paper);
}

.kwr-morph__grid {
  display: grid;
  grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr);
  gap: clamp(42px, 7vw, 110px);
  align-items: center;
}

.kwr-morph__copy h2 { margin-top: 1.3rem; }
.kwr-morph__copy .kwr-lede { margin-top: 1.6rem; color: rgba(46,50,48,.72); }
.kwr-morph__note {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 1.8rem;
  color: var(--kwr-moor);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.kwr-morph__note::before { width: 42px; height: 1px; background: currentColor; content: ''; }

.kwr-switch__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.kwr-switch__stage {
  position: relative;
  display: block;
  min-height: min(700px, 74vh);
  overflow: hidden;
  background: var(--kwr-forest);
  box-shadow: var(--kwr-shadow);
  cursor: pointer;
  isolation: isolate;
}

.kwr-switch__image {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  transition: clip-path 1s cubic-bezier(.22,1,.36,1), filter .8s ease, transform .8s ease;
}

.kwr-switch__image--day { background-image: var(--kwr-img-building); }
.kwr-switch__image--night {
  background-image: var(--kwr-img-evening);
  clip-path: inset(0 100% 0 0);
}

.kwr-switch__stage::after {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(0deg, rgba(7,18,11,.78), transparent 55%);
  content: '';
  pointer-events: none;
}

.kwr-switch__labels {
  position: absolute;
  inset: auto clamp(20px, 4vw, 52px) clamp(22px, 4vw, 48px);
  z-index: 3;
  display: flex;
  justify-content: space-between;
  color: #fff;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.kwr-switch__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 4;
  width: 3px;
  background: var(--kwr-lime);
  box-shadow: 0 0 28px rgba(184,219,36,.85);
  left: 0;
  transition: left 1s cubic-bezier(.22,1,.36,1);
}

.kwr-switch__handle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 50%;
  color: var(--kwr-forest);
  background: rgba(255,255,255,.9);
  box-shadow: 0 14px 40px rgba(0,0,0,.25);
  content: '↔';
  font-size: 1.4rem;
  transform: translate(-50%, -50%);
}

.kwr-switch__input:checked + .kwr-switch__stage .kwr-switch__image--night { clip-path: inset(0 0 0 0); }
.kwr-switch__input:checked + .kwr-switch__stage .kwr-switch__handle { left: calc(100% - 3px); }

.kwr-switch__stage:hover .kwr-switch__image { transform: scale(1.025); }

/* ==========================================================
   WIDGET 08 · PURE CSS LIGHTBOX GALLERY
   ========================================================== */
.kwr-gallery {
  color: var(--kwr-forest);
  background: #dde2dc;
}

.kwr-gallery__head {
  max-width: 900px;
  margin-bottom: clamp(46px, 7vw, 90px);
}

.kwr-gallery__head h2 { margin-top: 1.3rem; }
.kwr-gallery__head .kwr-lede { margin-top: 1.7rem; color: rgba(46,50,48,.72); }

.kwr-gallery__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 140px;
  gap: 14px;
}

.kwr-gallery-item {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: var(--kwr-forest);
  isolation: isolate;
}

.kwr-gallery-item:nth-child(1) { grid-column: 1 / span 7; grid-row: span 4; }
.kwr-gallery-item:nth-child(2) { grid-column: 8 / span 5; grid-row: span 2; }
.kwr-gallery-item:nth-child(3) { grid-column: 8 / span 5; grid-row: span 2; }
.kwr-gallery-item:nth-child(4) { grid-column: 1 / span 4; grid-row: span 3; }
.kwr-gallery-item:nth-child(5) { grid-column: 5 / span 4; grid-row: span 3; }
.kwr-gallery-item:nth-child(6) { grid-column: 9 / span 4; grid-row: span 3; }

.kwr-gallery-item__media,
.kwr-gallery-item::before,
.kwr-gallery-item::after { position: absolute; inset: 0; }

.kwr-gallery-item__media {
  background-position: center;
  background-size: cover;
  transition: transform .8s cubic-bezier(.22,1,.36,1), filter .8s ease;
}

.kwr-gallery-item:nth-child(1) .kwr-gallery-item__media { background-image: var(--kwr-img-evening); }
.kwr-gallery-item:nth-child(2) .kwr-gallery-item__media { background-image: var(--kwr-img-og-room); }
.kwr-gallery-item:nth-child(3) .kwr-gallery-item__media { background-image: var(--kwr-img-og-balcony); }
.kwr-gallery-item:nth-child(4) .kwr-gallery-item__media { background-image: var(--kwr-img-courtyard); }
.kwr-gallery-item:nth-child(5) .kwr-gallery-item__media { background-image: var(--kwr-img-dg-room); }
.kwr-gallery-item:nth-child(6) .kwr-gallery-item__media { background-image: var(--kwr-img-location-2); }

.kwr-gallery-item::before {
  z-index: 1;
  background: linear-gradient(0deg, rgba(7,18,11,.82), transparent 54%);
  content: '';
}

.kwr-gallery-item::after {
  z-index: 2;
  border: 1px solid rgba(255,255,255,.5);
  content: '';
  opacity: 0;
  transform: scale(.94);
  transition: opacity .4s ease, transform .4s ease;
}

.kwr-gallery-item__label {
  position: absolute;
  right: 20px;
  bottom: 18px;
  left: 20px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.kwr-gallery-item__label span:last-child {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  font-size: 1.1rem;
}

.kwr-gallery-item:hover .kwr-gallery-item__media,
.kwr-gallery-item:focus-visible .kwr-gallery-item__media {
  filter: saturate(1.1) contrast(1.04);
  transform: scale(1.06);
}
.kwr-gallery-item:hover::after,
.kwr-gallery-item:focus-visible::after { opacity: 1; transform: scale(1); }

.kwr-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  visibility: hidden;
  place-items: center;
  padding: clamp(18px, 4vw, 60px);
  opacity: 0;
  transition: opacity .35s ease, visibility .35s ease;
}

.kwr-lightbox:target { visibility: visible; opacity: 1; }

.kwr-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6,13,8,.92);
  backdrop-filter: blur(16px);
}

.kwr-lightbox__dialog {
  position: relative;
  z-index: 2;
  width: min(1160px, 92vw);
  height: min(82vh, 820px);
  overflow: hidden;
  background: #101b15;
  box-shadow: 0 50px 160px rgba(0,0,0,.65);
  transform: scale(.94) translateY(24px);
  transition: transform .4s cubic-bezier(.22,1,.36,1);
}

.kwr-lightbox:target .kwr-lightbox__dialog { transform: scale(1) translateY(0); }

.kwr-lightbox__image {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
}

#kwr-lightbox-1 .kwr-lightbox__image { background-image: var(--kwr-img-evening); }
#kwr-lightbox-2 .kwr-lightbox__image { background-image: var(--kwr-img-og-room); }
#kwr-lightbox-3 .kwr-lightbox__image { background-image: var(--kwr-img-og-balcony); }
#kwr-lightbox-4 .kwr-lightbox__image { background-image: var(--kwr-img-courtyard); }
#kwr-lightbox-5 .kwr-lightbox__image { background-image: var(--kwr-img-dg-room); }
#kwr-lightbox-6 .kwr-lightbox__image { background-image: var(--kwr-img-location-2); }

.kwr-lightbox__close {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 3;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  color: #fff;
  background: rgba(10,20,13,.42);
  backdrop-filter: blur(12px);
  font-size: 1.45rem;
}

.kwr-lightbox__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  padding: 52px 28px 26px;
  color: #fff;
  background: linear-gradient(transparent, rgba(6,15,9,.88));
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* ==========================================================
   WIDGET 09 · GLASS OVERLAY / DETAILS
   ========================================================== */
.kwr-health {
  min-height: min(980px, 100svh);
  display: grid;
  align-items: center;
  color: #fff;
  background: var(--kwr-forest);
}

.kwr-health__media,
.kwr-health::before,
.kwr-health::after { position: absolute; inset: 0; }

.kwr-health__media {
  background-image: var(--kwr-img-og-room-2);
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
}

.kwr-health::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(8,22,13,.86) 0%, rgba(8,22,13,.6) 44%, rgba(8,22,13,.12) 86%),
    linear-gradient(0deg, rgba(8,22,13,.56), transparent 65%);
  content: '';
}

.kwr-health::after {
  z-index: 1;
  opacity: .22;
  background-image: radial-gradient(circle at 20% 30%, rgba(184,219,36,.25), transparent 24%), radial-gradient(circle at 80% 60%, rgba(142,169,187,.28), transparent 22%);
  content: '';
  animation: kwr-ambient 9s ease-in-out infinite alternate;
}

@keyframes kwr-ambient { to { opacity: .42; transform: scale(1.08); } }

.kwr-health__grid {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(360px, .65fr);
  gap: clamp(46px, 8vw, 130px);
  align-items: center;
}

.kwr-health__copy h2 { margin-top: 1.3rem; color: #fff; }
.kwr-health__copy .kwr-lede { margin-top: 1.7rem; color: rgba(255,255,255,.78); }

.kwr-glass {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.36);
  padding: clamp(26px, 4vw, 50px);
  background: rgba(246,243,236,.13);
  box-shadow: var(--kwr-shadow-deep);
  backdrop-filter: blur(24px) saturate(125%);
  -webkit-backdrop-filter: blur(24px) saturate(125%);
}

.kwr-glass::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.32), transparent 34%, transparent 68%, rgba(184,219,36,.13));
  content: '';
  pointer-events: none;
}

.kwr-glass__eyebrow {
  color: var(--kwr-lime);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.kwr-health details {
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255,255,255,.22);
}

.kwr-health details:last-child { border-bottom: 1px solid rgba(255,255,255,.22); }

.kwr-health summary {
  position: relative;
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  color: #fff;
  cursor: pointer;
  font-weight: 750;
}

.kwr-health summary::-webkit-details-marker { display: none; }
.kwr-health summary::after {
  display: grid;
  width: 32px;
  height: 32px;
  flex: none;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  content: '+';
  transition: transform .3s ease, background .3s ease;
}

.kwr-health details[open] summary::after {
  color: var(--kwr-forest);
  background: var(--kwr-lime);
  transform: rotate(45deg);
}

.kwr-health details p {
  padding: 0 42px 24px 0;
  color: rgba(255,255,255,.72);
}

.kwr-health__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 1.8rem;
}

.kwr-health__chips span {
  border: 1px solid rgba(255,255,255,.3);
  padding: .58rem .8rem;
  color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.08);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

/* ==========================================================
   WIDGET 10 · LOCATION PARALLAX
   ========================================================== */
.kwr-location {
  min-height: 1050px;
  display: grid;
  align-items: center;
  color: #fff;
  background: #15241a;
}

.kwr-location__media,
.kwr-location::before { position: absolute; inset: 0; }

.kwr-location__media {
  background-image: var(--kwr-img-location-2);
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
  filter: saturate(.92) contrast(1.02);
  transform: scale(1.03);
}

.kwr-location::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(7,20,12,.84), rgba(7,20,12,.35) 55%, rgba(7,20,12,.16)),
    linear-gradient(0deg, rgba(7,20,12,.68), transparent 58%);
  content: '';
}

.kwr-location__grid {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(380px, .88fr);
  gap: clamp(52px, 8vw, 140px);
  align-items: center;
}

.kwr-location__copy h2 { margin-top: 1.3rem; color: #fff; }
.kwr-location__copy .kwr-lede { margin-top: 1.8rem; color: rgba(255,255,255,.76); }

.kwr-location__map {
  position: relative;
  min-height: 650px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(14,31,20,.24);
  box-shadow: var(--kwr-shadow-deep);
  backdrop-filter: blur(8px);
}

.kwr-location__map svg {
  position: absolute;
  inset: 7%;
  width: 86%;
  height: 86%;
  overflow: visible;
}

.kwr-location__route {
  fill: none;
  stroke: rgba(255,255,255,.58);
  stroke-dasharray: 8 12;
  stroke-width: 1.4;
  animation: kwr-route 18s linear infinite;
}

.kwr-location__landline {
  fill: none;
  stroke: rgba(184,219,36,.68);
  stroke-width: 1.5;
}

@keyframes kwr-route { to { stroke-dashoffset: -240; } }

.kwr-location__point {
  position: absolute;
  min-width: 160px;
  padding: 16px 18px;
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  background: rgba(15,36,22,.56);
  box-shadow: 0 18px 58px rgba(0,0,0,.24);
  backdrop-filter: blur(16px);
}

.kwr-location__point::before {
  position: absolute;
  top: 50%;
  left: -7px;
  width: 13px;
  height: 13px;
  border: 3px solid rgba(255,255,255,.85);
  border-radius: 50%;
  background: var(--kwr-lime);
  box-shadow: 0 0 24px rgba(184,219,36,.85);
  content: '';
  transform: translateY(-50%);
}

.kwr-location__point strong {
  display: block;
  font-family: var(--kwr-serif);
  font-size: 1.5rem;
  font-weight: 400;
}

.kwr-location__point span {
  display: block;
  margin-top: .25rem;
  color: rgba(255,255,255,.66);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.kwr-location__point--moor { top: 12%; left: 6%; }
.kwr-location__point--home { top: 42%; left: 48%; border-color: rgba(184,219,36,.62); }
.kwr-location__point--mountain { right: 4%; bottom: 12%; }

/* ==========================================================
   WIDGET 11 · FINAL CTA · HELLES OVERLAY
   ========================================================== */
.kwr-final {
  min-height: min(920px, 96svh);
  display: grid;
  align-items: end;
  color: var(--kwr-forest);
  background: var(--kwr-cream);
}

.kwr-final__media,
.kwr-final::before,
.kwr-final::after { position: absolute; inset: 0; }

.kwr-final__media {
  background-image: var(--kwr-img-evening);
  background-position: center;
  background-size: cover;
  filter: saturate(.9) contrast(.96) brightness(1.04);
  transition: transform 1.4s cubic-bezier(.22,1,.36,1), filter 1.4s ease;
}

.kwr-final::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(251,248,240,.98) 0%, rgba(246,243,236,.91) 42%, rgba(246,243,236,.5) 79%, rgba(246,243,236,.18) 100%),
    linear-gradient(0deg, rgba(246,243,236,.94), rgba(246,243,236,.08) 62%);
  content: '';
}

.kwr-final::after {
  z-index: 1;
  opacity: .14;
  background-image:
    linear-gradient(rgba(32,58,44,.2) 1px, transparent 1px),
    linear-gradient(90deg, rgba(32,58,44,.2) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: linear-gradient(to right, #000, transparent 72%);
  content: '';
}

.kwr-final:hover .kwr-final__media {
  filter: saturate(.98) contrast(.98) brightness(1.06);
  transform: scale(1.035);
}

.kwr-final__inner { padding-top: 140px; padding-bottom: clamp(58px, 8vw, 104px); }

.kwr-final__copy { max-width: 980px; }
.kwr-final__copy h2 { margin-top: 1.3rem; color: var(--kwr-forest); }
.kwr-final__copy h2 em { color: #708500; font-style: normal; }
.kwr-final__copy .kwr-lede { margin-top: 1.8rem; color: rgba(32,58,44,.8); }
.kwr-final__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 2.2rem; }

.kwr-final__ticker {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 3;
  overflow: hidden;
  border-top: 1px solid rgba(32,58,44,.18);
  border-bottom: 1px solid rgba(32,58,44,.18);
  background: rgba(251,248,240,.7);
  backdrop-filter: blur(14px) saturate(112%);
  -webkit-backdrop-filter: blur(14px) saturate(112%);
}

.kwr-final__ticker-track {
  display: flex;
  width: max-content;
  gap: 42px;
  padding: 14px 0;
  color: rgba(32,58,44,.74);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
  animation: kwr-ticker 24s linear infinite;
}

.kwr-final__ticker-track span::after {
  margin-left: 42px;
  color: #708500;
  content: '●';
}

@keyframes kwr-ticker { to { transform: translateX(-50%); } }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .kwr-hero__inner,
  .kwr-story__grid,
  .kwr-editorial__grid,
  .kwr-morph__grid,
  .kwr-health__grid,
  .kwr-location__grid {
    grid-template-columns: 1fr;
  }

  .kwr-hero__facts { grid-template-columns: repeat(3, 1fr); }
  .kwr-hero__fact { grid-template-columns: 1fr; align-content: start; }
  .kwr-story__intro { position: relative; top: auto; padding-bottom: 0; }
  .kwr-principles__head,
  .kwr-slider__head { grid-template-columns: 1fr; }
  .kwr-editorial__canvas { min-height: 640px; }
  .kwr-apartment-card { grid-template-columns: 1fr 1fr; }
  .kwr-health__grid { max-width: 850px; }
  .kwr-location__grid { max-width: 900px; }
}

@media (max-width: 820px) {
  .kwr-demo h1 { font-size: clamp(3.25rem, 16vw, 6rem); }
  .kwr-demo h2 { font-size: clamp(2.7rem, 12vw, 5rem); }

  .kwr-hero { min-height: 920px; }
  .kwr-hero__inner { padding-top: 140px; }
  .kwr-hero__facts { grid-template-columns: 1fr; }
  .kwr-hero__fact { grid-template-columns: auto 1fr; }
  .kwr-hero__scroll { display: none; }

  .kwr-story-card { min-height: 640px; }
  .kwr-story-card__content { grid-template-columns: 1fr; }

  .kwr-principles__grid { grid-template-columns: 1fr; }
  .kwr-principle-card,
  .kwr-principle-card:nth-child(n) { grid-column: auto; min-height: 430px; }

  .kwr-editorial { min-height: auto; }
  .kwr-editorial__canvas { min-height: 570px; }
  .kwr-editorial__image--front { inset: 48% 42% 0 0; }
  .kwr-editorial__stamp { width: 112px; height: 112px; right: 8px; }

  .kwr-slider__track { grid-auto-columns: 88vw; }
  .kwr-slide { min-height: 580px; }

  .kwr-apartment-card,
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card,
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card {
    position: relative;
    top: auto;
    grid-template-columns: 1fr;
    min-height: auto;
    margin-bottom: 28px;
  }
  .kwr-apartment-card__media { min-height: 480px; }
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card__media { order: 1; }
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-image_left .kwr-apartment-card__content { order: 2; }
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card__content { order: 1; }
  .elementor-widget-kwrfx-demo-apartments.kwrfx-apartment-layout-text_left .kwr-apartment-card__media { order: 2; }

  .kwr-gallery__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 260px; }
  .kwr-gallery-item,
  .kwr-gallery-item:nth-child(n) { grid-column: auto; grid-row: auto; }
  .kwr-gallery-item:first-child { grid-column: span 2; }

  .kwr-health,
  .kwr-location { min-height: auto; }
  .kwr-health__media,
  .kwr-location__media { background-attachment: scroll; }
  .kwr-location__map { min-height: 560px; }

  .kwr-final { min-height: 820px; }
}

@media (max-width: 560px) {
  .kwr-section { padding-block: 76px; }
  .kwr-btn { width: 100%; }
  .kwr-hero__actions,
  .kwr-final__actions { display: grid; }

  .kwr-hero { min-height: 920px; }
  .kwr-hero__inner { padding-top: 120px; padding-bottom: 46px; }
  .kwr-hero__fact strong { font-size: 1.8rem; }

  .kwr-story-card { min-height: 560px; }
  .kwr-story-card__number { font-size: 4.2rem; }

  .kwr-editorial__canvas { min-height: 500px; }
  .kwr-editorial__image--back { inset: 0 0 10% 8%; }
  .kwr-editorial__image--front { inset: 58% 34% 0 0; border-width: 6px; }
  .kwr-editorial__stamp { display: none; }

  .kwr-slide { min-height: 520px; }
  .kwr-slide__content { grid-template-columns: 1fr; }

  .kwr-apartment-card__media { min-height: 360px; }
  .kwr-apartment-card__content { padding: 26px 22px 30px; }

  .kwr-switch__stage { min-height: 520px; }
  .kwr-switch__handle::after { width: 48px; height: 48px; }

  .kwr-gallery__grid { grid-template-columns: 1fr; grid-auto-rows: 300px; }
  .kwr-gallery-item:first-child { grid-column: auto; }
  .kwr-lightbox__dialog { width: 94vw; height: 72vh; }

  .kwr-glass { padding: 24px 20px; }
  .kwr-location__map { min-height: 520px; }
  .kwr-location__point { min-width: 135px; padding: 13px 14px; }
  .kwr-location__point--home { top: 45%; left: 34%; }

  .kwr-final { min-height: 850px; }
  .kwr-final__inner { padding-bottom: 90px; }
}

/* ---------- Barrierearme Bewegungsreduktion ---------- */
@media (prefers-reduced-motion: reduce) {
  .kwr-demo,
  .kwr-demo *,
  .kwr-demo *::before,
  .kwr-demo *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  .kwr-health__media,
  .kwr-location__media { background-attachment: scroll; }
}


/* ==========================================================
   KWRFX V4.5.0 · Elementor Widget-Kompatibilität
   ========================================================== */
.kwr-demo.kwr-demo--contained,
.kwr-demo.kwrfx-width--elementor {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

/* V5.4.5 · Nur diese Klasse darf bewusst aus dem Elementor-Container ausbrechen. */
.kwr-demo.kwrfx-width--viewport {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.kwr-demo .kwr-inner {
  width: min(100%, var(--kwr-content-max, 100%));
}

.kwr-demo .kwr-btn {
  /* Typografie darf von den Elementor-Widget-Controls überschrieben werden. */
  font-family: inherit;
}

.kwr-apartment-card:last-child { margin-bottom: 0; }

/* Im Elementor-Editor keine Widgets durch fixed/target-Ebenen unbedienbar machen. */
.elementor-editor-active .kwr-lightbox { pointer-events: none; }
.elementor-editor-active .kwr-lightbox:target { visibility: hidden; opacity: 0; }

/* Verhindert globale Full-Width-Regeln im Widget-Vorschaurahmen, wenn enthalten gewählt wurde. */
.elementor-widget-kwrfx-demo-hero .kwr-demo--contained,
.elementor-widget-kwrfx-demo-story .kwr-demo--contained,
.elementor-widget-kwrfx-demo-principles .kwr-demo--contained,
.elementor-widget-kwrfx-demo-editorial .kwr-demo--contained,
.elementor-widget-kwrfx-demo-slider .kwr-demo--contained,
.elementor-widget-kwrfx-demo-apartments .kwr-demo--contained,
.elementor-widget-kwrfx-demo-morph .kwr-demo--contained,
.elementor-widget-kwrfx-demo-gallery .kwr-demo--contained,
.elementor-widget-kwrfx-demo-health .kwr-demo--contained,
.elementor-widget-kwrfx-demo-location .kwr-demo--contained,
.elementor-widget-kwrfx-demo-final .kwr-demo--contained { width: 100%; margin-inline: 0; }

/* ==========================================================
   KWRFX V4.7.0 · ORBITING GRADIENT STRIP
   Historisches Vorbild: „KWRFX – Orbiting Gradient Strip (v2.0, Free)“
   ========================================================== */
.kwrfx-orbit-strip {
  --kwrfx-orbit-height: 235px;
  --kwrfx-orbit-shape-w: 105%;
  --kwrfx-orbit-shape-h: 290%;
  --kwrfx-orbit-x: 54%;
  --kwrfx-orbit-y: 48%;
  --kwrfx-orbit-start: 18deg;
  --kwrfx-orbit-opacity: .42;
  --kwrfx-orbit-secondary-opacity: .24;
  --kwrfx-orbit-blur: 0px;
  --kwrfx-orbit-speed: 18s;
  --kwrfx-orbit-speed-2: 52s;
  --kwrfx-orbit-direction: normal;
  --kwrfx-orbit-blend: normal;
  --kwrfx-orbit-glow-opacity: .34;
  --kwrfx-orbit-base: rgba(251,248,241,1);
  --kwrfx-orbit-base-raw: #fbf8f1;
  --kwrfx-orbit-base-opacity: 1;
  --kwrfx-orbit-gradient: var(--kwrfx-gradient-linear-custom);
  --kwrfx-contact-glow-color-a: rgba(180,211,52,.18);
  --kwrfx-contact-glow-color-b: rgba(215,173,101,.20);
  --kwrfx-contact-glow-color-a-raw: #b4d334;
  --kwrfx-contact-glow-color-b-raw: #d7ad65;
  --kwrfx-contact-glow-color-a-alpha: 18%;
  --kwrfx-contact-glow-color-b-alpha: 20%;
  --kwrfx-contact-glow-opacity: .62;
  --kwrfx-contact-glow-inset: -45%;
  --kwrfx-contact-glow-angle: 180deg;
  min-height: var(--kwrfx-orbit-height);
  height: var(--kwrfx-orbit-height);
  background: transparent !important;
  isolation: isolate;
  overflow: hidden;
  border-color: transparent;
}

/* V4.8.5: echte DOM-Grundfläche statt ::before.
   Dadurch kann ihre Deckkraft den Animations-Canvas/Glow nicht beeinflussen
   und es gibt keine Kollision mit Elementor-Pseudo-Overlays. */
.kwrfx-orbit-strip::before { content: none !important; }

.kwrfx-orbit-strip__base {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--kwrfx-orbit-base, #fbf8f1);
  opacity: var(--kwrfx-orbit-base-opacity, 1);
}

.kwrfx-orbit-strip__canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.kwrfx-orbit-strip__shape {
  position: absolute;
  left: var(--kwrfx-orbit-x);
  top: var(--kwrfx-orbit-y);
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  transform-origin: 50% 50%;
  background-image: var(--kwrfx-orbit-gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  mix-blend-mode: var(--kwrfx-orbit-blend);
  filter: blur(var(--kwrfx-orbit-blur));
  will-change: transform;
  animation: kwrfx-orbit-strip-rotate var(--kwrfx-orbit-speed) linear infinite;
  animation-direction: var(--kwrfx-orbit-direction);
}

.kwrfx-orbit-strip__shape--primary {
  opacity: var(--kwrfx-orbit-opacity);
}

.kwrfx-orbit-strip__shape--secondary {
  opacity: var(--kwrfx-orbit-secondary-opacity);
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  scale: .72 1.08;
  animation-name: kwrfx-orbit-strip-rotate-secondary;
  animation-duration: var(--kwrfx-orbit-speed-2);
  animation-direction: var(--kwrfx-orbit-direction-2, reverse);
  transform-origin: 47% 53%;
}

.kwrfx-orbit-strip__glow {
  position: absolute;
  left: var(--kwrfx-orbit-x);
  top: var(--kwrfx-orbit-y);
  width: min(72vw, 980px);
  aspect-ratio: 1.8 / 1;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at center, rgba(255,255,255,.94) 0%, rgba(255,255,255,.48) 28%, rgba(255,255,255,0) 72%);
  opacity: var(--kwrfx-orbit-glow-opacity);
  filter: blur(22px);
  mix-blend-mode: screen;
}

@keyframes kwrfx-orbit-strip-rotate {
  from { transform: translate(-50%, -50%) rotate(var(--kwrfx-orbit-start)); }
  to { transform: translate(-50%, -50%) rotate(calc(var(--kwrfx-orbit-start) + 360deg)); }
}
@keyframes kwrfx-orbit-strip-rotate-secondary {
  from { transform: translate(-50%, -50%) rotate(calc(var(--kwrfx-orbit-start) + 68deg)); }
  to { transform: translate(-50%, -50%) rotate(calc(var(--kwrfx-orbit-start) + 428deg)); }
}

/* Kontakt-Glow: exakt aus der hochgeladenen lokalen Projektseite rekonstruiert.
   Original dort: .kw-glow-card:before { inset:-45%; background:conic-gradient(from 180deg,
   transparent,rgba(180,211,52,.18),transparent,rgba(215,173,101,.2),transparent);
   opacity:.62; animation:kwSoftSpin 18s linear infinite; }
   Hier als echtes Widget-Layer, damit es normal, unter/über Elementor-BG und als Vordergrund nutzbar ist. */
.kwrfx-orbit-strip--contact-glow .kwrfx-orbit-strip__shape--primary {
  left: auto;
  top: auto;
  right: auto;
  bottom: auto;
  inset: var(--kwrfx-contact-glow-inset);
  width: auto;
  height: auto;
  scale: none;
  transform-origin: 50% 50%;
  background-image: conic-gradient(
    from var(--kwrfx-contact-glow-angle),
    transparent,
    var(--kwrfx-contact-glow-color-a),
    transparent,
    var(--kwrfx-contact-glow-color-b),
    transparent
  );
  background-repeat: no-repeat;
  background-size: 100% 100%;
  opacity: var(--kwrfx-contact-glow-opacity);
  filter: none;
  mix-blend-mode: var(--kwrfx-orbit-blend);
  animation-name: kwrfx-contact-glow-spin;
  animation-duration: var(--kwrfx-orbit-speed);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-direction: var(--kwrfx-orbit-direction);
}

/* V4.8.4: Farbe und Deckkraft sind getrennt. Der erste Gradient bleibt
   als Fallback; moderne Browser nutzen die opake Rohfarbe plus eigenen
   Alpha-Regler, sodass alte rgba-Werte nicht versehentlich doppelt
   transparent gerechnet werden. */
@supports (color: rgb(from white r g b / 50%)) {
  .kwrfx-orbit-strip--contact-glow .kwrfx-orbit-strip__shape--primary {
    background-image: conic-gradient(
      from var(--kwrfx-contact-glow-angle),
      transparent,
      rgb(from var(--kwrfx-contact-glow-color-a-raw) r g b / var(--kwrfx-contact-glow-color-a-alpha)),
      transparent,
      rgb(from var(--kwrfx-contact-glow-color-b-raw) r g b / var(--kwrfx-contact-glow-color-b-alpha)),
      transparent
    );
  }
}

.kwrfx-orbit-strip--contact-glow .kwrfx-orbit-strip__shape--secondary,
.kwrfx-orbit-strip--contact-glow .kwrfx-orbit-strip__glow { display: none; }

@keyframes kwrfx-contact-glow-spin {
  to { transform: rotate(360deg); }
}

/* Original: zwei große, sich kreuzende Flächen wie im früheren Template. */
.kwrfx-orbit-strip--original .kwrfx-orbit-strip__shape--primary {
  clip-path: polygon(8% 0, 100% 0, 82% 100%, 0 100%);
}
.kwrfx-orbit-strip--original .kwrfx-orbit-strip__shape--secondary {
  clip-path: polygon(0 12%, 86% 0, 100% 88%, 14% 100%);
}

/* Soft: nur eine sehr ruhige, breite Fläche. */
.kwrfx-orbit-strip--soft .kwrfx-orbit-strip__shape--primary {
  border-radius: 48%;
  filter: blur(calc(var(--kwrfx-orbit-blur) + 20px));
  opacity: var(--kwrfx-orbit-opacity);
}
.kwrfx-orbit-strip--soft .kwrfx-orbit-strip__shape--secondary { display: none; }

/* Dual: zwei klar erkennbare Gegenläufer. */
.kwrfx-orbit-strip--dual .kwrfx-orbit-strip__shape--primary {
  clip-path: polygon(0 0, 100% 10%, 82% 100%, 8% 88%);
}
.kwrfx-orbit-strip--dual .kwrfx-orbit-strip__shape--secondary {
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  scale: .82;
  clip-path: polygon(12% 0, 100% 18%, 88% 100%, 0 82%);
}

/* Beam: schmalere, grafische Lichtbahn. */
.kwrfx-orbit-strip--beam .kwrfx-orbit-strip__shape--primary {
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  scale: .34 1.35;
  clip-path: polygon(18% 0, 100% 0, 82% 100%, 0 100%);
}
.kwrfx-orbit-strip--beam .kwrfx-orbit-strip__shape--secondary { display: none; }

/* Ambient: große diffuse Farbfläche ohne harte Geometriekanten. */
.kwrfx-orbit-strip--ambient .kwrfx-orbit-strip__shape--primary {
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  scale: 1.45 .72;
  border-radius: 50%;
  filter: blur(calc(var(--kwrfx-orbit-blur) + 34px));
  opacity: var(--kwrfx-orbit-opacity);
}
.kwrfx-orbit-strip--ambient .kwrfx-orbit-strip__shape--secondary {
  width: var(--kwrfx-orbit-shape-w);
  height: var(--kwrfx-orbit-shape-h);
  scale: 1.1 .55;
  border-radius: 50%;
  filter: blur(calc(var(--kwrfx-orbit-blur) + 46px));
  opacity: var(--kwrfx-orbit-secondary-opacity);
}

.kwrfx-orbit-strip.is-static .kwrfx-orbit-strip__shape { animation: none; }
.kwrfx-orbit-strip.is-pause-hover:hover .kwrfx-orbit-strip__shape { animation-play-state: paused; }
.kwrfx-orbit-strip.is-no-glow .kwrfx-orbit-strip__glow { display: none; }

@media (prefers-reduced-motion: reduce) {
  .kwrfx-orbit-strip__shape { animation: none !important; }
}

/* ==========================================================
   KWRFX V4.8.0 · UNIVERSAL BACKGROUND SYSTEM
   ----------------------------------------------------------
   Ein Effekt-Widget kann als normales Element oder als
   Hintergrund/Overlay/Vordergrund eines Elementor-Containers
   verwendet werden. Die Runtime markiert den Zielcontainer.
   ========================================================== */
.kwrfx-bg-parent{
  position:relative!important;
  isolation:isolate!important;
}
.kwrfx-bg-parent.kwrfx-bg-parent--clip{overflow:hidden!important;}

/* Der reale Elementor-Layout-Host kann bei boxed Containern .e-con-inner sein.
   Ist der Hintergrund das einzige Widget, würde dieser Host nach position:absolute
   sonst auf 0px kollabieren. Die Runtime aktiviert die Stützhöhe nur in diesem Fall. */
.kwrfx-bg-host{position:relative;}
.kwrfx-bg-host--fallback-height{
  min-height:var(--kwrfx-bg-fallback-height,235px)!important;
}

/* Alle normalen Inhalte des Zielcontainers über den Hintergrund legen. */
.kwrfx-bg-parent > .elementor-element:not(.kwrfx-bg-wrapper),
.kwrfx-bg-parent > .e-con-inner > .elementor-element:not(.kwrfx-bg-wrapper){
  position:relative;
  z-index:2;
}

.kwrfx-bg-wrapper{
  pointer-events:none!important;
  margin:0!important;
  max-width:none!important;
}
.kwrfx-bg-wrapper > .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  min-height:inherit!important;
}
.kwrfx-bg-wrapper--underlay,
.kwrfx-bg-wrapper--background,
.kwrfx-bg-wrapper--overlay,
.kwrfx-bg-wrapper--foreground{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
}
.kwrfx-bg-wrapper--underlay{z-index:0;}
.kwrfx-bg-wrapper--background{z-index:2;}
.kwrfx-bg-wrapper--overlay{z-index:4;}
.kwrfx-bg-wrapper--foreground{z-index:20;}
.kwrfx-bg-wrapper--foreground ~ .elementor-element{z-index:2;}

/* Sticky-Modus: Effekt bleibt während der Containerpassage am Viewport. */
.kwrfx-bg-wrapper--sticky{
  position:sticky!important;
  inset:auto!important;
  top:var(--kwrfx-bg-sticky-top-runtime,0px)!important;
  width:100%!important;
  height:100vh!important;
  min-height:100vh!important;
  margin-bottom:-100vh!important;
  align-self:flex-start!important;
}

.kwrfx-bg-inherit-radius,
.kwrfx-bg-inherit-radius > .elementor-widget-container,
.kwrfx-bg-inherit-radius .kwrfx-bg-system,
.kwrfx-bg-inherit-radius .kwrfx-orbit-strip{border-radius:inherit;}

/* Neues Layer-Widget */
.kwrfx-bg-system{
  --kwrfx-bg-normal-height:260px;
  --kwrfx-bg-base:transparent;
  --kwrfx-bg-gradient:var(--kwrfx-gradient-linear-custom);
  --kwrfx-bg-scale:1;
  position:relative;
  width:100%;
  height:var(--kwrfx-bg-normal-height);
  min-height:var(--kwrfx-bg-normal-height);
  overflow:hidden;
  isolation:isolate;
  background:var(--kwrfx-bg-base);
  pointer-events:none;
}
.kwrfx-bg-system--underlay,
.kwrfx-bg-system--background,
.kwrfx-bg-system--overlay,
.kwrfx-bg-system--foreground{
  width:100%;
  height:100%;
  min-height:100%;
}
.kwrfx-bg-system__canvas{
  position:absolute;
  inset:-2px;
  overflow:hidden;
  pointer-events:none;
  transform:scale(var(--kwrfx-bg-scale));
  transform-origin:center;
  will-change:transform;
}
.kwrfx-bg-system__layer{
  position:absolute;
  left:var(--kwrfx-layer-x,50%);
  top:var(--kwrfx-layer-y,50%);
  width:var(--kwrfx-layer-w,120%);
  height:var(--kwrfx-layer-h,140%);
  opacity:var(--kwrfx-layer-opacity,.5);
  mix-blend-mode:var(--kwrfx-layer-blend,normal);
  filter:blur(var(--kwrfx-layer-blur,0px));
  transform:translate(-50%,calc(-50% + var(--kwrfx-layer-scroll-y,0px))) rotate(var(--kwrfx-layer-rotate,0deg));
  transform-origin:center;
  z-index:var(--kwrfx-layer-index,1);
  pointer-events:none;
  will-change:transform;
}
.kwrfx-bg-system__surface{
  display:block;
  width:100%;
  height:100%;
  transform-origin:center;
  will-change:transform,opacity;
}

/* Layer-Typen */
.kwrfx-bg-system__layer--orbit .kwrfx-bg-system__surface{
  background-image:var(--kwrfx-bg-gradient);
  background-size:100% 100%;
  background-repeat:no-repeat;
  clip-path:polygon(7% 0,100% 4%,84% 100%,0 94%);
}
.kwrfx-bg-system__layer--ambient .kwrfx-bg-system__surface{
  background-image:var(--kwrfx-bg-gradient);
  background-size:100% 100%;
  background-repeat:no-repeat;
  border-radius:50%;
  filter:blur(24px);
}
.kwrfx-bg-system__layer--clouds .kwrfx-bg-system__surface{
  background:
    radial-gradient(ellipse at 12% 54%,var(--kwrfx-layer-color,rgba(255,255,255,.9)) 0 9%,transparent 29%),
    radial-gradient(ellipse at 31% 43%,var(--kwrfx-layer-color,rgba(255,255,255,.9)) 0 13%,transparent 34%),
    radial-gradient(ellipse at 54% 58%,var(--kwrfx-layer-color,rgba(255,255,255,.9)) 0 15%,transparent 37%),
    radial-gradient(ellipse at 77% 42%,var(--kwrfx-layer-color,rgba(255,255,255,.9)) 0 12%,transparent 33%),
    radial-gradient(ellipse at 94% 58%,var(--kwrfx-layer-color,rgba(255,255,255,.9)) 0 8%,transparent 27%);
  filter:blur(14px);
  transform:scale(1.12);
}
.kwrfx-bg-system__layer--glow .kwrfx-bg-system__surface{
  background:radial-gradient(ellipse at center,var(--kwrfx-layer-color,rgba(255,255,255,.94)) 0%,color-mix(in srgb,var(--kwrfx-layer-color,rgba(255,255,255,.94)) 48%,transparent) 28%,transparent 72%);
  border-radius:50%;
}
@supports not (color:color-mix(in srgb,white,transparent)){
  .kwrfx-bg-system__layer--glow .kwrfx-bg-system__surface{
    background:radial-gradient(ellipse at center,var(--kwrfx-layer-color,rgba(255,255,255,.94)) 0%,rgba(255,255,255,.35) 28%,transparent 72%);
  }
}
.kwrfx-bg-system__layer--grain .kwrfx-bg-system__surface{
  background-image:
    radial-gradient(circle at 20% 30%,rgba(25,35,30,.75) 0 .55px,transparent .75px),
    radial-gradient(circle at 70% 60%,rgba(25,35,30,.55) 0 .45px,transparent .7px),
    radial-gradient(circle at 45% 85%,rgba(255,255,255,.75) 0 .5px,transparent .75px);
  background-size:4px 4px,5px 5px,6px 6px;
  background-position:0 0,1px 2px,2px 1px;
}
.kwrfx-bg-system__layer--image .kwrfx-bg-system__surface{
  background-image:var(--kwrfx-layer-image,none);
  background-size:var(--kwrfx-layer-fit,cover);
  background-position:var(--kwrfx-layer-position,center center);
  background-repeat:no-repeat;
}
.kwrfx-bg-system__layer--color .kwrfx-bg-system__surface{
  background:var(--kwrfx-layer-color,transparent);
}

/* Layer-Bewegungen */
.kwrfx-bg-motion--drift-x .kwrfx-bg-system__surface{animation:kwrfx-bg-drift-x var(--kwrfx-layer-speed,32s) ease-in-out infinite alternate;}
.kwrfx-bg-motion--drift-y .kwrfx-bg-system__surface{animation:kwrfx-bg-drift-y var(--kwrfx-layer-speed,32s) ease-in-out infinite alternate;}
.kwrfx-bg-motion--float .kwrfx-bg-system__surface{animation:kwrfx-bg-float var(--kwrfx-layer-speed,28s) ease-in-out infinite alternate;}
.kwrfx-bg-motion--rotate .kwrfx-bg-system__surface{animation:kwrfx-bg-rotate var(--kwrfx-layer-speed,46s) linear infinite;}
.kwrfx-bg-motion--pulse .kwrfx-bg-system__surface{animation:kwrfx-bg-pulse var(--kwrfx-layer-speed,18s) ease-in-out infinite alternate;}
.kwrfx-bg-system__layer.is-reverse .kwrfx-bg-system__surface{animation-direction:alternate-reverse;}
.kwrfx-bg-motion--rotate.is-reverse .kwrfx-bg-system__surface{animation-direction:reverse;}
@keyframes kwrfx-bg-drift-x{from{transform:translate3d(-8%,0,0) scale(1.04)}to{transform:translate3d(8%,0,0) scale(1.08)}}
@keyframes kwrfx-bg-drift-y{from{transform:translate3d(0,-7%,0) scale(1.04)}to{transform:translate3d(0,7%,0) scale(1.08)}}
@keyframes kwrfx-bg-float{0%{transform:translate3d(-3%,-4%,0) rotate(-2deg) scale(1.02)}50%{transform:translate3d(4%,2%,0) rotate(2deg) scale(1.07)}100%{transform:translate3d(-1%,5%,0) rotate(-1deg) scale(1.04)}}
@keyframes kwrfx-bg-rotate{from{transform:rotate(0deg) scale(1.08)}to{transform:rotate(360deg) scale(1.08)}}
@keyframes kwrfx-bg-pulse{from{transform:scale(.92);opacity:.72}to{transform:scale(1.12);opacity:1}}

/* Parallax der gesamten Fläche wird von JS über eine CSS-Variable gespeist. */
.kwrfx-bg-system[data-kwrfx-scroll="parallax"] .kwrfx-bg-system__canvas,
.kwrfx-orbit-strip[data-kwrfx-scroll="parallax"] .kwrfx-orbit-strip__canvas{
  transform:translate3d(0,var(--kwrfx-bg-scroll-y,0px),0) scale(var(--kwrfx-bg-scale,1));
}

/* Orbit Strip kann ab V4.8 ebenfalls direkt Container-Hintergrund sein. */
.kwrfx-bg-wrapper .kwrfx-orbit-strip{
  width:100%;
}
.kwrfx-bg-wrapper--underlay .kwrfx-orbit-strip,
.kwrfx-bg-wrapper--background .kwrfx-orbit-strip,
.kwrfx-bg-wrapper--overlay .kwrfx-orbit-strip,
.kwrfx-bg-wrapper--foreground .kwrfx-orbit-strip{
  height:100%!important;
  min-height:100%!important;
}

/* Editor: Effektflächen dürfen die Bearbeitung nicht blockieren.
   Der Host bleibt aber sichtbar und bekommt bei einem leeren Container automatisch
   die normale Widget-Höhe als Vorschau-/Fallback-Höhe. */
.elementor-editor-active .kwrfx-bg-wrapper,
.elementor-editor-active .kwrfx-bg-system,
.elementor-editor-active .kwrfx-bg-system *,
.elementor-editor-active .kwrfx-orbit-strip,
.elementor-editor-active .kwrfx-orbit-strip *{pointer-events:none!important;}
.elementor-editor-active .kwrfx-bg-host--fallback-height{
  outline:1px dashed rgba(36,56,45,.18);
  outline-offset:-1px;
}

@media(max-width:767px){
  .kwrfx-bg-mobile-static .kwrfx-bg-system__surface,
  .kwrfx-bg-mobile-static .kwrfx-orbit-strip__shape{animation:none!important;}
}
@media(prefers-reduced-motion:reduce){
  .kwrfx-bg-system__surface,
  .kwrfx-bg-system__layer,
  .kwrfx-orbit-strip__shape{animation:none!important;transition:none!important;}
}

/* Full-width-Ausbruch nur im normalen Modus des Hintergrundsystems. */
.kwrfx-bg-system--full{
  width:100vw;
  max-width:none;
  margin-inline:calc(50% - 50vw);
}
.kwrfx-bg-system,
.kwrfx-bg-system *,
.kwrfx-bg-system *::before,
.kwrfx-bg-system *::after{box-sizing:border-box;}

/* Im Container-Hintergrundmodus darf die alte .kwr-demo-Fullwidth-Logik
   des Orbit-Widgets nicht aus dem Zielcontainer ausbrechen. */
.kwrfx-bg-wrapper .kwrfx-orbit-strip{
  width:100%!important;
  max-width:100%!important;
  margin-inline:0!important;
}


/* ========================================================================== 
   KWRFX V4.8.2 · EBENEN-KOMPOSITOR
   Echte Ebenen relativ zu Elementor-Hintergrundbild und Hintergrund-Overlay.
   ========================================================================== */
.kwrfx-bg-host{
  position:relative;
  isolation:isolate;
  z-index:0;
}

.kwrfx-bg-host > .elementor-element:not(.kwrfx-bg-wrapper){
  position:relative;
  z-index:300;
}

.kwrfx-native-bg-proxy{
  position:absolute!important;
  left:var(--kwrfx-bg-target-left,0px)!important;
  top:var(--kwrfx-bg-target-top,0px)!important;
  width:var(--kwrfx-bg-target-width,100%)!important;
  height:var(--kwrfx-bg-target-height,100%)!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none!important;
  overflow:hidden;
  border-radius:var(--kwrfx-bg-target-radius,0px);
  transform:none!important;
}
.kwrfx-native-bg-proxy--image{
  z-index:50;
  opacity:var(--kwrfx-native-bg-opacity,1);
  mix-blend-mode:var(--kwrfx-native-bg-blend,normal);
}
.kwrfx-native-bg-proxy--overlay{z-index:150;}

.kwrfx-bg-compositor-active::before{
  background-image:none!important;
  background-color:transparent!important;
  opacity:0!important;
}

.kwrfx-bg-wrapper--underlay,
.kwrfx-bg-wrapper--background,
.kwrfx-bg-wrapper--overlay,
.kwrfx-bg-wrapper--foreground{
  inset:auto!important;
  left:var(--kwrfx-bg-target-left,0px)!important;
  top:var(--kwrfx-bg-target-top,0px)!important;
  width:var(--kwrfx-bg-target-width,100%)!important;
  height:var(--kwrfx-bg-target-height,100%)!important;
  min-height:var(--kwrfx-bg-target-height,100%)!important;
}

.kwrfx-bg-wrapper--underlay{z-index:0!important;}
.kwrfx-bg-wrapper--background{z-index:100!important;}
.kwrfx-bg-wrapper--overlay{z-index:200!important;}
.kwrfx-bg-wrapper--foreground{z-index:400!important;}

.kwrfx-bg-wrapper--foreground,
.kwrfx-bg-wrapper--foreground *{pointer-events:none!important;}

.kwrfx-bg-parent > .e-con-inner.kwrfx-bg-host > .elementor-element:not(.kwrfx-bg-wrapper){
  position:relative;
  z-index:300;
}

/* V4.8.2 sticky geometry override */
.kwrfx-bg-wrapper.kwrfx-bg-wrapper--sticky{
  position:sticky!important;
  left:var(--kwrfx-bg-target-left,0px)!important;
  top:var(--kwrfx-bg-sticky-top-runtime,0px)!important;
  width:var(--kwrfx-bg-target-width,100%)!important;
  height:100vh!important;
  min-height:100vh!important;
}

/* ========================================================================== 
   KWRFX V4.9.0 · PORTAL-EBENEN-KOMPOSITOR
   Stabiler Editor-/Frontend-Aufbau. Das eigentliche Elementor-Widget bleibt
   Controller; eine Laufzeit-Kopie liegt als echte Ebene direkt im Container.
   ========================================================================== */
.kwrfx-layer-host{
  position:relative!important;
  isolation:isolate!important;
}
.kwrfx-layer-host.kwrfx-layer-host--clip{
  overflow:hidden!important;
}
.kwrfx-layer-host.kwrfx-layer-host--fallback{
  min-height:var(--kwrfx-layer-fallback-height,235px)!important;
}

/* Elementor-Inhalt liegt immer klar oberhalb der Background-Ebenen. */
.kwrfx-layer-host > .e-con-inner,
.kwrfx-layer-host > .elementor-container,
.kwrfx-layer-host > .elementor-widget-wrap{
  position:relative;
  z-index:10;
}
.kwrfx-layer-host > .elementor-element:not(.kwrfx-bg-portal-v490),
.kwrfx-layer-host > .elementor-container:not(.kwrfx-bg-portal-v490){
  position:relative;
  z-index:10;
}

/* Elementor Background Overlay (::before) wird als definierte Ebene behandelt. */
.kwrfx-layer-host::before{
  z-index:4!important;
  pointer-events:none!important;
}

/* Nur fuer UNDERLAY: Das native BG-Bild wird in diese echte Ebene verschoben. */
.kwrfx-native-bg-proxy-v490{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  z-index:2!important;
  pointer-events:none!important;
  border-radius:inherit;
  opacity:var(--kwrfx-native-bg-opacity,1);
  mix-blend-mode:var(--kwrfx-native-bg-blend,normal);
  transform:none!important;
}

/* Laufzeit-Portale */
.kwrfx-bg-portal-v490{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none!important;
  overflow:hidden;
  border-radius:inherit;
}
.kwrfx-bg-portal-v490--underlay{z-index:1!important;}
.kwrfx-bg-portal-v490--background{z-index:3!important;}
.kwrfx-bg-portal-v490--overlay{z-index:5!important;}
.kwrfx-bg-portal-v490--foreground{z-index:20!important;}
.kwrfx-bg-portal-v490 > .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none!important;
}
.kwrfx-bg-portal-v490 .kwrfx-orbit-strip,
.kwrfx-bg-portal-v490 .kwrfx-bg-system{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  border-radius:inherit;
  pointer-events:none!important;
}

/* Sticky bleibt optional; das Portal selbst bleibt am Container verankert. */
.kwrfx-bg-portal-v490--sticky > .elementor-widget-container{
  position:sticky!important;
  top:var(--kwrfx-bg-sticky-top-runtime,0px)!important;
  height:100vh!important;
  min-height:100vh!important;
}

/* Das originale Widget ist im Frontend nur Controller und wird nicht doppelt gezeigt. */
.kwrfx-bg-source--managed{
  display:none!important;
}

/* V4.9.2 · Kompakter Editor-Helfer
   Das Quell-Widget belegt im Editor keinen Layoutplatz mehr. Statt der 44px breiten
   Steuerzeile bleibt nur ein kleiner FX-Marker. Der vollständige Ebenenname erscheint
   erst bei Hover. Dadurch bleibt die Komposition sichtbar und editierbar. */
.elementor-editor-active .kwrfx-bg-source--managed{
  display:block!important;
  position:absolute!important;
  inset:auto!important;
  top:calc(8px + (var(--kwrfx-editor-index,0) * 32px))!important;
  left:8px!important;
  width:26px!important;
  max-width:26px!important;
  height:26px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  z-index:9999!important;
  pointer-events:auto!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.38;
  transition:opacity .18s ease, transform .18s ease!important;
}
.elementor-editor-active .kwrfx-bg-source--managed:hover,
.elementor-editor-active .kwrfx-bg-source--managed:focus-within{
  opacity:1;
  transform:translateY(-1px)!important;
}
.elementor-editor-active .kwrfx-bg-source--managed > .elementor-widget-container{
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
/* kleiner anklickbarer FX-Punkt */
.elementor-editor-active .kwrfx-bg-source--managed::before{
  content:'FX';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  box-sizing:border-box;
  border:1px solid rgba(36,56,45,.34);
  border-radius:999px;
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  box-shadow:0 2px 10px rgba(36,56,45,.10);
  font:800 9px/1 Inter,ui-sans-serif,system-ui,sans-serif;
  letter-spacing:.04em;
  color:#24382d;
  pointer-events:none;
}
/* Langtext nur bei Hover – keine dauerhafte Fläche mehr über dem Layout. */
.elementor-editor-active .kwrfx-bg-source--managed::after{
  content:attr(data-kwrfx-editor-label);
  position:absolute;
  top:0;
  left:34px;
  display:flex;
  align-items:center;
  width:max-content;
  max-width:min(360px,55vw);
  min-height:26px;
  box-sizing:border-box;
  padding:5px 9px;
  border:1px solid rgba(36,56,45,.18);
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  box-shadow:0 4px 16px rgba(36,56,45,.10);
  font:700 10px/1.2 Inter,ui-sans-serif,system-ui,sans-serif;
  letter-spacing:.04em;
  text-transform:none;
  color:#24382d;
  white-space:nowrap;
  opacity:0;
  visibility:hidden;
  transform:translateX(-4px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
  pointer-events:none;
}
.elementor-editor-active .kwrfx-bg-source--managed:hover::after,
.elementor-editor-active .kwrfx-bg-source--managed:focus-within::after{
  opacity:1;
  visibility:visible;
  transform:translateX(0);
}
/* Wer ausschließlich mit dem Elementor-Navigator arbeitet, kann den Marker ganz ausblenden. */
.elementor-editor-active .kwrfx-bg-source--managed[data-kwrfx-editor-marker="hidden"]{
  display:none!important;
}

/* Runtime-Portale sind im Editor rein visuell und blockieren keine Controls. */
.elementor-editor-active .kwrfx-bg-portal-v490,
.elementor-editor-active .kwrfx-bg-portal-v490 *{
  pointer-events:none!important;
}

/* ==========================================================
   KWRFX V5.4.7 · NATIVE ELEMENTOR WIDTH PARITY
   ----------------------------------------------------------
   KWR-Inhaltswrapper folgen im Standardmodus den realen
   Innenkanten des Elementor-Containers. Der frühere feste
   KWR-Gutter führte zu einem doppelten Seitenabstand und damit
   zu sichtbar schmaleren Widgets als native Elementor-Inhalte.
   ========================================================== */
.kwr-demo.kwrfx-width--elementor .kwr-inner,
.kwr-demo.kwr-demo--contained .kwr-inner{
  padding-inline:var(--kwr-inner-gutter,0px);
}


/* ==========================================================
   KWRFX V5.4.8 · STRICT ELEMENTOR WIDTH OWNERSHIP
   ========================================================== */
.kwr-demo.kwrfx-width--elementor{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.kwr-demo.kwrfx-width--elementor .kwr-inner{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.kwr-demo.kwrfx-width--elementor.kwrfx-custom-content-width .kwr-inner{
  width:min(100%,var(--kwr-user-content-max,100%)) !important;
  max-width:var(--kwr-user-content-max,100%) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.kwr-demo.kwrfx-width--elementor.kwrfx-custom-inner-gutter .kwr-inner{
  padding-left:var(--kwr-user-inner-gutter,0px) !important;
  padding-right:var(--kwr-user-inner-gutter,0px) !important;
}

/* ================================================================
   KWR 12 · Fünf Prinzipien – Stufenmodell (V5.9.2)
   Referenznahe Hybridfassung. Die Originalarchitektur bleibt sichtbar;
   editierbare Flächen liegen materialnah exakt auf den beschrifteten
   Beton-/Infobereichen statt als zusätzliche Karten darüber.
   ================================================================ */
.kwr-p5-visual{width:100%;margin:0;overflow:visible;}
.kwr-p5-visual__exact-inner,.kwr-p5-visual__canvas-wrap{width:100%;margin-inline:auto;}
.kwr-p5-visual__exact-link{display:block;line-height:0;}
.kwr-p5-visual__reference{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center;border:0;}

.kwr-p5-visual__canvas-wrap{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;}
.kwr-p5-visual__canvas{
  --p5-ink:#0c1b2e;
  --p5-line:#263a49;
  --p5-overlay:#f8f3ed;
  --p5-panel:#eee8e1;
  position:relative;
  width:100%;
  min-width:860px;
  aspect-ratio:3/2;
  overflow:hidden;
  color:var(--p5-ink);
  background:#efede8;
  isolation:isolate;
  container-type:inline-size;
  font-family:Arial,Helvetica,sans-serif;
}
.kwr-p5-visual__structure{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;z-index:0;pointer-events:none;user-select:none;}
.kwr-p5-edit-panel{position:absolute;z-index:10;box-sizing:border-box;}

/* Kopf. Keine sichtbare Karte: die Abdeckung läuft weich in die helle Wand. */
.kwr-p5-visual__intro{
  left:3.55%;top:1.65%;width:46.2%;height:29.8%;padding:1.1cqw 1.05cqw .85cqw;
  background:linear-gradient(90deg,rgba(248,243,237,.985) 0 82%,rgba(248,243,237,.90) 91%,rgba(248,243,237,0) 100%);
  box-shadow:-1.2cqw 0 1.4cqw rgba(248,243,237,.92);
}
.kwr-p5-visual__intro:after{
  content:"";position:absolute;inset:-2% -5% -4% -2%;z-index:-1;pointer-events:none;
  background:linear-gradient(118deg,transparent 0 24%,rgba(255,255,255,.20) 25% 36%,transparent 37% 48%,rgba(255,255,255,.12) 49% 58%,transparent 59%);
}
.kwr-p5-visual__kicker{display:inline-block;font-size:.78cqw;font-weight:700;letter-spacing:.19em;text-transform:uppercase;padding-bottom:.72cqw;border-bottom:.07cqw solid var(--p5-line);}
.kwr-p5-visual__title{margin:1.02cqw 0 1.08cqw;font-family:"Cormorant Garamond","Bodoni 72","Times New Roman",serif;font-size:4.12cqw;font-weight:600;line-height:.94;letter-spacing:-.035em;color:var(--p5-ink);white-space:normal;}
.kwr-p5-visual__lead{margin:0;max-width:35.5cqw;font-size:1.06cqw;line-height:1.38;color:#29333a;}

/* Rechts oben: exakt auf der grauen bzw. hellen Wand, ohne Card-Schatten. */
.kwr-p5-visual__motto{
  top:3.75%;left:62.25%;width:14.7%;min-height:13.6%;padding:.42cqw .55cqw .28cqw 1.52cqw;
  border-left:.105cqw solid var(--p5-line);
  background:linear-gradient(90deg,rgba(186,187,188,.985),rgba(191,191,192,.955) 82%,rgba(191,191,192,.20));
  box-shadow:0 0 .7cqw .35cqw rgba(188,189,190,.55);
  font-size:.72cqw;line-height:1.43;letter-spacing:.18em;font-weight:700;text-transform:uppercase;
}
.kwr-p5-visual__motto span,.kwr-p5-visual__brand span{display:block;}
.kwr-p5-visual__brand{
  right:2.55%;top:3.7%;width:8.15%;min-height:16.6%;padding:.35cqw .28cqw;
  color:#859099;text-transform:uppercase;letter-spacing:.13em;
  background:linear-gradient(90deg,rgba(243,241,236,.985),rgba(243,241,236,.94) 86%,rgba(243,241,236,.15));
  box-shadow:0 0 .65cqw .3cqw rgba(243,241,236,.6);
}
.kwr-p5-visual__brand strong{display:block;font-size:1.66cqw;line-height:.9;letter-spacing:.01em;color:#a4abb1;font-family:Arial,Helvetica,sans-serif;}
.kwr-p5-visual__brand i{display:block;width:2cqw;border-top:.07cqw solid #7d8992;margin:1.05cqw 0;}
.kwr-p5-visual__brand small{font-size:.59cqw;line-height:1.52;}

/* Stufen. Article bleibt nur semantischer Wrapper; alle sichtbaren Ziele sind
   reale Elemente und deshalb im Vollzugriff direkt ansprechbar. */
.kwr-p5-step{display:contents;}
.kwr-p5-step__head,.kwr-p5-step__facts-wrap{
  background-color:var(--p5-local-bg,var(--p5-panel));
  background-image:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,0) 42%,rgba(34,42,43,.028) 100%);
  box-shadow:none;
  border:0;
}
.kwr-p5-step__head{
  left:var(--p5-hx);top:var(--p5-hy);width:var(--p5-hw);height:var(--p5-hh);
  padding:1.0cqw 1.02cqw .58cqw;display:flex;flex-direction:column;justify-content:flex-start;
  --p5-local-bg:var(--p5-head-bg);
}
.kwr-p5-step__number{display:block;font-family:"Times New Roman",serif;font-size:1.0cqw;line-height:1;margin:0 0 .40cqw;}
.kwr-p5-step__title{margin:0;font-family:"Cormorant Garamond","Bodoni 72","Times New Roman",serif;font-size:2.38cqw;line-height:.92;font-weight:600;letter-spacing:-.035em;color:var(--p5-ink);}
.kwr-p5-step__tagline{margin:.44cqw 0 0;font-size:.98cqw;line-height:1.15;color:#26323a;}

.kwr-p5-step__facts-wrap{
  left:var(--p5-fx);top:var(--p5-fy);width:var(--p5-fw);height:var(--p5-fh);
  padding:.76cqw .86cqw .48cqw;display:flex;flex-direction:column;
  --p5-local-bg:var(--p5-facts-bg);
}
.kwr-p5-step__facts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.40cqw;font-size:.66cqw;line-height:1.2;color:#2c3740;flex:1 1 auto;}
.kwr-p5-step__facts li{display:grid;grid-template-columns:1.53cqw 1fr;gap:.54cqw;align-items:center;margin:0;min-height:1.53cqw;}
.kwr-p5-step__fact-icon{width:1.47cqw;height:1.47cqw;border:.065cqw solid #4e5d68;border-radius:50%;display:grid;place-items:center;color:#475661;box-sizing:border-box;}
.kwr-p5-step__fact-icon svg{width:.98cqw;height:.98cqw;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;overflow:visible;}
.kwr-p5-step__footer{padding:.58cqw 0 .04cqw;font-size:.58cqw;font-weight:700;letter-spacing:.20em;line-height:1.15;text-transform:uppercase;border-top:.055cqw solid rgba(71,84,92,.35);margin-top:.24cqw;}

/* Das Element existiert immer, damit Vollzugriff/Klassen auch ohne eigenes Bild
   zuverlässig ein Ziel haben. Ohne .is-custom bleibt es vollständig transparent. */
.kwr-p5-step__scene{position:absolute;left:var(--p5-sx);top:var(--p5-sy);width:var(--p5-sw);height:var(--p5-sh);z-index:5;background:transparent center/cover no-repeat;pointer-events:none;}
.kwr-p5-step__scene.is-custom{filter:saturate(.9) contrast(.98);box-shadow:inset 0 0 0 1px rgba(31,42,47,.05);}

/* Positionen und Materialtöne aus der gelieferten Vorlage abgenommen. */
.kwr-p5-step--1{--p5-hx:8.15%;--p5-hy:44.15%;--p5-hw:14.85%;--p5-hh:15.9%;--p5-fx:10.85%;--p5-fy:75.0%;--p5-fw:14.35%;--p5-fh:17.75%;--p5-sx:2.8%;--p5-sy:57.2%;--p5-sw:21.2%;--p5-sh:20.4%;--p5-head-bg:#d7cfc8;--p5-facts-bg:#eae2da;}
.kwr-p5-step--2{--p5-hx:25.5%;--p5-hy:39.1%;--p5-hw:15.4%;--p5-hh:14.4%;--p5-fx:28.45%;--p5-fy:72.7%;--p5-fw:15.75%;--p5-fh:20.2%;--p5-sx:24.25%;--p5-sy:50.7%;--p5-sw:18.4%;--p5-sh:22.3%;--p5-head-bg:#bcc3cb;--p5-facts-bg:#eee7e0;}
.kwr-p5-step--3{--p5-hx:43.35%;--p5-hy:34.1%;--p5-hw:15.65%;--p5-hh:14.0%;--p5-fx:46.15%;--p5-fy:69.75%;--p5-fw:15.9%;--p5-fh:23.0%;--p5-sx:42.55%;--p5-sy:46.1%;--p5-sw:18.9%;--p5-sh:23.2%;--p5-head-bg:#ddd2c8;--p5-facts-bg:#f0e8e0;}
.kwr-p5-step--4{--p5-hx:61.15%;--p5-hy:29.55%;--p5-hw:14.15%;--p5-hh:13.75%;--p5-fx:64.15%;--p5-fy:66.15%;--p5-fw:16.1%;--p5-fh:26.55%;--p5-sx:59.9%;--p5-sy:40.0%;--p5-sw:20.9%;--p5-sh:25.7%;--p5-head-bg:#b7b9b0;--p5-facts-bg:#f0e9e1;}
.kwr-p5-step--5{--p5-hx:76.5%;--p5-hy:23.1%;--p5-hw:9.55%;--p5-hh:13.7%;--p5-fx:82.0%;--p5-fy:63.0%;--p5-fw:15.1%;--p5-fh:29.55%;--p5-sx:76.35%;--p5-sy:35.0%;--p5-sw:22.1%;--p5-sh:27.6%;--p5-head-bg:#c1c1b6;--p5-facts-bg:#eae3dc;}

.kwr-p5-step--5 .kwr-p5-step__head{padding-left:.78cqw;padding-right:.48cqw;}
.kwr-p5-step--5 .kwr-p5-step__title{font-size:2.18cqw;}
.kwr-p5-step--5 .kwr-p5-step__tagline{font-size:.90cqw;}

.kwr-p5-visual__foot{
  left:3.8%;right:3.8%;bottom:1.05%;height:3.8%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.45cqw;padding:0 .7cqw;
  font-size:.58cqw;font-weight:700;letter-spacing:.20em;text-transform:uppercase;
  background:linear-gradient(90deg,rgba(247,243,238,.98),rgba(247,243,238,.94) 88%,rgba(247,243,238,.8));
}
.kwr-p5-visual__foot i{border-top:.06cqw solid #61707a;opacity:.82;}

.elementor-editor-active .kwr-p5-visual__canvas .kwr-p5-edit-panel{outline:0;}
@media (max-width:900px){.kwr-p5-visual__canvas{min-width:920px;}}


/* ========================================================================== 
   KWRFX V5.10.0 · KWR 12 – ECHTER EDITIERBARER HTML/CSS-3D-BAU
   Im HTML-Modus wird die Referenzgrafik nicht mehr als Hintergrund benutzt.
   ========================================================================== */
.kwr-p5-visual--html .kwr-p5-visual__canvas{
  --p5-extrusion:2.25cqw;
  --p5-top-depth:2.25cqw;
  --p5-side-width:1.55cqw;
  --p5-depth-shadow:rgba(20,28,34,.24);
  --p5-shadow-y:1.15cqw;
  --p5-shadow-blur:2.6cqw;
  --p5-top-color:#ddd9d2;
  --p5-side-color:#aaa9a4;
  --p5-front-color:#d2cdc6;
  --p5-scene-inset:.38cqw;
  --p5-scene-shadow:1.05cqw;
  --p5-paper:#f2eee8;
  background:
    radial-gradient(circle at 79% 13%,rgba(214,218,216,.72),transparent 29%),
    linear-gradient(112deg,rgba(255,255,255,.98) 0 39%,rgba(238,237,233,.98) 71%,rgba(247,244,238,.98) 100%);
  overflow:hidden;
}
.kwr-p5-visual--html .kwr-p5-visual__structure{display:none!important;}
.kwr-p5-visual--html .kwr-p5-visual__ambient{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(116deg,transparent 0 12%,rgba(255,255,255,.58) 12.4% 19%,transparent 19.5% 27%,rgba(255,255,255,.36) 27.5% 35%,transparent 35.6%),
    radial-gradient(ellipse at 78% 29%,rgba(170,187,186,.32),transparent 25%);
  mix-blend-mode:soft-light;
}
.kwr-p5-visual--html .kwr-p5-visual__ambient::after{
  content:"";position:absolute;right:-1.5%;top:24%;width:24%;height:43%;
  background:url("principles-5-clean/village.webp") center/cover no-repeat;
  opacity:.82;filter:saturate(.78) contrast(.94) brightness(1.06);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 100%);
}
.kwr-p5-visual--html .kwr-p5-visual__ground{
  position:absolute;left:0;right:0;bottom:4.4%;height:25%;z-index:1;pointer-events:none;
  background:
    linear-gradient(174deg,rgba(255,255,255,.4),rgba(221,218,212,.54) 46%,rgba(177,178,174,.42) 100%);
  clip-path:polygon(0 25%,100% 0,100% 92%,0 100%);
  box-shadow:0 -1.2cqw 3.5cqw rgba(35,43,48,.07) inset;
}
.kwr-p5-visual--html .kwr-p5-visual__intro{
  z-index:40;background:linear-gradient(90deg,rgba(248,245,239,.92) 0 80%,rgba(248,245,239,0) 100%);box-shadow:none;
}
.kwr-p5-visual--html .kwr-p5-visual__motto,
.kwr-p5-visual--html .kwr-p5-visual__brand{z-index:41;box-shadow:none;background:transparent;}
.kwr-p5-visual--html .kwr-p5-visual__stage{
  position:absolute;left:2.7%;right:3.1%;top:29.2%;bottom:7.4%;z-index:10;
  perspective:92cqw;perspective-origin:56% 48%;
}
.kwr-p5-visual--html .kwr-p5-step{
  display:block;position:absolute;left:var(--p5-x);bottom:0;width:var(--p5-w);height:100%;
  z-index:calc(10 + var(--p5-i));
  overflow:visible;pointer-events:none;
}
.kwr-p5-visual--html .kwr-p5-step__block{
  position:absolute;left:0;right:0;bottom:var(--p5-facts-h);height:var(--p5-block-h);
  z-index:10;overflow:visible;filter:drop-shadow(0 var(--p5-shadow-y) var(--p5-shadow-blur) var(--p5-depth-shadow));
  pointer-events:auto;
}
.kwr-p5-visual--html .kwr-p5-step__front{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(102deg,rgba(255,255,255,.24),transparent 31%),
    linear-gradient(180deg,var(--p5-head-bg) 0 28%,var(--p5-front-color) 28% 100%);
  border:1px solid rgba(44,50,52,.08);
  box-shadow:inset .08cqw .08cqw .22cqw rgba(255,255,255,.55),inset -.08cqw -.12cqw .28cqw rgba(42,50,55,.07);
}
.kwr-p5-visual--html .kwr-p5-step__top{
  position:absolute;left:calc(.45 * var(--p5-top-depth));right:calc(-1 * var(--p5-side-width));
  top:calc(-1 * var(--p5-top-depth));height:var(--p5-top-depth);z-index:4;
  background:
    linear-gradient(165deg,rgba(255,255,255,.62),rgba(255,255,255,.12) 43%,rgba(97,103,102,.06)),
    var(--p5-top-color);
  clip-path:polygon(6% 0,100% 0,94% 100%,0 100%);
  box-shadow:inset 0 .08cqw .12cqw rgba(255,255,255,.62),inset 0 -.08cqw .16cqw rgba(42,49,53,.08);
}
.kwr-p5-visual--html .kwr-p5-step__side{
  position:absolute;top:0;right:calc(-1 * var(--p5-side-width));bottom:0;width:var(--p5-side-width);z-index:3;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(41,49,52,.12)),var(--p5-side-color);
  clip-path:polygon(0 0,100% var(--p5-top-depth),100% 100%,0 100%);
  box-shadow:inset .12cqw 0 .2cqw rgba(255,255,255,.12),inset -.12cqw 0 .28cqw rgba(32,40,43,.10);
}
.kwr-p5-visual--html .kwr-p5-step__head{
  position:absolute;left:0;right:0;top:0;height:28%;z-index:8;
  padding:.82cqw .85cqw .45cqw;background:transparent!important;box-shadow:none!important;transform:none!important;
  display:flex;flex-direction:column;justify-content:center;pointer-events:auto;
}
.kwr-p5-visual--html .kwr-p5-step__head::before,
.kwr-p5-visual--html .kwr-p5-step__head::after{display:none!important;}
.kwr-p5-visual--html .kwr-p5-step__number{font-size:.92cqw;margin:0 0 .28cqw;}
.kwr-p5-visual--html .kwr-p5-step__title{font-size:2.1cqw;line-height:.92;}
.kwr-p5-visual--html .kwr-p5-step__tagline{font-size:.90cqw;line-height:1.15;margin:.38cqw 0 0;}
.kwr-p5-visual--html .kwr-p5-step__scene{
  position:absolute;left:var(--p5-scene-inset);right:var(--p5-scene-inset);top:28%;bottom:var(--p5-scene-inset);
  width:auto;height:auto;z-index:6;background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:auto;
  border:1px solid rgba(32,40,43,.08);
  box-shadow:inset 0 calc(-1 * var(--p5-scene-shadow)) calc(1.55 * var(--p5-scene-shadow)) rgba(16,23,28,.20),inset 0 .18cqw .28cqw rgba(255,255,255,.18),0 .28cqw .7cqw rgba(26,34,40,.09);
  filter:saturate(.92) contrast(.98);
}
.kwr-p5-visual--html .kwr-p5-step__facts-wrap{
  position:absolute;left:-.55cqw;right:calc(-1 * var(--p5-side-width) - .2cqw);bottom:0;height:var(--p5-facts-h);z-index:13;
  padding:.70cqw .72cqw .42cqw .86cqw;background:
    linear-gradient(105deg,rgba(255,255,255,.30),transparent 34%),var(--p5-facts-bg)!important;
  box-shadow:0 .72cqw 1.45cqw rgba(26,34,40,.14),inset .05cqw .06cqw .18cqw rgba(255,255,255,.48),inset -.06cqw -.09cqw .22cqw rgba(51,58,61,.05)!important;
  border:1px solid rgba(44,50,52,.07);transform:none!important;pointer-events:auto;
}
.kwr-p5-visual--html .kwr-p5-step__facts-wrap::before{
  content:"";position:absolute;left:.2cqw;right:.2cqw;top:calc(-.62 * var(--p5-top-depth));height:calc(.62 * var(--p5-top-depth));
  background:linear-gradient(165deg,rgba(255,255,255,.52),rgba(255,255,255,.10)),var(--p5-top-color);
  clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);pointer-events:none;
}
.kwr-p5-visual--html .kwr-p5-step__facts-wrap::after{display:none!important;}
.kwr-p5-visual--html .kwr-p5-step__facts{position:relative;z-index:2;gap:.34cqw;font-size:.62cqw;}
.kwr-p5-visual--html .kwr-p5-step__facts li{grid-template-columns:1.38cqw 1fr;gap:.44cqw;min-height:1.38cqw;}
.kwr-p5-visual--html .kwr-p5-step__fact-icon{width:1.28cqw;height:1.28cqw;}
.kwr-p5-visual--html .kwr-p5-step__fact-icon svg{width:.84cqw;height:.84cqw;}
.kwr-p5-visual--html .kwr-p5-step__footer{position:relative;z-index:2;font-size:.54cqw;margin-top:.20cqw;padding-top:.46cqw;}

/* Stufenpositionen: reale HTML-Körper, bewusst überlappend wie in der Referenz. */
.kwr-p5-visual--html .kwr-p5-step--1{--p5-x:0%;--p5-w:20.2%;--p5-block-h:50%;--p5-facts-h:29%;--p5-head-bg:#d6cec7;--p5-facts-bg:#ebe3db;--p5-top-color:#d8d2cc;--p5-side-color:#aba9a5;}
.kwr-p5-visual--html .kwr-p5-step--2{--p5-x:18.0%;--p5-w:20.3%;--p5-block-h:61%;--p5-facts-h:31%;--p5-head-bg:#bdc4cc;--p5-facts-bg:#efe8e1;--p5-top-color:#d4d5d4;--p5-side-color:#a8adb0;}
.kwr-p5-visual--html .kwr-p5-step--3{--p5-x:36.1%;--p5-w:20.7%;--p5-block-h:71%;--p5-facts-h:33%;--p5-head-bg:#ddd2c8;--p5-facts-bg:#f0e8e0;--p5-top-color:#ded8d1;--p5-side-color:#b0aaa6;}
.kwr-p5-visual--html .kwr-p5-step--4{--p5-x:54.3%;--p5-w:20.5%;--p5-block-h:80%;--p5-facts-h:35%;--p5-head-bg:#b9bbb2;--p5-facts-bg:#f0e9e1;--p5-top-color:#d2d3cf;--p5-side-color:#a3a5a0;}
.kwr-p5-visual--html .kwr-p5-step--5{--p5-x:72.0%;--p5-w:19.2%;--p5-block-h:90%;--p5-facts-h:37%;--p5-head-bg:#c4c4b9;--p5-facts-bg:#ebe4dc;--p5-top-color:#d3d3ca;--p5-side-color:#a7a79f;}
.kwr-p5-visual--html .kwr-p5-step--5 .kwr-p5-step__title{font-size:1.92cqw;}
.kwr-p5-visual--html .kwr-p5-step--5 .kwr-p5-step__tagline{font-size:.82cqw;}
.kwr-p5-visual--html .kwr-p5-step--5 .kwr-p5-step__facts{font-size:.58cqw;}
.kwr-p5-visual--html .kwr-p5-visual__foot{z-index:50;background:linear-gradient(90deg,rgba(247,243,238,.96),rgba(247,243,238,.92));}

@media(max-width:900px){
  .kwr-p5-visual--html .kwr-p5-visual__canvas{min-width:960px;}
}


/* ========================================================================== 
   KWRFX V5.10.1 · KWR 12 – konfliktfreier 3D-Namespace
   Die 5.9.x-Geometrie und gespeicherte Alt-Overrides können diese Elemente
   nicht mehr treffen. Alle Größen werden hier vollständig definiert.
   ========================================================================== */
.kwr-p5-visual--html .kwr-p5-3d__stage{
  position:absolute;left:2.8%;right:3.0%;top:29.8%;bottom:7.1%;z-index:10;
  perspective:110cqw;perspective-origin:58% 50%;overflow:visible;
}
.kwr-p5-visual--html .kwr-p5-3d__step{
  position:absolute;left:var(--p53-x);bottom:0;width:var(--p53-w);height:100%;
  z-index:calc(10 + var(--p5-i));overflow:visible;box-sizing:border-box;
}
.kwr-p5-visual--html .kwr-p5-3d__block{
  position:absolute;left:0;right:0;bottom:var(--p53-facts-h);height:var(--p53-block-h);
  z-index:10;overflow:visible;box-sizing:border-box;
  filter:drop-shadow(0 var(--p5-shadow-y) var(--p5-shadow-blur) var(--p5-depth-shadow));
}
.kwr-p5-visual--html .kwr-p5-3d__front{
  position:absolute;inset:0;z-index:1;box-sizing:border-box;
  background:linear-gradient(104deg,rgba(255,255,255,.26),transparent 30%),linear-gradient(180deg,var(--p53-head-bg) 0 28%,var(--p5-front-color) 28% 100%);
  border:1px solid rgba(44,50,52,.08);
  box-shadow:inset .08cqw .08cqw .22cqw rgba(255,255,255,.58),inset -.08cqw -.12cqw .28cqw rgba(42,50,55,.08);
}
.kwr-p5-visual--html .kwr-p5-3d__top{
  position:absolute;left:.45cqw;right:calc(-1 * var(--p5-side-width));top:calc(-1 * var(--p5-top-depth));height:var(--p5-top-depth);z-index:4;box-sizing:border-box;
  background:linear-gradient(165deg,rgba(255,255,255,.64),rgba(255,255,255,.12) 45%,rgba(97,103,102,.08)),var(--p5-top-color);
  clip-path:polygon(6% 0,100% 0,94% 100%,0 100%);
  box-shadow:inset 0 .08cqw .12cqw rgba(255,255,255,.64),inset 0 -.08cqw .16cqw rgba(42,49,53,.10);
}
.kwr-p5-visual--html .kwr-p5-3d__side{
  position:absolute;top:0;right:calc(-1 * var(--p5-side-width));bottom:0;width:var(--p5-side-width);z-index:3;box-sizing:border-box;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(41,49,52,.14)),var(--p5-side-color);
  clip-path:polygon(0 0,100% var(--p5-top-depth),100% 100%,0 100%);
  box-shadow:inset .12cqw 0 .2cqw rgba(255,255,255,.15),inset -.12cqw 0 .28cqw rgba(32,40,43,.12);
}
.kwr-p5-visual--html .kwr-p5-3d__head{
  position:absolute;left:0;right:0;top:0;width:auto;height:28%;z-index:8;box-sizing:border-box;
  padding:.82cqw .86cqw .45cqw;display:flex;flex-direction:column;justify-content:center;
  background:transparent;color:var(--p5-ink);overflow:hidden;
}
.kwr-p5-visual--html .kwr-p5-3d__number{display:block;font-family:"Times New Roman",serif;font-size:.92cqw;line-height:1;margin:0 0 .28cqw;}
.kwr-p5-visual--html .kwr-p5-3d__title{margin:0;font-family:"Cormorant Garamond","Bodoni 72","Times New Roman",serif;font-size:2.08cqw;line-height:.92;font-weight:600;letter-spacing:-.035em;color:var(--p5-ink);white-space:normal;}
.kwr-p5-visual--html .kwr-p5-3d__tagline{margin:.38cqw 0 0;font-size:.88cqw;line-height:1.16;color:#26323a;white-space:normal;}
.kwr-p5-visual--html .kwr-p5-3d__scene{
  position:absolute;left:var(--p5-scene-inset);right:var(--p5-scene-inset);top:28%;bottom:var(--p5-scene-inset);width:auto;height:auto;z-index:6;box-sizing:border-box;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  border:1px solid rgba(32,40,43,.08);
  box-shadow:inset 0 calc(-1 * var(--p5-scene-shadow)) calc(1.55 * var(--p5-scene-shadow)) rgba(16,23,28,.20),inset 0 .18cqw .28cqw rgba(255,255,255,.18),0 .28cqw .7cqw rgba(26,34,40,.09);
  filter:saturate(.92) contrast(.98);overflow:hidden;
}
.kwr-p5-visual--html .kwr-p5-3d__facts-wrap{
  position:absolute;left:-.38cqw;right:calc(-1 * var(--p5-side-width) - .12cqw);top:auto;bottom:0;width:auto;height:var(--p53-facts-h);z-index:13;box-sizing:border-box;
  padding:.68cqw .70cqw .42cqw .82cqw;display:flex;flex-direction:column;
  background:linear-gradient(105deg,rgba(255,255,255,.30),transparent 34%),var(--p53-facts-bg);
  box-shadow:0 .72cqw 1.45cqw rgba(26,34,40,.14),inset .05cqw .06cqw .18cqw rgba(255,255,255,.48),inset -.06cqw -.09cqw .22cqw rgba(51,58,61,.05);
  border:1px solid rgba(44,50,52,.07);overflow:visible;
}
.kwr-p5-visual--html .kwr-p5-3d__facts-wrap::before{
  content:"";position:absolute;left:.18cqw;right:.18cqw;top:calc(-.62 * var(--p5-top-depth));height:calc(.62 * var(--p5-top-depth));z-index:0;
  background:linear-gradient(165deg,rgba(255,255,255,.52),rgba(255,255,255,.10)),var(--p5-top-color);
  clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);pointer-events:none;
}
.kwr-p5-visual--html .kwr-p5-3d__facts{position:relative;z-index:2;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.34cqw;font-size:.62cqw;line-height:1.18;color:#2c3740;flex:1 1 auto;min-width:0;}
.kwr-p5-visual--html .kwr-p5-3d__facts li{display:grid;grid-template-columns:1.34cqw minmax(0,1fr);gap:.42cqw;align-items:center;margin:0;min-height:1.34cqw;min-width:0;}
.kwr-p5-visual--html .kwr-p5-3d__fact-icon{width:1.26cqw;height:1.26cqw;border:.06cqw solid #4e5d68;border-radius:50%;display:grid;place-items:center;color:#475661;box-sizing:border-box;}
.kwr-p5-visual--html .kwr-p5-3d__fact-icon svg{width:.82cqw;height:.82cqw;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;overflow:visible;}
.kwr-p5-visual--html .kwr-p5-3d__footer{position:relative;z-index:2;padding:.46cqw 0 .04cqw;font-size:.54cqw;font-weight:700;letter-spacing:.18em;line-height:1.12;text-transform:uppercase;border-top:.055cqw solid rgba(71,84,92,.35);margin-top:.20cqw;white-space:normal;}

.kwr-p5-visual--html .kwr-p5-3d__step--1{--p53-x:0%;--p53-w:20.4%;--p53-block-h:49%;--p53-facts-h:29%;--p53-head-bg:#d6cec7;--p53-facts-bg:#ebe3db;}
.kwr-p5-visual--html .kwr-p5-3d__step--2{--p53-x:18.0%;--p53-w:20.5%;--p53-block-h:59%;--p53-facts-h:31%;--p53-head-bg:#bdc4cc;--p53-facts-bg:#efe8e1;}
.kwr-p5-visual--html .kwr-p5-3d__step--3{--p53-x:36.0%;--p53-w:20.7%;--p53-block-h:69%;--p53-facts-h:33%;--p53-head-bg:#ddd2c8;--p53-facts-bg:#f0e8e0;}
.kwr-p5-visual--html .kwr-p5-3d__step--4{--p53-x:54.1%;--p53-w:20.5%;--p53-block-h:79%;--p53-facts-h:35%;--p53-head-bg:#b9bbb2;--p53-facts-bg:#f0e9e1;}
.kwr-p5-visual--html .kwr-p5-3d__step--5{--p53-x:72.0%;--p53-w:19.4%;--p53-block-h:88%;--p53-facts-h:37%;--p53-head-bg:#c4c4b9;--p53-facts-bg:#ebe4dc;}
.kwr-p5-visual--html .kwr-p5-3d__step--5 .kwr-p5-3d__title{font-size:1.92cqw;}
.kwr-p5-visual--html .kwr-p5-3d__step--5 .kwr-p5-3d__tagline{font-size:.82cqw;}
.kwr-p5-visual--html .kwr-p5-3d__step--5 .kwr-p5-3d__facts{font-size:.58cqw;}

@media(max-width:900px){.kwr-p5-visual--html .kwr-p5-3d__stage{left:2.6%;right:2.6%;}}
