/* =========================================================
   LOCAL FONTS — SELF-HOSTED
   ========================================================= */

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-VariableFont_opsz,wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Playfair";
  src: url("../fonts/Playfair-VariableFont_opsz,wdth,wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 300 900;
  font-stretch: 87.5% 112.5%;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/PlayfairDisplay-VariableFont_wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

.w-form-formradioinput--inputType-custom {
  border: 1px solid #ccc;
  border-radius: 50%;
  width: 12px;
  height: 12px;
}

.w-form-formradioinput--inputType-custom.w--redirected-focus {
  box-shadow: 0 0 3px 1px #3898ec;
}

.w-form-formradioinput--inputType-custom.w--redirected-checked {
  border-width: 4px;
  border-color: #3898ec;
}

.section {
  background-color: #f3f161;
  flex-flow: column;
  justify-content: center;
  height: 100svh;
  display: flex;
  position: relative;
}

.section.white-filler {
  background-color: #fff;
}

.paragraph {
  text-align: center;
  font-family: Playfair, "Playfair Display", Georgia, serif;
  font-size: 50px;
  line-height: 1.4;
  position: relative;
  inset: 50% 0% 0% 50%;
  transform: translate(-50%);
}

.filler-p-serif4 {
  text-align: center;
  margin-bottom: 0;
  font-size: 50px;
  line-height: 1.4;
  position: relative;
}

.filler-p-serif4.playfair {
  font-family:
    Playfair Display,
    sans-serif;
  font-weight: 600;
}

.container {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  align-items: center;
  width: 90%;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
  top: auto;
}

.container.container-overview {
  flex-flow: column;
  justify-content: center;
}

.container.nav-container {
  max-width: 1440px;
}

.container.special-container-hero {
  align-self: flex-start;
}

.container.nav-bar-hero {
  align-items: stretch;
  width: 93%;
  max-width: none;
  margin-right: auto;
  padding: 2rem 0 0;
}

.container.cta-faq-container {
  width: 100%;
}

.container.hero-container {
  align-items: stretch;
  height: 100%;
}

.p-logo-text {
  color: #171814;
  letter-spacing: 1px;
  width: auto;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}

.p-logo-text.version-logo-2 {
  font-family: Inter, sans-serif;
}

.p-logo-text.version-logo-3 {
  letter-spacing: 0;
  font-family: Inter, sans-serif;
  font-size: 21px;
  font-weight: 700;
}

.p-logo-sub-text {
  color: #333330;
  width: auto;
  margin: 0;
  font-family: Inter, sans-serif;
}

.p-logo-sub-text.version-logo-2 {
  font-family: Inter, sans-serif;
  font-size: 14px;
}

.p-logo-sub-text.version-logo-3 {
  color: #4d4d47;
  letter-spacing: 0;
  font-family: Inter, sans-serif;
  font-size: 12px;
}

.div-block {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  cursor: pointer;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  height: auto;
  display: block;
}

.div-block-2 {
  z-index: 5;
  opacity: 0;
  text-align: left;
  justify-content: space-between;
  align-items: center;
  height: 5rem;
  display: flex;
  position: absolute;
  inset: 0% 0% auto;
}

.p-nav {
  margin-bottom: 0;
  font-family: Inter, sans-serif;
}

.p-nav.nav-2 {
  font-family: Inter, sans-serif;
}

.p-nav.nav-3 {
  font-family: Inter, sans-serif;
}

.p-nav.cta-contact {
  color: #faf8f6;
  background-color: #11211a;
  border-radius: 50px;
  padding: 8px 24px;
  font-size: 14px;
}

.p-nav.cta-contact:hover {
  background-color: #11211ae6;
  border: 0 solid #2339e21a;
  font-weight: 500;
  transform: translate(-1px, -2px);
}

.div-block-3 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  align-items: center;
  font-size: 15px;
  display: flex;
}

.div-block-4 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  opacity: 1;
  flex-flow: column;
  justify-content: center;
  width: auto;
  display: flex;
}

.cta-btn {
  background-color: #11211ae6;
  border-radius: 12px;
  padding: 14px 24px;
  display: flex;
}

.cta-btn.lower-prio-btn {
  background-color: #fbf7f5;
  border: 1px solid #3d3e1d;
}

.cta-btn.lower-prio-cta {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  cursor: pointer;
  background-color: #faf7f500;
  border: 0 solid #11211a;
  text-decoration: none;
}

.cta-btn.lower-prio-cta.cta-btn-lower-prio-hero {
  grid-column-gap: 0.88rem;
  grid-row-gap: 0.88rem;
  flex-flow: column;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding {
  margin-top: 0;
  padding: 0 0 0.5rem;
}

.cta-btn.cta-btn-hero-box {
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  background-color: #173b37e6;
}

.cta-btn.cta-btn-hero-box.hover-button-1 {
  z-index: 3;
  cursor: pointer;
  background-color: #173b37e6;
  border: 0 solid #173b37;
  position: relative;
  overflow: hidden;
}

.cta-btn.cta-btn-hero-box.is-relative {
  position: relative;
}

.cta-btn.cta-btn-hero-box.is-absolute {
  align-items: center;
  position: absolute;
  inset: 0%;
}

.cta-btn.cta-btn-hero-box.agentur-box {
  cursor: pointer;
  padding: 12px 24px;
  text-decoration: none;
}

.cta-btn.cta-btn-faq-box {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  padding: 12px 20px;
  text-decoration: none;
}

.cta-btn.cta-btn-smaller-imp {
  padding: 10px 20px;
}

.p-cta-btn {
  z-index: 5;
  color: #faf7f5;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.1;
  position: relative;
}

.p-cta-btn.p-lower-prio {
  color: #3d3e1d;
}

.p-cta-btn.lower-prio-p {
  color: #173b37;
  text-underline-offset: 10px;
  font-size: 1rem;
  text-decoration: underline;
}

.p-cta-btn.lower-prio-p.p-cta-projects {
  font-size: 14px;
}

.p-cta-btn.lower-prio-p.p-white {
  color: #faf7f5;
  font-size: 1rem;
}

.p-cta-btn.lower-prio-p.no-underline {
  font-size: 1rem;
  text-decoration: none;
}

.p-cta-btn.p-cta-btn-smaller-prio {
  font-size: 0.88rem;
}

.p-cta-btn.p-lower {
  font-size: 14px;
}

.div-block-5 {
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.div-block-6 {
  grid-column-gap: 4rem;
  grid-row-gap: 4rem;
  flex-flow: column;
  grid-template-rows: auto auto auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  align-items: flex-start;
  height: 100%;
  margin-top: 0;
  display: flex;
}

.section-hero-wrapper {
  grid-column-gap: 0px;
  grid-row-gap: 4rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  place-items: stretch stretch;
  height: 100%;
  padding-top: 6rem;
  padding-bottom: 0;
  display: block;
}

.p-eyebrow {
  color: #173b37;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.4;
}

.p-eyebrow.eyebrow-hero {
  letter-spacing: -0.25px;
  font-size: 18px;
  line-height: 1.6;
}

.p-eyebrow.width-100 {
  color: #173b37;
  flex: 0 auto;
  width: 100%;
}

.heading {
  margin: 0;
}

.heading-primary {
  color: #12120e;
  margin: 0;
  font-family:
    Playfair Display,
    sans-serif;
  font-size: 4rem;
  font-weight: 600;
  line-height: 1.1;
}

.heading-primary.h1-hero {
  letter-spacing: -0.25px;
  width: 100%;
  padding-bottom: 0;
  font-size: 3.5rem;
  line-height: 1.3;
}

.heading-primary.h1-projects {
  font-size: 3rem;
}

.heading-primary.h1-projablauf {
  font-size: 3.25rem;
  font-weight: 500;
}

.heading-primary.h1-contact {
  font-size: 3rem;
}

.p-sub-text {
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

.div-block-8 {
  z-index: 4;
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  align-items: center;
  padding-top: 1rem;
  display: flex;
  position: relative;
}

.body {
  background-color: #fafafa;
}

.div-block-9 {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  padding-top: 3rem;
  display: flex;
}

.quali-banner {
  z-index: 4;
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  background-color: #fbfbfb00;
  background-image: linear-gradient(360deg, #e7ddd4e6, #e7ddd44d);
  border-radius: 30px 30px 0 0;
  justify-content: flex-start;
  align-items: center;
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  padding: 2rem 1rem;
  display: flex;
  position: relative;
  inset: auto;
}

.banner-box {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  align-items: center;
  display: flex;
}

.p-caption {
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
}

.section-2 {
  z-index: 3;
  background-color: #f9f6f400;
  border-bottom: 1px solid #eae0d9;
  height: 80svh;
  min-height: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  position: relative;
}

.div-icon-hero {
  opacity: 0.8;
  width: 2rem;
  height: 2rem;
}

.icon-hero {
  width: 100%;
  height: 100%;
}

.icon-hero.icon-calendar {
  transform: scale(0.98);
}

.div-block-10 {
  grid-column-gap: 1.25rem;
  grid-row-gap: 1.25rem;
  text-align: center;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  margin-top: 3rem;
  margin-bottom: 3rem;
  display: flex;
}

.heading-secondary {
  color: #12120e;
  letter-spacing: -1.2px;
  margin: 0;
  font-family: Playfair, sans-serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.08;
}

.heading-secondary.heading-ov {
  padding-top: 1rem;
}

.p-text {
  color: #12120e;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1.125rem;
  line-height: 1.55;
  text-decoration: none;
}

.p-text.max-width-p-text {
  width: 800px;
}

.p-text.p-ov {
  color: #1e362a;
  margin-bottom: 0;
  padding-top: 1rem;
  padding-bottom: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  text-decoration: none;
}

.p-text.p-ov.bold-ov {
  color: #12120e;
  letter-spacing: -1px;
  font-family: Inter, sans-serif;
  font-size: 20px;
  font-weight: 500;
}

.p-text.p-hero-card {
  margin-right: 0;
  padding-right: 1rem;
  font-size: 15px;
}

.p-text.p-text-smaller {
  font-size: 0.88rem;
}

.p-text.p-text-white {
  color: #faf7f5;
  text-align: left;
  align-self: auto;
  font-size: 1rem;
}

.p-text.p-arrow-bold {
  font-weight: 700;
}

.div-block-11 {
  text-align: left;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.div-block-12 {
  grid-column-gap: 2.5rem;
  grid-row-gap: 2.5rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  grid-auto-columns: 1fr;
  margin-bottom: 3rem;
  display: grid;
}

.section-3 {
  z-index: 1;
  background-color: #fcfbfb;
  position: relative;
}

.heading-tertiary {
  color: #12120e;
  letter-spacing: -0.5px;
  align-self: flex-start;
  margin: 0;
  font-family: Playfair, sans-serif;
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.18;
}

.heading-tertiary.ov-h3 {
  color: #344a3f;
  letter-spacing: 0;
  text-transform: uppercase;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.heading-tertiary.h3-hero-box {
  margin-bottom: 0.5rem;
  display: none;
}

.heading-tertiary.h3-white {
  color: #faf7f5;
  align-self: flex-start;
  font-size: 2rem;
  font-weight: 500;
}

.heading-tertiary.h3-white.projektablauf {
  font-size: 1.75rem;
}

.heading-tertiary.h3-agentur-smaller {
  font-size: 1.45rem;
  line-height: 1.15;
  font-weight: 500;
}

.p-sub-text-agentur {
  font-size: 1rem;
  line-height: 1.4;
}

.div-block-13 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: space-between;
  display: flex;
}

.p-bold-link {
  color: #52501a;
  text-align: left;
  margin: 0 0 0;
  padding: 0;
  font-family: Inter, sans-serif;
  font-size: 18px;
  line-height: 1.55;
}

.divider-vertical {
  background-color: #b98b5680;
  width: 1px;
  height: 90%;
  margin-top: auto;
  margin-bottom: auto;
}

.home-wrapper {
  z-index: 1;
  background-color: #fbfbfb;
  position: relative;
}

.div-block-15 {
  z-index: 1;
  background-color: #0000;
  border-bottom-right-radius: 12px;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  width: auto;
  max-width: 1440px;
  height: 50rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
  inset: auto;
  overflow: hidden;
}

.image {
  z-index: 0;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 0%;
  width: 100%;
  max-width: none;
  height: 100%;
  position: relative;
}

.over-view-icon-wrapper {
  opacity: 1;
  align-self: center;
  width: 3rem;
}

.flex-overview-icon {
  grid-column-gap: 1.25rem;
  grid-row-gap: 1.25rem;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.link-arrow-block {
  grid-column-gap: 1.25rem;
  grid-row-gap: 1.25rem;
  align-items: center;
  display: flex;
}

.code-embed {
  color: #1e362a;
  padding-top: 0;
  font-size: 16px;
  line-height: 0;
}

.code-embed.cta-code-embed-light {
  color: #faf7f5;
}

.code-embed.link-arrow {
  align-self: center;
  font-weight: 700;
  transform: rotate(-45deg);
}

.div-block-16 {
  z-index: 1;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 4fr;
  grid-auto-columns: 1fr;
  grid-auto-flow: row;
  place-items: start end;
  height: 100%;
  max-height: none;
  display: grid;
  position: absolute;
  inset: 0% 0% 0% 10%;
  overflow: visible;
}

.p-text-hero {
  color: #12120e;
  max-width: none;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 1.25rem;
  line-height: 1.7;
}

.p-text-hero.p-text-limiter {
  width: 80%;
}

.p-text-hero.p-fixed-with {
  width: 47%;
}

.section-projects {
  z-index: 5;
  background-color: #f5f3f200;
  margin-top: 0;
  padding-top: 0;
  position: relative;
  top: auto;
  overflow: visible;
}

.project-content-box {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  border: 1px solid #e7e1d8bf;
  border-radius: 8px;
  grid-template-rows: auto;
  grid-template-columns: 3fr 4fr;
  grid-auto-columns: 1fr;
  padding: 1rem 0 1rem 1rem;
  display: grid;
  box-shadow:
    0 8px 24px #00000008,
    0 1px 3px #00000005;
}

.project-content-box.project-content-box-reverse {
  grid-template-columns: 4fr 3fr;
  padding: 1rem 0;
}

.project-content-box.project-content-box-reverse.project-modi-odd {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  box-shadow: none;
  border-width: 0 0 3px;
  border-bottom-color: #f0e9e1;
  border-radius: 0;
  grid-template-columns: 3.5fr 3fr;
  padding-top: 0;
  padding-bottom: 2rem;
}

.project-content-box.project-modi-even {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  box-shadow: none;
  border-width: 0 0 3px;
  border-bottom-color: #f0e9e1;
  border-radius: 0;
  grid-template-columns: 3fr 3.5fr;
  padding-top: 0;
  padding-bottom: 2rem;
  padding-left: 0;
}

.projects-intro {
  height: 5rem;
}

.div-block-17 {
  grid-column-gap: 6px;
  grid-row-gap: 6px;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  padding: 0;
  display: flex;
}

.burger-menu {
  background-color: #103429;
  border-radius: 3px;
  width: 45.7143px;
  height: 5px;
}

.burger-menu.burger-menu-middle {
  background-color: #173b37;
  width: 31px;
  height: 4px;
}

.burger-menu.burger-menu-top {
  background-color: #173b37;
  width: 25px;
  height: 4px;
}

.burger-menu.burger-menu-last {
  background-color: #173b37;
  width: 36px;
  height: 4px;
}

.logo-img {
  object-fit: contain;
  width: 100%;
  height: 90%;
}

.div-block-18 {
  flex-flow: column;
  display: flex;
}

.div-block-19 {
  z-index: 2;
  background-color: #ed1515;
  width: auto;
  height: 100%;
  position: relative;
}

.overview-wrapper {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  background-color: #faf8f7f0;
  border-radius: 12px;
  flex-flow: column;
  flex: 1;
  justify-content: center;
  align-items: flex-start;
  margin-top: 0;
  padding: 2rem 2rem 1rem;
  display: flex;
  position: relative;
  box-shadow: 0 2px 4px #0000001a;
}

.div-dot {
  background-color: #1e362a;
  border-radius: 50px;
  width: 0.75rem;
  height: 0.75rem;
}

.ov-timeline {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  align-items: center;
  display: flex;
}

.ov-timeline.ov-time-2,
.ov-timeline.ov-time-3 {
  opacity: 0.35;
}

.ov-div-number {
  background-color: #1e362a;
  border-radius: 6px;
  padding: 4px 8px;
}

.p-number-sticky {
  color: #fafafa;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

.p-sticky-card {
  margin: 0;
  padding: 0;
  font-family: Inter, sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
}

.div-block-20 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: center;
  padding-top: 4rem;
  display: flex;
  position: relative;
}

.div-block-21 {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: 1fr 3.5fr;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  place-items: stretch start;
  display: flex;
  position: relative;
}

.ov-card-wrapper {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  background-color: #faf8f700;
  border-radius: 12px;
  flex-flow: row;
  grid-template-rows: auto;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  grid-auto-columns: 1fr;
  place-items: start stretch;
  padding: 0;
  display: grid;
  position: relative;
}

.ov-card {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  background-color: #fafafa00;
  border-radius: 12px;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: auto;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  align-items: flex-start;
  height: 100%;
  padding: 1.5rem 0 0 1.5rem;
  display: flex;
  position: relative;
  inset: auto;
}

.ov-card:hover {
  background-color: #f8f2eb0d;
  overflow: hidden;
  transform: translate(0, -1px);
  box-shadow: 0 2px 5px #00000026;
}

.p-number-ov {
  color: #b98b56;
  letter-spacing: 1px;
  margin: 0 0 1.25rem 0;
  font-family: Inter, sans-serif;
  font-size: 23px;
  font-weight: 300;
  line-height: 0.3;
  display: block;
}

.p-number-ov.first-ov-number {
  margin-left: 0;
  display: none;
}

.div-divider-ov {
  background-color: #d1d2cd;
  width: 30px;
  height: 1px;
  display: none;
}

.div-block-23 {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  justify-content: space-between;
  align-self: auto;
  width: auto;
  height: 100%;
  padding-left: 1.5rem;
  padding-right: 2.5rem;
  display: flex;
  position: relative;
}

.div-block-23.last-hero-div {
  flex: 0 auto;
  justify-content: space-between;
  align-self: auto;
  height: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  position: relative;
  overflow: visible;
}

.div-block-23.first-hero-div {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex: 0 auto;
  justify-content: space-between;
  align-items: stretch;
  height: 100%;
  padding-left: 0;
  padding-right: 2.5rem;
  position: relative;
}

.div-block-24 {
  background-color: #d1d2cd;
  height: 1px;
}

.code-embed-2 {
  -webkit-text-stroke-width: 9px;
}

.div-block-25 {
  width: 1.75rem;
  height: 1.75rem;
}

.div-block-26 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  align-self: auto;
  align-items: flex-start;
  margin-top: auto;
  padding-bottom: 0;
  display: flex;
}

.div-block-26.two-examples {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  justify-content: flex-end;
  align-items: flex-start;
  margin-top: auto;
  padding-top: 3rem;
  padding-bottom: 1rem;
}

.div-block-26.two-examples:hover {
  justify-content: flex-end;
}

.div-block-26.invisible {
  opacity: 0;
  pointer-events: none;
}

.image-2 {
  border-radius: 12px 36px;
}

.p-ov-eyebrow {
  color: #11241bcc;
  letter-spacing: 0.25px;
  text-transform: uppercase;
  margin: 0 0 0;
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.3;
}

.img-generell {
  box-sizing: border-box;
  object-fit: cover;
  object-position: 100% 50%;
  width: 100%;
  height: 100%;
  overflow: clip;
}

.div-block-27 {
  border-radius: 12px;
  width: auto;
  height: 6rem;
  padding: 0;
  overflow: hidden;
}

.div-block-28 {
  grid-column-gap: 4rem;
  grid-row-gap: 4rem;
  display: flex;
}

.div-block-29 {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  justify-content: flex-start;
  align-items: center;
  text-decoration: none;
  display: flex;
}

.div-block-29.invisible {
  opacity: 0;
  pointer-events: none;
}

.div-block-30 {
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.div-block-31 {
  grid-column-gap: 0.33rem;
  grid-row-gap: 0.33rem;
  align-items: center;
  display: flex;
}

.p-eyebrow-ov {
  margin: 0;
}

.div-block-32 {
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-end;
  display: flex;
}

.p-bold-higlight {
  color: #11241b;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.div-block-33 {
  width: auto;
  height: auto;
  margin-left: auto;
}

.div-block-34 {
  padding-left: 2rem;
  transform: translate(-1.5rem);
}

.p-text-link-bold {
  color: #1e362a;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 17px;
  font-weight: 600;
}

.div-block-35 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.div-block-36 {
  z-index: 5;
  padding: 0;
  position: absolute;
  inset: -5% 0% 0%;
}

.div-block-37 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  flex: 0 auto;
  justify-content: space-between;
  align-self: auto;
  height: 100%;
  display: flex;
}

.div-block-38 {
  z-index: 0;
  background-color: #fafafa;
  background-image: radial-gradient(
    circle closest-corner,
    #dcccbf,
    #fafafa 63%,
    #fafafa
  );
  width: 100%;
  height: 80svh;
  position: absolute;
  inset: 0% 0% 0% 30%;
}

.div-block-39.laptop-view {
  height: 80svh;
  margin-left: 0;
  position: absolute;
  inset: 0%;
  overflow: visible;
}

.div-block-39.desktop {
  display: none;
  position: relative;
}

.image-3 {
  box-sizing: border-box;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 75% 100%;
  width: 100%;
  max-width: none;
  height: 100%;
  margin-left: 0;
  display: inline-block;
  position: absolute;
  inset: 0%;
}

.div-block-40 {
  box-sizing: border-box;
  aspect-ratio: 2;
  width: auto;
  height: 100%;
  margin-left: 0;
  position: relative;
}

.logo-wrapper {
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  width: 12rem;
  height: 5rem;
  display: flex;
  position: relative;
}

.div-block-41 {
  cursor: pointer;
  width: auto;
  height: auto;
  position: absolute;
  inset: auto;
}

.image-4 {
  width: 100%;
  height: 100%;
  position: relative;
}

.divider-hero-info {
  background-color: #5a5a5733;
  width: 1px;
  height: 3rem;
}

.divider-hero-info.agentur-banner {
  height: 4rem;
}

.divider-hero-info.full-span {
  height: 100%;
}

.hero-info-box {
  z-index: 3;
  background-image: linear-gradient(
    #e3d7ce00,
    #e3d7cea6 23%,
    #e3d7cecc 35%,
    #e3d7cee6
  );
  padding-top: 2rem;
  position: absolute;
  inset: auto 0% 0%;
}

.div-block-42 {
  background-image: none;
  height: 15svh;
  position: absolute;
  inset: auto 0% 0%;
}

.info-box-grid {
  z-index: 2;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: 4fr auto;
  grid-auto-columns: 1fr;
  display: grid;
  position: relative;
}

.div-block-43 {
  z-index: 2;
  background-image: linear-gradient(270deg, #fafafa00, #fafafa40);
  width: 55svw;
  height: 100%;
  position: absolute;
  inset: 0% auto 0% 0%;
}

.div-block-44 {
  background-color: #eae2db;
  background-image: linear-gradient(0deg, #f7f3ee4d, #fbf8f61a 5%, #fff0);
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.div-block-45 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.project-header {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  width: 50rem;
  margin-bottom: 0;
  display: flex;
}

.project-header.leistungen {
  width: 95%;
}

.project-box {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  display: flex;
}

.project-text {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.project-images {
  z-index: 3;
  position: relative;
}

.project-text-content {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  display: flex;
}

.project-cta {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: row;
  align-items: center;
  display: flex;
}

.section-4 {
  background-color: #fbfbfb;
}

.tech-competence-line {
  grid-column-gap: 0.66rem;
  grid-row-gap: 0.66rem;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.div-dots {
  background-color: #4b5e55;
  border-radius: 4px;
  width: 2px;
  height: 2px;
}

.p-techzeile {
  color: #15261d;
  text-transform: uppercase;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.4;
}

.project-text-box {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.code-embed-3 {
  color: #11211a;
  font-size: 14px;
  line-height: 0;
}

.code-embed-3.arrow-up {
  color: #173b37;
  font-size: 14px;
  transform: rotate(-45deg);
}

.code-embed-3.arrow-up.arrow-white {
  color: #173b37;
  align-self: center;
}

.code-embed-3.arrow-hero {
  color: #12120ee6;
  transform: rotate(0);
}

.code-embed-3.arrow-hero.arrow-45deg {
  transform: rotate(-45deg);
}

.code-embed-3.arrow-hero.big-cta-btn-arrow {
  z-index: 5;
  color: #12120e;
  position: relative;
}

.code-embed-3.arrow-hero.big-cta-btn-arrow.opacity-70 {
  opacity: 0.4;
  margin-top: auto;
  margin-bottom: auto;
}

.code-embed-3.arrow-hero.big-cta-btn-arrow.white-arrow {
  color: #faf7f5;
}

.code-embed-3.arrow-hero.big-cta-btn-arrow.green-arrow {
  color: #173b37;
  transform: rotate(-45deg);
}

.cta-btn-minor-importance {
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  text-decoration: none;
  display: flex;
}

.div-block-46 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  grid-template-rows: auto;
  grid-template-columns: auto 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  place-items: center start;
  width: 100%;
  display: grid;
}

.div-block-47 {
  background-color: #faf7f5;
  width: 100%;
  height: 1px;
}

.div-block-47.grey-divider {
  background-color: #e5e2ddd9;
}

.section-cta-wrapper {
  background-color: #f7f3ee;
  padding-top: 3rem;
  padding-bottom: 3rem;
  position: relative;
}

.cta-boxes {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.cta-box-faqs {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 3fr auto 4fr;
  grid-auto-columns: 1fr;
  margin-bottom: 0;
  display: grid;
}

.cta-grid-11 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  display: flex;
}

.cta-grid-12 {
  z-index: 3;
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  padding-left: 1rem;
  display: flex;
  position: relative;
}

.cta-grid-12.faq-cta-grid {
  padding-bottom: 3rem;
}

.cta-faq-box {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  border: 0 solid #e6dad1;
  border-bottom-width: 1px;
  border-radius: 12px;
  grid-template-rows: auto;
  grid-template-columns: auto 1fr;
  grid-auto-columns: 1fr;
  place-items: start stretch;
  padding: 0.5rem;
  display: grid;
}

.cta-faq-box.cta-projabl-faq-box {
  grid-template-columns: auto;
  box-shadow: 0 2px 5px #0003;
}

.cta-faq-box.is-faq-closing {
  background-color: transparent !important;
}

.cta-faq-number {
  color: #1e362a;
  letter-spacing: -0.5px;
  margin: 0.3rem 0 0;
  font-family: Inter, sans-serif;
  font-size: 1.25rem;
}

.cta-faq-number.p-smaller-mod {
  margin-top: 0;
  font-size: 1rem;
}

.p-cta-question {
  color: #10100d;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
}

.p-cta-answer {
  color: #0e0e0b;
  -webkit-text-stroke-color: #173b37;
  border: 0 solid #000;
  margin: 0;
  padding: 0 1.5rem;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  transform: translate(-1rem);
}

.div-block-48 {
  background-color: #414d48;
  width: 1rem;
  height: 1px;
}

.cta-faq-icon {
  justify-content: center;
  align-self: flex-start;
  align-items: center;
  width: 24px;
  height: 24px;
  margin-top: 0.5rem;
  display: flex;
  position: relative;
}

.code-embed-4,
.code-embed-5 {
  position: absolute;
}

.cta-faq-vertical-line {
  background-color: #1e362a;
  border-radius: 2px;
  width: 2px;
  height: 20px;
  position: absolute;
}

.cta-faq-vertical-line.horizontal-line {
  width: 20px;
  height: 2px;
}

.cta-box-divider {
  background-color: #3333334d;
  width: 2rem;
  height: 1px;
}

.div-block-49 {
  z-index: 2;
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  border-radius: 12px;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  padding-top: 3rem;
  padding-bottom: 3rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

.cta-box-image-cta {
  z-index: 4;
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  width: auto;
  padding-top: 0;
  display: flex;
  position: relative;
}

.div-block-50 {
  z-index: 1;
  opacity: 1;
  border-radius: 12px 12px 0 0;
  width: auto;
  max-width: none;
  height: auto;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  inset: 0%;
  overflow: hidden;
}

.image-5 {
  box-sizing: border-box;
  object-fit: cover;
  object-position: 50% 50%;
  width: 100%;
  height: 100%;
  position: relative;
}

.cta-faq-quote {
  color: #40403d;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-style: italic;
}

.cta-faq-quote.normal-text {
  font-style: normal;
}

.cta-faq-quote-box {
  z-index: 4;
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  flex-flow: column;
  display: flex;
  position: absolute;
  inset: 15% 15% auto auto;
}

.section-5 {
  position: relative;
}

.cta-faq-container {
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
}

.div-block-51 {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  cursor: auto;
  flex-flow: column;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr auto;
  grid-auto-columns: 1fr;
  padding-right: 1rem;
  display: flex;
}

.div-block-51.projabl-cta-faq {
  justify-content: flex-start;
  align-items: flex-start;
}

.div-block-52 {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  display: flex;
}

.div-block-53 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  cursor: pointer;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.div-block-53:hover {
  text-underline-offset: 1px;
  text-underline-position: under;
  text-decoration: underline;
}

.p-nav-menu-header {
  color: #173b37;
  text-underline-offset: 4px;
  -webkit-text-decoration-skip-ink: auto;
  text-decoration-skip-ink: auto;
  margin: 0;
  padding-bottom: 0.3rem;
  font-family: Inter, sans-serif;
  font-size: 1.6rem;
  text-decoration: underline;
  text-decoration-thickness: 3px;
}

.p-nav-menu-header:hover {
  border-bottom: 0 solid #000;
  -webkit-text-decoration: underline #173b37cc;
  text-decoration: underline #173b37cc;
}

.projects-container {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  padding-top: 2rem;
  display: flex;
}

.p-projects-hero-text {
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1.5rem;
  line-height: 1.25;
}

.div-block-54 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  align-items: flex-start;
  display: flex;
}

.div-block-55 {
  border-bottom: 1px solid #6868684d;
  justify-content: space-between;
  align-items: stretch;
  width: 90%;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 1rem;
  padding-bottom: 1rem;
  display: flex;
}

.div-block-56 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  display: flex;
}

.paragraph-2 {
  font-size: 24px;
}

.div-block-57 {
  grid-column-gap: 0.33rem;
  grid-row-gap: 0.33rem;
  display: flex;
}

.overview-button {
  display: flex;
}

.ov-btn-text {
  color: #924b3f;
  text-transform: uppercase;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
}

.div-block-58 {
  background-color: #eeddd9;
  border-radius: 26px;
  padding: 8px 16px;
}

.link {
  color: #12120e;
  font-weight: 600;
  text-decoration: none;
}

.div-block-59 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  display: flex;
}

.p-nav-menu-projects {
  color: #3339;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  line-height: 1.4;
}

.p-nav-menu-projects.current-project {
  color: #12120ee6;
}

.div-block-60 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 2fr 3fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.image-6 {
  transform: scale(1.1);
}

.div-block-61 {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  margin-bottom: 1rem;
  display: flex;
}

.div-block-62 {
  align-self: auto;
}

.project-ov-grid {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  grid-template-rows: auto auto auto;
  grid-template-columns: 1.8fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.project-ov-grid.version-2 {
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
}

.project-gallery-card {
  background-color: #faf7f5;
  border: 1px solid #e7e1d8bf;
  border-radius: 12px;
  flex-flow: column;
  justify-content: center;
  align-items: stretch;
  padding: 0.75rem;
  display: flex;
  box-shadow:
    0 1px 3px #00000008,
    0 8px 24px #00000008;
}

.project-gallery-card.is-not-active {
  z-index: 2;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
}

.projects-ov-subheader {
  color: #12120ee6;
  letter-spacing: -0.2px;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
}

.project-title-row {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: flex-start;
  align-items: center;
  padding-right: 1rem;
  display: flex;
}

.project-title-row.version-2 {
  justify-content: flex-start;
  align-items: center;
  padding-right: 0;
}

.project-title-wrap {
  grid-column-gap: 0.88rem;
  grid-row-gap: 0.88rem;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.project-card-content {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  padding: 0.785rem;
  display: flex;
}

.div-block-67 {
  background-color: #e6dad1;
  width: 1px;
  height: 100%;
}

.p-selbstcheck {
  color: #173b37b3;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  align-self: auto;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  line-height: 1.3;
}

.p-selbstcheck.p-fazit {
  color: #faf7f5cc;
}

.p-selbstcheck.p-fazit.p-lower {
  letter-spacing: 0.2px;
  text-transform: none;
}

.div-block-68 {
  grid-column-gap: 0.33rem;
  grid-row-gap: 0.33rem;
  justify-content: start;
  display: flex;
}

.div-block-69 {
  background-color: #1e362a99;
  align-self: center;
  width: 2px;
  height: 2px;
  line-height: 14px;
}

.div-block-69.div-fazi {
  background-color: #faf7f5b3;
}

.div-block-70 {
  grid-column-gap: 0.88rem;
  grid-row-gap: 0.88rem;
  flex-flow: column;
  display: flex;
}

.div-p-cta-answer {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  padding: 0;
  display: flex;
  overflow: hidden;
  pointer-events: none;
  height: 1px;
  opacity: 0;
}

.cta-btn-white {
  cursor: pointer;
  background-color: #faf7f5;
  border: 1px solid transparent;

  transition:
    background-color 180ms ease,
    border-color 180ms ease;
}

.cta-btn-white .arrow-up {
  transition: transform 180ms ease;
}

@media (any-hover: hover) and (any-pointer: fine) {
  .cta-btn-white:hover {
    background-color: #ffffff;
    border-color: rgba(23, 59, 55, 0.14);
  }

  .cta-btn-white:hover .arrow-up {
    transform: translateX(1px) rotate(-45deg);
  }
}

.cta-box-selbstcheck {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  text-align: left;
  background-color: #0000;
  border: 1px solid #173b372e;
  border-radius: 12px;
  flex-flow: column;
  order: 0;
  align-items: flex-start;
  margin-top: 0;
  padding: 1rem 0;
  display: flex;
}

.div-block-71 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  background-color: #173b37e6;
  border-radius: 12px;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: 3fr auto 1fr;
  grid-auto-columns: 1fr;
  justify-content: center;
  place-items: center stretch;
  width: 100%;
  margin-bottom: 2rem;
  padding: 0.5rem 1rem 0.5rem 1.5rem;
  display: grid;
}

.div-block-71.og-selbstcheck {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  grid-template-columns: auto auto 2fr auto 1fr;
}

.div-block-71.og-selbstcheck.projects-cta {
  grid-template-columns: auto auto 3fr auto 1fr;
}

.div-block-71.og-selbstcheck.projects-cta.projects-grid {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-columns: 1fr auto auto;
}

.divider-selbstcheck {
  background-color: #f7f3ee99;
  width: 1px;
  height: 80%;
}

.div-block-72 {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.div-block-73 {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  justify-content: center;
  align-items: flex-end;
  padding: 0;
  display: flex;
}

.div-block-74 {
  background-color: #f7f3ee;
  border-radius: 6px;
  width: 5px;
  height: 20px;
}

.div-block-74.first-div-cta {
  background-color: #f7f3eeb3;
  height: 22px;
}

.div-block-74.second-div-cta {
  background-color: #f7f3eecc;
  height: 34px;
}

.div-block-74.third-div-cta {
  background-color: #f7f3eee6;
  height: 46px;
}

.div-block-75 {
  background-color: #335752;
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  width: 80px;
  height: 80px;
  display: flex;
}

.div-block-76 {
  border: 2px solid #335752;
  border-radius: 100px;
  padding: 12px;
}

.div-block-77 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  align-items: center;
  width: 90%;
  display: flex;
}

.div-block-77.width100 {
  width: 100%;
}

.cta-btn-white {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  background-color: #faf7f5;
  border-radius: 12px;
  justify-content: center;
  padding: 12px 20px;
  text-decoration: none;
  display: flex;
}

.cta-btn-white.faq-cta-box {
  padding-left: 30px;
  padding-right: 30px;
}

.cta-btn-white.faq-cta-box.projetablauf {
  width: 100%;
  padding-left: 24px;
  padding-right: 24px;
}

.cta-hero-btn-1 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: space-between;
  align-items: stretch;
  display: flex;
}

.cta-hero-btn-1.is-relative {
  position: relative;
}

.cta-hero-btn-1.is-absolute {
  position: absolute;
}

.hover-btn-mask {
  z-index: 4;
  background-color: #2e4f4b;
  border: 0 solid #173b37;
  border-radius: 12px;
  position: absolute;
  inset: 0%;
}

.cta-hover-btn-1 {
  cursor: pointer;
  background-color: #193c39;
  border-radius: 12px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.projects-hero-wrapper {
  background-color: #f6f0e8;
  background-image: linear-gradient(90deg, #fff0, #eae2db66);
  padding-top: 3rem;
  padding-bottom: 3rem;
  position: relative;
  overflow: hidden;
}

.projects-project-wrapper {
  background-color: #fbf8f3;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.div-block-78 {
  z-index: 2;
  background-color: #f8f4ec;
  background-image: linear-gradient(#fbf8f380, #fbf8f300);
  border-radius: 24px;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.div-block-78.div-78-grey {
  background-color: #f3ede51a;
  height: 20%;
  inset: auto 0% 0%;
}

.projects-images {
  z-index: 3;
  position: relative;
}

.projects-quote-wrapper {
  background-color: #f0e9e1;
}

.projects-quote-img-wrapper {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  justify-content: center;
  align-items: center;
  width: auto;
  height: auto;
  margin-left: 0;
  margin-right: auto;
  padding: 1rem;
  display: flex;
}

.div-block-79 {
  grid-column-gap: 1.75rem;
  grid-row-gap: 1.75rem;
  display: flex;
}

.div-block-80 {
  background-color: #12120e66;
  align-self: center;
  width: 2rem;
  height: 1px;
}

.div-block-81 {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.projects-hero-quote-abs {
  text-align: right;
  width: 30%;
  margin-top: auto;
  margin-left: auto;
  position: absolute;
  inset: 0% 0% 0% auto;
}

.image-8 {
  object-fit: contain;
  object-position: 100% 0%;
  width: auto;
  height: 100%;
  position: relative;
  inset: auto;
}

.image-9 {
  width: 100%;
  height: 100%;
}

.projects-image-wrapper {
  border-radius: 50px;
  width: 6.5rem;
  height: 100%;
  overflow: hidden;
}

.div-block-82 {
  background-color: #04050533;
  width: 1px;
  height: 100%;
}

.p-projects-quote {
  color: #12120e;
  letter-spacing: -0.66px;
  margin: 0;
  font-family: Playfair, sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.3;
  position: relative;
}

.p-projects-quote-text {
  color: #12120e;
  letter-spacing: -0.25px;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  line-height: 1.4;
}

.p-projects-quote-text.lower-prio {
  color: #12120e99;
  letter-spacing: 0;
  text-transform: uppercase;
  font-size: 0.88rem;
  font-weight: 400;
}

.div-block-83 {
  grid-column-gap: 0.25rem;
  grid-row-gap: 0.25rem;
  flex-flow: column;
  display: flex;
}

.div-block-84 {
  grid-column-gap: 1.25rem;
  grid-row-gap: 1.25rem;
  flex-flow: column;
  width: 70%;
  display: flex;
}

.proj-img-wrapper.project-media {
  cursor: pointer;
  text-decoration: none;
  position: relative;
}

.project-detail-link {
  color: #333;
  text-decoration: none;
}

.project-detail-link.version-2 {
  justify-content: center;
  align-items: center;
  display: flex;
}

.arrow-control {
  margin-bottom: 0;
}

.div-block-85 {
  aspect-ratio: auto;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.nav-bar {
  z-index: 999;
  background-color: #faf7f600;
  width: auto;
  max-width: none;
  height: 5rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  position: fixed;
  inset: 0% 0% auto;
}

.nav-container {
  z-index: 2;
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  background-color: #fffc;
  border: 0 solid #91583514;
  border-radius: 12px;
  justify-content: flex-end;
  align-items: center;
  width: 95%;
  max-width: 1600px;
  height: 4.5rem;
  margin-top: 0;
  margin-left: auto;
  margin-right: auto;
  padding: 0.88rem 2rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

.brand-box {
  width: auto;
  height: 3rem;
  margin-right: auto;
  padding-left: 0;
  transform: scale(1.3);
}

.brand-box.w--current {
  cursor: pointer;
}

.nav-links,
.nav-cta {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  display: flex;
}

.image-10 {
  width: auto;
  height: 100%;
  padding-left: 0;
}

.p-nav-bar {
  color: #12120e;
  /* letter-spacing: -0.05px; */
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
}

/* .p-nav-bar:active {
   text-underline-offset: 7px; 
  -webkit-text-decoration: underline #17433a;
   text-decoration: underline #17433a; 
   text-decoration-thickness: 2px; 
} */

.p-nav-bar.p-cta-nav-bar-bright {
  color: #faf7f5;
  font-size: 0.88rem;
  line-height: 1.4;
}

.p-nav-bar.p-nav-bar-cta-lower {
  color: #163d36;
  font-size: 0.88rem;
}

.link-block {
  cursor: pointer;
  text-decoration: none;
}

.link-block.w--current {
  color: rgb(23, 67, 58);
  text-underline-offset: 6px;
  cursor: pointer;
  -webkit-text-decoration: underline #163d36;
  text-decoration: underline rgba(23, 67, 58, 0.85);
  text-decoration-thickness: 2px;
}

.link-block-2 {
  text-decoration: none;
}

/* .cta-nav-bar {
  cursor: pointer;
  background-color: #163d36;
  border-radius: 12px;
  padding: 8px 16px;
  text-decoration: none;
} */

.cta-nav-bar {
  cursor: pointer;
  background-color: #163d36;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 8px 16px;
  text-decoration: none;

  transition:
    background-color 180ms ease,
    border-color 180ms ease;
}

.cta-nav-bar.cta-nav-bar-lower-prio {
  background-color: #163d3600;
  border: 1px solid #163d36e6;
}

@media (any-hover: hover) and (any-pointer: fine) {
  .cta-nav-bar:not(.cta-nav-bar-lower-prio):hover {
    background-color: #1b4941;
    border-color: rgba(250, 247, 245, 0.18);
    transform: none;
  }
}

/* Kontaktseite: CTA bleibt optisch identisch,
   verhält sich aber nicht mehr wie ein neuer Ziel-Link */

.cta-nav-bar.w--current {
  background-color: #163d36;
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

.cta-nav-bar.w--current .p-cta-nav-bar-bright {
  color: #faf7f5;
  text-decoration: none;
}

@media (any-hover: hover) and (any-pointer: fine) {
  .cta-nav-bar.w--current:hover {
    background-color: #163d36;
    border-color: transparent;
    transform: none;
  }
}
.section-6 {
  margin-top: 5.5rem;
}

.body-2 {
  background-color: #f2ebe3;
}

.home-menu {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  display: none;
}

.p-cta-projects {
  flex: 0 auto;
  width: auto;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
}

.code-embed-6 {
  height: auto;
  position: absolute;
}

.img-wrapper-laptop {
  width: 84%;
  margin-left: 0;
  margin-right: auto;
}

.img-laptop {
  width: auto;
  height: 100%;
}

.img-wrapper-phone {
  height: 69%;
  position: absolute;
  inset: auto 0% 2% auto;
}

.img-wrapper-phone.is-verleiblicht {
  height: 71%;
}

.img-phone {
  width: auto;
  height: 100%;
}

.img-laptop-second-wrapper {
  width: 84%;
  margin-right: auto;
  position: relative;
}

.img-laptop-second {
  width: auto;
  height: 100%;
}

.img-phone-second-wrapper {
  height: 70%;
  position: absolute;
  inset: auto 0% 2% auto;
}

.img-phone-second {
  width: auto;
  height: 100%;
}

.nav-backdrop {
  z-index: 1;
  opacity: 0;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  background-color: #faf8f600;
  position: absolute;
  inset: 0%;
}

.agentur-banner-wrapper {
  background-color: #f0ebe4;
  margin-top: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
  position: relative;
}

.agentur-banner-grid {
  z-index: 4;
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  background-color: #f4eee800;
  border: 1px solid #ded2ca;
  border-radius: 12px;
  grid-template-rows: auto;
  grid-template-columns: 4fr auto auto auto auto;
  grid-auto-columns: 1fr;
  place-items: center start;
  padding: 1.25rem 1.5rem 1.25rem 3rem;
  display: grid;
  position: relative;
  overflow: hidden;
}

.agentur-banner-grid.smaller-banner {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.div-block-86 {
  z-index: 5;
  background-color: #f0ebe400;
  flex-flow: column;
  justify-content: center;
  height: 100%;
  padding-left: 1rem;
  display: flex;
  position: relative;
  overflow: visible;
  gap: 0.15rem;
}

.div-block-87 {
  z-index: 1;
  opacity: 0.5;
  background-color: #0000;
  background-image: linear-gradient(
    #000,
    #363636 21%,
    #484848 28%,
    #8a8a8a 54%,
    #c2c2c2 76%,
    #d4d4d4 83%,
    #fff
  );
  width: auto;
  height: 100%;
  display: flex;
  position: absolute;
  inset: 0% auto auto 0%;
  overflow: hidden;
}

.image-11 {
  box-sizing: border-box;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 50%;
  height: auto;
  position: relative;
}

.div-block-88 {
  grid-column-gap: 0.88rem;
  grid-row-gap: 0.88rem;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.banner-icon {
  background-color: #0000;
  border: 0 solid #000;
  border-radius: 0;
  width: 100%;
  height: auto;
}

.banner-icon.person-icon {
  height: 1%;
}

.image-12 {
  border-radius: 0;
  height: 100%;
}

.div-block-89 {
  background-color: #d3cdc4;
  border-radius: 12px;
}

.div-block-90 {
  background-color: #dad4cc;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  height: 2.5rem;
  padding: 0.25rem;
  display: flex;
}

.div-block-90.webflow-icon {
  background-color: #080808;
  border: 0 solid #000;
  border-radius: 8px;
  height: 2.5rem;
}

.div-block-91 {
  position: absolute;
  inset: 0% auto 0% 0%;
}

.div-block-92 {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  align-items: center;
  display: flex;
  position: relative;
}

.div-block-93 {
  background-image: linear-gradient(90deg, #f0ebe433, #f0ebe4b3 36%, #f0ebe4);
  position: absolute;
  inset: 0%;
}

.p-cta-small-brow {
  color: #12120eb3;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.7;
}

.link-2 {
  color: #12120e;
  text-underline-offset: 3px;
  cursor: pointer;
  -webkit-text-decoration: underline #12120e80;
  text-decoration: underline #12120e80;
}

.projabl-hero-section {
  color: #faf7f3;
  background-color: #faf7f3;
}

.projabl-hero-box {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  background-color: #0000;
  border-bottom: 1px solid #12120e45;
  flex-flow: column;
  align-items: flex-start;
  margin-top: 5rem;
  margin-bottom: 0;
  padding-top: 2.5rem;
  padding-bottom: 1rem;
  display: flex;
}

.projabl-hero-info-box {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  border-bottom: 0 solid #5a5a5745;
  grid-template-rows: auto;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  grid-auto-columns: 1fr;
  place-items: stretch start;
  width: auto;
  max-width: none;
  margin-right: auto;
  padding-bottom: 3rem;
  display: grid;
}

.p-text-projabl {
  color: #12120ecc;
  width: 90%;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  line-height: 1.5;
}

.p-text-projabl.p-text-longer {
  text-align: left;
  overflow-wrap: normal;
  width: 100%;
}

.p-text-projabl.width-100 {
  width: 100%;
}

.p-text-hero-info {
  color: #12120e;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
}

.p-text-hero-info.bigger-text {
  font-size: 1.5rem;
}

.div-block-94 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  width: 100%;
  padding-bottom: 1rem;
  display: flex;
}

.div-block-94.sm-gap {
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  padding-bottom: 2rem;
}

.div-block-94.larger-div-block {
  width: 100%;
}

.banner-icon-div {
  background-color: #f3f0eb;
  border-radius: 100px;
  justify-content: flex-start;
  align-items: center;
  width: 4.5rem;
  height: 4.5rem;
  padding: 1rem;
  display: flex;
}

.banner-icon-div.contact-icon {
  background-color: #ece6de;
  border-radius: 100px;
  width: 3rem;
  height: 3rem;
  padding: 0.75rem;
}

.projabl-hero-info-content {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  max-width: 320px;
  display: flex;
}

.ablauf-wrapper {
  background-color: #fbf9f5;
  margin-bottom: 0;
}

.ablauf-box {
  border-bottom: 1px solid #12120e45;
  padding-top: 3rem;
}

.div-block-95 {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  grid-template-rows: auto;
  grid-template-columns: 1.2fr 0.25fr 1.2fr 0.25fr 1.2fr 0.25fr 1.2fr;
  grid-auto-columns: 1fr;
  place-items: start;
  padding-bottom: 1rem;
  display: grid;
}

.nr-block-ablauf {
  height: 100%;
}

.nr-block-ablauf-text {
  color: #173b37b3;
  margin: 0;
  font-family:
    Palatino Linotype,
    Book Antiqua,
    Palatino,
    serif;
  font-size: 3rem;
  line-height: 1.2;
}

.empty-divider {
  width: 1%;
}

.section-faq {
  padding-top: 5rem;
}

.div-block-96 {
  flex-flow: column;
  display: flex;
}

.code-embed-7 {
  width: 100%;
}

.webflow-banner-icon {
  width: auto;
  height: 100%;
}

.contact-wrapper {
  background-color: #f6f2ed;
}

.section-contact {
  margin-top: 0;
  padding-top: 3rem;
  padding-bottom: 4rem;
}

.contact-hero-box {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  margin-top: 0;
  display: flex;
}

.contact-hero-info-box {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  flex-flow: column;
  display: flex;
}

.contact-info-content {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  display: flex;
}

.contact-info-content.contact-box {
  justify-content: flex-start;
  align-items: center;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.div-block-97 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 4fr 5fr;
  grid-auto-columns: 1fr;
  padding-top: 5rem;
  display: grid;
}

.legend {
  color: #12120e;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
}

.fieldset {
  width: 100%;
}

.project-type-grid {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  display: flex;
}

.div-block-98 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  justify-content: space-between;
  display: flex;
}

.code-embed-8 {
  display: none;
}

.divider-horizonal {
  background-color: #12120e1a;
  width: 100%;
  height: 1px;
  margin-right: auto;
}

.divider-horizonal.max-width-5rem {
  width: 4rem;
}

.code-embed-9 {
  color: #12120e;
  line-height: 0;
}

.div-block-100 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  display: flex;
}

.div-block-101 {
  -webkit-text-decoration-skip-ink: auto;
  text-decoration-skip-ink: auto;
  border-bottom: 0 solid #000;
  text-decoration: none;
}

.div-block-101:hover {
  border-bottom-color: #0000;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.nav-menu-header-2 {
  margin: 0;
  padding-bottom: 0.3rem;
  font-family: Inter, sans-serif;
  font-size: 1.5rem;
  line-height: 1.3;
  text-decoration: none;
}

.div-block-102 {
  position: absolute;
}

.hero-img-wrapper {
  width: 100%;
  min-height: 0;
}

.section-leistungen {
  position: relative;
}

.leistungen-wrapper {
  background-color: #f7f3ee;
  padding-top: 5rem;
  padding-bottom: 4rem;
}

.leistungen-wrapper.second-wrapper {
  padding-top: 0;
}

/* =========================================================
   HOMEPAGE — POSITIONIERUNG / IHR DIGITALER AUFTRITT
   ========================================================= */

.page-home .home-positioning-wrapper {
  /*
   * Bewusst etwas kompakter als der bisherige Abschnitt.
   * Der eigentliche Leistungen-Bereich darunter bleibt unverändert.
   */
  padding-top: 4.25rem;
  padding-bottom: 3.5rem;
}

.page-home .home-positioning {
  width: 100%;
  min-width: 0;
}

/* ---------------------------------------------------------
   Eyebrow
   --------------------------------------------------------- */

.page-home .home-positioning__eyebrow-row {
  margin-bottom: clamp(2rem, 2.6vw, 2.75rem);
}

/* ---------------------------------------------------------
   Editoriales Desktop-Layout
   --------------------------------------------------------- */

.page-home .home-positioning__layout {
  display: grid;

  grid-template-columns:
    minmax(0, 0.95fr)
    1px
    minmax(0, 1.05fr);

  column-gap: clamp(2.5rem, 4vw, 4.5rem);

  align-items: start;

  width: 100%;
  min-width: 0;
}

/* ---------------------------------------------------------
   Headline links
   --------------------------------------------------------- */

.page-home .home-positioning__title {
  max-width: 600px;

  margin: 0;

  color: #12120e;

  font-family: Playfair, "Playfair Display", Georgia, serif;

  /*
   * Bewusst etwas kleiner als im ersten Entwurf.
   * Stark genug als Statement, konkurriert aber nicht mit dem Hero.
   */
  font-size: clamp(2.5rem, 3.25vw, 3.25rem);
  font-weight: 500;
  line-height: 1.07;

  letter-spacing: -0.03em;

  text-wrap: balance;
}

/* ---------------------------------------------------------
   Feiner vertikaler Divider
   --------------------------------------------------------- */

.page-home .home-positioning__divider {
  align-self: stretch;

  width: 1px;
  min-height: 100%;

  background-color: rgba(18, 18, 14, 0.11);
}

/* ---------------------------------------------------------
   Erklärung rechts
   --------------------------------------------------------- */

.page-home .home-positioning__copy {
  display: flex;

  flex-direction: column;

  gap: 1.1rem;

  width: 100%;
  max-width: 620px;
  min-width: 0;

  /*
   * Optisch minimal tiefer als die Headline.
   * Verhindert eine zu starre Tabellenwirkung.
   */
  padding-top: 0.3rem;
}

.page-home .home-positioning__text {
  margin: 0;

  color: rgba(18, 18, 14, 0.92);

  font-family: Inter, sans-serif;
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.62;
}

@media screen and (max-width: 991px) {
  .page-home .home-positioning-wrapper {
    padding-top: 3.75rem;
    padding-bottom: 3.25rem;
  }

  .page-home .home-positioning__layout {
    grid-template-columns:
      minmax(0, 0.9fr)
      1px
      minmax(0, 1.1fr);

    column-gap: 2rem;
  }

  .page-home .home-positioning__title {
    font-size: clamp(2.3rem, 4.7vw, 2.8rem);
  }

  .page-home .home-positioning__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .page-home .home-positioning-wrapper {
    padding-top: 3.25rem;
    padding-bottom: 3rem;
  }

  .page-home .home-positioning__eyebrow-row {
    margin-bottom: 1.75rem;
  }

  .page-home .home-positioning__layout {
    grid-template-columns: minmax(0, 1fr);

    row-gap: 1.75rem;
  }

  .page-home .home-positioning__title {
    max-width: 540px;

    font-size: clamp(2.2rem, 6.5vw, 2.7rem);
    line-height: 1.08;

    text-wrap: pretty;
  }

  /*
   * Der vertikale Desktop-Divider wird auf Mobile
   * zur horizontalen Trennlinie.
   */
  .page-home .home-positioning__divider {
    width: 100%;
    height: 1px;
    min-height: 1px;

    background-color: rgba(18, 18, 14, 0.12);
  }

  .page-home .home-positioning__copy {
    max-width: 600px;

    padding-top: 0;
  }

  .page-home .home-positioning__text {
    font-size: 1rem;
    line-height: 1.62;
  }
}
@media screen and (max-width: 479px) {
  .page-home .home-positioning-wrapper {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
  }

  .page-home .home-positioning__eyebrow-row {
    margin-bottom: 1.6rem;
  }

  .page-home .home-positioning__layout {
    row-gap: 1.5rem;
  }

  .page-home .home-positioning__title {
    max-width: 340px;

    font-size: clamp(2.05rem, 9vw, 2.3rem);
    line-height: 1.08;

    letter-spacing: -0.025em;
  }

  .page-home .home-positioning__copy {
    gap: 1rem;
  }

  .page-home .home-positioning__text {
    font-size: 0.95rem;
    line-height: 1.65;
  }
}
.leistugen-box {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  display: flex;
}

.div-block-103 {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  display: flex;
}

.leistungen-boxen-wrapper {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  padding-bottom: 1rem;
  display: block;
}

.leistungen-boxen {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.div-block-104 {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.p-price {
  color: #173b37;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
}

.p-leistungen {
  color: #12120ee6;
  text-align: left;
  align-self: flex-start;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  line-height: 1.5;
}

.p-leistungen.p-smaller-mod {
  color: #173b37e6;
  margin: 0;
  font-size: 0.88rem;
}

.p-leistungen.p-price {
  color: #12120ecc;
  font-weight: 300;
}

.cta-leistungen {
  grid-column-gap: 0.75rem;
  grid-row-gap: 0.75rem;
  cursor: pointer;
  border: 1px solid #173b37;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  width: auto;
  padding: 12px 18px;
  text-decoration: none;
  display: flex;
}

.p-cta-leistungen {
  color: #173b37;
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.5;
}

.p-cta-leistungen.lower-cta {
  text-decoration: underline;
}

.cta-leistungen-wrapper {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.leistungen-box {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;

  /* Fast weiß – hebt sich bereits vom #f7f3ee Hintergrund ab */
  background-color: #fdfbf9;

  border: 1px solid rgba(18, 18, 14, 0.08);
  border-radius: 18px;

  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;

  padding: 2rem;

  display: flex;

  box-shadow:
    0 1px 2px rgba(18, 18, 14, 0.025),
    0 5px 16px rgba(18, 18, 14, 0.025);
}
/* .leistungen-box {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  background-color: #fcf8f5;
  border: 1px solid #efece8;
  border-radius: 24px;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 2rem;
  display: flex;
  box-shadow: 0 2px 6px #00000014;
} */

.price-block {
  grid-column-gap: 0rem;
  grid-row-gap: 0rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.div-block-105 {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  justify-content: center;
  align-self: auto;
  align-items: flex-start;
  display: flex;
}

.p-leistungs-box {
  grid-column-gap: 0.5rem;
  grid-row-gap: 0.5rem;
  flex-flow: column;
  margin-bottom: auto;
  display: flex;
}

.div-block-106 {
  cursor: pointer;
  justify-content: center;
  text-decoration: none;
  display: flex;
}

.leistungen-page-wrapper {
  background-color: #f7f3ed;
}

.leistungen-hero-section {
  padding-top: 7rem;
}

.div-block-107 {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  grid-template-rows: auto;
  grid-template-columns: 5fr 4fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.div-block-108 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  grid-template-rows: auto;
  grid-template-columns: 2fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.div-block-109 {
  background-image: linear-gradient(#e8ddd5cc, #f7f3eecc);
  width: 100%;
  height: 2rem;
  position: absolute;
  inset: 0% 0% auto;
  transform: translate(0, -3px);
}

.section-7 {
  margin-top: 0;
  padding-top: 2rem;
}

/**************************/
/* FOOTER INCL. @media */
/**************************/
.jj-footer,
.jj-footer * {
  box-sizing: border-box;
}

.jj-footer {
  --jj-bg: #f5f0ec;
  --jj-text: #14130f;
  --jj-muted: #706a65;
  --jj-green: #173d37;
  --jj-line: rgba(20, 19, 15, 0.14);

  background: var(--jj-bg);
  color: var(--jj-text);

  border-top: 1px solid var(--jj-line);

  font-family: Inter, Arial, sans-serif;
}

.jj-footer a,
.jj-footer button {
  color: inherit;
  text-decoration: none;
}

.jj-footer__inner {
  width: 90%;
  max-width: 1440px;

  margin: 0 auto;

  padding: clamp(4.5rem, 7vw, 7rem) 0 1.8rem;
}

/* ======================================================
       MAIN CONTENT
    ====================================================== */

.jj-footer__main {
  display: grid;

  grid-template-columns:
    minmax(420px, 1.5fr)
    minmax(210px, 0.72fr)
    minmax(280px, 0.9fr);

  align-items: start;

  gap: clamp(3.5rem, 6vw, 6.5rem);

  width: min(1180px, 100%);

  margin: 0 auto;

  padding-bottom: clamp(3.8rem, 5vw, 5rem);
}

/* ======================================================
       PROFILE
    ====================================================== */

.jj-footer__profile {
  display: flex;
  align-items: center;

  gap: 1.6rem;
}

.jj-footer__portrait-link {
  display: block;
  flex: 0 0 auto;
  border-radius: 50%;
  line-height: 0;
  cursor: pointer;

  /* Der Link selbst bewegt sich nie. */
  transform: none !important;
  transition: none !important;
}

.jj-footer__portrait {
  display: block;
  width: 112px;
  height: 112px;
  flex: 0 0 auto;

  object-fit: cover;
  object-position: center 30%;

  cursor: pointer;

  border-radius: 50%;

  /* feine innere Bildkante */
  border: 1px solid rgba(20, 19, 15, 0.22);

  /*
   * 1. Shadow = Abstand zwischen Bild und äußerem Ring
   * 2. Shadow = äußerer Ring
   */
  /* box-shadow:
    0 0 0 4px #f5f0ec,
    0 0 0 5px rgba(20, 19, 15, 0.32); */

  background: #ffffff;

  transform: scale(1);
  transform-origin: center center;

  /* Bewusst nur die leichte Vergrößerung animieren. */
  transition: none;
}

/* Hover nur auf Geräten mit echtem Hover */
@media (hover: hover) and (pointer: fine) {
  .jj-footer__portrait-link:hover .jj-footer__portrait {
    transform: scale(1.03);
  }
}

.jj-footer__name {
  margin: 0 0 0.4rem;

  font-family: "Playfair Display", Georgia, serif;

  font-size: clamp(1.8rem, 2vw, 2.35rem);
  font-weight: 600;
  line-height: 1.08;

  letter-spacing: -0.03em;
}

.jj-footer__role {
  margin: 0 0 1.2rem;

  color: var(--jj-muted);

  font-size: 1rem;
  line-height: 1.5;
}

.jj-footer__profile-link {
  display: inline-flex;
  align-items: center;

  gap: 0.55rem;

  color: var(--jj-text);

  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.4;

  transition:
    gap 180ms ease,
    color 180ms ease;
}

.jj-footer__profile-link:hover {
  gap: 0.65rem;
  color: var(--jj-green);
}

/* ======================================================
       COLUMN
    ====================================================== */

.jj-footer__column {
  padding-top: 0.2rem;
}

.jj-footer__label {
  margin: 0 0 1.25rem;

  color: var(--jj-muted);

  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.4;

  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.jj-footer__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  gap: 0.8rem;
}

.jj-footer__link,
.jj-footer__cookie {
  position: relative;

  padding: 0;

  border: 0;
  background: none;

  color: var(--jj-text);

  font-family: inherit;
  font-size: 0.96rem;
  font-weight: 400;
  line-height: 1.45;

  cursor: pointer;

  transition: color 160ms ease;
}

.jj-footer__link:hover,
.jj-footer__cookie:hover {
  color: var(--jj-green);
}

/* ======================================================
       CONTACT
    ====================================================== */

.jj-footer__contact-link {
  display: block;
  width: fit-content;

  margin-bottom: 0.7rem;

  color: var(--jj-text);

  font-size: 0.96rem;
  font-weight: 400;
  line-height: 1.45;

  transition: color 160ms ease;
}

.jj-footer__contact-link:hover {
  color: var(--jj-green);
}

.jj-footer__cta {
  margin-top: 0.35rem;
  display: inline-flex;
  align-items: center;

  gap: 0.5rem;

  color: var(--jj-green);

  font-size: 0.96rem;
  font-weight: 600;
  line-height: 1.4;

  transition:
    gap 180ms ease,
    color 180ms ease;
}

.jj-footer__cta:hover {
  gap: 0.6rem;
}

.jj-footer__arrow {
  width: 16px;
  height: 16px;

  flex: 0 0 auto;
}

/* ======================================================
       BOTTOM
    ====================================================== */

.jj-footer__bottom {
  display: flex;
  justify-content: center;

  padding-top: 2rem;

  border-top: 1px solid var(--jj-line);
}

.jj-footer__copyright {
  margin: 0;

  color: var(--jj-muted);

  font-size: 0.78rem;
  line-height: 1.5;

  text-align: center;
}

/* ======================================================
       FOCUS
    ====================================================== */

.jj-footer a:focus-visible,
.jj-footer button:focus-visible {
  outline: 2px solid var(--jj-green);
  outline-offset: 5px;

  border-radius: 2px;
}

/* ======================================================
       TABLET
    ====================================================== */

@media screen and (max-width: 991px) {
  .jj-footer__main {
    grid-template-columns: 1fr 1fr;

    gap: 3rem 4rem;

    width: 100%;
  }

  .jj-footer__profile {
    grid-column: 1 / -1;
  }
}

/* ======================================================
       MOBILE
    ====================================================== */

@media screen and (max-width: 767px) {
  .jj-footer__inner {
    width: 90%;

    padding-top: 3.8rem;
  }

  .jj-footer__main {
    display: block;

    padding-bottom: 3rem;
  }

  .jj-footer__profile {
    margin-bottom: 2.8rem;
  }

  .jj-footer__portrait {
    width: 86px;
    height: 86px;

    /* border-radius: 14px; */
  }

  .jj-footer__name {
    font-size: 1.6rem;
  }

  .jj-footer__role {
    margin-bottom: 0.8rem;

    font-size: 0.9rem;
  }

  .jj-footer__column {
    padding: 1.7rem 0;

    border-top: 1px solid var(--jj-line);
  }

  .jj-footer__column:last-child {
    padding-bottom: 0;
  }

  .jj-footer__bottom {
    padding-top: 1.5rem;
  }
}

/* ======================================================
       SMALL MOBILE
    ====================================================== */

@media screen and (max-width: 479px) {
  .jj-footer__profile {
    align-items: center;

    gap: 1rem;
  }

  .jj-footer__portrait {
    width: 74px;
    height: 74px;
  }

  .jj-footer__name {
    font-size: 1.45rem;
  }

  .jj-footer__role {
    font-size: 0.84rem;
  }

  .jj-footer__profile-link {
    font-size: 0.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jj-footer *,
  .jj-footer *::before,
  .jj-footer *::after {
    transition: none !important;
  }
}

/* ==========================================
       MOVILE RESPONSIVE
========================================== */

/* ==========================================
   DESKTOP STABILIZATION
   The former Webflow 1440px+ breakpoint was removed.
   One desktop layout now applies continuously above the standard tablet breakpoint.
========================================== */

@media screen and (min-width: 992px) {
  /* Keep the hero artwork vertically stable on wide screens.
     The image scales by hero height instead of being re-cropped by viewport width. */
  .div-block-39.laptop-view {
    overflow: hidden;
    background: linear-gradient(180deg, #e5d8cf 0%, #e2d4c9 24%, #e2d4c9 100%);
  }

  .div-block-39.laptop-view .image-3 {
    width: auto;
    height: 100%;
    max-width: none;
    object-fit: contain;
    object-position: 100% 100%;
    position: absolute;
    inset: 0 0 0 auto;
  }
}

@media screen and (max-width: 991px) {
  .container {
    width: 95%;
  }

  .quali-banner {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .heading-tertiary.h3-white {
    text-align: left;
    align-self: center;
  }

  .project-content-box.project-content-box-reverse.project-modi-odd {
    grid-template-columns: 3.5fr;
  }

  .project-content-box.project-modi-even {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    grid-template-columns: 3fr;
  }

  .code-embed-3.arrow-up.arrow-white {
    align-self: center;
  }

  .cta-box-faqs {
    grid-template-columns: 3fr;
  }

  .project-ov-grid.version-2 {
    grid-template-columns: 1fr 1fr;
  }

  .project-ov-grid.version-2.tablet-grid {
    grid-template-rows: auto auto auto auto;
    grid-template-columns: 1fr;
  }

  .cta-box-selbstcheck {
    text-align: left;
    justify-content: flex-start;
    align-items: center;
  }

  .cta-box-selbstcheck.projabl-cta-final-box {
    grid-column-gap: 0rem;
    grid-row-gap: 0rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .div-block-71 {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    grid-template-columns: 3fr;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .div-block-71.og-selbstcheck {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    grid-template-columns: auto;
    padding-bottom: 1rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .div-block-71.og-selbstcheck.projects-cta.projects-grid {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    grid-template-columns: 1fr;
  }

  .divider-selbstcheck,
  .css-icon-progress-bars {
    display: none;
  }

  .div-block-77 {
    justify-content: flex-start;
    align-items: center;
    width: 50%;
    margin-left: auto;
    margin-right: auto;
  }

  .cta-btn-white.mobile-screen {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    width: 70%;
  }

  .div-block-85 {
    display: none;
  }

  .nav-container {
    border-radius: 0 0 6px 6px;
    width: 100%;
  }

  .nav-links {
    display: none;
  }

  .home-menu {
    display: flex;
  }

  .contact-hero-box {
    padding-bottom: 1rem;
  }

  .div-block-97 {
    grid-template-columns: 4fr;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .div-block-108 {
    grid-template-columns: 2fr;
  }

  .div-block-110,
  .div-block-111,
  .code-embed-10 {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .quali-banner {
    flex-flow: row;
  }

  .div-block-71 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .projabl-hero-info-box {
    grid-column-gap: 0.5rem;
    grid-row-gap: 0.5rem;
  }
}

@media screen and (max-width: 479px) {
  .quali-banner {
    flex-flow: row;
  }

  .divider-hero-info.full-span {
    display: none;
  }

  .cta-grid-12.faq-cta-grid {
    padding-left: 0;
  }

  .div-block-51.projabl-cta-faq {
    padding-right: 0;
  }

  .div-block-77 {
    width: 80%;
  }

  .projects-quote-img-wrapper {
    grid-column-gap: 1.5rem;
    grid-row-gap: 1.5rem;
    flex-flow: column;
    padding: 1.5rem 0.5rem;
  }

  .div-block-84 {
    width: 100%;
  }

  .projabl-hero-box {
    align-items: center;
  }

  .projabl-hero-info-box {
    grid-template-columns: 1fr;
    justify-items: center;
    margin-right: 0;
  }

  .p-text-projabl {
    text-align: start;
    width: 100%;
  }

  .div-block-94.sm-gap {
    width: auto;
  }

  .projabl-hero-info-content {
    align-items: center;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

#w-node-_4588a410-dc69-7827-9fba-661c6ee793c1-551f9324 {
  grid-area: span 1 / span 1 / span 1 / span 1;
}

#w-node-_4588a410-dc69-7827-9fba-661c6ee79418-551f9324,
#w-node-d99796aa-03fc-2e30-efe7-a103c36c6072-551f9324 {
  justify-self: auto;
}

#w-node-b5ddb6b2-016a-ace7-45dd-6ac3cfef71e1-551f9324,
#w-node-ba24b869-f241-07ce-7205-85e876fbba14-551f9324,
#w-node-d8937642-35eb-91ff-eb8d-5e3a373b660e-551f9324,
#w-node-_5a885f6a-d7b8-45a1-8b00-9bd5e3400321-551f9324,
#w-node-_0e784470-2dbc-2eca-18f9-a4ed4d96d678-551f9324,
#w-node-_0e784470-2dbc-2eca-18f9-a4ed4d96d682-551f9324,
#w-node-_0e784470-2dbc-2eca-18f9-a4ed4d96d68c-551f9324,
#w-node-_0e784470-2dbc-2eca-18f9-a4ed4d96d696-551f9324 {
  grid-area: span 1 / span 1 / span 1 / span 1;
}

#w-node-_63145fe1-b67a-a069-927a-44631592fe7a-551f9324 {
  grid-area: 1 / 1 / 4 / 2;
}

#w-node-_8f3e0f87-25fa-7791-3b74-5b831fad9759-551f9324,
#w-node-_8af5b556-4df6-e1e2-b0f3-8bacea259335-9cf1a012 {
  justify-self: auto;
}

#w-node-_8af5b556-4df6-e1e2-b0f3-8bacea259341-9cf1a012 {
  place-self: auto center;
}

#w-node-_89551ce6-1657-9534-d84b-b673efdffc68-070f2fbc {
  align-self: auto;
}

#w-node-_15cc9ccf-951c-7e99-dc7d-16c8950aed78-070f2fbc {
  grid-area: span 1 / span 1 / span 1 / span 1;
}

#w-node-cfc12bcc-5b55-5e5e-7154-9412366b0568-070f2fbc {
  justify-self: auto;
}

@media screen and (max-width: 991px) {
  #w-node-_8f3e0f87-25fa-7791-3b74-5b831fad9759-551f9324 {
    align-self: auto;
  }

  #w-node-deaf4674-fc09-d509-1398-a9b2da835024-9cf1a012,
  #w-node-_2ef6245b-4f8d-0e04-db3b-73dc4f19baf7-9cf1a012 {
    order: -9999;
  }

  #w-node-cfc12bcc-5b55-5e5e-7154-9412366b0574-070f2fbc {
    align-self: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .testimonials-track {
    transition: none;
  }
}

/**************************/
/* Fixing Safari flexbox gap */
/**************************/

.no-flexbox-gap .main-nav-list li:not(:last-child) {
  margin-right: 4.8rem;
}

.no-flexbox-gap .list-item:not(:last-child) {
  margin-bottom: 1.6rem;
}

.no-flexbox-gap .list-icon:not(:last-child) {
  margin-right: 1.6rem;
}

.no-flexbox-gap .delivered-faces {
  margin-right: 1.6rem;
}

.no-flexbox-gap .meal-attribute:not(:last-child) {
  margin-bottom: 2rem;
}

.no-flexbox-gap .meal-icon {
  margin-right: 1.6rem;
}

.no-flexbox-gap .footer-row div:not(:last-child) {
  margin-right: 6.4rem;
}

.no-flexbox-gap .social-links li:not(:last-child) {
  margin-right: 2.4rem;
}

.no-flexbox-gap .footer-nav li:not(:last-child) {
  margin-bottom: 2.4rem;
}

@media (max-width: 75em) {
  .no-flexbox-gap .main-nav-list li:not(:last-child) {
    margin-right: 3.2rem;
  }
}

@media (max-width: 59em) {
  .no-flexbox-gap .main-nav-list li:not(:last-child) {
    margin-right: 0;
    margin-bottom: 4.8rem;
  }
}

/* ---------- Source: index.html | former Webflow inline animation states ---------- */
[data-w-id="a6d28949-e07f-6cd5-ade5-ad23935a4c91"] {
  -webkit-transform: translate3d(0, 200px, 0) scale3d(1, 1, 1) rotateX(0)
    rotateY(0) rotateZ(0) skew(0, 0);
  -moz-transform: translate3d(0, 200px, 0) scale3d(1, 1, 1) rotateX(0)
    rotateY(0) rotateZ(0) skew(0, 0);
  -ms-transform: translate3d(0, 200px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
    rotateZ(0) skew(0, 0);
  transform: translate3d(0, 200px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
    rotateZ(0) skew(0, 0);
  opacity: 0;
}

[data-w-id="a09c6732-0816-9b98-27c6-f5e52e4fb845"] {
  opacity: 0;
  -webkit-transform: translate3d(0, 25px, 0) scale3d(1, 1, 1) rotateX(0)
    rotateY(0) rotateZ(0) skew(0, 0);
  -moz-transform: translate3d(0, 25px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
    rotateZ(0) skew(0, 0);
  -ms-transform: translate3d(0, 25px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
    rotateZ(0) skew(0, 0);
  transform: translate3d(0, 25px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
    rotateZ(0) skew(0, 0);
}

/* ==========================================================================
   CENTRALIZED HTML-LOCAL STYLES
   Migrated from exported HTML <style> blocks.
   ========================================================================== */

/* ---------- Source: agb.html | former <style> block 1 ---------- */
/* =========================================================
     JONATHAN JAEGER
     ALLGEMEINE GESCHÄFTSBEDINGUNGEN — KOMPAKT B2B
     Webflow Embed
     Stand: 20.09.2026
     ========================================================= */
.jj-terms {
  --bg: #f7f3ed;
  --ink: #12120e;
  --muted: #696962;
  --green: #174f46;
  --line: #ddd6cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
  width: 100%;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
.jj-terms,
.jj-terms * {
  box-sizing: border-box;
}
.jjt-container {
  width: min(960px, calc(100% - 64px));
  margin-inline: auto;
}
.jjt-hero {
  padding: 6rem 0 4rem;
}
.jjt-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}
.jjt-title {
  max-width: 820px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.jjt-lead {
  max-width: 720px;
  margin: 1.5rem 0 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--muted);
}
.jjt-version {
  margin-top: 1rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--muted);
}
.jjt-body {
  padding-bottom: 6rem;
}
.jjt-section {
  display: grid;
  grid-template-columns: 175px minmax(0, 1fr);
  gap: 3.25rem;
  padding: 2.35rem 0;
  border-top: 1px solid var(--line);
}
.jjt-section:last-of-type {
  border-bottom: 1px solid var(--line);
}
.jjt-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green);
}
.jjt-content h2 {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.jjt-content p,
.jjt-content li {
  font-size: 0.94rem;
  line-height: 1.7;
}
.jjt-content p {
  margin: 0;
}
.jjt-content p + p {
  margin-top: 0.8rem;
}
.jjt-content ul {
  margin: 0.85rem 0 0;
  padding-left: 1.15rem;
}
.jjt-content li + li {
  margin-top: 0.25rem;
}
.jjt-highlight {
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  border-left: 2px solid rgba(23, 79, 70, 0.3);
  background: rgba(255, 255, 255, 0.28);
}
.jjt-highlight p {
  font-size: 0.84rem;
  line-height: 1.6;
}
.jjt-footer-note {
  margin-top: 1.75rem;
  font-size: 0.76rem;
  line-height: 1.6;
  color: var(--muted);
}
@media screen and (max-width: 767px) {
  .jjt-container {
    width: calc(100% - 32px);
  }
  .jjt-hero {
    padding: 4.5rem 0 3.25rem;
  }
  .jjt-section {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 2rem 0;
  }
}
@media screen and (max-width: 479px) {
  .jjt-container {
    width: calc(100% - 28px);
  }
  .jjt-hero {
    padding: 3.75rem 0 2.75rem;
  }
  .jjt-title {
    font-size: 2.65rem;
  }
  .jjt-lead {
    font-size: 0.96rem;
  }
  .jjt-body {
    padding-bottom: 4rem;
  }
  .jjt-content p,
  .jjt-content li {
    font-size: 0.89rem;
    line-height: 1.68;
  }
}

/* ---------- Source: datenschutz.html | former <style> block 1 ---------- */
/* =========================================================
     JONATHAN JAEGER
     DATENSCHUTZERKLÄRUNG — FINALE KOMPAKTE VERSION
     Webflow Embed
     Stand: 20.09.2026
     ========================================================= */
.jj-privacy {
  --bg: #f7f3ed;
  --ink: #12120e;
  --muted: #696962;
  --green: #174f46;
  --line: #ddd6cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
  width: 100%;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
.jj-privacy,
.jj-privacy * {
  box-sizing: border-box;
}
.jj-privacy a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.jj-privacy a:hover {
  color: var(--green);
}
.jjp-container {
  width: min(960px, calc(100% - 64px));
  margin-inline: auto;
}
.jjp-hero {
  padding: 6rem 0 4rem;
}
.jjp-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}
.jjp-title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.jjp-lead {
  max-width: 700px;
  margin: 1.5rem 0 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--muted);
}
.jjp-version {
  margin-top: 1rem;
  font-size: 0.78rem;
  color: var(--muted);
}
.jjp-body {
  padding-bottom: 6rem;
}
.jjp-section {
  display: grid;
  grid-template-columns: 175px minmax(0, 1fr);
  gap: 3.25rem;
  padding: 2.5rem 0;
  border-top: 1px solid var(--line);
}
.jjp-section:last-of-type {
  border-bottom: 1px solid var(--line);
}
.jjp-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green);
}
.jjp-content h2 {
  margin: 0 0 0.9rem;
  font-family: var(--serif);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.jjp-content p,
.jjp-content li {
  font-size: 0.94rem;
  line-height: 1.72;
}
.jjp-content p {
  margin: 0;
}
.jjp-content p + p {
  margin-top: 0.9rem;
}
.jjp-content ul {
  margin: 0.9rem 0 0;
  padding-left: 1.15rem;
}
.jjp-content li + li {
  margin-top: 0.25rem;
}
.jjp-note {
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  border-left: 2px solid rgba(23, 79, 70, 0.28);
  color: var(--muted);
}
.jjp-note p {
  font-size: 0.82rem;
  line-height: 1.6;
}
.jjp-footer-note {
  margin-top: 1.75rem;
  font-size: 0.76rem;
  line-height: 1.6;
  color: var(--muted);
}
@media screen and (max-width: 767px) {
  .jjp-container {
    width: calc(100% - 32px);
  }
  .jjp-hero {
    padding: 4.5rem 0 3.25rem;
  }
  .jjp-section {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 2.1rem 0;
  }
}
@media screen and (max-width: 479px) {
  .jjp-container {
    width: calc(100% - 28px);
  }
  .jjp-hero {
    padding: 3.75rem 0 2.75rem;
  }
  .jjp-title {
    font-size: 2.65rem;
  }
  .jjp-lead {
    font-size: 0.96rem;
  }
  .jjp-body {
    padding-bottom: 4rem;
  }
  .jjp-content p,
  .jjp-content li {
    font-size: 0.89rem;
    line-height: 1.68;
  }
}

/* ---------- Source: grounding-page.html | former <style> block 1 ---------- */
.jj-grounding {
  --bg: #f7f3ed;
  --bg-soft: #f2ece4;
  --ink: #12120e;
  --muted: #696962;
  --green: #174f46;
  --green-dark: #103d36;
  --line: #ddd6cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
  width: 100%;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
.jj-grounding,
.jj-grounding * {
  box-sizing: border-box;
}
.jj-grounding a {
  color: inherit;
  text-decoration: none;
}
.jjg-container {
  width: min(960px, calc(100% - 64px));
  margin-inline: auto;
}
.jjg-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--green);
}
.jjg-title,
.jjg-section-title {
  margin: 0;
  font-family: var(--serif);
  color: var(--ink);
  text-wrap: balance;
}
.jjg-title {
  max-width: 850px;
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.jjg-section-title {
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.jjg-copy {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.72;
}
.jjg-copy + .jjg-copy {
  margin-top: 0.85rem;
}
.jjg-muted {
  color: var(--muted);
}
.jjg-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding-bottom: 0.15rem;
  border-bottom: 1px solid currentColor;
  color: var(--green) !important;
  font-size: 0.86rem;
  font-weight: 600;
}
.jjg-hero {
  padding: 6rem 0 4.75rem;
}
.jjg-lead {
  max-width: 735px;
  margin: 1.5rem 0 0;
  font-size: 1.06rem;
  line-height: 1.72;
  color: var(--muted);
}
.jjg-updated {
  margin: 1.25rem 0 0;
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--muted);
}
.jjg-body {
  padding-bottom: 6rem;
}
.jjg-section {
  display: grid;
  grid-template-columns: 185px minmax(0, 1fr);
  gap: 3.5rem;
  padding: 2.75rem 0;
  border-top: 1px solid var(--line);
}
.jjg-section:last-child {
  border-bottom: 1px solid var(--line);
}
.jjg-label {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green);
}
.jjg-content > .jjg-copy:first-of-type {
  margin-top: 1rem;
}
.jjg-facts {
  margin-top: 1.3rem;
  border-top: 1px solid var(--line);
}
.jjg-fact {
  display: grid;
  grid-template-columns: minmax(150px, 0.45fr) minmax(0, 1fr);
  gap: 1.5rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--line);
}
.jjg-fact-key {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}
.jjg-fact-value {
  font-size: 0.86rem;
  line-height: 1.55;
}
.jjg-services {
  margin-top: 1.4rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}
.jjg-service {
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.22);
}
.jjg-service-number {
  margin: 0 0 0.6rem;
  font-family: var(--serif);
  font-size: 0.8rem;
  color: var(--green);
}
.jjg-service-title {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: 1.12rem;
  font-weight: 600;
  line-height: 1.25;
}
.jjg-service p {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.58;
  color: var(--muted);
}
.jjg-techline {
  margin-top: 1.2rem;
  font-size: 0.84rem;
  line-height: 1.65;
  color: var(--muted);
}
.jjg-techline strong {
  color: var(--ink);
}
.jjg-industries {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.3rem;
}
.jjg-chip {
  padding: 0.58rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.78rem;
  line-height: 1;
  background: rgba(255, 255, 255, 0.22);
}
.jjg-note {
  margin-top: 1.25rem;
  padding: 1rem 1.1rem;
  border-left: 2px solid rgba(23, 79, 70, 0.35);
  background: rgba(255, 255, 255, 0.26);
}
.jjg-note p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.62;
  color: var(--muted);
}
.jjg-proof {
  margin-top: 1.3rem;
  padding: 1.35rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg-soft);
}
.jjg-proof-meta {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--green);
}
.jjg-proof-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.25;
}
.jjg-proof-copy {
  margin: 0.7rem 0 0;
  max-width: 640px;
  font-size: 0.84rem;
  line-height: 1.65;
  color: var(--muted);
}
.jjg-proof-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: 1rem;
}
.jjg-identity {
  margin-top: 1.2rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line);
}
.jjg-identity p {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.65;
  color: var(--muted);
}
.jjg-identity p + p {
  margin-top: 0.65rem;
}
@media screen and (max-width: 767px) {
  .jjg-container {
    width: calc(100% - 32px);
  }
  .jjg-hero {
    padding: 4.5rem 0 3.5rem;
  }
  .jjg-section {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 2.2rem 0;
  }
  .jjg-services {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 479px) {
  .jjg-container {
    width: calc(100% - 28px);
  }
  .jjg-title {
    font-size: 2.65rem;
  }
  .jjg-lead {
    font-size: 0.98rem;
  }
  .jjg-fact {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
  .jjg-body {
    padding-bottom: 4rem;
  }
}

/* ---------- Source: impressum.html | former <style> block 1 ---------- */
.legal-page {
  --legal-text: #20201f;
  --legal-muted: #6f706c;
  --legal-border: rgba(32, 32, 31, 0.12);
  --legal-card: rgba(255, 255, 255, 0.42);
  color: var(--legal-text);
  width: 100%;
  padding: clamp(7rem, 10vw, 10rem) 1.5rem;
  box-sizing: border-box;
}
.legal-page *,
.legal-page *::before,
.legal-page *::after {
  box-sizing: border-box;
}
.legal-page__inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}
.legal-page__header {
  max-width: 720px;
  margin-bottom: clamp(4rem, 7vw, 7rem);
}
.legal-page__eyebrow {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--legal-muted);
}
.legal-page__title {
  margin: 0;
  font: inherit;
  font-size: clamp(3rem, 7vw, 6rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  font-weight: 500;
}
.legal-page__intro {
  max-width: 560px;
  margin: 1.75rem 0 0;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  line-height: 1.6;
  color: var(--legal-muted);
}
.legal-page__grid {
  border-top: 1px solid var(--legal-border);
}
.legal-section {
  display: grid;
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.8fr);
  gap: clamp(2rem, 6vw, 7rem);
  padding: clamp(2.25rem, 4vw, 3.75rem) 0;
  border-bottom: 1px solid var(--legal-border);
}
.legal-section__title {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--legal-muted);
}
.legal-section__content {
  max-width: 700px;
}
.legal-section__content p {
  margin: 0;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.75;
}
.legal-section__content p + p {
  margin-top: 1.25rem;
}
.legal-section__content strong {
  font-weight: 500;
}
.legal-section__content a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  transition:
    opacity 180ms ease,
    border-color 180ms ease;
}
.legal-section__content a:hover {
  opacity: 0.6;
}
.legal-page__note {
  max-width: 700px;
  margin: 3rem 0 0 auto;
  color: var(--legal-muted);
  font-size: 0.8rem;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .legal-page {
    padding: clamp(6rem, 18vw, 8rem) 1.25rem 5rem;
  }
  .legal-page__header {
    margin-bottom: 3.5rem;
  }
  .legal-page__title {
    font-size: clamp(3rem, 16vw, 4.5rem);
  }
  .legal-section {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding: 2.25rem 0;
  }
  .legal-page__note {
    margin-top: 2.5rem;
  }
}

/* ---------- Source: index.html | former <style> block 1 ---------- */
@media (min-width: 992px) {
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="b5245584-a67b-d7a4-f425-bef7a272b72c"] {
    width: 0%;
    height: 0%;
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="06d454ae-b092-faf0-0a32-40b6bb98aac1"] {
    opacity: 0;
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="259f8f55-e09f-adc4-c9ab-8305ac0df1ff"] {
    opacity: 0;
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="0e11ee6d-cb19-8b12-4a49-e0f05f0cc072"] {
    -webkit-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -moz-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
    -ms-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
    transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="15fbb575-7184-5d83-1e55-2d5f5f172cc5"] {
    -webkit-transform: translate3d(0, 200%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -moz-transform: translate3d(0, 200%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -ms-transform: translate3d(0, 200%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    transform: translate3d(0, 200%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="9a6ec6a3-4f2f-7327-b9fe-2727b65447d6"] {
    -webkit-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -moz-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
    -ms-transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
    transform: translate3d(0, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
  }
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="67e57e50-ddef-a8af-2682-5779c5924401"] {
    -webkit-transform: translate3d(0, 150%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -moz-transform: translate3d(0, 150%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    -ms-transform: translate3d(0, 150%, 0) scale3d(1, 1, 1) rotateX(0)
      rotateY(0) rotateZ(0) skew(0, 0);
    transform: translate3d(0, 150%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0)
      rotateZ(0) skew(0, 0);
  }
}

/* ---------- Source: index.html | former <style> block 2 ---------- */
/* =========================================================
   PROJECT GRID — PREMIUM HOVER
========================================================= */
/* ---------------------------------------------------------
   CARD
--------------------------------------------------------- */
.project-gallery-card {
  position: relative;
  overflow: hidden;
  transition:
    opacity 500ms ease,
    filter 500ms ease;
}
/* ---------------------------------------------------------
   IMAGE WRAPPERS
   Erwartete Struktur:
   project-gallery-card
   └── proj-img-wrapper
       ├── erster Div  = Laptop Wrapper
       └── zweiter Div = Smartphone Wrapper
--------------------------------------------------------- */
/* Laptop Wrapper */
.project-gallery-card .proj-img-wrapper > div:first-child {
  transform-origin: center center;
  will-change: transform;
  transition: transform 650ms cubic-bezier(0.16, 1, 0.3, 1);
}
/* Smartphone Wrapper */
.project-gallery-card .proj-img-wrapper > div:nth-child(2) {
  transform-origin: center center;
  will-change: transform;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
/* Actual images */
.project-gallery-card .proj-img-wrapper img {
  display: block;
  transition:
    filter 500ms ease,
    opacity 500ms ease;
}
/* =========================================================
   DEFAULT HOVER — ALL PROJECTS
========================================================= */
@media (hover: hover) and (pointer: fine) {
  /* -------------------------------------------------------
     Laptop:
     dezenter Zoom + leichte Bewegung nach oben
  ------------------------------------------------------- */
  .project-gallery-card:hover .proj-img-wrapper > div:first-child {
    transform: translateY(-5px) scale(1.03);
  }
  /* -------------------------------------------------------
     Smartphone:
     etwas stärker für mehr Tiefenwirkung
  ------------------------------------------------------- */
  .project-gallery-card:hover .proj-img-wrapper > div:nth-child(2) {
    transform: translate(5px, -8px) scale(1.06);
  }
  /* =======================================================
     OTHER CARDS RECEDE
  ======================================================= */
  /*
   * Wenn irgendeine Card gehovert wird,
   * treten die anderen drei leicht zurück.
  */
  .project-ov-grid:has(.project-gallery-card:hover)
    .project-gallery-card:not(:hover) {
    opacity: 0.84;
  }
  /*
   * Bilder nur leicht entsättigen.
   */
  .project-ov-grid:has(.project-gallery-card:hover)
    .project-gallery-card:not(:hover)
    .proj-img-wrapper
    img {
    filter: grayscale(0.08) saturate(0.78);
  }
  /*
   * Hovered Card bleibt voll präsent.
  */
  .project-gallery-card:hover {
    opacity: 1;
  }
  .project-gallery-card:hover .proj-img-wrapper img {
    filter: grayscale(0) saturate(1);
  }
}
/* =========================================================
   GEPP — SLIGHTLY MORE PRESENCE
========================================================= */
@media (hover: hover) and (pointer: fine) {
  /*
   * GEPP Laptop etwas stärker als die anderen.
   */
  .project-gallery-card.is-gepp:hover .proj-img-wrapper > div:first-child {
    transform: translateY(-5px) scale(1.035);
  }
  /*
   * GEPP Smartphone ebenfalls minimal stärker.
   */
  .project-gallery-card.is-gepp:hover .proj-img-wrapper > div:nth-child(2) {
    transform: translate(5px, -8px) scale(1.065);
  }
}
/* =========================================================
   KRÖßWANG
========================================================= */
@media (hover: hover) and (pointer: fine) {
  .project-gallery-card.is-kroesswang:hover
    .proj-img-wrapper
    > div:first-child {
    transform: translateY(-4px) scale(1.03);
  }
  .project-gallery-card.is-kroesswang:hover
    .proj-img-wrapper
    > div:nth-child(2) {
    transform: translate(5px, -7px) scale(1.055);
  }
}
/* =========================================================
   VERLEIBLICHT
========================================================= */
@media (hover: hover) and (pointer: fine) {
  .project-gallery-card.is-verleiblicht:hover
    .proj-img-wrapper
    > div:first-child {
    transform: translateY(-4px) scale(1.028);
  }
  .project-gallery-card.is-verleiblicht:hover
    .proj-img-wrapper
    > div:nth-child(2) {
    transform: translate(4px, -7px) scale(1.055);
  }
}
/* =========================================================
   BEANDEPENDENT
========================================================= */
@media (hover: hover) and (pointer: fine) {
  .project-gallery-card.is-beandependent:hover
    .proj-img-wrapper
    > div:first-child {
    transform: translateY(-4px) scale(1.03);
  }
  .project-gallery-card.is-beandependent:hover
    .proj-img-wrapper
    > div:nth-child(2) {
    transform: translate(5px, -7px) scale(1.055);
  }
}
/* =========================================================
   OPTIONAL ARROW MICRO MOTION
========================================================= */
.project-card-arrow {
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) and (pointer: fine) {
  .project-gallery-card:hover .project-card-arrow {
    transform: translate(3px, -3px);
  }
}
/* =========================================================
   OPTIONAL TEXT EMPHASIS
========================================================= */
.project-gallery-card .project-card-content {
  transition: opacity 450ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .project-ov-grid:has(.project-gallery-card:hover)
    .project-gallery-card:not(:hover)
    .project-card-content {
    opacity: 0.88;
  }
  .project-gallery-card:hover .project-card-content {
    opacity: 1;
  }
}
/* =========================================================
   ACCESSIBILITY
========================================================= */
@media (prefers-reduced-motion: reduce) {
  .project-gallery-card,
  .project-gallery-card *,
  .project-gallery-card .proj-img-wrapper > div {
    transition: none !important;
  }
  .project-gallery-card:hover .proj-img-wrapper > div {
    transform: none !important;
  }
}

/* ---------- Source: kontakt.html | former <style> block 1 ---------- */
/* =========================================================
   PROJECT CONTACT FORM
   FINAL VERSION
   ========================================================= */
.project-form {
  --pf-text: #12120e;
  --pf-green: #0f5548;
  --pf-green-dark: #0c473d;
  --pf-muted: rgba(18, 18, 14, 0.54);
  --pf-placeholder: rgba(18, 18, 14, 0.38);
  --pf-border: rgba(18, 18, 14, 0.13);
  --pf-border-hover: rgba(15, 85, 72, 0.35);
  --pf-border-active: rgba(15, 85, 72, 0.72);
  --pf-field-bg: rgba(255, 255, 255, 0.34);
  --pf-field-focus-bg: rgba(255, 255, 255, 0.48);
  --pf-active-bg: rgba(15, 85, 72, 0.06);
  --pf-radius: 0.65rem;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  font-family: "Inter", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
  color: var(--pf-text);
}
/* =========================================================
   RESET
   ========================================================= */
.project-form *,
.project-form *::before,
.project-form *::after {
  box-sizing: border-box;
}
.project-form fieldset {
  min-width: 0;
  padding: 0;
  border: 0;
}
/* =========================================================
   LABELS + LEGENDS
   ========================================================= */
.project-form__label,
.project-form legend {
  display: block;
  margin: 0 0 0.75rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
  color: var(--pf-text);
}
.project-form legend {
  width: 100%;
  margin-bottom: 1rem;
}
.project-form__required {
  color: #9b6654;
}
/* =========================================================
   GROUP SPACING
   ========================================================= */
/*
  Standard Fieldset-Abstand
*/
.project-form fieldset.project-form__group {
  margin: 0 0 2.25rem;
}
/*
  Projektart bekommt bewusst mehr Abstand
  zu Name + Unternehmen.
*/
.project-form fieldset.project-form__group--project-type {
  margin-bottom: 1.8rem;
}
/*
  Timeline bekommt bewusst mehr Abstand
  zum Submit-Button.
*/
.project-form fieldset.project-form__group--timeline {
  margin-bottom: 2.5rem;
}
/*
  Einzelne Textfelder
*/
.project-form__field {
  margin-bottom: 1.8rem;
}
/* =========================================================
   PROJECT TYPE
   ========================================================= */
.project-form__project-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
}
/*
  Echte Radio Inputs bleiben technisch erhalten,
  werden aber visuell ausgeblendet.
*/
.project-form__radio {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.project-form__project-card {
  width: 100%;
  /*
    Bewusst kompakter als vorher.
  */
  min-height: 6.7rem;
  padding: 0.9rem 0.7rem;
  border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius);
  background: rgba(255, 255, 255, 0.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
  cursor: pointer;
  transition:
    border-color 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}
.project-form__project-card:hover {
  border-color: var(--pf-border-hover);
  background: rgba(255, 255, 255, 0.4);
}
.project-form__radio:checked + .project-form__project-card {
  border-color: var(--pf-border-active);
  background: var(--pf-active-bg);
  box-shadow:
    inset 0 0 0 1px rgba(15, 85, 72, 0.04),
    0 4px 16px rgba(15, 85, 72, 0.035);
}
.project-form__radio:focus-visible + .project-form__project-card {
  outline: 2px solid var(--pf-green);
  outline-offset: 3px;
}
.project-form__project-title {
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.92rem;
  line-height: 1.35;
  font-weight: 600;
  color: var(--pf-text);
}
/* =========================================================
   NAME + COMPANY ROW
   ========================================================= */
.project-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
/* =========================================================
   INPUTS + TEXTAREA
   ========================================================= */
.project-form__input,
.project-form__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--pf-border);
  border-radius: 0.55rem;
  background: var(--pf-field-bg);
  font-family: "Inter", Arial, sans-serif;
  /*
    Minimal kleiner als der normale
    Website-Fließtext.
  */
  font-size: 0.95rem;
  line-height: 1.6;
  font-weight: 400;
  color: var(--pf-text);
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease;
}
/*
  Text Inputs etwas kompakter.
*/
.project-form__input {
  min-height: 3.4rem;
  padding: 0.7rem 1rem;
}
/*
  Projektbeschreibung bewusst niedriger.
  Die 2.000 Zeichen bleiben trotzdem erhalten.
*/
.project-form__textarea {
  min-height: 10.25rem;
  padding: 0.9rem 1rem 2.4rem;
  resize: none;
}
.project-form__input::placeholder,
.project-form__textarea::placeholder {
  color: var(--pf-placeholder);
  font-size: 0.94rem;
  opacity: 1;
}
.project-form__input:hover,
.project-form__textarea:hover {
  border-color: rgba(18, 18, 14, 0.19);
}
.project-form__input:focus,
.project-form__textarea:focus {
  border-color: rgba(15, 85, 72, 0.58);
  background: var(--pf-field-focus-bg);
  box-shadow: 0 0 0 3px rgba(15, 85, 72, 0.055);
}
/* =========================================================
   TEXTAREA COUNTER
   ========================================================= */
.project-form__textarea-wrap {
  position: relative;
}
.project-form__counter {
  position: absolute;
  right: 1rem;
  bottom: 0.7rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.75rem;
  line-height: 1.4;
  font-weight: 400;
  color: var(--pf-muted);
  pointer-events: none;
}
/* =========================================================
   CONTEXT HELP + INLINE VALIDATION
   ========================================================= */
.project-form__guidance {
  margin: 0.65rem 0 0;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.78rem;
  line-height: 1.55;
  font-weight: 400;
  color: #12120e9a;
  padding-left: 1rem;
}

.project-form__guidance::before {
  content: "* ";
}

.project-form__error {
  display: none;
  margin: 0.55rem 0 0;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.78rem;
  line-height: 1.5;
  font-weight: 400;
  color: #864c40;
}
.project-form__error.is-visible {
  display: block;
}
.project-form__group--project-type > .project-form__error {
  margin-top: 0.75rem;
}
.project-form__field.has-error .project-form__input,
.project-form__field.has-error .project-form__textarea {
  border-color: rgba(134, 76, 64, 0.72);
  background: rgba(142, 70, 54, 0.025);
  box-shadow: 0 0 0 3px rgba(142, 70, 54, 0.045);
}
.project-form__group--project-type.has-error
  .project-form__radio:not(:checked)
  + .project-form__project-card {
  border-color: rgba(134, 76, 64, 0.34);
}
/* =========================================================
   TIMELINE
   ========================================================= */
.project-form__timeline-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.project-form__timeline-card {
  width: 100%;
  min-height: 5rem;
  padding: 0.75rem 0.7rem;
  border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius);
  background: rgba(255, 255, 255, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  cursor: pointer;
  text-align: left;
  transition:
    border-color 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease;
}
.project-form__timeline-card:hover {
  border-color: var(--pf-border-hover);
  background: rgba(255, 255, 255, 0.4);
}
.project-form__radio:checked + .project-form__timeline-card {
  border-color: var(--pf-border-active);
  background: var(--pf-active-bg);
  box-shadow: inset 0 0 0 1px rgba(15, 85, 72, 0.04);
}
.project-form__radio:focus-visible + .project-form__timeline-card {
  outline: 2px solid var(--pf-green);
  outline-offset: 3px;
}
.project-form__timeline-icon {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
  flex: 0 0 auto;
}
.project-form__timeline-text {
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.35;
  font-weight: 600;
  color: var(--pf-text);
}
/* =========================================================
   SUBMIT BUTTON
   ========================================================= */
.project-form__submit {
  width: 100%;
  min-height: 3.65rem;
  margin: 0;
  padding: 0.85rem 1.25rem;
  border: 0;
  border-radius: 0.55rem;
  background: var(--pf-green);
  color: #ffffff;
  font-family: "Inter", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 400;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  transition:
    background-color 200ms ease,
    opacity 200ms ease,
    transform 200ms ease;
}
.project-form__submit:hover {
  background: var(--pf-green-dark);
}
.project-form__submit:active {
  transform: translateY(1px);
}
.project-form__submit:focus-visible {
  outline: 2px solid var(--pf-green);
  outline-offset: 3px;
}
.project-form__submit:disabled {
  opacity: 0.65;
  cursor: wait;
}
.project-form__submit-arrow {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
  flex: 0 0 auto;
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}
.project-form__submit:hover .project-form__submit-arrow {
  transform: translateX(4px);
}
/* =========================================================
   PRIVACY
   ========================================================= */
.project-form__privacy {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  color: rgba(18, 18, 14, 0.58);
}
.project-form__privacy svg {
  width: 0.9rem;
  height: 0.9rem;
  flex: 0 0 auto;
}
/* =========================================================
   STATUS MESSAGES
   ========================================================= */
.project-form__status {
  display: none;
  margin-top: 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 0.55rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.6;
}
.project-form__status.is-success {
  display: block;
  background: rgba(15, 85, 72, 0.075);
  color: var(--pf-green);
}
.project-form__status.is-error {
  display: block;
  background: rgba(142, 70, 54, 0.075);
  color: #864c40;
}
/* =========================================================
   SUCCESS STATE
   ========================================================= */
.project-form__success[hidden] {
  display: none;
}
.project-form.is-submitted > :not(.project-form__success) {
  display: none !important;
}
.project-form__success {
  padding: 1.4rem 0 1rem;
  border-top: 1px solid var(--pf-border);
  outline: none;
}
.project-form__success-kicker {
  margin: 0 0 0.55rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.74rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pf-green);
}
.project-form__success-title {
  margin: 0 0 0.6rem;
  font-family: "Inter", Arial, sans-serif;
  font-size: 1.2rem;
  line-height: 1.4;
  font-weight: 600;
  color: var(--pf-text);
}
.project-form__success-text {
  max-width: 42rem;
  margin: 0;
  font-family: "Inter", Arial, sans-serif;
  font-size: 0.92rem;
  line-height: 1.65;
  font-weight: 400;
  color: var(--pf-muted);
}
.project-form__submit.is-loading .project-form__submit-arrow {
  opacity: 0.45;
  transform: none;
}
/* =========================================================
   HONEYPOT
   ========================================================= */
.project-form__honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
/* =========================================================
   TABLET
   ========================================================= */
@media (max-width: 991px) {
  .project-form__project-card {
    min-height: 6.5rem;
  }
}
/* =========================================================
   MOBILE
   ========================================================= */
@media (max-width: 767px) {
  .project-form fieldset.project-form__group--project-type {
    margin-bottom: 2rem;
  }
  .project-form fieldset.project-form__group--timeline {
    margin-bottom: 2.2rem;
  }
  .project-form__project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .project-form__project-card {
    min-height: 6.2rem;
    padding: 0.75rem 0.5rem;
  }
  .project-form__row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .project-form__field {
    margin-bottom: 1.55rem;
  }
  /*
    Timeline bewusst weiterhin
    dreispaltig.
  */
  .project-form__timeline-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .project-form__timeline-card {
    min-height: 5.3rem;
    padding: 0.65rem 0.3rem;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    text-align: center;
  }
  .project-form__timeline-text {
    font-size: 0.8rem;
    line-height: 1.3;
  }
  .project-form__textarea {
    min-height: 9.5rem;
  }
}
/* =========================================================
   SMALL MOBILE
   ========================================================= */
@media (max-width: 479px) {
  .project-form__project-card {
    min-height: 5.9rem;
    padding: 0.7rem 0.45rem;
  }
  .project-form__project-title {
    font-size: 0.88rem;
  }
  .project-form__input {
    min-height: 3.3rem;
  }
  .project-form__textarea {
    min-height: 9rem;
  }
  .project-form__timeline-card {
    min-height: 5.1rem;
  }
  .project-form__timeline-icon {
    width: 1.05rem;
    height: 1.05rem;
  }
  .project-form__timeline-text {
    font-size: 0.76rem;
  }
}
/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  .project-form *,
  .project-form *::before,
  .project-form *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* ---------- Source: leistungen.html | former <style> block 1 ---------- */
.jj-offers {
  --bg: #f7f3ed;
  --card: #fbf9f6;
  --ink: #12120e;
  --muted: #696962;
  --green: #174f46;
  --line: #ddd6cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
  width: 100%;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
.jj-offers,
.jj-offers * {
  box-sizing: border-box;
}
.jj-offers a {
  color: inherit;
  text-decoration: none;
}
.jjo-container {
  width: 90%;
  max-width: 1440px;
  margin-inline: auto;
}
/* HEADER */
.jjo-section {
  padding: 5.5rem 0 3rem;
}
.jjo-eyebrow {
  margin: 0 0 0.7rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}
.jjo-title {
  max-width: 820px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.7rem, 5vw, 4.2rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.jjo-intro {
  max-width: 790px;
  margin: 0.9rem 0 0;
  font-size: 1rem;
  line-height: 1.65;
}
/* ALWAYS INCLUDED */
.jjo-included {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  margin-top: 2rem;
  padding: 0.95rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.jjo-included-label {
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green);
}
.jjo-included-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.3rem;
}
.jjo-included-item {
  position: relative;
  padding-left: 0.75rem;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.45;
}
.jjo-included-item::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--green);
}
/* CARDS */
.jjo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
}
.jjo-card {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1.55rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.44);
}
.jjo-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}
.jjo-icon {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eee9e1;
  color: var(--green);
}
.jjo-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jjo-name {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1.15;
}
.jjo-subtitle {
  margin-top: 0.22rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}
.jjo-checks {
  display: grid;
  gap: 0.68rem;
  margin: 1.65rem 0 1.5rem;
  padding: 0;
  list-style: none;
}
.jjo-checks li {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 0.55rem;
  font-size: 0.82rem;
  line-height: 1.45;
}
.jjo-check {
  width: 14px;
  height: 14px;
  display: grid;
  place-items: center;
  margin-top: 0.12rem;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-size: 0.52rem;
  line-height: 1;
}
/* PRICE */
.jjo-bottom {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.jjo-price-label {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}
.jjo-price {
  margin-bottom: 1rem;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.3;
  color: #173b37;
}
.jjo-btn {
  width: 100%;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--green);
  border-radius: 8px;
  color: var(--green) !important;
  font-size: 0.82rem;
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}
.jjo-btn:hover {
  background: var(--green);
  color: #fff !important;
  transform: translateY(-1px);
}
.jjo-btn span {
  transition: transform 0.2s ease;
}
.jjo-btn:hover span {
  transform: translateX(2px);
}
/* AFTERCARE */
.jjo-aftercare {
  display: flex;
  align-items: start;
  gap: 0.8rem;
  max-width: 900px;
  margin: 0;
  padding: 0.85rem 0;
  /* border-top: 1px solid var(--line); */
}
.jjo-aftercare-icon {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eee9e1;
  color: var(--green);
}
.jjo-aftercare-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jjo-aftercare p {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--muted);
}
.jjo-aftercare strong {
  color: var(--ink);
}
/* RESPONSIVE */
@media screen and (max-width: 991px) {
  .jjo-container {
    width: 95%;
  }
  .jjo-grid {
    grid-template-columns: 1fr;
  }
  .jjo-included {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }
}
@media screen and (max-width: 767px) {
  .jjo-section {
    padding: 4.25rem 0 4rem;
  }
  .jjo-included-items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 1rem;
  }
  .jjo-grid {
    margin-top: 1.75rem;
  }
}
@media screen and (max-width: 479px) {
  .jjo-title {
    font-size: 2.4rem;
  }
  .jjo-intro {
    font-size: 0.95rem;
  }
  .jjo-included-items {
    grid-template-columns: 1fr;
  }
  .jjo-card {
    padding: 1.35rem;
  }
  .jjo-name {
    font-size: 1.4rem;
  }
  .jjo-aftercare {
    align-items: flex-start;
  }
}
@media (prefers-reduced-motion: reduce) {
  .jjo-btn,
  .jjo-btn span {
    transition: none;
  }
}

/* ---------- Source: leistungen.html | former <style> block 2 ---------- */
@media screen and (max-width: 479px) {
  .jjo-included-label {
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3;
  }
  .jjo-included-items {
    gap: 0.8rem;
  }
  .jjo-included-item {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.45;
    padding-left: 1rem;
  }
  .jjo-included-item::before {
    width: 5px;
    height: 5px;
    top: 0.58em;
  }
}

/* ---------- Source: leistungen.html | former <style> block 3 ---------- */
/* =========================================================
   01 — VARIABLES / BASE
   ========================================================= */
.jj-services {
  --jj-bg: #f7f3ed;
  --jj-bg-light: #fbf9f6;
  --jj-bg-soft: #f1ebe3;
  --jj-ink: #12120e;
  --jj-muted: #696962;
  --jj-green: #174f46;
  --jj-green-dark: #103d36;
  --jj-price: #173b37;
  --jj-line: #ddd6cc;
  --jj-line-active: #bdb5aa;
  --jj-card: #fbf9f6;
  --jj-serif: "Playfair Display", Georgia, serif;
  --jj-sans: "Inter", Arial, sans-serif;
  width: 100%;
  overflow: hidden;
  font-family: var(--jj-sans);
  color: var(--jj-ink);
  background: var(--jj-bg);
}
.jj-services,
.jj-services * {
  box-sizing: border-box;
}
.jj-services a {
  color: inherit;
  text-decoration: none;
}
.jj-services button,
.jj-services input,
.jj-services textarea {
  font: inherit;
}
.jj-container {
  width: 90%;
  max-width: 1440px;
  margin-inline: auto;
}
/* =========================================================
   02 — TYPOGRAPHY
   ========================================================= */
.jj-services h1,
.jj-title {
  margin: 0;
  font-family: var(--jj-serif);
  font-size: 3.25rem;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--jj-ink);
  text-wrap: balance;
}
.jj-services h2,
.jj-section-title {
  margin: 0 0 0.5rem;
  font-family: var(--jj-serif);
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--jj-ink);
  text-wrap: balance;
}
.jj-services h3 {
  margin: 0;
  font-family: var(--jj-serif);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--jj-ink);
  text-wrap: balance;
}
.jj-services p {
  margin: 0;
  font-family: var(--jj-sans);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--jj-ink);
}
.jj-eyebrow {
  margin: 0 0 1rem;
  font-family: var(--jj-sans);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--jj-green);
}
.jj-section-intro {
  max-width: 760px;
  margin-top: 0;
}
/* =========================================================
   03 — BUTTONS / LINKS
   ========================================================= */
/* .jj-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  padding: 0.75rem 1.35rem;
  border: 1px solid var(--jj-green);
  border-radius: 8px;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
} */

.jj-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  padding: 0.75rem 1.35rem;
  border: 1px solid var(--jj-green);
  border-radius: 8px;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease;
}

.jj-btn > span,
.jj-text-link > span {
  display: inline-block;
  transition: transform 180ms ease;
}

.jj-btn:hover > span,
.jj-text-link:hover > span {
  transform: translateX(1px);
}
.jj-btn:focus-visible,
.jj-text-link:focus-visible,
.jj-faq-item summary:focus-visible {
  outline: 2px solid var(--jj-green);
  outline-offset: 3px;
}
.jj-btn-primary {
  background: var(--jj-green);
  color: #fff !important;
}
.jj-btn-primary:hover {
  background: var(--jj-green-dark);
}
.jj-btn-outline {
  background: transparent;
  color: var(--jj-green) !important;
}
.jj-btn-outline:hover {
  background: var(--jj-green);
  color: #fff !important;
}
.jj-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid currentColor;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--jj-green) !important;
}
/* =========================================================
   04 — HERO
   ========================================================= */
.jj-hero {
  padding: 6rem 0 5rem;
  background: var(--jj-bg);
}
.jj-hero-inner {
  max-width: 920px;
}
.jj-hero .jj-title {
  max-width: 780px;
}
.jj-hero-lead {
  max-width: 760px;
  margin-top: 1.75rem !important;
}
.jj-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin-top: 2rem;
}
.jj-hero-actions .jj-text-link {
  margin-left: 20px;
}
.jj-hero-note {
  max-width: 690px;
  margin-top: 1.15rem !important;
  font-size: 0.9375rem !important;
  font-weight: 500;
  line-height: 1.5 !important;
  color: var(--jj-ink) !important;
}
/* =========================================================
   HERO — FINAL RESPONSIVE LAYOUT
   ---------------------------------------------------------
   >= 1200px:
   Proof-Banner in Hero-Unterkante integriert

   < 1200px:
   Proof-Banner als eigene 2x2 Card unter dem Hero

   Zusätzlich:
   - garantierte Safe-Zone zwischen CTA und Banner
   - kompaktere vertikale Hero-Abstände
   - Tablet-CTA ohne doppelten Webflow-Hovertext
========================================================= */

/* =========================================================
   1. BASE — TABLET / MOBILE / SMALL DESKTOP
   Proof-Bereich liegt normal unter dem Hero
========================================================= */

.hero-proof-strip {
  position: relative;
  z-index: 6;

  width: 100%;
  height: auto;

  padding: 0;

  background: #f7f3ee;
}

.hero-proof-container {
  width: 90%;
  max-width: 1440px;

  margin-left: auto;
  margin-right: auto;

  padding-top: 1rem;
  padding-bottom: 1rem;

  align-items: stretch;

  transform: none;
}

.hero-proof-strip .quali-banner {
  width: 100%;
  max-width: none;

  margin: 0;
  padding: 0.45rem;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  gap: 0;

  background: linear-gradient(
    180deg,
    rgba(247, 240, 235, 0.95) 0%,
    rgba(231, 221, 212, 0.92) 100%
  );

  border: 1px solid rgba(50, 40, 34, 0.07);
  border-radius: 18px;

  box-shadow: 0 8px 24px rgba(38, 31, 26, 0.035);

  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.hero-proof-strip .divider-hero-info {
  display: none;
}

.hero-proof-strip .banner-box {
  width: 100%;
  min-width: 0;

  justify-content: flex-start;

  gap: 0.85rem;

  padding: 0.9rem 1rem;
}

/* dezente innere Trennung des 2x2 Grids */

.hero-proof-strip .banner-box:nth-child(1),
.hero-proof-strip .banner-box:nth-child(3) {
  border-bottom: 1px solid rgba(90, 90, 87, 0.12);
}

.hero-proof-strip .banner-box:nth-child(1),
.hero-proof-strip .banner-box:nth-child(5) {
  border-right: 1px solid rgba(90, 90, 87, 0.12);
}

/* =========================================================
   2A. SMALL DESKTOP
   992px – 1199px
   Premium-Card statt 2x2-Template-Grid
========================================================= */

@media screen and (min-width: 992px) and (max-width: 1199px) {
  /* Hero etwas kontrollierter, damit CTA + Banner sauber koexistieren */
  .section-hero-wrapper {
    box-sizing: border-box;
    padding-top: clamp(4.5rem, 6svh, 5rem);
    padding-bottom: 6.25rem;
  }

  .div-block-6 {
    box-sizing: border-box;
    justify-content: center;
  }

  .div-block-105 {
    gap: 2rem;
    padding-bottom: 0;
  }

  .div-block-9 {
    gap: 2rem;
    padding-top: 0;
  }

  .div-block-8 {
    gap: 1.25rem;
    padding-top: 0.35rem;
  }

  /* Banner soll KEINE eigene sichtbare Section mehr haben */
  .hero-proof-strip {
    height: 0;
    background: transparent;
    overflow: visible;
  }

  .hero-proof-container {
    width: 90%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;

    justify-content: flex-start;
    align-items: flex-end;

    transform: translateY(-100%);
  }

  /* Small-Desktop: horizontaler Premium-Strip, kein 2x2-Grid */
  .hero-proof-strip .quali-banner {
    width: auto;
    max-width: 100%;

    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1.35rem;

    margin: 0;
    padding: 1.05rem 0;

    background-color: transparent;
    background-image: linear-gradient(
      360deg,
      rgba(231, 221, 212, 0.92) 0%,
      rgba(231, 221, 212, 0.28) 100%
    );

    border: 0;
    border-radius: 18px 18px 0 0;
    box-shadow: none;
  }

  .hero-proof-strip .banner-box {
    width: auto;
    min-width: max-content;

    flex: 0 0 auto;

    gap: 0.8rem;
    padding: 0;

    border: 0 !important;
  }

  /* WICHTIG: alle geerbten Grid-Linien deaktivieren */
  .hero-proof-strip .banner-box:nth-child(1),
  .hero-proof-strip .banner-box:nth-child(3),
  .hero-proof-strip .banner-box:nth-child(5) {
    border: 0 !important;
  }

  .hero-proof-strip .divider-hero-info {
    display: block;
    flex: 0 0 auto;
    width: 1px;
    height: 2.35rem;
    background-color: rgba(90, 90, 87, 0.14);
  }

  .hero-proof-strip .div-icon-hero {
    width: 1.6rem;
    height: 1.6rem;
  }

  .hero-proof-strip .p-caption {
    font-size: 0.92rem;
    line-height: 1.42;
  }
}

/* =========================================================
   TABLET — EDITORIAL INFO GRID
   768px – 991px
   Kein Card-Look, gleiche Hintergrundfläche
========================================================= */

@media screen and (min-width: 768px) and (max-width: 991px) {
  .hero-proof-strip {
    background: #f7f3ee;
  }

  .hero-proof-container {
    width: 90%;
    max-width: 1440px;

    padding-top: 0.75rem;
    padding-bottom: 0.65rem;
  }

  .hero-proof-strip .quali-banner {
    width: 100%;
    max-width: none;

    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: 0;

    margin: 0;
    padding: 0;

    /* keine Card mehr */
    background: transparent;
    background-image: none;

    border: 0;
    border-radius: 0;
    box-shadow: none;

    overflow: visible;
  }

  .hero-proof-strip .banner-box {
    width: 100%;
    min-width: 0;

    justify-content: flex-start;
    align-items: center;

    gap: 0.85rem;

    /* mehr horizontal, weniger vertikal */
    padding: 0.5rem 1.25rem;

    border: 0;
  }

  .hero-proof-strip .divider-hero-info {
    display: none;
  }

  .hero-proof-strip .div-icon-hero {
    width: 1.6rem;
    height: 1.6rem;

    opacity: 0.68;
  }

  .hero-proof-strip .p-caption {
    color: rgba(18, 18, 14, 0.62);

    font-size: 0.92rem;
    line-height: 1.42;
  }

  .hero-proof-strip .p-caption strong {
    color: #12120e;

    font-weight: 600;
  }
}

@media screen and (max-width: 991px) {
  .hero-proof-strip {
    background: #f7f3ee;
  }

  .hero-proof-strip .quali-banner {
    background: transparent;
    background-image: none;

    border: 0;
    border-radius: 0;

    box-shadow: none;
  }
}

/* =========================================================
   3. LARGE DESKTOP
   Ab 1200px wird der Banner Teil der Hero-Komposition
========================================================= */

@media screen and (min-width: 1200px) {
  /* Hero darf auf flachen Desktop-Fenstern
     nicht beliebig zusammengedrückt werden */

  .section-2 {
    min-height: 700px;
    border-bottom: 0;
  }

  .div-block-39.laptop-view {
    min-height: 700px;
  }

  /* -----------------------------------------
     VERTIKALE HERO-GEOMETRIE

     Oben kontrollierter Abstand.
     Unten echte Safe-Zone für den Banner.
  ----------------------------------------- */

  /* -----------------------------------------
   HERO SPACING — PREMIUM / RELAXED
----------------------------------------- */

  .section-hero-wrapper {
    box-sizing: border-box;

    /* Original: 6rem */
    padding-top: 5.5rem;

    /* Safe-Zone für den integrierten Proof-Banner */
    padding-bottom: 7rem;
  }

  .div-block-6 {
    box-sizing: border-box;
    justify-content: center;
  }

  .div-block-105 {
    /* Original: 3rem */
    gap: 2.75rem;

    padding-bottom: 0;
  }

  .div-block-9 {
    /* Original:
     gap: 3rem;
     padding-top: 5rem;
  */

    gap: 2.5rem;
    padding-top: 0rem;
  }

  .div-block-8 {
    gap: 1.75rem;

    /* Original: 1rem */
    padding-top: 0.75rem;
  }

  /* -----------------------------------------
     PROOF STRIP ERZEUGT KEINE EIGENE HÖHE

     Dadurch:
     Hero endet -> nächste Section beginnt.
     Der Banner liegt visuell innerhalb des Hero.
  ----------------------------------------- */

  .hero-proof-strip {
    height: 0;

    background: transparent;

    overflow: visible;
  }

  .hero-proof-container {
    width: 90%;
    max-width: 1440px;

    margin-left: auto;
    margin-right: auto;

    padding: 0;

    justify-content: flex-start;
    align-items: flex-end;

    transform: translateY(-100%);
  }

  /* -----------------------------------------
     DESKTOP PROOF BANNER
  ----------------------------------------- */

  .hero-proof-strip .quali-banner {
    width: auto;
    max-width: 100%;

    display: flex;

    justify-content: flex-start;
    align-items: center;

    gap: 2rem;

    margin: 0;

    padding: 1.45rem 1rem;

    background-color: transparent;

    background-image: linear-gradient(
      360deg,
      rgba(231, 221, 212, 0.96) 0%,
      rgba(231, 221, 212, 0.38) 100%
    );

    border: 0;

    border-radius: 22px 22px 0 0;

    box-shadow: none;
  }

  .hero-proof-strip .banner-box {
    width: auto;
    min-height: 0;

    flex: 0 0 auto;

    gap: 1rem;

    padding: 0;

    border: 0;
  }

  .hero-proof-strip .divider-hero-info {
    display: block;

    flex: 0 0 auto;

    width: 1px;
    height: 3rem;

    background-color: rgba(90, 90, 87, 0.2);
  }

  /* Clean-up: keine geerbten Grid-/Template-Borders im großen View */
  .hero-proof-strip .banner-box:nth-child(1),
  .hero-proof-strip .banner-box:nth-child(3),
  .hero-proof-strip .banner-box:nth-child(5) {
    border: 0 !important;
  }

  .hero-proof-strip .quali-banner {
    border-radius: 20px 20px 0 0;
    box-shadow: none;
    outline: 0;
  }

  .hero-proof-strip .divider-hero-info {
    background-color: rgba(90, 90, 87, 0.14);
  }
}

/* =========================================================
   4. FLACHE DESKTOP-FENSTER

   Hier liegt die eigentliche Gefahr einer CTA/Banner-
   Kollision. Deshalb reagieren wir auf die HÖHE,
   nicht auf einen weiteren Width-Breakpoint.
========================================================= */

@media screen and (min-width: 1200px) and (max-height: 820px) {
  .section-hero-wrapper {
    padding-top: 4.75rem;
    padding-bottom: 6.75rem;
  }

  .div-block-105 {
    gap: 2.25rem;
  }

  .div-block-9 {
    gap: 2rem;
    padding-top: 2.5rem;
  }

  .div-block-8 {
    gap: 1.5rem;
    padding-top: 0.5rem;
  }
}

/* =========================================================
   5. TABLET / MOBILE HERO CTA FIX

   Webflow hat hier zwei Textzustände für denselben CTA:
   - Passt Ihre Website noch zu Ihnen?
   - Website-Selbstcheck starten

   Auf Touch / Tablet brauchen wir diesen Hover-Wechsel
   nicht. Nur der normale Zustand bleibt sichtbar.
========================================================= */
/* =========================================================
   5. TABLET / MOBILE HERO CTA FIX
========================================================= */

/* ---------------------------------------------------------
   TABLET
   <= 991px

   Zweiter CTA bleibt hier statisch.
--------------------------------------------------------- */

@media screen and (max-width: 991px) {
  .div-block-8 {
    flex-wrap: wrap;

    column-gap: 1.25rem;
    row-gap: 1rem;

    align-items: flex-start;
  }

  .cta-btn.lower-prio-cta.cta-btn-lower-prio-hero {
    width: auto;

    flex-flow: row;

    align-items: center;
    justify-content: flex-start;

    overflow: visible;
  }

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute {
    display: none !important;
  }

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative {
    position: relative !important;

    opacity: 1 !important;

    transform: none !important;

    gap: 0.65rem;

    align-items: center;
  }

  .cta-btn-lower-prio-hero .p-cta-btn.lower-prio-p {
    text-underline-offset: 6px;
  }
}

/* ---------------------------------------------------------
   MOBILE
   <= 767px
--------------------------------------------------------- */

@media screen and (max-width: 767px) {
  /* =======================================================
     1. "PROJEKTE ANSEHEN" AUF MOBILE AUSBLENDEN
     ======================================================= */

  .cta-hover-btn-1 {
    display: none !important;
  }
  /* Mobile Proof Grid — keine Tabellenlinien */
  .hero-proof-strip .banner-box {
    border: 0 !important;
  }

  .hero-proof-strip .quali-banner {
    border: 0 !important;
    box-shadow: none;
  }

  /* =======================================================
     2. SELBSTCHECK CTA
     Nur der Text wechselt.
     Button + Pfeil bleiben komplett ruhig.
     ======================================================= */

  .cta-btn.lower-prio-cta.cta-btn-lower-prio-hero {
    display: grid !important;

    grid-template-columns: minmax(0, 1fr);

    position: relative;

    overflow: hidden;

    width: auto;
  }

  /* Beide Textzustände exakt übereinanderlegen */

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative,
  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute {
    grid-area: 1 / 1;

    display: flex !important;

    position: relative !important;
    inset: auto !important;

    gap: 0.65rem;

    align-items: center;
    justify-content: space-between;

    opacity: 1 !important;

    transform: none !important;
  }

  /* Pfeil nur aus dem normalen Zustand verwenden */

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute .arrow-up {
    display: none;
  }

  /* -------------------------------------------------------
     Normaler Text:
     "Passt Ihre Website noch zu Ihnen?"
     ------------------------------------------------------- */

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative .p-cta-btn {
    animation: jj-selfcheck-text-primary 6s cubic-bezier(0.4, 0, 0.2, 1)
      infinite;
  }

  /* -------------------------------------------------------
     Zweiter Text:
     "Website-Selbstcheck starten"
     ------------------------------------------------------- */

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute .p-cta-btn {
    animation: jj-selfcheck-text-secondary 6s cubic-bezier(0.4, 0, 0.2, 1)
      infinite;
  }
}

/* =========================================================
   SELBSTCHECK — MOBILE TEXT ANIMATION
========================================================= */

/*
   Ablauf:

   0–32 %:
   "Passt Ihre Website noch zu Ihnen?"

   40–60 %:
   "Website-Selbstcheck starten"

   ab 68 %:
   wieder ursprünglicher Text

   Dazwischen jeweils nur eine kleine Bewegung von 5px.
*/

@keyframes jj-selfcheck-text-primary {
  0%,
  32% {
    opacity: 1;
    transform: translateY(0);
  }

  40%,
  60% {
    opacity: 0;
    transform: translateY(-5px);
  }

  68%,
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes jj-selfcheck-text-secondary {
  0%,
  32% {
    opacity: 0;
    transform: translateY(5px);
  }

  40%,
  60% {
    opacity: 1;
    transform: translateY(0);
  }

  68%,
  100% {
    opacity: 0;
    transform: translateY(5px);
  }
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative .p-cta-btn,
  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute .p-cta-btn {
    animation: none !important;
  }

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative .p-cta-btn {
    opacity: 1 !important;
    transform: none !important;
  }

  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-absolute {
    display: none !important;
  }
}
/* =========================================================
   6. SMALL MOBILE
========================================================= */

@media screen and (max-width: 479px) {
  .hero-proof-container {
    width: 92%;

    padding-top: 0.75rem;
    padding-bottom: 0.8rem;
  }

  .hero-proof-strip .quali-banner {
    padding: 0.3rem;

    border-radius: 14px;
  }

  .hero-proof-strip .banner-box {
    gap: 0.6rem;

    min-height: 0;

    padding: 0.75rem 0.6rem;
  }

  .hero-proof-strip .div-icon-hero {
    width: 1.5rem;
    height: 1.5rem;
  }

  .hero-proof-strip .p-caption {
    font-size: 0.8rem;
    line-height: 1.4;
  }
}

/* =========================================================
   05 — HERO PRICE OVERVIEW
   ========================================================= */
.jj-price-row {
  width: 100%;
  max-width: 790px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* vorher 3.75rem */
  margin-top: 3.4rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--jj-line);
}
.jj-price-mini {
  padding: 0 1.5rem;
  border-left: 1px solid var(--jj-line);
}
.jj-price-mini:first-child {
  padding-left: 0;
  border-left: 0;
}
.jj-price-mini-label {
  display: block;
  margin-bottom: 0.3rem;
  font-family: var(--jj-sans);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--jj-muted);
}
.jj-price-mini-value {
  display: block;
  font-family: var(--jj-sans);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--jj-price);
}
/* =========================================================
   06 — GENERAL SECTION
   ========================================================= */
.jj-section {
  padding: 6rem 0;
}
/* =========================================================
   07 — SERVICES
   ========================================================= */
.jj-services-overview {
  background: var(--jj-bg-light);
  border-top: 1px solid rgba(18, 18, 14, 0.04);
  border-bottom: 1px solid rgba(18, 18, 14, 0.04);
}
.jj-services-overview.jj-services-hero {
  padding-top: 5.5rem;
  padding-bottom: 6rem;
  background: var(--jj-bg);
  border-top: 0;
}
.jj-services-hero .jj-title {
  max-width: 880px;
  margin: 0 0 0.65rem;
}
.jj-services-hero .jj-section-intro {
  max-width: 760px;
}
.jj-services-hero .jj-service-grid {
  margin-top: 3.25rem;
}
.jj-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 1rem;
  margin-top: 2.75rem;
}
.jj-service-card {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  border: 1px solid var(--jj-line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.44);
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease;
}
.jj-service-card:hover {
  border-color: var(--jj-line-active);
  background: rgba(255, 255, 255, 0.58);
}
.jj-service-heading {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.jj-service-icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eee9e1;
  color: var(--jj-green);
}
.jj-service-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jj-service-name {
  margin: 0;
  font-family: var(--jj-serif);
  font-size: 1.625rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--jj-ink);
}
.jj-service-subtitle {
  margin-top: 0.25rem;
  font-family: var(--jj-sans);
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--jj-muted);
}
.jj-service-copy {
  margin-top: 1.6rem;
}
.jj-service-copy-title {
  margin: 0 0 0.35rem;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--jj-ink);
}
.jj-service-copy p {
  margin-bottom: 1.3rem;
  font-size: 0.875rem;
  line-height: 1.55;
}
.jj-check-list {
  display: grid;
  align-content: start;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jj-check-list-common {
  margin-top: 1.55rem;
}
.jj-check-divider {
  width: 100%;
  height: 1px;
  margin: 1rem 0;
  background: var(--jj-line);
}
.jj-check-list-specific {
  margin-bottom: 1.5rem;
}
.jj-check-list li {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 0.5rem;
  font-family: var(--jj-sans);
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--jj-ink);
}
.jj-check {
  width: 14px;
  height: 14px;
  display: grid;
  place-items: center;
  margin-top: 0.1rem;
  border-radius: 50%;
  background: var(--jj-green);
  color: #fff;
  font-size: 0.55rem;
}
.jj-service-bottom {
  margin-top: auto;
  padding-top: 1.25rem;
  border-top: 1px solid var(--jj-line);
}
.jj-service-price-label {
  display: block;
  margin-bottom: 0.15rem;
  font-family: var(--jj-sans);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--jj-muted);
}
.jj-service-price {
  margin-bottom: 1.1rem;
  font-family: var(--jj-sans);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--jj-price);
}
.jj-service-card .jj-btn {
  width: 100%;
}
.jj-aftercare-note {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  max-width: 920px;
  margin: 1.4rem auto 0;
  padding: 0.9rem 1rem;
  border-top: 1px solid var(--jj-line);
  color: var(--jj-muted);
}
.jj-aftercare-icon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eee9e1;
  color: var(--jj-green);
}
.jj-aftercare-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jj-aftercare-note p {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--jj-muted);
}
.jj-aftercare-note strong {
  color: var(--jj-ink);
}
/* =========================================================
   08 — INCLUDED IN EVERY PROJECT
   ========================================================= */
.jj-included {
  background: var(--jj-bg-soft);
}
.jj-feature-groups {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  margin-top: 2.75rem;
}
.jj-feature-group {
  min-width: 0;
}
.jj-feature-group-label {
  margin: 0 0 1.35rem;
  font-family: var(--jj-sans);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--jj-green);
}
.jj-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 1.5rem;
  row-gap: 2rem;
}
.jj-feature {
  min-width: 0;
}
.jj-feature-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  color: var(--jj-green);
}
.jj-feature-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jj-feature-title {
  margin: 0 0 0.45rem;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--jj-ink);
}
.jj-feature p {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--jj-ink);
}
/* =========================================================
   09 — INVESTMENT
   ========================================================= */
.jj-investment {
  background: var(--jj-bg-light);
}
.jj-investment-layout {
  display: grid;
  grid-template-columns:
    minmax(0, 0.85fr)
    minmax(0, 1.15fr);
  gap: 5.5rem;
  align-items: start;
}
.jj-investment-copy {
  max-width: 500px;
  padding-left: 1.25rem;
  border-left: 2px solid rgba(23, 79, 70, 0.16);
}
.jj-investment-copy .jj-section-title {
  max-width: 470px;
}
.jj-investment-copy .jj-section-intro {
  margin-top: 0;
}
.jj-investment-copy .jj-btn {
  margin-top: 1.75rem;
}
.jj-investment-note {
  max-width: 420px;
  margin-top: 0.85rem !important;
  font-size: 0.75rem !important;
  line-height: 1.5 !important;
  color: var(--jj-muted) !important;
}
/* =========================================================
   10 — PRICE FACTORS
   ========================================================= */
.jj-factor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 2.75rem;
}
.jj-factor {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.8rem;
  padding: 1.3rem 0;
  border-top: 1px solid var(--jj-line);
}
.jj-factor:nth-child(1),
.jj-factor:nth-child(2) {
  padding-top: 0;
  border-top: 0;
}
.jj-factor-number {
  font-family: var(--jj-serif);
  /* vorher 1rem / 500 */
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--jj-green);
}
.jj-factor-title {
  margin: 0 0 0.35rem;
  font-family: var(--jj-sans);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--jj-ink);
}
.jj-factor p {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--jj-ink);
}
/* =========================================================
   11 — FAQ
   FINAL PREMIUM VERSION
   ========================================================= */
.jj-faq {
  padding: 6rem 0 3rem;
  background: var(--jj-bg-light);
}
.jj-faq-heading {
  display: grid;
  grid-template-columns:
    minmax(0, 0.8fr)
    minmax(280px, 0.55fr);
  align-items: end;
  gap: 4rem;
  max-width: 980px;
  margin-bottom: 2.75rem;
}
.jj-faq-heading-main {
  min-width: 0;
}
.jj-faq-heading .jj-section-title {
  max-width: 680px;
  margin-bottom: 0;
}
.jj-faq-intro {
  max-width: 390px;
  padding-bottom: 0.35rem;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
  color: var(--jj-muted) !important;
}
.jj-faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 980px;
  border-top: 1px solid var(--jj-line);
}
.jj-faq-item {
  position: relative;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid var(--jj-line);
  border-radius: 0;
  background: transparent;
  transition:
    background-color 0.22s ease,
    border-color 0.22s ease;
}
.jj-faq-item:hover {
  background: rgba(255, 255, 255, 0.38);
}
.jj-faq-item[open] {
  background: rgba(255, 255, 255, 0.58);
}
.jj-faq-item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;
  background: var(--jj-green);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.25s ease;
}
.jj-faq-item[open]::before {
  transform: scaleY(1);
}
.jj-faq-item summary {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 1rem;
  min-height: 72px;
  padding: 1.3rem 1rem;
  list-style: none;
  cursor: pointer;
  font-family: var(--jj-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--jj-ink);
}
.jj-faq-item summary::-webkit-details-marker {
  display: none;
}
.jj-faq-number {
  font-family: var(--jj-serif);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  color: var(--jj-green);
}
.jj-faq-question {
  min-width: 0;
}
.jj-faq-icon {
  position: relative;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  justify-self: end;
  border: 1px solid rgba(23, 79, 70, 0.18);
  border-radius: 50%;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.25s ease;
}
.jj-faq-icon::before,
.jj-faq-icon::after {
  content: "";
  position: absolute;
  width: 9px;
  height: 1px;
  background: var(--jj-green);
  transition: transform 0.25s ease;
}
.jj-faq-icon::after {
  transform: rotate(90deg);
}
.jj-faq-item[open] .jj-faq-icon {
  background: var(--jj-green);
  border-color: var(--jj-green);
  transform: rotate(180deg);
}
.jj-faq-item[open] .jj-faq-icon::before,
.jj-faq-item[open] .jj-faq-icon::after {
  background: #fff;
}
.jj-faq-item[open] .jj-faq-icon::after {
  transform: rotate(0deg);
}
.jj-faq-answer {
  max-width: 790px;
  padding: 0 4.5rem 1.7rem calc(44px + 2rem);
}
.jj-faq-answer p {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--jj-muted);
}
.jj-faq-answer p + p {
  margin-top: 0.9rem;
}
.jj-faq-closing {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  max-width: 980px;
  margin-top: 1.75rem;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--jj-muted);
}
.jj-faq-closing-dot {
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--jj-green);
}
/* =========================================================
   12 — FINAL CTA
   ========================================================= */
.jj-final-cta {
  padding: 1.5rem 0 4rem;
  background: var(--jj-bg-light);
}
.jj-cta-box {
  min-height: 126px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
  padding: 1.65rem 1.85rem;
  border-radius: 9px;
  background: linear-gradient(90deg, #174f46 0%, #225b52 50%, #174f46 100%);
  color: #fff;
}
.jj-cta-eyebrow {
  margin-bottom: 0.3rem;
  font-family: var(--jj-sans);
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}
.jj-cta-title {
  margin: 0;
  font-family: var(--jj-serif);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.2;
  color: #fff;
}
.jj-cta-text {
  margin-top: 0.35rem !important;
  font-size: 0.8125rem !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.72) !important;
}
.jj-cta-box .jj-btn {
  /* vorher 180px */
  min-width: 192px;
  background: #faf7f5;
  border-color: #faf7f5;
  color: var(--jj-green) !important;
}
/* =========================================================
   13 — TABLET
   <= 991px
   ========================================================= */
@media screen and (max-width: 991px) {
  .jj-container {
    width: min(100% - 48px, 900px);
  }
  .jj-services h1,
  .jj-title {
    font-size: 3rem;
  }
  .jj-services h2,
  .jj-section-title {
    font-size: 2.65rem;
  }
  .jj-services h3 {
    font-size: 2.15rem;
  }
  .jj-hero {
    padding: 5rem 0 4.5rem;
  }
  .jj-service-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .jj-feature-groups {
    grid-template-columns: 1fr;
    gap: 2.75rem;
  }
  .jj-feature-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.25rem 2rem;
  }
  .jj-investment-layout {
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }
  .jj-investment-copy {
    max-width: 700px;
  }
  .jj-investment-copy .jj-section-title {
    max-width: 700px;
  }
}
/* =========================================================
   14 — SMALL TABLET / MOBILE LANDSCAPE
   <= 767px
   ========================================================= */
@media screen and (max-width: 767px) {
  .jj-container {
    width: calc(100% - 32px);
  }
  .jj-section {
    padding: 4.5rem 0;
  }
  .jj-services-overview.jj-services-hero {
    padding-top: 4.5rem;
    padding-bottom: 4.75rem;
  }
  .jj-services h1,
  .jj-title {
    font-size: 2.6rem;
    line-height: 1.08;
  }
  .jj-services h2,
  .jj-section-title {
    font-size: 2.35rem;
    line-height: 1.1;
  }
  .jj-services h3 {
    font-size: 2rem;
  }
  .jj-services p {
    font-size: 1rem;
  }
  .jj-hero {
    padding: 4.25rem 0 4rem;
  }
  .jj-hero .jj-title {
    max-width: 620px;
  }
  .jj-hero-lead {
    margin-top: 1.4rem !important;
  }
  .jj-hero-actions {
    margin-top: 1.75rem;
  }
  .jj-hero-actions .jj-text-link {
    margin-left: 20px;
  }
  .jj-price-row {
    grid-template-columns: 1fr;
    margin-top: 3.25rem;
    padding-top: 0;
  }
  .jj-price-mini {
    padding: 1rem 0;
    border-left: 0;
    border-top: 1px solid var(--jj-line);
  }
  .jj-price-mini:first-child {
    padding-top: 1rem;
    border-top: 1px solid var(--jj-line);
  }
  .jj-price-mini-value {
    font-size: 2rem;
  }
  .jj-service-card {
    padding: 1.5rem;
  }
  .jj-feature-grid {
    grid-template-columns: 1fr 1fr;
  }
  .jj-feature-groups {
    gap: 2.5rem;
  }
  .jj-factor-grid {
    grid-template-columns: 1fr;
  }
  .jj-factor:nth-child(2) {
    padding-top: 1.3rem;
    border-top: 1px solid var(--jj-line);
  }
  .jj-faq {
    padding-top: 4.5rem;
  }
  .jj-faq-grid {
    grid-template-columns: 1fr;
  }
  .jj-cta-box {
    grid-template-columns: 1fr;
    padding: 1.5rem;
  }
  .jj-cta-box .jj-btn {
    justify-self: start;
    margin-top: 0.25rem;
  }
}
/* =========================================================
   15 — MOBILE
   <= 479px
   ========================================================= */
@media screen and (max-width: 479px) {
  .jj-container {
    width: calc(100% - 28px);
  }
  .jj-services h1,
  .jj-title {
    font-size: 2.25rem;
    line-height: 1.08;
  }
  .jj-services h2,
  .jj-section-title {
    font-size: 2rem;
    line-height: 1.1;
  }
  .jj-services h3 {
    font-size: 1.8rem;
  }
  .jj-services p {
    font-size: 1rem;
  }
  .jj-eyebrow {
    margin-bottom: 0.75rem;
    font-size: 0.6875rem;
  }
  .jj-section {
    padding: 3.75rem 0;
  }
  .jj-services-overview.jj-services-hero {
    padding-top: 3.75rem;
    padding-bottom: 4rem;
  }
  .jj-hero {
    padding: 3.75rem 0 3.5rem;
  }
  .jj-hero-actions {
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
  }
  .jj-hero-actions .jj-text-link {
    margin-left: 20px;
  }
  .jj-btn {
    min-height: 46px;
  }
  .jj-service-heading {
    gap: 0.8rem;
  }
  .jj-service-icon {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
  .jj-service-name {
    font-size: 1.45rem;
  }
  .jj-service-copy {
    margin-top: 1.35rem;
  }
  .jj-services-hero .jj-service-grid {
    margin-top: 2.25rem;
  }
  .jj-check-list-common {
    margin-top: 1.25rem;
  }
  .jj-check-divider {
    margin: 0.85rem 0;
  }
  .jj-check-list-specific {
    margin-bottom: 1.25rem;
  }
  .jj-check-list {
    gap: 0.55rem;
  }
  .jj-service-bottom {
    padding-top: 1rem;
  }
  .jj-aftercare-note {
    align-items: flex-start;
    margin-top: 1.25rem;
    padding: 0.85rem 0;
  }
  .jj-feature-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .jj-feature-group-label {
    margin-bottom: 1rem;
  }
  .jj-feature {
    display: grid;
    grid-template-columns: 44px 1fr;
    column-gap: 1rem;
  }
  .jj-feature-icon {
    grid-row: 1 / span 2;
    margin-bottom: 0;
  }
  .jj-feature-title {
    align-self: end;
  }
  .jj-factor {
    grid-template-columns: auto 1fr;
  }
  .jj-faq-item summary {
    padding: 0.9rem 2.75rem 0.9rem 0.9rem;
    font-size: 0.8125rem;
  }
  .jj-faq-answer {
    padding: 0 0.9rem 0.9rem;
  }
  .jj-faq-answer p {
    font-size: 0.875rem;
  }
  .jj-final-cta {
    padding-bottom: 3rem;
  }
  .jj-cta-title {
    font-size: 1.6rem;
  }
  .jj-cta-box .jj-btn {
    width: 100%;
  }
}
/* =========================================================
   16 — VERY SMALL DEVICES
   <= 380px
   ========================================================= */
@media screen and (max-width: 380px) {
  .jj-container {
    width: calc(100% - 24px);
  }
  .jj-services h1,
  .jj-title {
    font-size: 2.05rem;
  }
  .jj-services h2,
  .jj-section-title {
    font-size: 1.85rem;
  }
  .jj-service-card {
    padding: 1.25rem;
  }
  .jj-check-list li {
    grid-template-columns: 15px 1fr;
    gap: 0.45rem;
    font-size: 0.8rem;
  }
  .jj-hero-actions {
    align-items: flex-start;
  }
}
/* =========================================================
   FAQ RESPONSIVE OVERRIDES — FINAL
   ========================================================= */
@media screen and (max-width: 767px) {
  .jj-faq {
    padding-top: 4.75rem;
  }
  .jj-faq-heading {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
  }
  .jj-faq-intro {
    max-width: 560px;
    padding-bottom: 0;
  }
  .jj-faq-item summary {
    grid-template-columns: 34px minmax(0, 1fr) 28px;
    gap: 0.75rem;
    min-height: 68px;
    padding: 1.15rem 0.85rem;
  }
  .jj-faq-answer {
    padding: 0 3.5rem 1.5rem calc(34px + 1.6rem);
  }
}
@media screen and (max-width: 479px) {
  .jj-faq {
    padding-top: 4rem;
    padding-bottom: 2.25rem;
  }
  .jj-faq-heading {
    margin-bottom: 1.65rem;
  }
  .jj-faq-intro {
    font-size: 0.875rem !important;
  }
  .jj-faq-item summary {
    grid-template-columns: 28px minmax(0, 1fr) 26px;
    gap: 0.65rem;
    min-height: 64px;
    padding: 1.05rem 0.6rem;
    font-size: 0.875rem;
    line-height: 1.4;
  }
  .jj-faq-number {
    font-size: 0.75rem;
  }
  .jj-faq-icon {
    width: 26px;
    height: 26px;
  }
  .jj-faq-answer {
    padding: 0 2.9rem 1.35rem calc(28px + 1.25rem);
  }
  .jj-faq-answer p {
    font-size: 0.875rem;
    line-height: 1.65;
  }
  .jj-faq-closing {
    margin-top: 1.4rem;
    font-size: 0.6875rem;
  }
}
/* =========================================================
   17 — REDUCED MOTION
   ========================================================= */

@media (any-hover: hover) and (any-pointer: fine) {
  .jj-cta-box .jj-btn:hover {
    background-color: #ffffff;
    border-color: rgba(23, 59, 55, 0.14);
  }
}
@media (prefers-reduced-motion: reduce) {
  .jj-services *,
  .jj-services *::before,
  .jj-services *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
  .jj-btn:hover,
  .jj-btn:hover > span,
  .jj-text-link:hover > span {
    transform: none;
  }
}

/* ---------- Source: projektablauf.html | former <style> block 1 ---------- */
@media (min-width: 992px) {
  html.w-mod-js:not(.w-mod-ix)
    [data-w-id="c0c254cb-8654-0d46-7bb1-532a8dedaa21"] {
    opacity: 0;
  }
}

/* ---------- Source: projekte.html | former <style> block 1 ---------- */
.jj-deco-art {
  --jj-ink: #173f39;
  --jj-green: #879a94;
  --jj-green-soft: #b6c0bc;
  --jj-paper: #f4efe8;
  --jj-sand: #ddd5ca;
  --jj-line: rgba(23, 63, 57, 0.095);
  --jj-border: rgba(23, 63, 57, 0.35);
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 235px;
  overflow: hidden;
  isolation: isolate;
}
/* subtle background grid */
.jj-deco-art__grid {
  position: absolute;
  inset: 9% 3% 10% 3%;
  pointer-events: none;
  opacity: 0.34;
  background-image:
    linear-gradient(to right, var(--jj-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--jj-line) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000 10%,
    #000 90%,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000 10%,
    #000 90%,
    transparent 100%
  );
  transition: opacity 500ms ease;
}
/* stage */
.jj-deco-art__stage {
  position: absolute;
  inset: 18% 4% 12% 4%; /* slightly lower than before */
  transform: scale(0.92);
  transform-origin: center right;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
/* shared tile styling */
.jj-tile {
  position: absolute;
  box-sizing: border-box;
  border: 1px solid var(--jj-border);
  background: rgba(244, 239, 232, 0.62);
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 650ms ease,
    transform 900ms cubic-bezier(0.16, 1, 0.3, 1),
    background-color 450ms ease,
    border-color 450ms ease,
    box-shadow 450ms ease;
}
.jj-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.26);
  pointer-events: none;
}
/* soft sheen overlay */
.jj-tile::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -120%;
  width: 42%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.16) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: skewX(-18deg);
  opacity: 0;
  transition:
    left 850ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 350ms ease;
}
/* layout — no overlaps, clean spacing */
/* top row */
.jj-tile--01 {
  left: 7%;
  top: 9%;
  width: 18%;
  height: 13%;
  background: transparent;
  border-color: rgba(23, 63, 57, 0.22);
  transition-delay: 0.05s;
}
.jj-tile--02 {
  left: 29%;
  top: 0%;
  width: 30%;
  height: 20%;
  background: rgba(23, 63, 57, 0.95);
  border-color: rgba(23, 63, 57, 0.88);
  transition-delay: 0.12s;
}
.jj-tile--03 {
  left: 62%;
  top: 3%;
  width: 13%;
  height: 17%;
  background: rgba(182, 192, 188, 0.92);
  border-color: rgba(23, 63, 57, 0.26);
  transition-delay: 0.18s;
}
.jj-tile--04 {
  left: 78%;
  top: 6%;
  width: 15%;
  height: 14%;
  background: rgba(244, 239, 232, 0.48);
  transition-delay: 0.24s;
}
/* middle row */
.jj-tile--05 {
  left: 18%;
  top: 30%;
  width: 28%;
  height: 22%;
  background: rgba(221, 213, 202, 0.82);
  transition-delay: 0.14s;
}
.jj-tile--06 {
  left: 49%;
  top: 30%;
  width: 33%;
  height: 22%;
  background: rgba(244, 239, 232, 0.55);
  transition-delay: 0.21s;
}
/* bottom row */
.jj-tile--07 {
  left: 7%;
  top: 62%;
  width: 23%;
  height: 21%;
  background: rgba(244, 239, 232, 0.72);
  transition-delay: 0.2s;
}
.jj-tile--08 {
  left: 33%;
  top: 62%;
  width: 34%;
  height: 21%;
  background: rgba(135, 154, 148, 0.9);
  transition-delay: 0.27s;
}
.jj-tile--09 {
  left: 70%;
  top: 62%;
  width: 23%;
  height: 21%;
  background: rgba(244, 239, 232, 0.62);
  transition-delay: 0.34s;
}
/* visible state */
.jj-deco-art.is-visible .jj-tile {
  opacity: 1;
  transform: translateY(0);
}
/* premium subtle hover */
@media (hover: hover) {
  .jj-deco-art:hover .jj-deco-art__stage {
    transform: scale(0.92) translateY(-2px);
  }
  .jj-deco-art:hover .jj-deco-art__grid {
    opacity: 0.28;
  }
  .jj-deco-art:hover .jj-tile {
    box-shadow: 0 6px 18px rgba(23, 63, 57, 0.045);
  }
  .jj-deco-art:hover .jj-tile::before {
    left: 135%;
    opacity: 1;
  }
  .jj-deco-art:hover .jj-tile--02 {
    transform: translateY(-4px);
    background: rgba(20, 55, 49, 0.98);
  }
  .jj-deco-art:hover .jj-tile--08 {
    transform: translateY(-3px);
    background: rgba(125, 145, 139, 0.94);
  }
  .jj-deco-art:hover .jj-tile--03 {
    transform: translateY(-2px);
  }
  .jj-deco-art:hover .jj-tile--05 {
    transform: translateY(-2px);
  }
  .jj-deco-art:hover .jj-tile--06 {
    transform: translateY(-1px);
  }
  .jj-deco-art:hover .jj-tile--01,
  .jj-deco-art:hover .jj-tile--04,
  .jj-deco-art:hover .jj-tile--07,
  .jj-deco-art:hover .jj-tile--09 {
    transform: translateY(-1px);
  }
}
/* tablet */
@media screen and (max-width: 991px) {
  .jj-deco-art {
    min-height: 215px;
  }
  .jj-deco-art__stage {
    transform: scale(0.95);
    transform-origin: center center;
  }
  .jj-deco-art__grid {
    background-size: 40px 40px;
  }
  @media (hover: hover) {
    .jj-deco-art:hover .jj-deco-art__stage {
      transform: scale(0.95) translateY(-2px);
    }
  }
}
/* mobile */
@media screen and (max-width: 767px) {
  .jj-deco-art {
    min-height: 190px;
  }
  .jj-deco-art__stage {
    inset: 19% 3% 14% 3%;
    transform: scale(0.98);
  }
  .jj-deco-art__grid {
    background-size: 34px 34px;
  }
  @media (hover: hover) {
    .jj-deco-art:hover .jj-deco-art__stage {
      transform: scale(0.98) translateY(-1px);
    }
  }
}
/* small mobile */
@media screen and (max-width: 479px) {
  .jj-deco-art {
    min-height: 165px;
  }
  .jj-deco-art__stage {
    inset: 19% 2% 14% 2%;
  }
  .jj-deco-art__grid {
    background-size: 28px 28px;
    opacity: 0.28;
  }
}
/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .jj-deco-art__stage,
  .jj-deco-art__grid,
  .jj-tile,
  .jj-tile::before {
    transition: none !important;
  }
  .jj-tile {
    opacity: 1 !important;
    transform: none !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   JJ — BREADCRUMBS
   ========================================================= */

.jj-breadcrumb {
  margin: 0 0 0.9rem;
  font-family: Inter, sans-serif;
  font-size: 0.72rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.025em;
  color: #12120e;
}

.jj-breadcrumb__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.jj-breadcrumb__item {
  display: flex;
  align-items: center;
}

.jj-breadcrumb__item + .jj-breadcrumb__item::before {
  content: "›";
  margin: 0 0.55rem;
  opacity: 0.32;
}

.jj-breadcrumb__link {
  color: inherit;
  text-decoration: none;
  opacity: 0.48;
  transition: opacity 160ms ease;
}

.jj-breadcrumb__link:hover {
  opacity: 0.9;
}

.jj-breadcrumb__link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

.jj-breadcrumb__item[aria-current="page"] {
  font-weight: 500;
  opacity: 0.68;
}

@media (max-width: 767px) {
  .jj-breadcrumb {
    margin-bottom: 0.75rem;
    font-size: 0.68rem;
  }

  .jj-breadcrumb__item + .jj-breadcrumb__item::before {
    margin: 0 0.45rem;
  }
}

/* Targeted responsive repairs for index.html and projektablauf.html */
@media screen and (max-width: 991px) {
  .page-home .container > *,
  .page-projektablauf .container > * {
    min-width: 0;
  }

  .page-home .leistugen-box,
  .page-home .div-block-45,
  .page-projektablauf .ablauf-box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-home .project-header {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-home .leistungen-boxen {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  .page-home .leistungen-box {
    min-width: 0;
  }

  .page-home .cta-leistungen-wrapper {
    flex-wrap: wrap;
  }

  .page-home .project-ov-grid.version-2 {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-home .div-block-61 {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .page-home .div-block-62 {
    width: 100%;
  }

  .page-home .div-block-62 .cta-btn {
    width: fit-content;
    max-width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .page-home .leistungen-boxen-wrapper,
  .page-home .leistungen-boxen,
  .page-home .project-ov-grid.version-2,
  .page-home .project-gallery-card,
  .page-home .project-card-content,
  .page-home .project-title-row,
  .page-home .project-title-wrap {
    min-width: 0;
    max-width: 100%;
  }

  .page-home .leistungen-boxen {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }

  .page-home .leistungen-box {
    width: 100%;
    min-width: 0;
  }

  .page-home .cta-leistungen-wrapper {
    flex-wrap: wrap;
  }

  .page-home .agentur-banner-grid.smaller-banner {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 1rem;
    padding: 1.25rem;
  }

  .page-home .agentur-banner-grid.smaller-banner .divider-hero-info {
    display: none;
  }

  .page-home .agentur-banner-grid.smaller-banner .div-block-86 {
    padding-left: 0;
  }

  .page-home .agentur-banner-grid.smaller-banner .div-block-88 {
    justify-content: flex-start;
  }

  .page-home .agentur-banner-grid.smaller-banner .div-block-92 {
    align-items: stretch;
  }

  .page-home .agentur-banner-grid.smaller-banner .cta-btn {
    width: 100%;
    max-width: 100%;
    justify-content: space-between;
  }

  .page-projektablauf .ablauf-steps-nav {
    display: none;
  }

  .page-projektablauf .ablauf-steps-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    width: 100%;
    padding-bottom: 1.5rem;
  }

  .page-projektablauf .ablauf-steps-content .empty-divider {
    display: none;
  }

  .page-projektablauf .ablauf-steps-content .projabl-hero-info-content {
    position: relative;
    width: 100%;
    max-width: none;
    min-width: 0;
    align-items: flex-start;
    padding: 1.4rem 0 1.4rem 3.25rem;
    border-top: 1px solid rgba(18, 18, 14, 0.12);
  }

  .page-projektablauf .ablauf-steps-content .projabl-hero-info-content::before {
    position: absolute;
    left: 0;
    top: 1.35rem;
    color: rgba(23, 59, 55, 0.68);
    font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
    font-size: 1.7rem;
    line-height: 1.2;
  }

  .page-projektablauf .ablauf-steps-content .ablauf-step::before {
    content: attr(data-step);
  }

  .page-projektablauf .ablauf-steps-content .p-text-hero-info,
  .page-projektablauf .ablauf-steps-content .p-text-projabl {
    text-align: left;
    width: 100%;
  }

  .page-projektablauf .ablauf-steps-content .p-text-hero-info.bigger-text {
    font-size: 1.25rem;
  }
}

@media screen and (max-width: 479px) {
  .page-home .heading-secondary,
  .page-projektablauf .heading-secondary {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .page-home .div-block-2 {
    display: none;
  }

  .page-home .cta-leistungen-wrapper {
    align-items: stretch;
  }

  .page-home .cta-leistungen {
    width: 100%;
    justify-content: space-between;
  }

  .page-home .div-block-106 {
    width: fit-content;
  }

  .page-home .project-title-row,
  .page-home .project-title-wrap {
    flex-wrap: wrap;
  }

  .page-projektablauf .projabl-hero-box {
    align-items: stretch;
  }

  .page-projektablauf .projabl-hero-info-box,
  .page-projektablauf .projabl-hero-info-content {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   HOMEPAGE SERVICES — FINAL
   old cards + included services + price note
   ========================================================= */

/* ---------------------------------------------------------
   Kleine Anpassungen nur auf der Startseite
   --------------------------------------------------------- */

.page-home #leistungen .leistungen-boxen-wrapper {
  padding-bottom: 0;
}

.page-home #leistungen .leistungen-box {
  /*
   * Bestehendes luftiges Card-Design bewusst erhalten.
   * Keine zusätzlichen Icons, Badges oder dunklen Buttons.
   */
  min-width: 0;
}

/* Etwas sauberere CTA-Interaktion */

.page-home #leistungen .cta-leistungen {
  background: transparent;

  transition:
    background-color 180ms ease,
    transform 180ms ease;
}

.page-home #leistungen .p-cta-leistungen.lower-cta {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

@media (hover: hover) and (pointer: fine) {
  .page-home #leistungen .cta-leistungen:hover {
    background-color: rgba(23, 59, 55, 0.04);
    transform: translateY(-1px);
  }

  .page-home #leistungen .div-block-106:hover .p-cta-leistungen.lower-cta {
    text-decoration-thickness: 1.5px;
  }
}
/* =========================================================
   IN JEDEM PROJEKT ENTHALTEN — FINAL
   ========================================================= */

.home-services-included {
  display: grid;

  /*
   * Intro bewusst etwas schmaler.
   * Die vier Leistungen bekommen dadurch mehr Raum.
   */
  grid-template-columns:
    minmax(220px, 0.82fr)
    minmax(0, 3.4fr);

  width: 100%;
  max-width: none;

  margin-top: 0.5rem;

  padding: 1.85rem 2rem;

  background-color: #173b37;

  border: 1px solid rgba(250, 247, 245, 0.08);
  border-radius: 14px;
}

.home-services-price-note {
  font-family: Inter, sans-serif;
  font-weight: 400;
  font-size: 0.75rem;
  padding-left: 2.25rem;
}

/* ---------------------------------------------------------
   Intro links
   --------------------------------------------------------- */

.home-services-included__intro {
  padding-right: 2rem;

  border-right: 1px solid rgba(250, 247, 245, 0.2);
}

.home-services-included__eyebrow {
  margin: 0 0 0.9rem;

  color: rgba(250, 247, 245, 0.78);

  font-family: Inter, sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.3;

  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-services-included__title {
  max-width: 225px;

  margin: 0;

  color: #faf7f5;

  font-family: Playfair, "Playfair Display", Georgia, serif;
  font-size: clamp(1.55rem, 1.8vw, 1.85rem);
  font-weight: 500;
  line-height: 1.12;

  letter-spacing: -0.025em;
}

/* ---------------------------------------------------------
   Vier enthaltene Leistungen
   --------------------------------------------------------- */

.home-services-included__grid {
  display: grid;

  grid-template-columns: repeat(4, minmax(0, 1fr));

  gap: 0;

  min-width: 0;

  padding-left: 0;
}

.home-services-included__item {
  min-width: 0;

  padding: 0 1.75rem;

  border-left: 1px solid rgba(250, 247, 245, 0.18);
}

/*
 * Der erste Divider kommt bereits vom Intro-Bereich.
 * Deshalb beim ersten Item keine zusätzliche Linie.
 */
.home-services-included__item:first-child {
  border-left: 0;
}

/* Nummer */

.home-services-included__number {
  display: flex;

  align-items: center;

  gap: 0.75rem;

  margin-bottom: 0.9rem;

  color: rgba(250, 247, 245, 0.8);

  font-family: Inter, sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1;
}

.home-services-included__number i {
  display: block;

  width: 18px;
  height: 1px;

  background-color: rgba(250, 247, 245, 0.3);
}

/* Überschrift */

.home-services-included__item h4 {
  margin: 0 0 0.5rem;

  color: #faf7f5;

  font-family: Inter, sans-serif;
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.4;

  letter-spacing: -0.005em;
}

/* Beschreibung */

.home-services-included__item p {
  margin: 0;

  color: rgba(250, 247, 245, 0.68);

  font-family: Inter, sans-serif;
  font-size: 0.77rem;
  font-weight: 400;
  line-height: 1.55;
}
@media screen and (max-width: 991px) {
  .home-services-included {
    grid-template-columns: 1fr;

    padding: 1.75rem;
  }

  .home-services-included__intro {
    padding: 0 0 1.5rem;

    border-right: 0;
    border-bottom: 1px solid rgba(250, 247, 245, 0.18);
  }

  .home-services-included__title {
    max-width: 420px;
  }

  .home-services-included__title br {
    display: none;
  }

  .home-services-included__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    padding-top: 1.5rem;
  }

  .home-services-included__item {
    padding: 0 1.5rem 1.5rem 0;

    border-left: 0;
  }

  .home-services-included__item:nth-child(even) {
    padding-left: 1.5rem;

    border-left: 1px solid rgba(250, 247, 245, 0.18);
  }
}

@media screen and (max-width: 479px) {
  .home-services-included {
    padding: 1.5rem 1.35rem;

    border-radius: 12px;
  }

  .home-services-included__intro {
    padding-bottom: 1.4rem;
  }

  .home-services-included__title {
    max-width: 280px;

    font-size: 1.7rem;
  }

  .home-services-included__grid {
    grid-template-columns: 1fr;

    padding-top: 0;
  }

  .home-services-included__item,
  .home-services-included__item:nth-child(even) {
    max-width: none;

    padding: 1.35rem 0;

    border-left: 0;
    border-bottom: 1px solid rgba(250, 247, 245, 0.16);
  }

  .home-services-included__item:last-child {
    padding-bottom: 0;

    border-bottom: 0;
  }

  .home-services-included__number {
    margin-bottom: 0.65rem;
  }

  .home-services-included__item h4 {
    font-size: 0.86rem;
  }

  .home-services-included__item p {
    max-width: 310px;

    font-size: 0.78rem;
    line-height: 1.55;
  }
}
/* =========================================================
   HOMEPAGE SERVICE CARDS — BUTTON HOVER LIKE .jj-btn
   ========================================================= */

.page-home #leistungen .cta-leistungen {
  background-color: transparent;
  border-color: #173b37;
  transform: none;

  transition:
    background-color 180ms ease,
    border-color 180ms ease;
}

.page-home #leistungen .cta-leistungen .p-cta-leistungen {
  color: #173b37;

  transition: color 180ms ease;
}

.page-home #leistungen .cta-leistungen .green-arrow {
  color: #173b37;

  transition:
    color 180ms ease,
    transform 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .page-home #leistungen .cta-leistungen:hover {
    background-color: #173b37;
    border-color: #173b37;

    /* kein Hochspringen des gesamten Buttons */
    transform: none;
  }

  .page-home #leistungen .cta-leistungen:hover .p-cta-leistungen {
    color: #fff;
  }

  .page-home #leistungen .cta-leistungen:hover .green-arrow {
    color: #fff;

    /*
     * Pfeil ist bereits -45deg gedreht.
     * Rotation deshalb erhalten.
     */
    transform: translateX(1px) rotate(-45deg);
  }
}

/* =========================================================
   INCLUDED BANNER — TYPOGRAPHIC BALANCE
   ========================================================= */

/* Große Aussage links etwas zurücknehmen */

.home-services-included__title {
  font-size: clamp(1.55rem, 1.8vw, 1.85rem);
  line-height: 1.12;
}

/* Überschriften rechts etwas stärker */

.home-services-included__item h4 {
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.4;
}

/* Beschreibung rechts besser lesbar */

.home-services-included__item p {
  font-size: 0.77rem;
  line-height: 1.55;
}

/* Nummern dürfen ebenfalls minimal präsenter sein */

.home-services-included__number {
  font-size: 0.68rem;
}

/* =========================================================
   LEISTUNGEN — FINAL HYBRID 2+1
   ========================================================= */

/* ---------------------------------------------------------
   IN JEDEM PROJEKT ENTHALTEN
--------------------------------------------------------- */

.jj-offers .jjo-included {
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(1.75rem, 3vw, 2.75rem);
  margin-top: 2.15rem;
  padding: 0.95rem 0;
}

.jj-offers .jjo-included-label {
  white-space: nowrap;
}

/* ---------------------------------------------------------
   2 + 1 GRID
--------------------------------------------------------- */

.jj-offers .jjo-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   CARDS
--------------------------------------------------------- */

.jj-offers .jjo-card {
  padding: 1.75rem 1.8rem 1.55rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.42);
}

/* ---------------------------------------------------------
   CARD HEADER
--------------------------------------------------------- */

.jj-offers .jjo-card-topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;

  margin-bottom: 1.15rem;
}

.jj-offers .jjo-kicker {
  color: var(--green);

  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.35;

  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.jj-offers .jjo-number {
  color: rgba(18, 18, 14, 0.45);

  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 400;
  line-height: 1;
}

/* ---------------------------------------------------------
   TITLE + ICON
--------------------------------------------------------- */

.jj-offers .jjo-card-title-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 0.95rem;

  align-items: start;
}

/* bestehende runde Icon-Fläche entfernen */

.jj-offers .jjo-icon {
  flex: none;

  width: 28px;
  height: 28px;

  display: grid;
  place-items: start center;

  padding-top: 0.18rem;

  border-radius: 0;
  background: transparent;

  color: var(--green);
}

.jj-offers .jjo-icon svg {
  width: 20px;
  height: 20px;

  stroke-width: 1.45;
}

/* Titel etwas souveräner */

.jj-offers .jjo-name {
  font-size: clamp(1.55rem, 2vw, 1.75rem);
  line-height: 1.12;

  letter-spacing: -0.025em;
}

/* statt winziger Subtitle jetzt echte Situationsbeschreibung */

.jj-offers .jjo-card-copy {
  max-width: 35rem;

  margin: 0.45rem 0 0;

  color: rgba(18, 18, 14, 0.7);

  font-family: var(--sans);
  font-size: 0.82rem;
  line-height: 1.58;
}

/* ---------------------------------------------------------
   CHECKLISTE
--------------------------------------------------------- */

.jj-offers .jjo-checks {
  gap: 0.64rem;

  margin: 1.45rem 0 1.55rem;
}

.jj-offers .jjo-checks li {
  font-size: 0.82rem;
  line-height: 1.45;
}

.jj-offers .jjo-check {
  width: 14px;
  height: 14px;

  font-size: 0.5rem;
}

/* ---------------------------------------------------------
   PREISZONE
--------------------------------------------------------- */

.jj-offers .jjo-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;

  align-items: end;

  margin-top: auto;
  padding-top: 1.1rem;
}

.jj-offers .jjo-price-label {
  display: block;

  margin-bottom: 0.3rem;

  color: rgba(18, 18, 14, 0.54);

  font-size: 0.66rem;
  font-weight: 500;
  line-height: 1.35;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jj-offers .jjo-price-row {
  display: flex;
  align-items: flex-end;

  gap: 1.2rem;
}

.jj-offers .jjo-price {
  margin: 0;

  color: #173b37;

  font-size: clamp(2.05rem, 3vw, 2.35rem);
  font-weight: 500;
  line-height: 1.05;

  letter-spacing: -0.035em;
}

.jj-offers .jjo-price-note {
  padding-left: 1.1rem;

  border-left: 1px solid var(--line);

  color: rgba(18, 18, 14, 0.45);

  font-family: var(--sans);
  font-size: 0.66rem;
  line-height: 1.45;
}

/* ---------------------------------------------------------
   TEXT CTA STATT FULL-WIDTH BUTTON
--------------------------------------------------------- */
.jj-faq-closing .jjo-text-cta,
.jj-offers .jjo-text-cta {
  position: relative;

  width: fit-content;

  display: inline-flex;
  align-items: center;

  gap: 0.7rem;

  padding: 0.3rem 0 0.38rem;

  color: var(--green) !important;

  font-family: var(--sans);
  font-size: 0.79rem;
  font-weight: 600;
  line-height: 1.3;

  white-space: nowrap;
}

/* feine Linie */

.jj-faq-closing .jjo-text-cta::after,
.jj-offers .jjo-text-cta::after {
  content: "";

  position: absolute;
  left: 0;
  bottom: 0;

  width: 35%;
  height: 1px;

  background: currentColor;

  transition: width 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.jj-faq-closing .jjo-text-cta-arrow,
.jj-offers .jjo-text-cta-arrow {
  display: inline-block;

  transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

/* Desktop-Hover */

@media (any-hover: hover) and (any-pointer: fine) {
  .jj-faq-closing .jjo-text-cta:hover::after,
  .jj-offers .jjo-text-cta:hover::after {
    width: 100%;
  }

  .jj-faq-closing .jjo-text-cta:hover .jjo-text-cta-arrow,
  .jj-offers .jjo-text-cta:hover .jjo-text-cta-arrow {
    transform: translateX(4px);
  }
}

/* Tastaturfokus */

.jj-faq-closing .jjo-text-cta:focus-visible,
.jj-offers .jjo-text-cta:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 5px;

  border-radius: 2px;
}

/* =========================================================
   DESIGN → WEBSITE
   BREITE DRITTE LEISTUNG
========================================================= */

.jj-offers .jjo-card--agency {
  grid-column: 1 / -1;

  display: grid;

  grid-template-columns:
    minmax(0, 1.35fr)
    1px
    minmax(0, 0.95fr)
    1px
    minmax(210px, 0.62fr);

  gap: clamp(1.4rem, 2.5vw, 2.25rem);

  align-items: stretch;

  padding-top: 1.55rem;
  padding-bottom: 1.55rem;
}

/* linker Bereich */

.jj-offers .jjo-agency-intro {
  min-width: 0;
}

/* vertikale Trennlinien */

.jj-offers .jjo-agency-divider {
  width: 1px;
  min-height: 100%;

  background: var(--line);
}

/* mittlerer Leistungsbereich */

.jj-offers .jjo-agency-features {
  min-width: 0;

  align-self: center;
}

.jj-offers .jjo-agency-features .jjo-checks {
  margin: 0 0 1rem;
}

/* Figma → Webflow */

.jj-offers .jjo-tech-row {
  display: flex;
  align-items: center;

  gap: 0.55rem;

  min-width: 0;

  color: rgba(18, 18, 14, 0.45);

  font-family: var(--sans);
  font-size: 0.68rem;
  line-height: 1.4;
}

.jj-offers .jjo-tech-logo {
  flex: 0 0 28px;

  width: 28px;
  height: 28px;

  object-fit: contain;
}

.jj-offers .jjo-tech-logo--webflow {
  padding: 5px;

  border-radius: 6px;

  background: #080808;
}

.jj-offers .jjo-tech-arrow {
  color: var(--ink);

  font-size: 0.9rem;
}

.jj-offers .jjo-tech-label {
  margin-left: 0.15rem;
}

/* rechter Preisbereich */

.jj-offers .jjo-agency-price {
  min-width: 0;

  display: flex;
  flex-direction: column;

  justify-content: center;
  align-items: flex-start;
}

.jj-offers .jjo-agency-price .jjo-price {
  margin-bottom: 0.95rem;
}

/* =========================================================
   AFTERCARE
   NUR NOCH RUHIGE VERTRAUENSZEILE
========================================================= */

.jj-offers .jjo-aftercare {
  align-items: center;

  max-width: 960px;

  margin: 1.15rem auto 0;

  padding: 1rem 0 0;

  border-top: 1px solid var(--line);
}

/* runde Icon-Fläche ebenfalls entfernen */

.jj-offers .jjo-aftercare-icon {
  flex: 0 0 24px;

  width: 24px;
  height: 24px;

  border-radius: 0;

  background: transparent;
}

.jj-offers .jjo-aftercare-icon svg {
  width: 15px;
  height: 15px;
}

.jj-offers .jjo-aftercare p {
  font-size: 0.75rem;
  line-height: 1.55;
}

/* =========================================================
   TABLET
========================================================= */

@media screen and (max-width: 991px) {
  .jj-offers .jjo-grid {
    grid-template-columns: 1fr;
  }

  .jj-offers .jjo-card--agency {
    grid-column: auto;

    grid-template-columns: 1fr;

    gap: 1.25rem;
  }

  .jj-offers .jjo-agency-divider {
    width: 100%;
    height: 1px;
    min-height: 1px;
  }

  .jj-offers .jjo-agency-price {
    padding-top: 0.1rem;
  }
}

/* =========================================================
   MOBILE
   AB HIER KEINE KLASSISCHE PRICING-CARD-OPTIK MEHR
========================================================= */

@media screen and (max-width: 767px) {
  .jj-offers .jjo-included {
    grid-template-columns: 1fr;

    gap: 0.75rem;
  }

  .jj-offers .jjo-included-label {
    white-space: normal;
  }

  .jj-offers .jjo-grid {
    gap: 0;

    margin-top: 1.5rem;
  }

  /* Card-Flächen auf Mobile entfernen */

  .jj-offers .jjo-card,
  .jj-offers .jjo-card--agency {
    border-width: 1px 0 0;

    border-radius: 0;

    background: transparent;

    padding: 1.65rem 0 1.8rem;
  }

  .jj-offers .jjo-card:last-child {
    border-bottom: 1px solid var(--line);
  }

  .jj-offers .jjo-card-title-row {
    grid-template-columns: 24px minmax(0, 1fr);

    gap: 0.8rem;
  }

  .jj-offers .jjo-icon {
    width: 24px;
    height: 24px;

    min-width: 24px;
  }

  /* Preis und CTA untereinander */

  .jj-offers .jjo-bottom {
    grid-template-columns: 1fr;

    gap: 1rem;
  }

  .jj-offers .jjo-price-row {
    align-items: center;
  }

  /* Agentur-Bereich wird linear */

  .jj-offers .jjo-agency-divider {
    display: none;
  }

  .jj-offers .jjo-agency-features,
  .jj-offers .jjo-agency-price {
    padding-top: 1.15rem;

    border-top: 1px solid var(--line);
  }

  .jj-offers .jjo-aftercare {
    margin-top: 1rem;
  }
}

/* =========================================================
   393PX / SMALL MOBILE
========================================================= */

@media screen and (max-width: 479px) {
  .jj-offers .jjo-kicker {
    font-size: 0.66rem;
  }

  .jj-offers .jjo-name {
    font-size: 1.55rem;
  }

  .jj-offers .jjo-card-copy {
    font-size: 0.9rem;
    line-height: 1.58;
  }

  .jj-offers .jjo-checks li {
    font-size: 0.9rem;
  }

  .jj-offers .jjo-price {
    font-size: 2.2rem;
  }

  .jj-offers .jjo-price-row {
    gap: 0.9rem;
  }

  .jj-offers .jjo-price-note {
    padding-left: 0.9rem;

    font-size: 0.64rem;
  }

  .jj-offers .jjo-text-cta {
    font-size: 0.86rem;
  }

  .jj-offers .jjo-tech-row {
    flex-wrap: wrap;
  }

  .jj-offers .jjo-tech-label {
    width: 100%;

    margin: 0.15rem 0 0;
  }

  .jj-offers .jjo-aftercare {
    align-items: flex-start;
  }
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .jj-faq-closing .jjo-text-cta::after,
  .jj-faq-closing .jjo-text-cta-arrow,
  .jj-offers .jjo-text-cta::after,
  .jj-offers .jjo-text-cta-arrow {
    transition: none;
  }
}

/* =========================================================
   LEISTUNGEN — EDITORIAL SERVICES / FINAL
   ========================================================= */

/* ---------------------------------------------------------
   SERVICES WRAPPER
--------------------------------------------------------- */

.jj-offers .jjo-editorial-services {
  margin-top: 1.6rem;

  /* border-top: 1px solid var(--line); */
}

/* ---------------------------------------------------------
   EINHEITLICHE LEISTUNGSZEILEN
--------------------------------------------------------- */

.jj-offers .jjo-editorial-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1.04fr)
    minmax(360px, 0.96fr);

  gap: clamp(3.5rem, 7vw, 7rem);

  align-items: start;

  padding: clamp(2.75rem, 4vw, 3.7rem) 0;

  border-bottom: 1px solid var(--line);
}

/* ---------------------------------------------------------
   LINKE SEITE
   LEISTUNG / AUSGANGSLAGE
--------------------------------------------------------- */

.jj-offers .jjo-editorial-story {
  min-width: 0;
}

/* Nummer + Zielgruppe */

.jj-offers .jjo-editorial-meta {
  display: flex;
  align-items: center;

  gap: 1rem;

  margin-bottom: 0.9rem;
}

.jj-offers .jjo-editorial-number {
  flex: 0 0 auto;

  min-width: 1.5rem;

  color: rgba(23, 79, 70, 0.55);

  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1;

  letter-spacing: 0.08em;
}

.jj-offers .jjo-editorial-kicker,
.jj-offers .jjo-editorial-small-label,
.jj-offers .jjo-editorial-aftercare-label {
  color: var(--green);

  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.35;

  letter-spacing: 0.11em;
  text-transform: uppercase;
}

/* Titel */

.jj-offers .jjo-editorial-title {
  max-width: 640px;

  margin: 0;

  color: var(--ink);

  font-family: var(--serif);
  font-size: clamp(2.15rem, 3vw, 3rem);
  font-weight: 600;
  line-height: 1.08;

  letter-spacing: -0.03em;
}

/* Beschreibung */

.jj-offers .jjo-editorial-copy {
  max-width: 610px;

  margin: 1rem 0 0;

  color: rgba(18, 18, 14, 0.8);

  font-family: var(--sans);
  font-size: 0.98rem;
  line-height: 1.68;
}

/* ---------------------------------------------------------
   RECHTE SEITE
   SCHWERPUNKTE + PREIS
--------------------------------------------------------- */

.jj-offers .jjo-editorial-details {
  min-width: 0;

  display: flex;
  flex-direction: column;

  gap: 1.65rem;
}

/* ---------------------------------------------------------
   SCHWERPUNKTE
--------------------------------------------------------- */

.jj-offers .jjo-editorial-scope {
  min-width: 0;
}

.jj-offers .jjo-editorial-list {
  display: grid;

  margin: 0.8rem 0 0;

  padding: 0;

  list-style: none;

  border-top: 1px solid rgba(221, 214, 204, 0.78);
}

.jj-offers .jjo-editorial-list li {
  display: grid;

  grid-template-columns:
    2rem
    minmax(0, 1fr);

  gap: 0.6rem;

  align-items: baseline;

  padding: 0.68rem 0;

  border-bottom: 1px solid rgba(221, 214, 204, 0.68);
}

.jj-offers .jjo-editorial-list li > span {
  color: var(--green);

  font-family: var(--sans);
  font-size: 0.66rem;
  font-weight: 600;
  line-height: 1.45;
}

.jj-offers .jjo-editorial-list p {
  margin: 0;

  color: var(--ink);

  font-family: var(--sans);
  font-size: 0.88rem;
  line-height: 1.48;
}

/* ---------------------------------------------------------
   PREIS
--------------------------------------------------------- */

.jj-offers .jjo-editorial-price-area {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 2rem;

  align-items: end;

  padding-top: 0.1rem;
}

.jj-offers .jjo-editorial-price-copy {
  min-width: 0;

  display: flex;
  flex-direction: column;

  align-items: flex-start;
}

.jj-offers .jjo-editorial-price {
  display: block;

  margin-top: 0.32rem;

  color: #173b37;

  font-family: var(--sans);
  font-size: clamp(2.5rem, 3.6vw, 3.4rem);
  font-weight: 400;
  line-height: 1;

  letter-spacing: -0.045em;
}

.jj-offers .jjo-editorial-price-note {
  max-width: 230px;

  margin-top: 0.55rem;

  color: rgba(18, 18, 14, 0.52);

  font-family: var(--sans);
  font-size: 0.72rem;
  line-height: 1.45;
}

/* ---------------------------------------------------------
   TEXT CTA
--------------------------------------------------------- */

.jj-offers .jjo-editorial-link {
  position: relative;

  width: fit-content;

  display: inline-flex;
  align-items: center;

  gap: 0.7rem;

  padding: 0 0 0.42rem;

  color: var(--green) !important;

  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;

  white-space: nowrap;
}

/* feine Linie unter CTA */

.jj-offers .jjo-editorial-link::after {
  content: "";

  position: absolute;

  right: 0;
  bottom: 0;
  left: 0;

  height: 1px;

  background: currentColor;

  transform: scaleX(0.38);
  transform-origin: left center;

  transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.jj-offers .jjo-editorial-link > span:last-child {
  display: inline-block;

  transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

@media (any-hover: hover) and (any-pointer: fine) {
  .jj-offers .jjo-editorial-link:hover::after {
    transform: scaleX(1);
  }

  .jj-offers .jjo-editorial-link:hover > span:last-child {
    transform: translateX(4px);
  }
}

.jj-offers .jjo-editorial-link:focus-visible {
  outline: 2px solid var(--green);

  outline-offset: 5px;
}

/* ---------------------------------------------------------
   FIGMA → WEBFLOW
--------------------------------------------------------- */

.jj-offers .jjo-editorial-tech {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 0.5rem;

  margin-top: 1.45rem;

  color: rgba(18, 18, 14, 0.48);

  font-family: var(--sans);
  font-size: 0.7rem;
  line-height: 1.4;
}

.jj-offers .jjo-editorial-tech img {
  width: 24px;
  height: 24px;

  object-fit: contain;
}

.jj-offers .jjo-editorial-tech img.is-webflow {
  padding: 4px;

  border-radius: 5px;

  background: #080808;
}

.jj-offers .jjo-editorial-tech-arrow {
  color: var(--ink);
}

.jj-offers .jjo-editorial-tech-label {
  margin-left: 0.1rem;
}

/* ---------------------------------------------------------
   AFTERCARE
--------------------------------------------------------- */

.jj-offers .jjo-editorial-aftercare {
  display: grid;

  grid-template-columns:
    minmax(180px, 0.38fr)
    minmax(0, 1fr);

  gap: clamp(2rem, 5vw, 5rem);

  align-items: start;

  padding: 1.65rem 0 0.4rem;
}

.jj-offers .jjo-editorial-aftercare p {
  max-width: 760px;

  margin: 0;

  color: rgba(18, 18, 14, 0.62);

  font-family: var(--sans);
  font-size: 0.88rem;
  line-height: 1.6;
}

.jj-offers .jjo-editorial-aftercare strong {
  color: var(--ink);

  font-weight: 600;
}

/* =========================================================
   TABLET
========================================================= */

@media screen and (max-width: 991px) {
  .jj-offers .jjo-editorial-row {
    grid-template-columns: 1fr;

    gap: 2rem;

    padding: 2.75rem 0;
  }

  .jj-offers .jjo-editorial-title {
    max-width: 720px;
  }

  .jj-offers .jjo-editorial-copy {
    max-width: 680px;
  }

  .jj-offers .jjo-editorial-details {
    max-width: 720px;
  }
}

/* =========================================================
   MOBILE
========================================================= */

@media screen and (max-width: 767px) {
  .jj-offers .jjo-editorial-services {
    margin-top: 1.25rem;
  }

  .jj-offers .jjo-editorial-row {
    gap: 1.75rem;

    padding: 2.35rem 0;
  }

  .jj-offers .jjo-editorial-title {
    font-size: clamp(2rem, 8vw, 2.6rem);
  }

  .jj-offers .jjo-editorial-copy {
    margin-top: 0.85rem;

    font-size: 0.94rem;
    line-height: 1.65;
  }

  .jj-offers .jjo-editorial-price-area {
    gap: 1.25rem;
  }

  .jj-offers .jjo-editorial-aftercare {
    grid-template-columns: 1fr;

    gap: 0.7rem;

    padding-top: 1.5rem;
  }
}

/* =========================================================
   SMALL MOBILE / 393PX
========================================================= */

@media screen and (max-width: 479px) {
  .jj-offers .jjo-editorial-meta {
    gap: 0.7rem;

    margin-bottom: 0.75rem;
  }

  .jj-offers .jjo-editorial-kicker,
  .jj-offers .jjo-editorial-small-label,
  .jj-offers .jjo-editorial-aftercare-label {
    font-size: 0.66rem;
  }

  .jj-offers .jjo-editorial-row {
    padding: 2.15rem 0;
  }

  .jj-offers .jjo-editorial-copy {
    font-size: 0.92rem;
  }

  .jj-offers .jjo-editorial-list p {
    font-size: 0.86rem;
  }

  .jj-offers .jjo-editorial-price-area {
    grid-template-columns: 1fr;

    gap: 1rem;
  }

  .jj-offers .jjo-editorial-price {
    font-size: 2.45rem;
  }

  .jj-offers .jjo-editorial-price-note {
    max-width: 260px;
  }

  .jj-offers .jjo-editorial-link {
    font-size: 0.84rem;
  }

  .jj-offers .jjo-editorial-tech-label {
    width: 100%;

    margin-left: 0;
    margin-top: 0.15rem;
  }

  .jj-offers .jjo-editorial-aftercare p {
    font-size: 0.84rem;
  }
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .jj-offers .jjo-editorial-link::after,
  .jj-offers .jjo-editorial-link > span:last-child {
    transition: none;
  }
}

/* =========================================================
   EXPERIMENT — STICKY SERVICES
   Nur Desktop
   ========================================================= */
/* 
@media screen and (min-width: 1100px) {
  .jj-offers .jjo-editorial-services {
    position: relative;
  }

  .jj-offers .jjo-editorial-row {
    position: sticky;

    top: 6.5rem;

    min-height: calc(100svh - 7.5rem);

    align-content: center;

    background: var(--paper, #f7f3ee);
  }

  .jj-offers .jjo-editorial-row:nth-child(1) {
    z-index: 1;
  }

  .jj-offers .jjo-editorial-row:nth-child(2) {
    z-index: 2;
  }

  .jj-offers .jjo-editorial-row:nth-child(3) {
    z-index: 3;
  }
} */

/* =========================================================
   REQUESTED LINK HOVERS — HOME / PROJECTS / SERVICES
   Subtle underline expansion, no vertical movement.
   ========================================================= */

/* Homepage: 3x "mehr erfahren" */
.page-home #leistungen .div-block-106 {
  position: relative;
  padding-bottom: 0.28rem;
  color: #173b37;
}

.page-home #leistungen .div-block-106 .p-cta-leistungen.lower-cta {
  text-decoration: none;
}

.page-home #leistungen .div-block-106::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 38%;
  height: 1px;
  background: currentColor;
  transition: width 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

/* Homepage: "Alle Projekte ansehen" */
.page-home .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding {
  position: relative;
  color: #173b37;
}

.page-home
  .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding
  .p-cta-btn.lower-prio-p {
  text-decoration: none;
}

.page-home
  .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 38%;
  height: 1px;
  background: currentColor;
  transition: width 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.page-home
  .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding
  .arrow-up {
  transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

/* Projekte: 4x "Website ansehen" */
.cta-btn-minor-importance {
  position: relative;
  padding-bottom: 0.32rem;
  color: #173b37;
}

.cta-btn-minor-importance .p-cta-btn.lower-prio-p {
  text-decoration: none;
}

.cta-btn-minor-importance::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 38%;
  height: 1px;
  background: currentColor;
  transition: width 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.cta-btn-minor-importance .arrow-up {
  transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

/* Leistungen: FAQ CTA uses the jj-services variables, not the jjo-offers variables. */
.jj-faq-closing .jjo-text-cta {
  color: var(--jj-green) !important;
  font-family: var(--jj-sans);
}

.jj-faq-closing .jjo-text-cta:focus-visible {
  outline-color: var(--jj-green);
}

@media (any-hover: hover) and (any-pointer: fine) {
  .page-home #leistungen .div-block-106:hover::after,
  .page-home
    .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding:hover::after,
  .cta-btn-minor-importance:hover::after {
    width: 100%;
  }

  .page-home
    .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding:hover
    .arrow-up,
  .cta-btn-minor-importance:hover .arrow-up {
    transform: translateX(4px) rotate(-45deg);
  }
}

.page-home #leistungen .div-block-106:focus-visible,
.page-home
  .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding:focus-visible,
.cta-btn-minor-importance:focus-visible {
  outline: 2px solid #174f46;
  outline-offset: 5px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .page-home #leistungen .div-block-106::after,
  .page-home
    .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding::after,
  .page-home
    .cta-btn.lower-prio-cta.cta-btn-lower-prio-cta-faq.no-padding
    .arrow-up,
  .cta-btn-minor-importance::after,
  .cta-btn-minor-importance .arrow-up,
  .jj-footer__portrait {
    transition: none;
  }
}

/* =========================================================
   SMALL MOBILE — UNDERLINE HARDENING
   ========================================================= */

@media screen and (max-width: 479px) {
  .p-cta-btn.lower-prio-p:not(.no-underline) {
    text-underline-offset: 0.18em;
    text-decoration-thickness: 1px;

    -webkit-text-decoration-skip-ink: auto;
    text-decoration-skip-ink: auto;

    line-height: 1.55;

    min-width: 0;
    max-width: 100%;

    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .cta-btn.lower-prio-cta,
  .cta-btn-lower-prio-hero .cta-hero-btn-1.is-relative {
    min-width: 0;
    max-width: 100%;
  }
}

/* =========================================================
   COOKIE — CONSENT BANNER
   ========================================================= */
.cookie-banner {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  z-index: 9999;

  width: min(520px, calc(100% - 32px));
  padding: 20px;

  background: #fff;
  border: 1px solid #d8d2cb;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.cookie-banner[hidden] {
  display: none;
}

.cookie-banner p {
  margin: 0 0 16px;
  line-height: 1.5;
}

.cookie-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.cookie-accept,
.cookie-decline {
  cursor: pointer;
  padding: 10px 16px;
  border-radius: 8px;
  font: inherit;
}

.cookie-accept {
  background: #16483f;
  color: #fff;
  border: 1px solid #16483f;
}

.cookie-decline {
  background: transparent;
  color: #16483f;
  border: 1px solid #16483f;
}

/* =========================================================
   HOMEPAGE HERO — MOBILE CSS-ONLY
   Portrait zuerst, danach Hero-Text
   Kein JavaScript erforderlich
========================================================= */

@media screen and (max-width: 767px) {
  /* -------------------------------------------------------
     1. BESTEHENDES PORTRAIT IN DEN NORMALEN FLOW HOLEN

     Das Element liegt im HTML bereits VOR .section-2.
     Dadurch erscheint mobil automatisch:

     Navigation
     Portrait
     Hero-Text
  ------------------------------------------------------- */

  .page-home .div-block-39.laptop-view {
    display: block !important;

    position: relative !important;
    inset: auto !important;

    width: 100%;
    height: 68svh;

    min-height: 480px;
    max-height: 680px;

    margin: 0;

    overflow: hidden;
    isolation: isolate;

    view-timeline-name: --jj-portrait;
    view-timeline-axis: block;
    background-color: #e5d8cf;

    z-index: 1;
  }

  /* -------------------------------------------------------
     2. PORTRAIT-BILD
  ------------------------------------------------------- */

  .page-home .div-block-39.laptop-view .image-3 {
    display: block;

    position: absolute !important;
    inset: 0 !important;

    z-index: 1;

    width: 100%;
    height: 100%;
    max-width: none;

    object-fit: cover;
    object-position: 68% 50%;

    /*
    Minimaler Ausgangs-Zoom:
    verhindert beim horizontalen Drift sichtbare Kanten
    und gibt dem Effekt etwas mehr Tiefe.
  */
    transform: translate3d(0, 0, 0) scale(1.025);
    transform-origin: 70% 50%;

    will-change: transform, opacity;
  }
  .page-home .div-block-39.laptop-view::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 2;

    pointer-events: none;

    /*
    Während das Portrait nach rechts geht,
    legt sich von links sehr subtil die Hero-Farbe darüber.
  */
    background: linear-gradient(
      90deg,
      rgba(229, 216, 207, 0.88) 0%,
      rgba(229, 216, 207, 0.52) 32%,
      rgba(229, 216, 207, 0.12) 68%,
      rgba(229, 216, 207, 0) 100%
    );

    opacity: 0;

    will-change: opacity;
  }

  /* -------------------------------------------------------
     3. ALTER DEKORATIVER HINTERGRUND

     Wird mobil nicht mehr benötigt.
  ------------------------------------------------------- */

  .page-home .div-block-38 {
    display: none !important;
  }

  /* -------------------------------------------------------
     4. HERO NICHT MEHR AUF 80svh BEGRENZEN
  ------------------------------------------------------- */

  .page-home .section-2 {
    height: auto !important;
    min-height: 0 !important;

    position: relative;

    overflow: visible;

    background-color: #e7ddd4;
  }

  .page-home .section-hero-wrapper {
    height: auto !important;

    padding-top: 1.75rem;
    padding-bottom: 2.5rem;
  }

  .page-home .div-block-6 {
    height: auto !important;
  }

  /* -------------------------------------------------------
     5. HERO-INHALT ETWAS KOMPAKTER
  ------------------------------------------------------- */

  .page-home .div-block-105 {
    gap: 2rem;
  }

  .page-home .div-block-9 {
    gap: 2rem;

    padding-top: 0;
  }

  /* -------------------------------------------------------
     6. HEADLINE MOBILE
  ------------------------------------------------------- */

  .page-home .heading-primary.h1-hero {
    font-size: clamp(2.5rem, 8vw, 3.1rem);
    line-height: 1.08;

    letter-spacing: -0.025em;
  }

  /* -------------------------------------------------------
     7. INTROTEXT

     Desktop bleibt bei 47 %.
     Mobil bekommt der Text fast die komplette Breite.
  ------------------------------------------------------- */

  .page-home .p-text-hero.p-fixed-with,
  .page-home .p-text-hero.p-text-limiter {
    width: 90% !important;
    max-width: 38rem;
  }

  .page-home .p-text-hero {
    font-size: 1rem;
    line-height: 1.6;
  }

  /* -------------------------------------------------------
     8. CTA
  ------------------------------------------------------- */

  .page-home .div-block-8 {
    position: relative;

    padding-top: 0;
  }
}

/* =========================================================
   PORTRAIT — PREMIUM HORIZONTAL EXIT

   Wichtig:
   Nicht mehr der komplette Bildcontainer bewegt sich.
   Nur das eigentliche Portrait gleitet nach rechts.
========================================================= */

@supports (animation-timeline: view()) {
  @media screen and (max-width: 767px) {
    .page-home .div-block-39.laptop-view .image-3 {
      animation-name: jj-mobile-portrait-image-exit;
      animation-duration: 1s;
      animation-timing-function: linear;
      animation-fill-mode: both;

      /*
        WICHTIG:
        Nicht mehr die Timeline des Bildes selbst,
        sondern die des stabilen Elterncontainers.
      */
      animation-timeline: --jj-portrait;

      /*
        Startet sobald das Portrait oben aus dem
        Viewport läuft und endet etwas vor dem
        vollständigen Verlassen.
      */
      animation-range: exit 0% exit 85%;
    }

    .page-home .div-block-39.laptop-view::after {
      animation-name: jj-mobile-portrait-fade;
      animation-duration: 1s;
      animation-timing-function: linear;
      animation-fill-mode: both;

      animation-timeline: --jj-portrait;
      animation-range: exit 0% exit 85%;
    }
  }
}

/* Portrait bewegt sich ausschließlich horizontal */

@keyframes jj-mobile-portrait-image-exit {
  from {
    transform: translate3d(0, 0, 0) scale(1.025);
    opacity: 1;
  }

  to {
    transform: translate3d(40%, 0, 0) scale(1.005);
    opacity: 0.12;
  }
}
/* Hero-Hintergrund blendet das Bild von links aus */

@keyframes jj-mobile-portrait-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
/* =========================================================
   SMALL MOBILE
========================================================= */

@media screen and (max-width: 479px) {
  .page-home .div-block-39.laptop-view {
    height: 66svh;

    min-height: 460px;
  }

  .page-home .section-hero-wrapper {
    padding-top: 1rem;
    padding-bottom: 2.25rem;
  }

  .page-home .p-text-hero.p-fixed-with,
  .page-home .p-text-hero.p-text-limiter {
    width: 90% !important;
  }
}

/* =========================================================
   REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {
  .page-home .div-block-39.laptop-view .image-3 {
    animation: none !important;

    transform: none !important;
    opacity: 1 !important;
  }

  .page-home .div-block-39.laptop-view::after {
    animation: none !important;
    opacity: 0 !important;
  }
}

/* =========================================================
   FINAL RESPONSIVE TYPOGRAPHY LAYER
   ---------------------------------------------------------
   Purpose:
   - Keep the existing desktop typography unchanged.
   - Scale the older/common Webflow type classes consistently
     at the standard 991 / 767 / 479px breakpoints.
   - Leave newer component systems (jjo-*, jj-*, jjt-*, jjg-*)
     untouched where they already have dedicated responsive type.
   ========================================================= */

@media screen and (max-width: 991px) {
  .heading-primary {
    font-size: 3.5rem;
  }

  .heading-primary.h1-hero {
    font-size: 3.3rem;
  }

  .heading-primary.h1-projects,
  .heading-primary.h1-contact {
    font-size: 2.85rem;
  }

  .heading-primary.h1-projablauf {
    font-size: 3rem;
  }

  .heading-secondary {
    font-size: 2.75rem;
  }

  .heading-tertiary {
    font-size: 2.25rem;
  }

  .heading-tertiary.h3-white {
    font-size: 1.85rem;
  }

  .heading-tertiary.h3-white.projektablauf {
    font-size: 1.65rem;
  }

  .p-text {
    font-size: 1.0625rem;
  }

  .p-text.p-text-white {
    font-size: 0.96rem;
  }

  .p-text.p-text-smaller {
    font-size: 0.84rem;
  }

  .p-eyebrow,
  .p-selbstcheck {
    font-size: 0.84rem;
  }

  .p-cta-btn,
  .p-cta-btn.lower-prio-p,
  .p-cta-btn.lower-prio-p.no-underline {
    font-size: 0.96rem;
  }

  .p-cta-btn.lower-prio-p.p-cta-projects,
  .p-cta-btn.p-cta-btn-smaller-prio,
  .p-cta-btn.p-lower {
    font-size: 0.84rem;
  }

  .p-cta-question {
    font-size: 1.0625rem;
  }

  .p-cta-answer {
    font-size: 0.96rem;
  }

  .p-text-hero {
    font-size: 1.15rem;
  }

  .p-text-hero-info {
    font-size: 0.96rem;
  }

  .p-text-hero-info.bigger-text {
    font-size: 1.35rem;
  }

  .p-text-projabl {
    font-size: 0.84rem;
  }

  .p-sub-text {
    font-size: 1rem;
  }

  .p-caption {
    font-size: 0.9rem;
  }

  .projects-ov-subheader {
    font-size: 1.12rem;
  }

  .p-projects-quote-text {
    font-size: 0.96rem;
  }

  .p-projects-quote-text.lower-prio {
    font-size: 0.84rem;
  }

  .nr-block-ablauf-text {
    font-size: 2.7rem;
  }

  .p-leistungen,
  .p-leistungen.p-price,
  .p-cta-leistungen {
    font-size: 0.84rem;
  }

  .p-price:not(.p-leistungen) {
    font-size: 1.9rem;
  }
}

@media screen and (max-width: 767px) {
  /* Fix a specificity leak from the 991px rule:
     .div-block-71.og-selbstcheck previously kept 2rem side padding,
     so the intended 1rem mobile padding on .div-block-71 never won. */
  .div-block-71.og-selbstcheck {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .heading-primary {
    font-size: 3.1rem;
  }

  .heading-primary.h1-projects,
  .heading-primary.h1-contact {
    font-size: 2.65rem;
  }

  .heading-primary.h1-projablauf {
    font-size: 2.85rem;
  }

  .heading-secondary {
    font-size: 2.5rem;
  }

  .heading-tertiary {
    font-size: 2.05rem;
  }

  .heading-tertiary.h3-white {
    font-size: 1.75rem;
  }

  .heading-tertiary.h3-white.projektablauf {
    font-size: 1.55rem;
  }

  .p-text {
    font-size: 1rem;
  }

  .p-text.p-text-white {
    font-size: 0.94rem;
  }

  .p-text.p-text-smaller {
    font-size: 0.82rem;
  }

  .p-eyebrow,
  .p-selbstcheck {
    font-size: 0.8rem;
  }

  .p-cta-btn,
  .p-cta-btn.lower-prio-p,
  .p-cta-btn.lower-prio-p.no-underline {
    font-size: 0.92rem;
  }

  .p-cta-btn.lower-prio-p.p-cta-projects,
  .p-cta-btn.p-cta-btn-smaller-prio,
  .p-cta-btn.p-lower {
    font-size: 0.81rem;
  }

  .p-cta-question {
    font-size: 1rem;
  }

  .p-cta-answer {
    font-size: 0.92rem;
  }

  .p-text-hero {
    font-size: 1.05rem;
  }

  .p-text-hero-info {
    font-size: 0.92rem;
  }

  .p-text-hero-info.bigger-text {
    font-size: 1.25rem;
  }

  .p-text-projabl {
    font-size: 0.8rem;
  }

  .p-sub-text {
    font-size: 0.94rem;
  }

  .p-caption {
    font-size: 0.86rem;
  }

  .projects-ov-subheader {
    font-size: 1.08rem;
  }

  .p-projects-quote-text {
    font-size: 0.92rem;
  }

  .p-projects-quote-text.lower-prio {
    font-size: 0.8rem;
  }

  .nr-block-ablauf-text {
    font-size: 2.5rem;
  }

  .p-leistungen,
  .p-leistungen.p-price {
    font-size: 0.8rem;
  }

  .p-cta-leistungen {
    font-size: 0.82rem;
  }

  .p-price:not(.p-leistungen) {
    font-size: 1.75rem;
  }

  .jj-footer__link,
  .jj-footer__cookie,
  .jj-footer__contact-link,
  .jj-footer__cta {
    font-size: 0.92rem;
  }
}

@media screen and (max-width: 479px) {
  /* Give final CTA rows the full card width on narrow phones.
     At 80% the CTA text could wrap by only a few pixels. */
  .div-block-77 {
    width: 100%;
  }

  .heading-primary {
    font-size: 2.75rem;
  }

  .heading-primary.h1-projects,
  .heading-primary.h1-contact {
    font-size: 2.4rem;
  }

  .heading-primary.h1-projablauf {
    font-size: 2.55rem;
  }

  .heading-secondary {
    font-size: 2.25rem;
  }

  .heading-tertiary {
    font-size: 1.85rem;
  }

  .heading-tertiary.h3-white {
    font-size: 1.6rem;
  }

  .heading-tertiary.h3-white.projektablauf {
    font-size: 1.45rem;
  }

  .p-text {
    font-size: 0.94rem;
  }

  .p-text.p-text-white {
    font-size: 0.9rem;
  }

  .p-text.p-text-smaller {
    font-size: 0.8rem;
  }

  .p-eyebrow,
  .p-selbstcheck {
    font-size: 0.75rem;
  }

  .p-cta-btn,
  .p-cta-btn.lower-prio-p,
  .p-cta-btn.lower-prio-p.no-underline {
    font-size: 0.88rem;
  }

  .p-cta-btn.lower-prio-p.p-cta-projects,
  .p-cta-btn.p-cta-btn-smaller-prio,
  .p-cta-btn.p-lower {
    font-size: 0.78rem;
  }

  .p-cta-question {
    font-size: 0.94rem;
  }

  .p-cta-answer {
    font-size: 0.88rem;
  }

  .p-text-hero {
    font-size: 0.95rem;
  }

  .p-text-hero-info {
    font-size: 0.88rem;
  }

  .p-text-hero-info.bigger-text {
    font-size: 1.15rem;
  }

  .p-text-projabl {
    font-size: 0.78rem;
  }

  .p-sub-text {
    font-size: 0.9rem;
  }

  .p-caption {
    font-size: 0.82rem;
  }

  .projects-ov-subheader {
    font-size: 1rem;
  }

  .p-projects-quote-text {
    font-size: 0.88rem;
  }

  .p-projects-quote-text.lower-prio {
    font-size: 0.76rem;
  }

  .nr-block-ablauf-text {
    font-size: 2.25rem;
  }

  .p-leistungen,
  .p-leistungen.p-price {
    font-size: 0.78rem;
  }

  .p-cta-leistungen {
    font-size: 0.8rem;
  }

  .p-price:not(.p-leistungen) {
    font-size: 1.65rem;
  }

  .jj-footer__link,
  .jj-footer__cookie,
  .jj-footer__contact-link,
  .jj-footer__cta {
    font-size: 0.88rem;
  }
}
/* Mobile FAQ answer: let the opened answer use the full card width,
   from the FAQ number on the left to the icon edge on the right. */
@media screen and (max-width: 479px) {
  .cta-faq-box:not(.cta-projabl-faq-box) {
    grid-template-columns: auto minmax(0, 1fr);
    row-gap: 0.5rem;
  }

  .cta-faq-box:not(.cta-projabl-faq-box) > .div-block-51 {
    display: contents;
  }

  .cta-faq-box:not(.cta-projabl-faq-box) > .cta-faq-number {
    grid-column: 1;
    grid-row: 1;
  }

  .cta-faq-box:not(.cta-projabl-faq-box) > .div-block-51 > .div-block-52 {
    grid-column: 2;
    grid-row: 1;
    padding-right: 1rem;
  }

  .cta-faq-box:not(.cta-projabl-faq-box) > .div-block-51 > .div-p-cta-answer {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100% !important;
    padding-right: 1rem;
  }

  .cta-faq-box:not(.cta-projabl-faq-box) .p-cta-answer {
    padding-left: 0;
    padding-right: 0;
    transform: none;
  }
}

/* Mobile FAQ: grüner Aktiv-Strich wie bei den Leistungs-FAQs */
@media screen and (max-width: 479px) {
  .cta-faq-box:not(.cta-projabl-faq-box) {
    position: relative;
    overflow: hidden;
  }

  .cta-faq-box:not(.cta-projabl-faq-box)::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 2px;
    background-color: #1e362a;

    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.25s ease;
  }

  .cta-faq-box:not(.cta-projabl-faq-box).is-faq-open::before {
    transform: scaleY(1);
  }
}

/* Projektablauf FAQ – grüner Strich im geöffneten Zustand */
.cta-projabl-faq-box {
  position: relative;
  overflow: hidden;
}

.cta-projabl-faq-box::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;

  background: #174f46;

  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.25s ease;
}

.cta-projabl-faq-box.is-faq-open::before {
  transform: scaleY(1);
}
/* =========================================================
   MANUELLE MOBILE RESPONSIVE ANPASSUNGEN JJ
========================================================= */

@media screen and (max-width: 479px) {
  .leistungen-box {
    padding: 1.25rem;
  }

  .cta-leistungen-wrapper {
    grid-column-gap: 30rem;
  }

  .page-home .cta-leistungen {
    width: auto;
  }

  .home-services-included__item {
    padding: 1rem 0;
  }

  .home-services-included__number {
    display: none;
  }

  .project-gallery-card {
    padding: 0.25rem;
  }

  .cta-grid-12 .cta-faq-box {
    grid-column-gap: 1rem;
    padding: 0.5rem;
  }

  .cta-grid-12 .cta-faq-number {
    font-size: 0.88rem;
    margin: 0;
  }

  .cta-grid-12 .cta-faq-icon {
    margin-top: 0rem;
  }

  /* selbstcheck box */
  .p-text.p-text-white {
    text-align: center;
  }

  /* -----------------------
    PROJEKTE.HTML
     -----------------------*/
  .p-projects-quote {
    font-size: 1.4rem;
  }

  .div-block-71 .heading-tertiary.h3-white {
    font-size: 1.5rem;
    text-align: center;
  }

  /* -----------------------
        PROJEKTABLAUF.HTML
         -----------------------*/
  .cta-box-selbstcheck.projabl-cta-final-box {
    grid-row-gap: 1rem;
  }
  .div-block-51 {
    grid-row-gap: 0.5rem;
  }
}
