/* ==========================================================================
   Antrophy – Startseite
   components.css · Komponenten- und Sektions-Styles
   Werte 1:1 aus der Webflow-Vorlage übernommen, Variablen bereinigt.
   ========================================================================== */

.flex-col {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.flex-row {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.container-large {
  width: 100%;
  max-width: 85rem;
  margin-left: auto;
  margin-right: auto;
}

.container-large.vertical-flex {
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  max-width: 90rem;
  display: flex;
}

.container-large.up-4rem {
  margin-top: 4rem;
}

.container-large.up-8rem {
  margin-top: 8rem;
}

.container-large._95 {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  max-width: 80rem;
  display: flex;
}

.h3-l {
  font-size: var(--h3-l);
}

.heading-3-s {
  font-size: var(--h3-s);
}

.text-align-center {
  text-align: center;
}

.text-size-s {
  font-size: var(--text-s);
}

.text-weight-600 {
  font-weight: var(--fw-600);
}

.page-padding {
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.page-padding.hero-custom {
  justify-content: space-between;
  align-items: center;
}

.page-padding.relative {
  z-index: 1;
  position: relative;
}

.eyebrow-text {
  color: var(--text-secondary);
  font-size: 16px;
  font-weight: var(--fw-400);
  text-align: left;
  text-transform: uppercase;
}

.eyebrow-text.text-grey-bright {
  color: var(--text-grey-bright);
}

.eyebrow-text.gold {
  color: var(--brand-gold);
}

.headline-wrapper {
  grid-column-gap: 2.5rem;
  grid-row-gap: 1.75rem;       /* Eyebrow ↔ Heading ↔ Subtext kompakter (war 2.5rem) */
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 70%;
  display: flex;
}

.headline-wrapper.centered {
  justify-content: flex-start;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

/* H2 in zentrierten Headline-Wrappern auch im Text zentrieren (umgebrochene
   Zeilen waren sonst linksbündig, z. B. "Drei Bausteine. Ein System.") */
.headline-wrapper.centered h2 {
  text-align: center;
}

.headline-wrapper.width-70 {
  width: 70%;
}

.headline-wrapper.width-100 {
  width: 100%;
}

.headline-wrapper.hero {
  grid-column-gap: 2.75rem;
  grid-row-gap: 1.75rem;       /* war 2.75rem */
  width: 40%;
}

.headline-wrapper.gap-2rem {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
}

.section-hero-hp {
  justify-content: center;
  align-items: center;
  min-height: 100vh;          /* füllt hohe Screens; wächst bei viel Inhalt mit */
  padding-top: 7rem;          /* Navbar (6rem) freihalten → kein Overlap des Eyebrows
                                 mit dem Logo auf flachen 13"-Screens */
  padding-bottom: 3rem;
  box-sizing: border-box;
  display: flex;
  position: relative;
}
/* Desktop-Orbit etwas tiefer (war zu hoch, weil er nur mit dem Headline-Block
   zentriert; die Avatar-Box darunter zieht die optische Mitte nach unten) */
.hero-desktop-only {
  transform: translateY(48px);
}

/* Hero-H1 zeilenweise: jede Zeile als eigener Block (ersetzt die früheren <br>). */
.hero-h1-line {
  display: block;
}
/* Bis die Headline-Schrift (Source Serif) geladen ist, bleiben die Zeilen
   unsichtbar – so blitzt der fettere Serif-Fallback nicht auf. main.js setzt
   .fonts-ready, sobald die Schrift da ist, und die Zeilen faden gestaffelt ein.
   Ohne JS (.js-anim fehlt) sind die Zeilen normal sichtbar. */
.js-anim .hero-h1 .hero-h1-line {
  opacity: 0;
}
.js-anim .hero-h1.fonts-ready .hero-h1-line {
  animation: heroH1LineIn 1.1s ease forwards;
}
.js-anim .hero-h1.fonts-ready .hero-h1-line:nth-child(2) { animation-delay: 0.55s; }
.js-anim .hero-h1.fonts-ready .hero-h1-line:nth-child(3) { animation-delay: 1.1s; }
@keyframes heroH1LineIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-h1 .hero-h1-line { opacity: 1; animation: none; }
}

.button-logo {
  width: 32px;
}

.primary-button {
  background-color: var(--brand-primary);
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  padding: .25rem .5rem .25rem .25rem;
  font-size: 16px;
  text-decoration: none;
  transition: all .2s;
  display: flex;
}

.button-icon-wrapper {
  background-color: #fff;
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  width: 55px;
  height: 55px;
  flex: 0 0 auto;
  display: flex;
}

.button-text-wrapper {
  justify-content: center;
  align-items: center;
  padding-left: 1rem;
  padding-right: 1rem;
  display: flex;
}

.text-span-2 {
  color: var(--text-grey);
}

.avatars-wrapper {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  border: 1.5px solid var(--brand-primary);
  border-radius: 1000px;
  justify-content: flex-start;
  align-items: center;
  padding: 1.5rem 1.5rem 1.5rem 1rem;
  display: inline-flex;
}

.avatars-wrapper.white-stroke {
  border-color: var(--white);
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

.avatars-wrapper.hero-avatars {
  margin-top: 4rem;
  padding-right: 2rem;
}

.avatars-wrapper-inner-small {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  display: flex;
}

.avatar-hero {
  width: 65px;
  height: 65px;
}

.vertical-line {
  background-color: var(--brand-primary);
  width: 1.5px;
  height: 65px;
}

.vertical-line.light-blue {
  background-color: var(--black);
  opacity: .3;
  background-image: none;
}

.vertical-line.white {
  background-color: var(--white);
}

.section-problem {
  background-color: var(--bg-secondary);
  padding-top: 8rem;          /* mehr Abstand vom Hero zur "Das kennt ihr"-Section */
  padding-bottom: 9rem;
}

.text-centered {
  text-align: center;
}

.about-us-grid-wrapper {
  margin-top: 3rem;
  margin-left: auto;
  margin-right: auto;
}

.problem-grid {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  margin-top: 6rem;
  margin-bottom: 6rem;
  display: grid;
}

.outline-box {
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
  border: 1.5px solid var(--brand-primary);
  border-radius: var(--radius-m);
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 2rem;
  display: flex;
}

.outline-box.dark {
  border-style: none;
  border-color: var(--neutral-dark);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: #00000017;
  justify-content: center;
  align-items: flex-start;
  position: relative;
}

.section-services {
  background-color: var(--white);
  padding-top: 7rem;
  padding-bottom: 0;
}

.section-automation {
  border-bottom-left-radius: var(--radius-full);
  border-bottom-right-radius: var(--radius-full);
  background-color: #1d2025;
  padding-top: 4rem; /* Ausgleich: oben mehr Luft → Abstand zum Trichter wie unten */
  padding-bottom: 8rem;
  position: relative;
  overflow: hidden;
}
/* Hintergrund-Glow (aus dem CRM-Kreis) – leuchtet beim Reinscrollen auf */
.section-automation::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(75% 55% at 50% 20%, rgba(159, 175, 205, 0.14), rgba(29, 32, 37, 0) 72%);
  pointer-events: none;
}
/* Scroll-getrieben: glow-scene.js setzt --glow-opacity (0→1) je Scrollposition.
   Ohne JS bleibt der Glow statisch sichtbar. */
.js-anim .section-automation::before {
  opacity: var(--glow-opacity, 0);
  transition: opacity 0.2s ease-out;
}
/* Zusätzlicher Glow am unteren Rand (#9FAFCD @ .4) – steigt aus der Unterkante
   auf und erscheint ebenfalls erst beim Reinscrollen in den Result-Teil. */
.section-automation::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(85% 70% at 50% 105%, rgba(159, 175, 205, 0.4), rgba(29, 32, 37, 0) 72%);
  pointer-events: none;
}
.js-anim .section-automation::after {
  opacity: var(--glow-opacity, 0);
  transition: opacity 0.2s ease-out;
}

.text-color-white {
  color: var(--white);
}

.text-color-white.heading-3-s {
  line-height: 140%;
}

.text-color-white.z-index {
  z-index: 5;
  position: relative;
}

.v-flex {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.v-flex.leistungen-card-inner {
  grid-column-gap: 2.5rem;
  grid-row-gap: 2.5rem;
  border-top: 1px solid var(--neutral-lighter);
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  padding-top: 2.5rem;
}

.v-flex.quote-client {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
}

.v-flex.cta-avatar {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  justify-content: flex-start;
  align-items: center;
}

.v-flex.faq-header {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  justify-content: space-between;
  align-items: flex-start;
}

.v-flex.headline-wrapper-inner {
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
}

.v-flex.vertrauen-aufbauen {
  justify-content: flex-start;
  align-items: center;
}

.v-flex.faq-headline {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
}

.v-flex.accordions-wrapper {
  justify-content: space-between;
  align-items: flex-start;
}

.text-color-grey-bright {
  color: var(--text-grey-bright);
}

.avatars-wrapper-inner-left {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.section-leistungen {
  background-color: var(--bg-secondary);
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.leistungen-cards-wrapper {
  grid-column-gap: var(--gap-xl);
  grid-row-gap: var(--gap-xl);
  flex-flow: column;
  width: 100%;
  max-width: 100%;
  margin-top: 6rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

.leistungen-card {
  border-radius: var(--radius-m);
  background-color: var(--white);
  width: 100%;
  display: flex;
}

.leistungen-card-left {
  grid-column-gap: var(--gap-xxl);
  grid-row-gap: var(--gap-xxl);
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  width: 65%;
  padding: 3.5rem;
  display: flex;
}

.horizontal-line {
  background-color: var(--neutral-lightest);
  width: 100%;
  height: 1px;
  min-height: 1px;
  max-height: 1px;
}

.horizontal-line._50--wide, .horizontal-line.hero-section {
  display: none;
}

.horizontal-flex {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.horizontal-flex.tags-wrapper {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  flex-flow: wrap;
}

.horizontal-flex.logos-wrapper {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
}

.horizontal-flex.quote-avatar {
  width: 100%;
}

.horizontal-flex.tags-wrapper-vertrauen {
  grid-column-gap: var(--gap-xl);
  grid-row-gap: var(--gap-xl);
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 3rem;
}

.horizontal-flex.sales-process {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  justify-content: space-between;
  align-items: center;
  margin-top: 2rem;
}

.tag-bubble {
  border: 1px solid var(--brand-primary);
  line-height: var(--lh-100);
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  padding: .7rem 1.4rem;
  display: flex;
}

.tag-bubble.inner-1rem {
  padding-left: 1rem;
  padding-right: 1rem;
}

.tag-bubble.big {
  padding: .75rem 2.1rem;
}

.tag-bubble.big.same-size {
  width: 180px;
  padding-left: .5rem;
  padding-right: .5rem;
}

.tag-text {
  font-family: var(--font-primary);
  font-size: var(--text-m);
}

.tools-logo {
  object-fit: contain;
  width: auto;
  height: 22px;
}

.tools-logo.smaller {
  height: 20px;
}

.leistungen-right {
  width: 35%;
  position: relative;
}

.case-study-grid {
  z-index: 1;
  box-sizing: border-box;
  grid-column-gap: 6rem;
  grid-row-gap: 2rem;
  object-fit: fill;
  flex: 1;
  grid-template-rows: 100%;
  grid-template-columns: .7fr 1fr;
  grid-auto-columns: 1fr;
  grid-auto-flow: row;
  align-content: space-between;
  place-items: center stretch;
  width: 100%;
  height: 100%;
  display: grid;
  position: relative;
}

.case-study-tags-wrapper {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: wrap;
  margin-top: 1rem;
  display: flex;
}

.case-study-gradient {
  z-index: -1;
  width: 100%;
  height: 100%;
  position: absolute;
}

.flex-vertical-left-top-3 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  padding: 0;
  display: flex;
}

.section-portfolio {
  border-radius: var(--radius-full);
  background-color: #1d2025;
  padding: 8rem 0;
  overflow: hidden;            /* CI-Hintergrundkreise innerhalb der Sektion kappen → kein horizontaler Overflow */
}

.case-studies-wrapper {
  grid-column-gap: var(--gap-xl);
  grid-row-gap: 2.5rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  padding-top: 10rem;
  padding-bottom: 10rem;
  display: flex;
  position: relative;
}

.case-study-mockup {
  object-fit: contain;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 24px 42px rgba(0, 0, 0, 0.45));
}

.tag-case-study-wrapper {
  border: 1px solid #fff;
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  padding: .4rem 1.75rem;
  display: flex;
}

.case-study-image-mobile {
  width: 100%;
  height: 100%;
  display: none;
}

/* Auf Desktop ausgeblendet (schlägt .case-study-mockups display:flex via höherer
   Spezifität); auf Mobil per ≤991px-Regel wieder eingeblendet. */
.case-study-image-mobile.case-study-mockups {
  display: none;
}

.case-study-image-mobile.tablet-on {
  display: none;
}

.tag-case-study {
  color: #fff;
  font-size: var(--text-s);
}

.section-cta {
  background-color: var(--bg-secondary);
  padding-top: 5rem;
  padding-bottom: 8rem;
}

.cta-wrapper {
  border-radius: var(--radius-m);
  background-image: url('../images/cta.avif');
  background-position: 50%;
  background-size: cover;
  padding: 4.5rem 2.5rem;
}

/* ==========================================================================
   Kontaktformular (in der CTA-Kachel) – Versand via FormSubmit, mit Honeypot
   ========================================================================== */
.contact-form {
  width: 100%;
  max-width: 720px;
  margin: 4.5rem auto 0;
  text-align: left;
  flex-flow: column;
  gap: var(--gap-l);
  padding: 2.75rem;
  background-color: #fff;
  border-radius: var(--radius-m);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.07);   /* leichter Schatten → hervorgehoben */
  display: flex;
}
.form-row {
  grid-column-gap: 3.5rem;
  grid-row-gap: var(--gap-l);
  grid-template-columns: 1fr 1fr;
  display: grid;
}
.form-field {
  flex-flow: column;
  display: flex;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  color: var(--brand-primary);
  font-family: inherit;
  font-size: var(--text-m);
  background-color: transparent;
  border: 0;
  border-bottom: 1px solid var(--brand-primary);
  border-radius: 0;
  padding: .7rem 0;
  transition: border-color .15s;
}
.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: rgba(0, 0, 0, .45);
}
/* Beim Fokus verschwindet der Placeholder einfach */
.contact-form input:focus::placeholder,
.contact-form textarea:focus::placeholder {
  color: transparent;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-bottom-color: var(--brand-primary);
}
.contact-form select {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%23000000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right .25rem center;
  padding-right: 2rem;
}
/* Platzhalter-Option grau, gewählte Option dunkel */
.contact-form select:invalid {
  color: rgba(0, 0, 0, .4);
}
.contact-form select option {
  color: var(--brand-primary);
}
.contact-form textarea {
  min-height: 120px;
  resize: vertical;
}
.form-consent {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  color: rgba(0, 0, 0, .6);
  font-size: var(--text-s);
  line-height: 1.4;
}
.form-consent input {
  -webkit-appearance: none;
  appearance: none;
  flex: 0 0 auto;
  width: 1.4rem;
  height: 1.4rem;
  margin-top: .05rem;
  padding: 0;
  border: 1px solid var(--brand-primary);
  border-radius: 5px;
  background-color: transparent;
  cursor: pointer;
}
.form-consent input:checked {
  background-color: var(--brand-primary);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12.5L10 17.5L19 7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 72%;
}
.form-consent input:focus-visible {
  outline: 2px solid rgba(0, 0, 0, .4);
  outline-offset: 2px;
}
.form-consent a {
  color: var(--brand-primary);
  text-decoration: underline;
}
/* Honeypot – für Menschen unsichtbar, nicht fokussierbar */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.contact-submit {
  align-self: flex-start;
  margin-top: .25rem;
  font: inherit;
  border: 0;
  cursor: pointer;
}
.contact-submit:disabled {
  opacity: .6;
  cursor: default;
}
.form-status {
  min-height: 1.2em;
  margin-top: .25rem;
  font-size: var(--text-s);
}
.form-status.is-success {
  color: var(--text-success);
}
.form-status.is-error {
  color: var(--text-error);
}

.section-who-we-are {
  background-color: var(--bg-secondary);
  padding-top: 8rem;
  padding-bottom: 5rem;
}

.who-we-are-grid {
  grid-column-gap: 8rem;
  grid-row-gap: 8rem;
  grid-template-rows: auto;
  grid-template-columns: 1.25fr 1fr;
  grid-auto-columns: 1fr;
  align-content: end;
  width: 100%;
  display: grid;
}

.text-span-3 {
  color: var(--text-grey);
}

.who-we-are-img-wrapper {
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  height: 100%;
  display: flex;
}

.who-we-are-img-wrapper.mobile-only {
  display: none;
}

.who-we-are-img {
  border-radius: var(--radius-l);
  vertical-align: baseline;
  object-fit: cover;
  min-width: 100%;
}

.who-we-are-cards-wrapper {
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  margin-top: 6rem;
  display: grid;
}

.who-we-are-card {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  border: 1px solid var(--brand-primary);
  border-radius: var(--radius-m);
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 2rem;
  display: flex;
}

.quote-link-wrapper {
  z-index: 2;
  width: 100%;
  font-size: var(--text-s);
  flex-flow: column;
  align-items: flex-start;
  gap: var(--gap-l);
  display: flex;
  position: relative;
}
/* Zitat + KPI: eine Reihe, vertikal zueinander zentriert */
.quote-kpi-row {
  width: 100%;
  grid-column-gap: 6rem;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  display: grid;
}

/* Linke Spalte: Link (oben, zwischen Bubbles & Zitat) + Zitat-Box darunter */
.quote-col {
  grid-row-gap: var(--gap-l);
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-start;
  display: flex;
}

/* KPI-Box rechts unten: 3 Kennzahlen pro Projekt */
.kpi-box {
  background-color: transparent;
  grid-template-columns: repeat(3, 1fr);
  grid-column-gap: 2.5rem;
  width: 100%;
  padding: 0;
  display: grid;
}
.kpi-item {
  grid-row-gap: .5rem;
  flex-flow: column;
  align-items: flex-start;
  padding: 0;
  display: flex;
}
.kpi-value {
  color: rgba(255, 255, 255, .8);
  font-size: var(--h3-xl);
  font-weight: var(--fw-500);
  line-height: var(--lh-s);
}
/* Verbindungspfeil in KPI-Werten (z. B. „Stripe ↔ HubSpot") deutlich kleiner */
.kpi-value .kpi-arrow {
  font-size: 0.5em;
  font-weight: var(--fw-400);
  vertical-align: middle;
  margin: 0 0.35em;
  color: rgba(255, 255, 255, .55);
}
.kpi-label {
  color: var(--text-grey);
  font-size: var(--text-m);
  font-weight: var(--fw-300);
  line-height: 1.35;
}

.quote-box {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  border-radius: var(--radius-m);
  background-color: #fff3;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin: 0;
  padding: 2rem;
  display: flex;
}

.avatar-img {
  width: 65px;
  min-width: 65px;
  height: 65px;
  min-height: 65px;
}

.text-client-name {
  color: var(--text-grey);
  font-size: var(--text-s);
  font-weight: var(--fw-600);
}

.text-client-role {
  color: var(--text-grey);
  font-size: var(--text-s);
  font-weight: var(--fw-300);
}

.case-study-links {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0.75rem 2.5rem;
}

.case-study-link {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  justify-content: flex-start;
  align-items: center;
  text-decoration: none;
  display: inline-flex;
}

.case-study-link-text {
  color: var(--text-grey);
  text-decoration: none;
}

.btn-arrow {
  object-fit: contain;
  width: 14px;
  height: 14px;
}

.btn-arrow.crm-arrow-mobile {
  display: none;
}

.btn-arrow.left {
  opacity: 0;
  position: absolute;
  left: 0%;
}

.cta-1-wrapper {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  margin-top: 12rem;
  display: flex;
}

.facts-wrapper {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  border: 1px solid var(--brand-primary);
  border-radius: 10000px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  width: 80%;
  margin-top: 3rem;
  padding: 4.5rem 2.5rem;
  display: grid;
  position: relative;
}

.facts-inner-w {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

/* Dunkle Variante der Fakten-Pill (Sektion „Was ihr bekommt") – gleiche Struktur
   wie die helle Pill, für dunklen Grund nur mit weißer Outline (CI-konform),
   ohne Füllfarbe. Button schwebt oben auf der oberen Kante (.absolute). */
.facts-wrapper.dark {
  border-color: var(--white);
  margin-top: 8rem;        /* ACHTUNG Margin-Collapse mit problem-grid (mb 6rem):
                              effektiver Abstand = max(6rem, hier). Nur Werte > 6rem
                              wirken. Button ragt ~32px über die Kante. */
  margin-left: auto;
  margin-right: auto;
}

.ai-automation-wrapper {
  z-index: 1;
  grid-column-gap: var(--gap-xxl);
  grid-row-gap: var(--gap-xxl);
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: 1.25fr 1fr;
  grid-auto-columns: 1fr;
  align-content: center;
  padding-top: 7rem;
  padding-bottom: 7rem;
  display: flex;
  position: relative;
}

.ai-automation-img-wrapper {
  width: 45%;
  height: 500px;
  display: flex;
}

.ai-automation-img {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  object-fit: cover;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  height: 100%;
}

.accordion-body__contents {
  opacity: 1;
  margin-top: 12px;
}
/* Inline-Links im Accordion-Text dezent als Link kennzeichnen (sonst nicht vom
   Fließtext unterscheidbar). */
.accordion-body__contents a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(0, 0, 0, .35);
  transition: text-decoration-color .2s ease;
}
.accordion-body__contents a:hover {
  text-decoration-color: currentColor;
}

.accordion-body__contents.more-top-padding {
  color: #666;
  margin-top: 24px;
}

.accordion-header.mobile-flex-h.js-accordion-header {
  cursor: pointer;
  cursor: pointer;
  cursor: pointer;
  justify-content: space-between;
  align-items: flex-start;
}

.about-accordions-wrapper {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  flex-flow: column;
  width: 100%;
  margin-top: 3rem;
  display: flex;
}

.faq-question-text {
  flex: 1;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 26px;
  font-weight: 600;
}

.accordion__item.js-accordion-item {
  background-color: #fff0;
  border-bottom-color: #eee;
  border-left: 1.5px #000;
  padding: 2.5rem 0 1.5rem .5rem;
}

.services-flow-wrapper {
  z-index: 1;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  padding-top: 7rem;
  padding-bottom: 7rem;
  display: flex;
  position: relative;
}

.big-number {
  font-family: var(--font-primary);
  color: #b2b2b2;
  letter-spacing: 1px;
  font-size: 28px;
  font-weight: 200;
}

.sales-process-bg {
  z-index: -1;
  opacity: .3;
  object-fit: fill;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

/* Funnel-Umriss (nur Tablet/Mobil, sonst aus) – gerade Wände (CSS) + zulaufender
   SVG-Boden, per Flexbox verbunden. */
.funnel {
  display: none;
}
.funnel-cone path {
  fill: none;
  stroke: rgba(0, 0, 0, .3);
  stroke-width: 1.5px;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
}

.crm-cricle-wrapper {
  justify-content: center;
  align-items: center;
  width: 650px;
  height: 650px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
  position: relative;
}

.crm-cricle {
  z-index: 20;
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  border-radius: 10000px;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 550px;
  height: 550px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.crm-circle-abs-s {
  z-index: 1;
  border: 1px solid #959595;
  border-radius: 1000px;
  width: 600px;
  height: 600px;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  inset: auto 0%;
}

.crm-circle-abs-m {
  background-color: var(--white);
  border: 1px solid #c3c3c3;
  border-radius: 1000px;
  width: 650px;
  height: 650px;
  position: absolute;
  inset: auto;
}

.secondary-button {
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  justify-content: flex-start;
  align-items: center;
  text-decoration: none;
  display: inline-flex;
  position: relative;
}

.footer {
  aspect-ratio: auto;
  background-color: var(--bg-alt);
  border-top-left-radius: 150px;
  border-top-right-radius: 150px;
  padding-top: 5rem;
  padding-bottom: 5rem;
  position: relative;
  overflow: hidden;
}

.footer-gradient {
  z-index: -1;
  width: 65%;
  display: inline-block;
  position: absolute;
  inset: auto 0% -165%;
}

.footer-grid {
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
  grid-template-rows: auto;
  grid-template-columns: 1fr .75fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.footer-links-grid {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.footer-links-inner {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.footer-link {
  font-family: var(--font-primary);
  color: var(--bg-grey);
  font-size: var(--text-m);
  text-decoration: none;
}
.footer .linkedin {
  width: auto;
  height: 34px;
}

.hero-main-wrapper {
  justify-content: space-between;
  align-items: center;
  width: 100%;
  display: flex;
}

.hero-logo-inner-circle {
  z-index: 1;
  border: 1px solid var(--neutral-light);
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  width: 275px;
  height: 275px;
  display: block;
  position: relative;
}

.hero-logo-box {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
  border-radius: var(--radius-s);
  background-color: #eee;
  background-image: linear-gradient(#edf0f9, #ececed);
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 70px;
  height: 70px;
  display: flex;
  position: relative;
  box-shadow: 4px 5px 5px #0000001a;
}

/* FOUC vermeiden: Solange JS aktiv ist (.js-anim, im <head> gesetzt), bleiben die
   Orbit-Boxen unsichtbar, bis main.js sie auf den Kreis gesetzt hat (.orbit-ready).
   So blitzt nie die gestapelte Fluss-Anordnung auf. Ohne JS bleiben sie sichtbar. */
.js-anim .hero-animation-wrapper:not(.orbit-ready) .hero-logo-box,
.js-anim .hero-animation-wrapper:not(.orbit-ready) .hero-logo-box-sm {
  opacity: 0;
}

.logo-hero {
  object-fit: contain;
  max-width: 32px;
  height: 25px;
}

.code-embed {
  display: none;
}

.hero-logo-box-middle {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  background-color: transparent;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 70px;
  height: 70px;
  display: flex;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
/* Antrophy-Icon in der Mitte etwas größer als die übrigen Logos */
.hero-logo-box-middle .logo-hero {
  max-width: 50px;
  height: 39px;
}

.navbar-wrapper {
  flex-flow: row;
  grid-template-rows: auto;
  grid-template-columns: .5fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  min-width: 100%;
  display: flex;
}

.nav-link {
  font-family: var(--font-secondary);
  color: #fff;
  padding-top: 2px;
  padding-bottom: 2px;
  font-size: 34px;
  font-weight: 500;
  line-height: 1.15;
  text-decoration: none;
  transition: color .2s;
}

.nav-link:hover {
  color: var(--brand-gold);
}

.nav-link.hide {
  display: none;
}

/* Hamburger-Menü: CTA-Box (Anton & Philipp + Button + LinkedIn) */
.menu-cta {
  display: flex;
  flex-flow: column;
  align-items: flex-start;
  gap: var(--gap-l);
  width: 100%;
  max-width: 360px;
  padding-top: 2.5rem;
  border-top: 1px solid #ffffff24;
}
.menu-cta-people {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.menu-cta-avatars {
  align-items: center;
}
.menu-cta-avatars .cta-avatar:not(:first-child) {
  margin-left: -14px;
}
.menu-cta .avatar-img {
  width: 48px;
  min-width: 48px;
  height: 48px;
  min-height: 48px;
  border-radius: 50%;
  border: 2px solid #1d2025;
}
.menu-cta-text {
  color: var(--text-grey-bright);
  font-size: var(--text-s);
  line-height: 1.4;
}
.menu-cta-btn {
  align-self: flex-start;
  gap: .5rem;
  padding-right: 1.25rem;
}
.menu-linkedin {
  margin-top: 1.25rem;
}
.menu-linkedin .linkedin {
  width: auto;
  height: 38px;
}

.navbar-bg {
  z-index: -1;
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  background-color: transparent;
  width: 100%;
  height: 100%;
  position: fixed;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .5s ease, visibility .5s ease;
}
.navbar-bg.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hamburger-icon-wrapper {
  z-index: 1001;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  height: 17px;
  display: flex;
  position: relative;
}

.navbar-logo-wrapper {
  z-index: 40;
  width: 220px;
  display: inline-block;
}

.hamburger-middle-line-desktop {
  background-color: #000;
  border-radius: 2px;
  width: 2.5rem;
  height: 2px;
  display: none;
}

.navbar-logo {
  width: auto;
  max-width: 100%;
}

.hamburger-top-line {
  background-color: #000;
  border-radius: 2px;
  width: 2.5rem;
  height: 2px;
}

.mobile-menu--2 {
  grid-column-gap: 4rem;
  grid-row-gap: 4rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}

.hamburger-nav-menu {
  z-index: 90;
  background-image: linear-gradient(to bottom, var(--brand-primary), var(--brand-primary));
  width: 55%;
  height: 100%;
  min-height: 100vh;
  padding: 6rem 2rem 2rem 4rem;
  display: none;
  position: fixed;
  inset: 0% 0% 0% auto;
  overflow: hidden;
  box-shadow: -40px 30px 30px #0000001a;
}

.navbar-cstm {
  z-index: 1000;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 6rem;
  display: flex;
  position: absolute;
  inset: 0% 0% auto;
}

.mobile-menu {
  border: 2px #000;
  justify-content: center;
  align-items: center;
  display: flex;
}

.social-media-icons-flex {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: center;
  align-items: flex-end;
  padding: 0;
  display: flex;
}

.hamburger-bottom-line {
  background-color: #000;
  border-radius: 2px;
  width: 2.525rem;
  height: 2px;
}

.navbar-links-wrapper {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  color: #000;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
}

.hero-logo-outer-circle {
  z-index: 0;
  background-image: url('../images/outer-circle-hero.svg');
  background-position: 50%;
  background-size: cover;
  justify-content: center;
  align-items: center;
  width: 560px;
  height: 560px;
  position: relative;
  inset: auto;
}

.hero-outter-circle-img {
  width: 100%;
  height: 100%;
  display: none;
}

.hero-logo-box-sm {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
  width: 60px;
  height: 60px;
  box-shadow: none;
  background-color: #eee;
  background-image: linear-gradient(#edf0f9, #ececed);
  border-radius: 10px;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
  inset: 0% auto auto 0%;
}

.logo-hero-sm {
  object-fit: contain;
  max-width: 28px;
  height: 24px;
}

.hero-tools-names {
  color: var(--brand-primary);
  text-align: center;
  letter-spacing: 0;
  text-transform: none;
  font-size: 10px;
  line-height: 100%;
}

.navbar-opened-gradient {
  position: absolute;
  inset: auto -24% -30% auto;
  z-index: 0;
  pointer-events: none;
}

.button-icon-wrapper-dark {
  background-color: var(--brand-primary);
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  width: 45px;
  height: 45px;
  flex: 0 0 auto;
  display: flex;
}

.tools-logos-wrapper {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.tools-logos-wrapper.tags-wrapper {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
}

.tools-logos-wrapper.logos-wrapper {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
}

.tools-logos-wrapper.quote-avatar {
  width: 100%;
}

.tools-logos-wrapper.tags-wrapper-vertrauen {
  grid-column-gap: var(--gap-xl);
  grid-row-gap: var(--gap-xl);
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 3rem;
}

.tools-logos-wrapper.sales-process {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  justify-content: space-between;
  align-items: center;
  margin-top: 3rem;
}

.services-tags-wrapper {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.services-tags-wrapper.tags-wrapper {
  grid-column-gap: var(--gap-xs);
  grid-row-gap: var(--gap-xs);
  flex-flow: wrap;
}

.services-tags-wrapper.logos-wrapper {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
}

.services-tags-wrapper.quote-avatar {
  width: 100%;
}

.services-tags-wrapper.tags-wrapper-vertrauen {
  grid-column-gap: var(--gap-xl);
  grid-row-gap: var(--gap-xl);
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 3rem;
}

.services-tags-wrapper.sales-process {
  grid-column-gap: var(--gap-m);
  grid-row-gap: var(--gap-m);
  justify-content: space-between;
  align-items: center;
  margin-top: 3rem;
}

.leistungen-gradient-img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.ai-animation-wrapper {
  position: static;
  inset: 0% 10% 0% auto;
}

.ai-animation-code {
  display: block;
}

.hero-animation-wrapper {
  justify-content: center;
  align-items: center;
  width: 560px;
  height: 560px;
  display: flex;
  position: relative;
}

.hero-inner-circle-wrapper, .hero-outer-circle-wrapper {
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  inset: 0%;
}

.headline-wrapper-process {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.headline-wrapper-process.centered {
  justify-content: flex-start;
  align-items: center;
  width: 70%;
  margin-left: auto;
  margin-right: auto;
}

.headline-wrapper-process.width-70 {
  width: 70%;
}

.headline-wrapper-process.width-100 {
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
  width: 100%;
}

.headline-wrapper-process.hero {
  grid-column-gap: 2.75rem;
  grid-row-gap: 2.75rem;
  width: 40%;
}

.tag-bubble-wrapper {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  margin-top: 2rem;
}

.tag-wrapper-vertrauen {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  margin-top: 2rem;
}

/* Vertrauen-Tags: Desktop/Tablet gestapelt (<br>), Phone inline mit Bullet (•).
   Default = Phone-Varianten ausgeblendet. */
.vt-sep,
.vt-phone {
  display: none;
}

.arrow-flex {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  justify-content: flex-start;
  align-items: flex-start;
}
/* Pfeil oben, auf Höhe der ersten Textzeile zentriert */
.arrow-flex .box-arrow {
  margin-top: 4px;
}
/* Überschrift im Card-Pfeil enger setzen */
.arrow-flex .text-weight-600 {
  line-height: 1.3;
}

.box-arrow {
  object-fit: contain;
  width: 14px;
  height: 14px;
}

.box-arrow.crm-arrow-mobile {
  display: none;
}

.box-arrow.left {
  opacity: 0;
  position: absolute;
  left: 0%;
}

.service-process-wrapper {
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  margin-top: 4rem;
  position: relative;
}

.vertrauen-flex {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: flex-start;
  align-items: center;
}

.bubble-process {
  border: 1px solid var(--brand-primary);
  width: 180px;
  line-height: var(--lh-100);
  border-radius: 1000px;
  justify-content: center;
  align-items: center;
  padding: .7rem .5rem;
  display: flex;
}

.bubble-process.inner-1rem {
  padding-left: 1rem;
  padding-right: 1rem;
}

.bubble-process.big {
  padding: .75rem 2.1rem;
}

.bubble-process.big.same-size {
  width: 180px;
  padding-left: .5rem;
  padding-right: .5rem;
}

.process-headings {
  font-size: 46px;
  font-weight: var(--fw-500);
}

.triangle-dot-line {
  opacity: .3;
  object-fit: fill;
  height: 100px;
}

.dot-line-overflow {
  height: 100%;
  overflow: hidden;
}

.dot-line-height {
  height: 100px;
}

.connect-line-height {
  background-color: var(--neutral-lighter);
  width: 1.5px;
  height: 75px;
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.arrow-overflow {
  height: 100%;
  overflow: hidden;
}

.arrow-height {
  height: 80px;
}

.arrow-line {
  opacity: .3;
  height: 80px;
}

.result-wrapper {
  z-index: 2;
  width: 100%;
  max-width: 90rem;
  margin-top: 4rem; /* Ausgleich: unten weniger → Abstand zur Eyebrow wie oben zum Trichter */
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.result-wrapper.vertical-flex {
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  max-width: 90rem;
  display: flex;
}

.result-wrapper.up-4rem {
  margin-top: 4rem;
}

.result-wrapper.up-8rem {
  margin-top: 8rem;
}

.result-wrapper._95 {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  max-width: 80rem;
  display: flex;
}

.ai-anim-text {
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
}

.headline-wrapper-in-box {
  grid-column-gap: 1.75rem;
  grid-row-gap: 1.75rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 75%;
  display: flex;
}

.headline-wrapper-in-box.centered {
  justify-content: flex-start;
  align-items: center;
  width: 70%;
  margin-left: auto;
  margin-right: auto;
}

.headline-wrapper-in-box.width-70 {
  width: 70%;
}

.headline-wrapper-in-box.width-100 {
  width: 100%;
}

.headline-wrapper-in-box.hero {
  grid-column-gap: 2.75rem;
  grid-row-gap: 2.75rem;
  width: 40%;
}

.headline-wrapper-in-box.gap-2rem {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
}

.contrast-dot {
  background-image: linear-gradient(270deg, #0000, var(--brand-gold) 79%, #fff0);
  border-radius: 100px;
  width: 120px;
  height: 1px;
  display: none;
}

.contrast-dot._2 {
  background-image: linear-gradient(270deg, #0000, var(--brand-gold) 54%, #fff0);
}

.contrast-dot._3 {
  background-image: linear-gradient(270deg, #0000, var(--brand-gold) 27%, #fff0);
}

.founders-names {
  font-size: var(--text-s);
}

.problem-grid-top {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  margin-top: 5rem;
  display: grid;
}

.h3-xl {
  font-size: var(--h3-xl);
  line-height: var(--lh-s);
}

.gap-1-5rem {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
}

.crm-animation {
  background-color: var(--white);
  padding-top: 2rem;
  position: sticky;
}

.scroll-track {
  height: 200vh;
}

.crm-box.dark {
  border-style: none;
  border-color: var(--neutral-dark);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: #00000017;
  justify-content: center;
  align-items: flex-start;
  position: relative;
}

.crm-cricle-bg {
  z-index: 18;
  background-color: #1d2025;
  border-radius: 10000px;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 550px;
  height: 550px;
  position: absolute;
  overflow: hidden;
}

.crm-anim-box {
  z-index: 30;
  grid-column-gap: var(--gap-l);
  grid-row-gap: var(--gap-l);
  border-radius: var(--radius-m);
  background-color: #1d2025;
  background-image: radial-gradient(circle farthest-corner at 0% 100%, #9fafcd33, var(--bg-primary));
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 30%;
  padding: 0 0 3rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

.crm-anim-box.dark {
  border-style: none;
  border-color: var(--neutral-dark);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: #00000017;
  justify-content: center;
  align-items: flex-start;
  position: relative;
}

.crm-anim-box.left {
  top: -150px;
}

.crm-anim-box.middle {
  background-image: radial-gradient(circle farthest-corner at 0% 100%, #9fafcd33, var(--bg-primary));
}

.crm-anim-box.right {
  top: -150px;
}

.crm-boxes-flex {
  justify-content: space-between;
  max-width: 90rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  top: -100px;
}

.animation-content {
  width: 100%;
  position: sticky;
  top: 0;
  overflow: hidden;
}

.crm-bg-img {
  z-index: 2;
  width: 550px;
  height: 550px;
  position: absolute;
  inset: 0%;
}

.crm-box-text {
  grid-column-gap: var(--gap-s);
  grid-row-gap: var(--gap-s);
  padding-left: 2rem;
  padding-right: 2.5rem;
}

.js-accordion-header {
  justify-content: space-between;
  width: 100%;
  display: flex;
}

.js-accordion-item {
  border-bottom: 1px solid var(--neutral-light);
  width: 100%;
  padding-bottom: 1.5rem;
}

.js-accordion-icon-plus {
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  margin-top: 8px;
  display: flex;
  position: relative;
}

.js-icon-line-vertical {
  background-color: var(--brand-primary);
  width: 1.5px;
  height: 100%;
  position: absolute;
}

.js-icon-line-horizontal {
  background-color: var(--brand-primary);
  width: 100%;
  height: 1.5px;
  position: absolute;
}

.case-study-card-bg-1 {
  z-index: 0;
  background-image: radial-gradient(circle, var(--circle-1, #f0b60c4d), #0000 60%);
  border-radius: 50%;
  width: 1200px;
  height: 1200px;
  position: absolute;
  inset: -22% auto auto -14%;
}

.case-study-card-bg-2 {
  z-index: 0;
  background-image: radial-gradient(circle, var(--circle-2, #b1fbff4d), #0000 60%);
  border-radius: 50%;
  width: 1200px;
  height: 1200px;
  position: absolute;
  inset: auto -14% -20% auto;
}

.anim-text-fadein {
  color: var(--white);
}

/* Abschlusssatz am Ende der Referenzen-Section (gleiche Char-Reveal-Animation) */
.references-outro {
  z-index: 1;
  max-width: 95%;
  margin: 7rem auto;
  padding: 0 1rem;
  position: relative;
}

/* ==========================================================================
   Rechtsseiten (impressum.html / datenschutz.html)
   ========================================================================== */
.legal-header {
  background-color: #1d2025;
  padding: 1.25rem 0;
}
.legal-header .navbar-logo-wrapper {
  width: 190px;
  display: inline-block;
}
.legal-section {
  background-color: var(--bg-secondary);
  padding: 10rem 0 7rem;
}
.legal-wrapper {
  max-width: 50rem;
  margin: 0 auto;
}
.legal-wrapper h1 {
  color: var(--brand-primary);
  font-size: var(--h1-s);
  letter-spacing: -1px;
  margin-bottom: 1.5rem;
}
.legal-wrapper h2 {
  color: var(--brand-primary);
  font-size: var(--text-l);
  margin-top: 2.5rem;
  margin-bottom: .5rem;
}
.legal-wrapper p,
.legal-wrapper address {
  color: var(--text-secondary);
  font-size: var(--text-m);
  font-style: normal;
  line-height: 1.7;
  margin-bottom: 1rem;
}
.legal-wrapper a {
  color: #2e6bd6;
  text-decoration: underline;
}
.legal-wrapper strong {
  color: var(--brand-primary);
}
.legal-back {
  display: inline-block;
  margin-top: 3rem;
  color: #2e6bd6;
  font-weight: var(--fw-500);
  text-decoration: none;
}
.legal-back:hover {
  text-decoration: underline;
}

.crm-lottie-animation {
  min-width: 100%;
}

.text-color-blue {
  color: #9fafcd;
}

.case-study-image-wrapper-desktop {
  width: 100%;
  height: 100%;
  margin-top: 3rem;
}

.case-study-image-wrapper-desktop.tablet-on {
  display: none;
}

/* Mockup-Komposition: Desktop hinten rechts, Phone vorne links überlappend */
.case-study-mockups {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.mockup-desktop {
  width: 86%;
  height: auto;
}
.mockup-phone {
  position: absolute;
  left: -7%;
  bottom: 6%;
  z-index: 2;
  width: 31%;
  height: auto;
  filter: drop-shadow(0 22px 34px rgba(0, 0, 0, 0.55));
}
/* Phone fadet beim Reinscrollen von unten herein */
.js-anim .mockup-phone {
  opacity: 0;
  transform: translateY(60px);
  transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-anim .mockup-phone.in-view {
  opacity: 1;
  transform: none;
}

.footer-headings {
  color: var(--white);
}

.footer-headings.heading-3-s {
  line-height: 140%;
}

.footer-headings.z-index {
  z-index: 5;
  position: relative;
}

.hero-tablet {
  display: none;
}
/* ==========================================================================
   CRM-Szene – gepinnte Scroll-Animation (Rebuild der Webflow-Hauptanimation)
   Ablauf beim Scrollen: der dunkle Kreis wächst, bis er den weißen Hintergrund
   füllt (Ringe faden weg) → danach erscheinen die drei Kacheln versetzt.
   Gesteuert von js/crm-scene.js. Ohne JS / bei reduzierter Bewegung bleibt
   die Sektion ein statisches, lesbares Layout.
   ========================================================================== */
.crm-animation {
  position: relative;
  background-color: var(--white);
  padding: 0;
}

.scroll-track {
  position: relative;
  height: auto;
}

.animation-content {
  position: static;
  overflow: hidden;
}

/* Versatz der Kacheln (links/rechts höher, Mitte tiefer) – wie im Original */
.crm-anim-box.left,
.crm-anim-box.right {
  top: -150px;
}

.crm-boxes-flex {
  top: 0;
  margin-top: 3rem;
}

/* ---- Aktive Szene: nur mit JS, erlaubter Bewegung UND ab Desktop (≥992px).
   Auf Mobil greift stattdessen das stapelnde Webflow-Responsive-Layout. ---- */
@media (min-width: 992px) {
.js-anim .scroll-track {
  height: 220vh;
}
.js-anim .animation-content {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.js-anim .crm-cricle-wrapper {
  flex: none;
  margin-top: 7vh;
}
.js-anim .crm-cricle-bg {
  will-change: transform;
}
.js-anim .crm-boxes-flex {
  position: absolute;
  top: auto;            /* WICHTIG: sonst spannt top:0 + bottom den Container voll auf */
  bottom: 6vh;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 90rem;
  margin: 0;
  padding: 0 1.5rem;
  align-items: flex-start;
  z-index: 40;          /* über den wachsenden Kreis (z-index 18) heben –
                           sonst verdeckt der Kreis die Kacheln */
}
.js-anim .crm-anim-box {
  opacity: 0;
  will-change: transform, opacity;
}
} /* /@media min-width 992 – CRM-Szene */

/* ==========================================================================
   Accordion ("Wer wir sind") – ersetzt die jQuery-Variante aus dem Export
   ========================================================================== */
.js-accordion-header {
  cursor: pointer;
  align-items: flex-start;
}

.js-accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.js-icon-line-vertical {
  transition: height 0.3s ease;
}

.js-accordion-item.active .js-icon-line-vertical {
  height: 0;
}

/* ==========================================================================
   Hamburger-Menü – Zustände (ersetzt die Inline-Styles aus dem Export)
   ========================================================================== */
.hamburger-icon-wrapper {
  width: 2.5rem;
  cursor: pointer;
}

.hamburger-top-line,
.hamburger-bottom-line {
  transition: transform 0.2s ease, background-color 0.2s ease;
  transform-origin: center;
}

.hamburger-icon-wrapper.active .hamburger-top-line {
  transform: translateY(7px) rotate(45deg);
  background-color: var(--white);
}

.hamburger-icon-wrapper.active .hamburger-bottom-line {
  transform: translateY(-8px) rotate(-45deg);
  background-color: var(--white);
}

.hamburger-nav-menu {
  opacity: 0;
  transition: opacity 0.2s ease;
}

.hamburger-nav-menu.active {
  display: block;
  opacity: 1;
}

/* --- Aufbau-Animation beim Öffnen (nur mit JS / ohne reduzierte Bewegung) ---
   Panel wächst per Kreis-Clip aus der oberen rechten Ecke (am Button),
   Menüpunkte + CTA staffeln sich danach von rechts ein. */
.js-anim .hamburger-nav-menu.active {
  animation: menu-reveal .85s cubic-bezier(.5, 0, .15, 1) both;
}
/* Schließen: eigene Keyframe (zieht sich nach oben rechts zurück) */
.js-anim .hamburger-nav-menu.active.closing {
  animation: menu-conceal .7s cubic-bezier(.5, 0, .15, 1) both;
}
@keyframes menu-reveal {
  from {
    clip-path: circle(0% at var(--mox, calc(100% - 2.5rem)) var(--moy, 2.75rem));
  }
  to {
    clip-path: circle(175% at var(--mox, calc(100% - 2.5rem)) var(--moy, 2.75rem));
  }
}
@keyframes menu-conceal {
  from {
    clip-path: circle(175% at var(--mox, calc(100% - 2.5rem)) var(--moy, 2.75rem));
  }
  to {
    clip-path: circle(0% at var(--mox, calc(100% - 2.5rem)) var(--moy, 2.75rem));
  }
}
.js-anim .hamburger-nav-menu.active .nav-link,
.js-anim .hamburger-nav-menu.active .menu-cta {
  animation: menu-item-in .6s cubic-bezier(.33, 1, .68, 1) both;
}
@keyframes menu-item-in {
  from {
    opacity: 0;
    transform: translateX(26px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.js-anim .hamburger-nav-menu.active .nav-link:nth-child(1) { animation-delay: .28s; }
.js-anim .hamburger-nav-menu.active .nav-link:nth-child(2) { animation-delay: .36s; }
.js-anim .hamburger-nav-menu.active .nav-link:nth-child(3) { animation-delay: .44s; }
.js-anim .hamburger-nav-menu.active .nav-link:nth-child(4) { animation-delay: .52s; }
.js-anim .hamburger-nav-menu.active .nav-link:nth-child(5) { animation-delay: .60s; }
.js-anim .hamburger-nav-menu.active .menu-cta { animation-delay: .70s; }

/* ==========================================================================
   Button-Varianten – lesbare Modifier statt Webflow "w-variant-*"
   ========================================================================== */
.primary-button.white-bg {
  background-color: var(--white);
}

.primary-button.white-bg .button-text-wrapper p {
  color: var(--brand-primary);
}

.primary-button.absolute {
  display: inline-flex;
  position: absolute;
  inset: 0% auto auto 50%;
  transform: translate(-50%, -32px);
}

/* ==========================================================================
   "AI & Automation"-Trennlinie (war im Export ein Inline-Embed)
   ========================================================================== */
.custom-ai-wrapper {
  position: relative;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 500px;
}

/* Zwei echte Liniensegmente – die Lücke entsteht durch das Label dazwischen */
.custom-ai-line {
  width: 2px;
  flex: 1 1 auto;
  min-height: 0;
}
.custom-ai-line--top {
  background: linear-gradient(to bottom, transparent 0%, #f1a58e 45%, #f1a58e 100%);
}
.custom-ai-line--bottom {
  background: linear-gradient(to bottom, #f1a58e 0%, #f1a58e 55%, transparent 100%);
}

.custom-ai-text {
  flex: 0 0 auto;
  color: #fff;
  font-size: 1.75rem;
  font-weight: 200;
  letter-spacing: 0.02em;
  line-height: 30px;
  padding: 24px 16px;
  white-space: nowrap;
}

/* Zeichen-Animation: oben zuerst, dann unten – nur mit JS / ohne reduzierte Bewegung */
.js-anim .custom-ai-line--top {
  animation: growLineTop 7s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.js-anim .custom-ai-line--bottom {
  animation: growLineBottom 7s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes growLineTop {
  0%   { clip-path: inset(0% 0% 100% 0%); opacity: 0; }
  5%   { opacity: 1; }
  40%  { clip-path: inset(0% 0% 0% 0%); opacity: 1; }
  88%  { clip-path: inset(0% 0% 0% 0%); opacity: 1; }
  97%  { clip-path: inset(0% 0% 0% 0%); opacity: 0; }
  100% { clip-path: inset(0% 0% 100% 0%); opacity: 0; }
}
@keyframes growLineBottom {
  0%   { clip-path: inset(0% 0% 100% 0%); opacity: 0; }
  35%  { clip-path: inset(0% 0% 100% 0%); opacity: 0; }
  40%  { opacity: 1; }
  75%  { clip-path: inset(0% 0% 0% 0%); opacity: 1; }
  88%  { clip-path: inset(0% 0% 0% 0%); opacity: 1; }
  97%  { clip-path: inset(0% 0% 0% 0%); opacity: 0; }
  100% { clip-path: inset(0% 0% 100% 0%); opacity: 0; }
}

/* ==========================================================================
   Animationen – Rebuild der Webflow-IX2-Interaktionen (ohne GSAP)
   Aktiv nur, wenn JS läuft und der Nutzer keine reduzierte Bewegung wünscht
   (Klasse .js-anim wird im <head> gesetzt → kein Flash unanimierter Inhalte).
   ========================================================================== */

/* --- Scroll-Reveal: Inhalte faden + gleiten herein ----------------------- */
.js-anim .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
  will-change: opacity, transform;
}
.js-anim .reveal.in-view {
  opacity: 1;
  transform: none;
}

/* --- Scroll-Scrub: Prozess-Sequenz (Punktlinie → 01 → Linie → 02 → 03 → Pfeil)
   Startzustände; die Werte treibt js/scroll-scene.js live per Scrollposition.
   Bewusst ohne transition – die Bewegung hängt am Scrollen, nicht an der Zeit. */
.js-anim .service-process-wrapper .big-number {
  opacity: 0;
}
/* Vollflächige Linien (Verbindungslinien) wachsen via scaleY – kein Bild, keine Verzerrung */
.js-anim .service-process-wrapper .connect-line-height {
  transform: scaleY(0);
  transform-origin: top center;
}
/* Punktlinie & Pfeil sind BILDER → über die Wrapper-Höhe aufdecken (Wipe),
   damit das Bild in voller Größe sichtbar wird statt gequetscht (wie Webflow). */
.js-anim .service-process-wrapper .dot-line-overflow,
.js-anim .service-process-wrapper .arrow-overflow {
  height: 0;
}

/* --- Hover-Microinteractions (Pfeil-Nudge, Button-Lift) ------------------ */
.box-arrow,
.btn-arrow {
  transition: transform 0.2s ease;
}
.outline-box:hover .box-arrow {
  transform: translateX(8px);
}
.secondary-button:hover .btn-arrow.right {
  transform: translateX(8px);
}
.case-study-link:hover .btn-arrow {
  transform: translate(4px, -4px);
}
/* Button-Hover: Icon im Kreis rotiert nach vorne (+360°) –
   gilt für alle primären Buttons (Hero, AI-Sektion, CTA, Facts). */
.primary-button .button-logo {
  transition: transform 0.45s ease;
}
.primary-button:hover .button-logo {
  transform: rotate(360deg);
}
.footer-link {
  transition: color 0.2s ease;
}
.footer-link:hover {
  color: var(--white);
}

/* ==========================================================================
   Text-Reveal ".anim-text-fadein" – Buchstaben-Einblendung beim Scrollen
   (Rebuild von Webflows splitText-Animation; Werte treibt js/text-reveal.js)
   ========================================================================== */
.js-anim .anim-text-fadein .char {
  opacity: 0;
}

/* ==========================================================================
   RESPONSIVE – Home-Seite (home.html)
   Reflow-Regeln 1:1 aus dem Webflow-Original übernommen (Breakpoints
   991 / 767 / 479), Variablen & Flex-Utilities wie beim Desktop bereinigt.
   ========================================================================== */
@media screen and (min-width: 1920px) {
  body {
    --radius-button: 12px;
        --radius-m: 20px;
        --radius-full: 250px;
        --radius-l: 30px;
        --radius-s: 15px;
  }
}

@media screen and (max-width: 991px) {
  body {
    --radius-button: 12px;
        --radius-m: 20px;
        --radius-full: 80px;
        --radius-l: 30px;
        --radius-s: 15px;
        --font-primary: "Inter CST", Arial, sans-serif;
        --text-m: 16px;
        --lh-l: 170%;
        --fw-400: 400;
        --font-secondary: "Sourceserif CSTM", Georgia, sans-serif;
        --h1-m: 52px;
        --lh-s: 120%;
        --fw-600: 600;
        --h2-m: 46px;
        --h3-m: 36px;
        --lh-m: 130%;
        --text-s: 14px;
        --h1-s: 34px;
        --fw-700: 700;
        --h1-l: 44px;
        --h2-l: 30px;
        --h2-s: 30px;
        --h3-l: 30px;
        --h3-s: 30px;
        --text-l: 20px;
        --text-xl: 22px;
        --fw-500: 500;
        --fw-300: 300;
        --button-text: var(--text-m);
        --lh-100: 100%;
        --h3-xl: 30px;
        --text-xxs: 10px;
        --text-xs: 12px;
        --button-text-weight: var(--fw-500);
        --gap-m: 1.5rem;
        --gap-l: 2rem;
        --gap-xl: 3rem;
        --gap-xs: .5rem;
        --gap-s: 1rem;
        --gap-xxl: 4rem;
  }
  .text-align-center.tablet-left {
    text-align: left;
  }
  .page-padding.overflow-hidden {
    overflow: hidden;
  }
  .eyebrow-text {
    text-align: center;
  }
  .eyebrow-text.tablet-left {
    text-align: left;
  }
  .headline-wrapper {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
        width: 100%;
  }
  .headline-wrapper.centered {
    width: 100%;
  }
  .headline-wrapper.centered.tablet-left {
    grid-column-gap: 1.5rem;
        grid-row-gap: 1.5rem;
        justify-content: flex-start;
        align-items: flex-start;
  }
  .headline-wrapper.width-70 {
    width: 100%;
  }
  .headline-wrapper.hero {
    width: 100%;
        display: flex;
  }
  .section-hero-hp {
    height: auto;
        padding-top: 7rem;
        padding-right: 0;
  }
  .primary-button:where(.w-variant-9a5c9f0c-980d-ed54-ea18-359a6e5587d7) {
    font-size: 14px;
  }
  .avatars-wrapper.white-stroke {
    flex-flow: column;
        display: flex;
  }
  .avatars-wrapper.hero-avatars {
    width: 100%;
  }
  .section-problem {
    padding-top: 6rem;
        padding-bottom: 6rem;
  }
  .problem-grid {
    flex-flow: column;
        margin-top: 4rem;
        display: flex;
  }
  .outline-box {
    padding: 2rem;
  }
  .section-services {
    z-index: 0;
        padding-top: 6rem;
        position: relative;
  }
  .section-automation {
    padding-top: 4rem;
        padding-bottom: 4rem;
  }
  .text-color-grey-bright.text-centered-on-mobile {
    text-align: center;
  }
  .avatars-wrapper-inner-left {
    flex-flow: row;
  }
  .section-leistungen {
    padding-top: 4rem;
        padding-bottom: 4rem;
        overflow: hidden;
  }
  .leistungen-cards-wrapper {
    margin-top: 4rem;
  }
  .leistungen-card {
    flex-flow: column;
  }
  .leistungen-card-left {
    width: 100%;
        align-items: center;
        text-align: center;
        padding-top: 3rem;        /* Animation → Eyebrow (oben) */
        padding-bottom: 3rem;     /* Logos → Kachelrand (unten) */
        grid-row-gap: 2.5rem;     /* Text-Block → Trennlinie */
        row-gap: 2.5rem;
  }
  /* Inhalt zentrieren; Text-Block-Abstände (Eyebrow→H3→Text) auf Original (1.75rem) lassen */
  .leistungen-card-left .headline-wrapper-in-box {
    align-items: center;
  }
  .leistungen-card-left .leistungen-card-inner {
    align-items: center;
        grid-row-gap: 2.5rem;     /* Tags → Logos */
        row-gap: 2.5rem;
        padding-top: 2.5rem;      /* Trennlinie → Tags */
  }
  .leistungen-card-left .services-tags-wrapper,
  .leistungen-card-left .tools-logos-wrapper {
    justify-content: center;
  }
  /* Abstand zwischen den (kleineren) Tool-Logos – Spalten-Gap klein genug,
     damit 5 Logos in eine Reihe passen; horizontaler Abstand kommt v.a. aus
     der breiteren 37px-Box. Zeilen-Gap großzügiger. */
  .leistungen-card-left .tools-logos-wrapper {
    column-gap: 0.5rem;
    row-gap: 1.5rem;
  }
  .horizontal-flex.tags-wrapper-vertrauen {
    grid-column-gap: var(--gap-m);
        grid-row-gap: var(--gap-m);
  }
  .tag-bubble {
    padding-left: 1.5rem;
        padding-right: 1.5rem;
  }
  .leistungen-right {
    display: none;
  }
  .case-study-grid {
    grid-template-rows: 1fr;
        grid-template-columns: 1fr;
        place-items: start stretch;
  }
  .flex-vertical-left-top-3 {
    padding-top: 0;
        padding-left: 0;
        padding-right: 0;
  }
  .section-portfolio {
    border-radius: 110px;
        padding-top: 6rem;
        padding-bottom: 6rem;
  }
  .case-studies-wrapper {
    grid-column-gap: var(--gap-m);
        grid-row-gap: var(--gap-m);
        padding: 8rem 1.75rem 0;
  }
  .case-study-image-mobile {
    width: 80%;
        margin-top: 2rem;
        margin-bottom: 2rem;
        display: block;
  }
  .case-study-image-mobile.dektop-only {
    display: none;
  }
  .case-study-image-mobile.tablet-on {
    padding-top: 2rem;
        padding-bottom: 2rem;
        display: block;
  }
  .section-cta {
    padding-top: 4rem;
        padding-bottom: 4rem;
  }
  .section-who-we-are {
    padding-bottom: 4rem;
  }
  .who-we-are-grid {
    grid-template-rows: auto;
        grid-template-columns: 1.25fr;
  }
  .who-we-are-img-wrapper.mobile-only:where(.w-variant-2598e324-de85-dfc6-1ee6-4e24803ba791), .who-we-are-img-wrapper.desktop-only, .who-we-are-img-wrapper.desktop-only:where(.w-variant-2598e324-de85-dfc6-1ee6-4e24803ba791), .who-we-are-img-wrapper.desktop-only.mobile {
    display: none;
  }
  .who-we-are-img-wrapper.mobile-only {
    border-radius: 20px;
        width: 100%;
        height: auto;
        margin-top: 4rem;
        display: flex;
  }
  .who-we-are-img-wrapper.mobile-only:where(.w-variant-2598e324-de85-dfc6-1ee6-4e24803ba791), .who-we-are-img-wrapper.mobile-only.mobile {
    display: none;
  }
  .who-we-are-img {
    object-fit: cover;
        object-position: 50% 20%;
        width: 80%;
        min-width: 80%;
        max-width: 80%;
        height: 400px;
  }
  .who-we-are-cards-wrapper {
    grid-column-gap: var(--gap-m);
        grid-row-gap: var(--gap-m);
        flex-flow: column;
        display: flex;
  }
  .who-we-are-card {
    padding: 1.5rem;
  }
  .quote-link-wrapper {
    flex-flow: column;
        align-items: stretch;
        display: flex;
  }
  .quote-kpi-row {
    grid-template-columns: 1fr;
        grid-row-gap: var(--gap-l);
        align-items: start;
  }
  .quote-box {
    width: 100%;
        margin-bottom: 1rem;
  }
  .cta-1-wrapper {
    margin-top: 6rem;
  }
  .facts-wrapper {
    width: 100%;
  }
  .ai-automation-img-wrapper {
    width: 100%;
        height: auto;
        justify-content: center;
        display: flex;
  }
  .ai-automation-img {
    object-fit: contain;
        width: auto;
        height: 290px;
        align-self: center;
        display: block;
  }
  /* Label näher an den Funnel ziehen */
  .ai-animation-wrapper {
    margin-left: -2rem;
  }
  .custom-ai-wrapper {
    height: 290px;
  }
  /* "AI & Automation"-Label deutlich kleiner, damit es neben dem Funnel passt */
  .custom-ai-text {
    font-size: 0.9rem;
    line-height: 1.2;
    padding: 10px 8px;
  }
  .accordion-body.faq-paddings.js-accordion-body {
    padding-right: 50px;
  }
  .services-flow-wrapper {
    position: relative;
        margin-top: -2.5rem;
        padding-top: 5rem;
        padding-bottom: 4rem;
  }
  /* Funnel-Caption (Schritt 03) schmaler halten, damit sie nicht in die
     aufsteigenden Trichter-Wände läuft */
  .funnel-caption {
    max-width: 19rem;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
  }
  /* Desktop-Funnel (sales-process-bg) aus → eigener Funnel-Umriss für Tablet/Mobil */
  .sales-process-bg {
    display: none;
  }
  /* Funnel: gerade Wände + runde obere Ecken (CSS), darunter dein zulaufender SVG-Boden.
     Per Flexbox verbunden → Wände dehnen sich auf die Inhaltshöhe, Boden bleibt formtreu. */
  .funnel {
    display: flex;
        flex-flow: column;
        justify-content: space-between;
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
  }
  /* Nur Kappe oben (runde Ecken) – keine durchgehenden Seitenlinien */
  .funnel-walls {
    flex: 0 0 auto;
        height: 2.5rem;
        border: 1.5px solid rgba(0, 0, 0, .3);
        border-bottom: 0;
        border-radius: 2.5rem 2.5rem 0 0;
  }
  /* Boden (dein SVG) unten, volle Breite, formtreu */
  .funnel-cone {
    flex: 0 0 auto;
        display: block;
        width: 100%;
        height: auto;
  }
  .funnel-cone--mobile {
    display: none;
  }
  .footer {
    border-top-left-radius: 65px;
        border-top-right-radius: 65px;
        padding-top: 4rem;
        padding-bottom: 4rem;
  }
  .footer-grid {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
        grid-template-rows: auto auto;
        grid-template-columns: 1fr;
  }
  .hero-main-wrapper {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
        grid-template-rows: auto auto;
        grid-template-columns: 1fr;
        grid-auto-columns: 1fr;
        display: flex;
  }
  .hero-logo-inner-circle {
    width: 300px;
        height: 300px;
  }
  .hero-logo-box {
    width: 60px;
        height: 60px;
  }
  .logo-hero {
    max-width: 28px;
        height: 22px;
  }
  .hero-logo-box-middle {
    width: 60px;
        height: 60px;
  }
  .navbar-wrapper {
    grid-template-columns: 1fr;
        grid-auto-columns: 1fr;
        padding-top: 0;
        display: flex;
        position: static;
  }
  .nav-link {
    color: #fff;
        font-size: 34px;
  }
  .hamburger-icon-wrapper {
    cursor: pointer;
  }
  .hamburger-middle-line-desktop {
    background-color: #fff;
  }
  .hamburger-top-line {
    background-color: var(--brand-primary);
  }
  .mobile-menu--2 {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
        flex-flow: column;
        justify-content: flex-start;
        align-items: flex-start;
  }
  .hamburger-nav-menu {
    background-color: #0e0e0ef7;
        background-image: none;
        display: none;
  }
  .navbar-cstm {
    padding-top: 1rem;
        padding-bottom: 1rem;
  }
  .mobile-menu {
    -webkit-backdrop-filter: none;
        backdrop-filter: none;
        display: flex;
  }
  .hamburger-bottom-line {
    background-color: var(--brand-primary);
  }
  .navbar-links-wrapper {
    grid-column-gap: 1.6rem;
        grid-row-gap: 1.6rem;
        flex-flow: column;
        justify-content: center;
        align-items: flex-start;
  }
  .hero-logo-outer-circle {
    width: 450px;
        height: 450px;
  }
  .hero-logo-box-sm {
    width: 50px;
        height: 50px;
  }
  .button-icon-wrapper-dark:where(.w-variant-9a5c9f0c-980d-ed54-ea18-359a6e5587d7) {
    min-width: 45px;
        min-height: 45px;
  }
  .tools-logos-wrapper, .services-tags-wrapper {
    flex-flow: wrap;
  }
  .hero-animation-wrapper, .headline-wrapper-process, .headline-wrapper-process.centered, .headline-wrapper-process.width-70 {
    width: 100%;
  }
  .headline-wrapper-process.hero {
    width: 80%;
  }
  .tag-bubble-wrapper {
    flex-flow: wrap;
        justify-content: center;
        align-items: flex-start;
        width: 80%;
        margin-top: 1.5rem;
  }
  .tag-wrapper-vertrauen {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
  }
  .connect-line-height {
    width: 1px;
  }
  .result-wrapper {
    margin-top: 4rem;
  }
  .ai-anim-text {
    flex-flow: column;
        grid-row-gap: 5rem;
  }
  .headline-wrapper-in-box, .headline-wrapper-in-box.centered, .headline-wrapper-in-box.width-70 {
    width: 100%;
  }
  .headline-wrapper-in-box.hero {
    width: 80%;
  }
  .problem-grid-top {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
        grid-template-columns: 1fr;
        margin-top: 3rem;
  }
  .h3-xl.text-color-white.text-align-mobile-center {
    text-align: center;
  }
  .gap-1-5rem {
    justify-content: flex-start;
        align-items: center;
  }
  .crm-animation {
    z-index: 20;
        padding-bottom: 0;
  }
  .scroll-track {
    height: auto;
  }
  .crm-anim-box {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
        width: 100%;
        padding: 2rem 2rem 4rem;
  }
  .crm-anim-box.left {
    top: 0;
  }
  .crm-anim-box.middle {
    grid-column-gap: 1rem;
        grid-row-gap: 1rem;
  }
  .crm-anim-box.right {
    top: 0;
  }
  .crm-boxes-flex {
    grid-column-gap: 2rem;
        grid-row-gap: 2rem;
        flex-flow: column;
        width: 80%;
        max-width: 100%;
        margin-top: -100px;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        top: 0;
  }
  .animation-content {
    overflow: visible;
  }
  .crm-box-text {
    text-align: center;
        justify-content: flex-start;
        align-items: center;
        padding-left: 0;
        padding-right: 0;
  }
  .js-accordion-icon-plus {
    width: 22px;
        height: 22px;
  }
  .case-study-card-bg-1 {
    width: 120%;
        height: 50%;
        position: relative;
        inset: 0% auto auto 0%;
  }
  .case-study-card-bg-2 {
    width: 120%;
        height: 100%;
        inset: 0 0 auto auto;
  }
  .anim-text-fadein {
    text-align: center;
  }
  .heading-12 {
    font-size: 30px;
  }
  .case-study-image-wrapper-desktop, .case-study-image-wrapper-desktop.dektop-only {
    display: none;
  }
  .case-study-image-wrapper-desktop.tablet-on {
    padding-top: 2rem;
        padding-bottom: 2rem;
        display: block;
  }
  .footer-headings {
    font-size: 26px;
  }
  .hero-desktop-only {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  /* Funnel-Boden: Mobil-Version (statt Tablet) */
  .funnel-cone--tablet {
    display: none;
  }
  .funnel-cone--mobile {
    display: block;
  }
  /* Hamburger-Menü: Vollbild auf Phones */
  .hamburger-nav-menu {
    width: 100%;
    padding: 5.5rem 2rem 2rem 2rem;
  }
  .nav-link {
    font-size: 30px;
  }
  .navbar-links-wrapper {
    grid-row-gap: 1.4rem;
  }
  .menu-cta {
    max-width: none;
  }
  .avatars-wrapper {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
        border-radius: 1000px;
        flex-flow: row;
        justify-content: flex-start;
        align-items: center;
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
  }
  .avatars-wrapper.full-width {
    border-radius: 50px;
        flex-flow: column;
  }
  .avatars-wrapper.white-stroke {
    border-radius: 55px;
        flex-flow: column;
        justify-content: flex-start;
        align-items: flex-start;
  }
  .section-problem {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .problem-grid {
    grid-template-rows: auto auto auto;
        grid-template-columns: 1fr;
        margin-bottom: 3rem;
  }
  .section-services {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .section-automation {
    padding-top: 3rem;
        padding-bottom: 5rem;
  }
  .avatars-wrapper-inner-left {
    flex-flow: row;
        justify-content: flex-start;
        align-items: center;
  }
  .avatars-wrapper-inner-left.section-ai {
    flex-flow: row;
  }
  .section-leistungen {
    padding-top: 5rem;
        padding-bottom: 3rem;
  }
  .leistungen-card {
    flex-flow: column;
        max-height: none;
  }
  .leistungen-card-left {
    width: 100%;
        padding-left: 2rem;
        padding-right: 2rem;
  }
  .horizontal-flex.tags-wrapper {
    justify-content: center;
        align-items: center;
  }
  .horizontal-flex.sales-process {
    flex-flow: column;
  }
  .tag-text {
    font-size: var(--text-s);
  }
  .tools-logo {
    width: 45px;
  }
  /* Leistungs-Animation auf Mobil oben in der Kachel, flaches Format (16:9) */
  .leistungen-right {
    display: block;
    order: -9999;
        width: 100%;
        aspect-ratio: 16 / 9;
        max-height: 240px;
        overflow: hidden;
        border-radius: var(--radius-m) var(--radius-m) 0 0;
  }
  .flex-vertical-left-top-3 {
    order: -9999;
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
  }
  .section-portfolio {
    padding-bottom: 8rem;
  }
  .tag-case-study-wrapper {
    padding: .25rem .75rem;
  }
  .case-study-image-mobile.tablet-on {
    padding-top: 1rem;
        padding-bottom: 1rem;
  }
  .tag-case-study {
    font-size: 14px;
  }
  .section-cta {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .cta-wrapper {
    padding-left: 2rem;
        padding-right: 2rem;
        padding-bottom: 2.5rem;   /* unten weniger Abstand zum Box-Ende */
  }
  .section-who-we-are {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .who-we-are-img-wrapper {
    display: none;
  }
  .who-we-are-img-wrapper:where(.w-variant-2598e324-de85-dfc6-1ee6-4e24803ba791), .who-we-are-img-wrapper.desktop-only.mobile, .who-we-are-img-wrapper.mobile-only, .who-we-are-img-wrapper.mobile-only.mobile {
    display: flex;
  }
  .who-we-are-cards-wrapper {
    grid-template-rows: auto auto auto;
        grid-template-columns: 1fr;
  }
  .quote-link-wrapper {
    grid-template-rows: auto auto;
        grid-template-columns: 1.25fr;
        justify-content: start;
        place-items: end start;
  }
  .btn-arrow.mobile-down {
    transform: rotate(90deg);
  }
  .btn-arrow.crm-arrow-mobile {
    display: block;
        transform: rotate(90deg);
  }
  .ai-automation-img {
    align-self: flex-start;
  }
  .accordion-header.mobile-flex-h.js-accordion-header {
    grid-column-gap: .5rem;
        grid-row-gap: .5rem;
        grid-column-gap: .5rem;
        grid-row-gap: .5rem;
        grid-column-gap: .5rem;
        grid-row-gap: .5rem;
  }
  .accordion-body.faq-paddings.js-accordion-body {
    padding-right: 20px;
  }
  .services-flow-wrapper {
    padding-bottom: 2.5rem;
  }
  .sales-process-bg {
    display: none;
  }
  .crm-cricle-wrapper {
    width: 450px;
        height: 450px;
        margin-top: 1rem;
        padding-top: 0;
  }
  .crm-cricle {
    width: 350px;
        height: 350px;
  }
  .crm-circle-abs-s {
    width: 400px;
        height: 400px;
  }
  .crm-circle-abs-m {
    width: 450px;
        height: 450px;
  }
  .footer {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .hero-main-wrapper {
    justify-content: start;
  }
  .navbar-logo-wrapper {
    width: 200px;
  }
  .tools-logos-wrapper, .services-tags-wrapper {
    flex-flow: wrap;
  }
  .leistungen-gradient-img {
    max-height: 300px;
        object-fit: cover;
  }
  .box-arrow.mobile-down {
    transform: rotate(90deg);
  }
  .box-arrow.crm-arrow-mobile {
    display: block;
        transform: rotate(90deg);
  }
  .problem-grid-top {
    grid-template-rows: auto auto auto;
        grid-template-columns: 1fr;
  }
  .crm-animation {
    padding-top: 3rem;
        padding-bottom: 3rem;
  }
  .crm-cricle-bg, .crm-bg-light {
    width: 350px;
        height: 350px;
  }
  .case-study-image-wrapper-desktop.tablet-on {
    padding-top: 1rem;
        padding-bottom: 1rem;
  }
}

@media screen and (max-width: 479px) {
  body {
    --radius-button: 12px;
        --radius-m: 18px;
        --radius-full: 60px;
        --radius-l: 26px;
        --radius-s: 12px;
        --font-primary: "Inter CST", Arial, sans-serif;
        --text-m: 16px;
        --lh-l: 170%;
        --fw-400: 400;
        --font-secondary: "Sourceserif CSTM", Georgia, sans-serif;
        --h1-m: 40px;
        --lh-s: 120%;
        --fw-600: 600;
        --h2-m: 36px;
        --h3-m: 22px;
        --lh-m: 130%;
        --text-s: 14px;
        --h1-s: 32px;
        --fw-700: 700;
        --h1-l: 40px;
        --h2-l: 30px;
        --h2-s: 30px;
        --h3-l: 30px;
        --h3-s: 30px;
        --text-l: 18px;
        --text-xl: 20px;
        --fw-500: 500;
        --fw-300: 300;
        --button-text: var(--text-m);
        --lh-100: 100%;
        --h3-xl: 30px;
        --text-xxs: 8px;
        --text-xs: 10px;
        --button-text-weight: var(--fw-500);
        --gap-m: 1.125rem;
        --gap-l: 1.5rem;
        --gap-xl: 2rem;
        --gap-xs: .5rem;
        --gap-s: .75rem;
        --gap-xxl: 3rem;
  }
  .container-large.up-4rem, .container-large.up-8rem {
    margin-top: 4rem;
  }
  .page-padding {
    overflow: visible;
  }
  .page-padding.hero-custom {
    justify-content: space-between;
        align-items: flex-end;
  }
  .headline-wrapper {
    grid-column-gap: 1.75rem;
        grid-row-gap: 1.75rem;
        width: 100%;
  }
  .headline-wrapper.centered {
    grid-column-gap: var(--gap-l);
        grid-row-gap: var(--gap-l);
        width: 100%;
  }
  .headline-wrapper.hero {
    grid-column-gap: 1rem;
        grid-row-gap: 1rem;
        width: 100%;
  }
  .section-hero-hp {
    justify-content: center;
        align-items: flex-end;
        height: auto;
        padding-top: 8rem;
        padding-bottom: 2rem;
        padding-left: 0;
  }
  .primary-button:where(.w-variant-c92e96ad-2df7-6805-fa77-870ab2f27c03) {
    justify-content: flex-start;
        align-items: center;
        width: 80%;
        display: inline-flex;
  }
  .button-icon-wrapper:where(.w-variant-c92e96ad-2df7-6805-fa77-870ab2f27c03) {
    min-width: 55px;
        max-width: 55px;
        min-height: 55px;
        max-height: 55px;
  }
  .avatars-wrapper {
    border-radius: 35px;
        flex-flow: column;
        justify-content: center;
        align-items: center;
  }
  .avatars-wrapper.white-stroke {
    border-radius: 35px;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
  }
  .avatars-wrapper.hero-avatars {
    justify-content: center;
        align-items: flex-start;
        margin-top: 2rem;
  }
  .vertical-line.desktop-only, .vertical-line.hidden-on-mobile {
    display: none;
  }
  .section-problem {
    padding-top: 3rem;
        padding-bottom: 5rem;
  }
  .about-us-grid-wrapper {
    margin-top: 2rem;
  }
  .problem-grid {
    margin-bottom: 2rem;
  }
  .outline-box {
    padding: 1.5rem;
  }
  .section-services {
    padding-top: 5rem;
        padding-bottom: 2rem;
  }
  .section-automation {
    padding-top: 3rem;
        padding-bottom: 5rem;
  }
  .v-flex.accordions-wrapper {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
  }
  .avatars-wrapper-inner-left {
    flex-flow: column;
        justify-content: flex-start;
        align-items: flex-start;
  }
  .avatars-wrapper-inner-left.section-ai {
    flex-flow: column;
  }
  .section-leistungen {
    padding-top: 5rem;
        padding-bottom: 5rem;
  }
  .leistungen-cards-wrapper {
    margin-top: 3rem;
  }
  .leistungen-card-left {
    padding: 3rem 1.5rem;
  }
  .horizontal-line._50--wide {
    width: 50%;
        text-decoration: line-through;
        display: block;
  }
  .horizontal-line.mobile-only {
    background-color: var(--text-secondary);
  }
  .horizontal-line.hero-section {
    background-color: var(--text-secondary);
        width: 50%;
        display: block;
  }
  .horizontal-flex.tags-wrapper {
    justify-content: center;
        align-items: center;
  }
  .horizontal-flex.tags-wrapper-vertrauen {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
        flex-flow: column;
        justify-content: space-between;
        align-items: center;
  }
  .horizontal-flex.sales-process {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
        flex-flow: column;
        margin-top: 2rem;
  }
  .horizontal-flex.buttons-wrapper {
    flex-flow: column;
        justify-content: flex-start;
        align-items: flex-start;
        width: 100%;
        margin-top: 2rem;
        margin-bottom: 1rem;
  }
  .tag-bubble {
    padding: .75rem 1rem;
  }
  .tools-logo {
    width: 37px;
        height: 22px;
        max-height: 22px;
  }
  .flex-vertical-left-top-3 {
    grid-column-gap: 1.5rem;
        grid-row-gap: 1.5rem;
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
  }
  .section-portfolio {
    border-radius: 50px;
        padding-top: 5rem;
        padding-bottom: 5rem;
  }
  .case-studies-wrapper {
    height: auto;
        padding: 4rem 0 1rem;
  }
  .tag-case-study-wrapper {
    padding-left: .75rem;
        padding-right: .75rem;
  }
  .section-cta {
    padding-top: 3rem;
        padding-bottom: 5rem;
  }
  .cta-wrapper {
    padding: 3.5rem 1rem 2rem;   /* unten weniger Abstand zum Box-Ende */
  }
  .section-who-we-are {
    padding-top: 5rem;
        padding-bottom: 2rem;
  }
  .who-we-are-img-wrapper {
    border-radius: 20px;
        width: 100%;
        height: 350px;
        display: none;
        overflow: hidden;
  }
  .who-we-are-img-wrapper:where(.w-variant-2598e324-de85-dfc6-1ee6-4e24803ba791), .who-we-are-img-wrapper.desktop-only.mobile, .who-we-are-img-wrapper.mobile-only.mobile {
    display: flex;
  }
  .who-we-are-img {
    object-fit: cover;
        width: 1005px;
        height: 100%;
  }
  .quote-link-wrapper {
    grid-column-gap: var(--gap-l);
        grid-row-gap: var(--gap-l);
  }
  .quote-box {
    padding: 1rem;
  }
  .kpi-box {
    grid-template-columns: 1fr 1fr;
        grid-column-gap: 1.25rem;
        grid-row-gap: 1.75rem;
        padding: 0;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .contact-form {
    padding: 1.5rem;
  }
  .cta-1-wrapper {
    grid-column-gap: var(--gap-s);
        grid-row-gap: var(--gap-s);
        margin-top: 5rem;
  }
  .facts-wrapper {
    grid-column-gap: var(--gap-xxl);
        grid-row-gap: var(--gap-xxl);
        border-radius: 35px;
        grid-template-rows: auto auto auto;
        grid-template-columns: 1fr;
        margin-top: 3rem;
        padding-top: 5rem;
        padding-bottom: 3rem;
  }
  .ai-automation-wrapper {
    grid-template-rows: auto auto;
        grid-template-columns: 1fr;
  }
  .ai-automation-img {
    width: 70%;
  }
  .accordion-header.mobile-flex-h.js-accordion-header {
    justify-content: space-between;
        align-items: center;
  }
  .faq-question-text {
    flex: 0 100%;
        margin-top: 0;
        margin-left: 0;
        padding-right: 10px;
        font-size: 20px;
  }
  .accordion__item.js-accordion-item {
    padding: 1.1rem 0;
  }
  .services-flow-wrapper {
    margin-top: 0;
        padding-top: 4rem;
        padding-bottom: 2.5rem;
  }
  .big-number {
    font-size: 24px;
  }
  .crm-cricle-wrapper {
    width: 350px;
        height: 350px;
        margin-top: 0;
        padding-top: 2rem;
        padding-bottom: 2rem;
  }
  .crm-cricle {
    width: 260px;
        height: 260px;
  }
  .crm-circle-abs-s {
    width: 300px;
        height: 300px;
  }
  .crm-circle-abs-m {
    width: 340px;
        height: 350px;
  }
  .footer {
    border-top-left-radius: 55px;
        border-top-right-radius: 55px;
  }
  .footer-grid {
    grid-column-gap: var(--gap-xxl);
        grid-row-gap: var(--gap-xxl);
  }
  .footer-links-grid {
    grid-template-rows: auto auto;
        grid-template-columns: 1fr;
  }
  .hero-logo-inner-circle {
    width: 200px;
        height: 200px;
  }
  .hero-logo-box {
    width: 55px;
        height: 55px;
  }
  .logo-hero {
    max-width: 24px;
        height: 20px;
  }
  .hero-logo-box-middle {
    width: 55px;
        height: 55px;
  }
  .navbar-wrapper {
    width: 100%;
        min-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-top: 0;
  }
  .navbar-logo-wrapper {
    width: 50%;
        margin-left: 0;
  }
  .navbar-logo-wrapper.w--current {
    width: 140px;
  }
  .hamburger-middle-line-desktop, .hamburger-top-line {
    width: 2rem;
  }
  .hamburger-nav-menu {
    width: 100%;
        padding: 5rem 1.75rem 1.75rem 1.75rem;
  }
  .nav-link {
    font-size: 26px;
  }
  .navbar-links-wrapper {
    grid-row-gap: 1.25rem;
  }
  .navbar-cstm {
    padding-top: 1.3rem;
        padding-bottom: 1.3rem;
  }
  .mobile-menu {
    margin-right: 0;
  }
  .hamburger-bottom-line {
    border-radius: 5px;
        width: 2rem;
  }
  .hero-logo-outer-circle {
    width: 350px;
        height: 350px;
  }
  .hero-logo-box-sm {
    width: 55px;
        height: 55px;
  }
  .logo-hero-sm {
    max-width: 24px;
        height: 20px;
  }
  .navbar-opened-gradient {
    width: 100%;
        bottom: -9%;
        transform: scale(1.8);
  }
  .ai-animation-code {
    display: block;
  }
  .hero-animation-wrapper {
    height: 400px;
  }
  .text-centered-on-mobile {
    text-align: center;
  }
  .headline-wrapper-process {
    width: 100%;
  }
  .headline-wrapper-process.centered {
    grid-column-gap: var(--gap-l);
        grid-row-gap: var(--gap-l);
        width: 100%;
  }
  .headline-wrapper-process.hero {
    width: 100%;
  }
  .tag-bubble-wrapper {
    width: 100%;
        margin-top: .5rem;
  }
  .tag-wrapper-vertrauen {
    flex-flow: column;
        justify-content: flex-start;
        align-items: center;
        width: 100%;
  }
  .bubble-process {
    width: auto;
        padding-left: 1rem;
        padding-right: 1rem;
        padding-top: 0.65rem;      /* Bubbles etwas größer */
        padding-bottom: 0.65rem;
  }
  /* Bubble-Text etwas kleiner als Standard + enge Zeilenhöhe */
  .bubble-process p {
    font-size: var(--text-s);
    line-height: var(--lh-100);
  }
  /* Vertrauen-Bubbles (Website / LinkedIn / Sales-Unterlagen) gleich breit – wie Desktop */
  .tag-wrapper-vertrauen .bubble-process {
    width: 220px;
  }
  /* Sales-Prozess-Bubbles (Qualification / Discovery / Closing) gleich breit */
  .sales-process .bubble-process {
    width: 220px;
  }
  .process-headings {
    font-size: 32px;
  }
  .triangle-dot-line {
    height: 80px;
  }
  /* Container an das Bild angleichen → kein Leerraum unter dem Strich,
     der Funnel schließt nahtlos an die Punktlinie an */
  .dot-line-height {
    height: 80px;
  }
  .connect-line-height {
    margin-top: 3rem;
        margin-bottom: 3rem;
  }
  .result-wrapper.up-4rem, .result-wrapper.up-8rem {
    margin-top: 4rem;
  }
  .headline-wrapper-in-box {
    width: 100%;
  }
  .headline-wrapper-in-box.centered {
    grid-column-gap: var(--gap-l);
        grid-row-gap: var(--gap-l);
        width: 100%;
  }
  .headline-wrapper-in-box.hero {
    width: 100%;
  }
  .problem-grid-top {
    grid-column-gap: var(--gap-xl);
        grid-row-gap: var(--gap-xl);
  }
  .crm-animation {
    padding-top: 0;
        padding-bottom: 2rem;
  }
  .crm-cricle-bg {
    width: 260px;
        height: 260px;
  }
  .crm-anim-box {
    padding: 1.5rem;
  }
  .crm-boxes-flex {
    width: 100%;
  }
  .js-accordion-icon-plus {
    width: 18px;
        min-width: 18px;
        height: 18px;
        min-height: 18px;
        margin-top: 8px;   /* auf Mitte von "Anton" zentriert (war 2px → zu hoch) */
  }
  .js-icon-line-vertical {
    width: 2px;
  }
  .js-icon-line-horizontal {
    height: 2px;
  }
  .case-study-card-bg-1, .case-study-card-bg-2 {
    height: 100%;
  }
}
/* ==========================================================================
   Hero-Orbit auf Mobil: kleinere ".hero-tablet"-Variante zwischen H1 und
   Subheading (wie im Webflow-Original). Der Desktop-Orbit (.hero-desktop-only)
   bleibt ≤991 ausgeblendet (Webflow-Responsive). Kreis & Icons bewusst klein.
   ========================================================================== */
@media screen and (max-width: 991px) {
  .hero-tablet {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 2.25rem 0; /* mehr Luft ober- und unterhalb des Kreises */
  }
  .hero-tablet .hero-animation-wrapper {
    width: 340px;
    height: 340px;
    max-width: 100%;
    margin: 0 auto;
  }
  .hero-tablet .hero-logo-outer-circle {
    width: 320px;
    height: 320px;
  }
  .hero-tablet .hero-logo-inner-circle {
    width: 190px;
    height: 190px;
  }
  .hero-tablet .hero-logo-box,
  .hero-tablet .hero-logo-box-middle {
    width: 44px;
    height: 44px;
  }
  .hero-tablet .hero-logo-box-sm {
    width: 38px;
    height: 38px;
  }
  .hero-tablet .logo-hero {
    max-width: 22px;
    height: 18px;
  }
  .hero-tablet .logo-hero-sm {
    max-width: 18px;
    height: 16px;
  }
  .hero-tablet .hero-tools-names {
    font-size: 8px;
  }
  /* verhindert horizontalen Scroll, falls der Orbit am Rand übersteht */
  .section-hero-hp {
    overflow: hidden;
  }
}
@media screen and (max-width: 479px) {
  .hero-tablet .hero-animation-wrapper {
    width: 290px;
    height: 290px;
  }
  .hero-tablet .hero-logo-outer-circle {
    width: 270px;
    height: 270px;
  }
  .hero-tablet .hero-logo-inner-circle {
    width: 160px;
    height: 160px;
  }
  .hero-tablet .hero-logo-box,
  .hero-tablet .hero-logo-box-middle {
    width: 38px;
    height: 38px;
  }
  .hero-tablet .hero-logo-box-sm {
    width: 34px;
    height: 34px;
  }
  /* Logo ↔ Name enger zusammen – schafft am meisten Platz */
  .hero-tablet .hero-logo-box,
  .hero-tablet .hero-logo-box-middle,
  .hero-tablet .hero-logo-box-sm {
    grid-row-gap: 2px;
    row-gap: 2px;
  }
  /* Logos kleiner */
  .hero-tablet .logo-hero {
    max-width: 18px;
    height: 14px;
  }
  .hero-tablet .logo-hero-sm {
    max-width: 15px;
    height: 13px;
  }
  /* Text kleiner + engere Zeilen (für 2-zeilige Namen wie "Google Ads") */
  .hero-tablet .hero-tools-names {
    font-size: 7px;
    line-height: 1.05;
  }
}

/* ==========================================================================
   CRM-Sektion auf Mobil: der dunkle Kreis WÄCHST beim Scrollen und füllt einen
   abgegrenzten "Fenster"-Bereich (overflow:hidden, damit nichts überlappt) –
   die Desktop-Idee, mobil-tauglich. Darunter die Kacheln, gestaffelt einfadend.
   Werte treibt js/crm-scene.js (Mobil-Zweig).
   ========================================================================== */
@media screen and (max-width: 991px) {
  /* Kreis klebt bildschirmfüllend und wächst, bis er den Viewport dunkel füllt
     (overflow:hidden clippt auf Bildschirmgröße). Die Kacheln scrollen darüber. */
  .js-anim .crm-cricle-wrapper {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    max-height: none;
    margin: 0;
    /* Gruppe per padding-bottom nach oben schieben → kleinere Lücke zum Pfeil.
       min(68vh, calc(100vh - X)) begrenzt den Hub auf niedrigen Viewports, damit
       der äußere Ring (hier 450px) nicht über die Wrapper-Oberkante ragt und vom
       overflow:hidden abgeschnitten wird. X = 2×(Ring-Radius + Rand). */
    padding-bottom: min(68vh, calc(100vh - 500px));
    overflow: hidden;
    border-radius: 0;
    z-index: 0;
  }
  .js-anim .crm-cricle-bg {
    will-change: transform;
  }
  .crm-boxes-flex {
    position: relative;
    z-index: 2;
    width: 100%;
    margin-top: -42vh; /* Abstand unter dem Kreis ~ Abstand zum Pfeil darüber */
    padding-bottom: 2rem;
    /* dunkler, randloser Hintergrund unter/zwischen den Kacheln → keine weiße
       Lücke mehr zwischen Kacheln und der dunklen AI-Sektion darunter */
    background-color: var(--brand-dark-blue);
  }
  /* kein weißes Section-Padding unter den Kacheln */
  .crm-animation {
    padding-bottom: 0;
  }
  .js-anim .crm-anim-box {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .js-anim .crm-anim-box.in-view {
    opacity: 1;
    transform: none;
  }
}

/* Ringe auf kleinen Handys etwas kleiner halten, damit sie oben im gepinnten
   CRM-Kreis nicht vom overflow:hidden beschnitten werden (Tablets bleiben unberührt). */
@media screen and (max-width: 479px) {
  .crm-circle-abs-s {
    width: 282px;
    height: 282px;
  }
  .crm-circle-abs-m {
    width: 304px;
    height: 304px;
  }
}

/* Sticky-Kreis-Hub je Breakpoint begrenzen (kleinere Ringe → kleineres X),
   damit der Kreis nicht abschneidet, aber auch nicht unnötig tief sitzt.
   Steht NACH der ≤991px-Regel, damit es sie überschreibt. */
@media screen and (max-width: 767px) {
  .js-anim .crm-cricle-wrapper {
    padding-bottom: min(68vh, calc(100vh - 400px)); /* Ring 350px */
  }
}
@media screen and (max-width: 479px) {
  .js-anim .crm-cricle-wrapper {
    padding-bottom: min(68vh, calc(100vh - 350px)); /* Ring 304px */
  }
}

/* ==========================================================================
   Mobil-Aufräumen: Prozess-/Services-Sektion
   1) Schritt-Überschriften kleiner  2) Inhalte zentriert
   3) fehlende Seiten-Paddings ergänzt  4) "Vertrauen aufbauen" weniger leer
   ========================================================================== */
@media screen and (max-width: 991px) {
  /* Kein Seiten-Padding → Elemente (Funnel) gehen bis an den Rand */
  .section-services {
    padding-left: 0;
    padding-right: 0;
  }
  /* (2) Prozess-Schritte zentrieren */
  .headline-wrapper-process {
    width: 100%;
    align-items: center;
    text-align: center;
  }
  /* (1) Schritt-Überschriften kleiner */
  .process-headings {
    font-size: 30px;
    line-height: 1.2;
  }
}

@media screen and (max-width: 479px) {
  .process-headings {
    font-size: 25px;
  }
  /* (4) "Vertrauen aufbauen": Spalten nutzen die volle Breite → weniger Leerraum */
  .tag-wrapper-vertrauen {
    grid-row-gap: 1.5rem;
    row-gap: 1.5rem;
    width: 100%;
  }
  .vertrauen-flex,
  .vertrauen-aufbauen {
    width: 100%;
  }
  /* Texte unter den Bubbles nebeneinander, mit Bullet getrennt */
  .vt-br,
  .vt-desktop {
    display: none;
  }
  .vt-sep,
  .vt-phone {
    display: inline;
  }
}

/* ==========================================================================
   Mobil: Sales-Prozess-Bubbles enger + Abstand zum Pfeil darunter
   ========================================================================== */
@media screen and (max-width: 991px) {
  /* Pfeil nahtlos an den Funnel-Boden anschließen (kein Abstand) */
  .arrow-height {
    margin-top: 0;
  }
}
@media screen and (max-width: 479px) {
  /* Qualification / Discovery / Closing enger stapeln (war gap-xl = 4rem) */
  .horizontal-flex.sales-process {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    row-gap: 1rem;
  }
}

/* Abstand nach dem Pfeil (zur CRM-Sektion) an den Abstand darüber angleichen */
@media screen and (max-width: 767px) {
  .section-services {
    padding-bottom: 1rem;
  }
}

/* Mobil: H3 in den "Was ihr bekommt"-Boxen + engere Zeilenhöhe */
@media screen and (max-width: 767px) {
  .heading-3-s {
    font-size: 24px;
  }
  .text-color-white.heading-3-s {
    line-height: 1.25;
  }
  /* "Ein Unternehmen, das nicht vom Zufall abhängt." etwas kleiner –
     wirkt mit der Fade-in-Headline darüber sonst zu wuchtig */
  .result-wrapper .headline-wrapper h2 {
    font-size: 30px;
  }
}

/* ==========================================================================
   Leistungen-Kacheln: animierte Linien-Icons rechts (über dem Verlauf)
   Werden beim Reinscrollen "gezeichnet" (Stroke-Draw). Ohne JS statisch sichtbar.
   ========================================================================== */
.leistungen-anim {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  pointer-events: none;
}
/* Konzentrische Ringe hinter dem Icon (wie beim CRM-Kreis) – geben Präsenz */
.leistungen-anim::before,
.leistungen-anim::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.3);
  z-index: 0;
}
.leistungen-anim::before {
  width: 96%;
}
.leistungen-anim::after {
  width: 132%;
}
.leistungen-anim svg {
  position: relative;
  z-index: 1;
  width: 76%;
  max-width: 340px;
  height: auto;
  overflow: visible;
  filter: drop-shadow(0 1px 8px rgba(255, 255, 255, 0.35));
}
.leistungen-anim svg [data-draw] {
  fill: none;
  stroke: var(--brand-primary);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* --- Choreografie nur mit JS (.is-drawn wird vom Observer gesetzt) --- */
/* Draw-Übergang: das Skript setzt dasharray/offset */
.js-anim .leistungen-anim svg [data-draw] {
  transition: stroke-dashoffset 1.1s ease;
}
/* Startzustand: SVG leicht abgesenkt & transparent, Ringe klein & unsichtbar */
.js-anim .leistungen-anim svg {
  opacity: 0;
  transform: translateY(10px) scale(0.96);
  transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-anim .leistungen-anim::before,
.js-anim .leistungen-anim::after {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.62);
  transition: opacity 0.9s ease, transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
/* Reinscrollen: SVG hoch & sichtbar, Ringe wachsen versetzt ein */
.js-anim .leistungen-anim.is-drawn svg {
  opacity: 1;
  transform: none;
}
.js-anim .leistungen-anim.is-drawn::before {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.js-anim .leistungen-anim.is-drawn::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition-delay: 0.14s;
}
/* Danach atmen die Ringe sanft weiter (subtil, leicht versetzt) */
.js-anim .leistungen-anim.is-drawn::before {
  animation: leistungen-ring-breath 6s ease-in-out 1.3s infinite;
}
.js-anim .leistungen-anim.is-drawn::after {
  animation: leistungen-ring-breath 6s ease-in-out 1.7s infinite;
}
@keyframes leistungen-ring-breath {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.85;
  }
  50% {
    transform: translate(-50%, -50%) scale(1.045);
    opacity: 1;
  }
}

/* Leistungs-Animation im flachen Mobil-Format: Ringe + Icon an der (schmalen)
   Höhe ausrichten statt an der Breite → Ringe bleiben rund, nicht oval.
   Steht bewusst NACH den Basis-Regeln, damit es sie überschreibt. */
@media screen and (max-width: 767px) {
  .leistungen-anim svg {
    width: auto;
    height: 74%;
    max-width: none;
  }
  .leistungen-anim::before {
    width: auto;
    height: 110%;
  }
  .leistungen-anim::after {
    width: auto;
    height: 150%;
  }
}

/* Desktop-Zeilenumbrüche im "Anton & Philipp"-Absatz auf Mobil/Tablet entfernen –
   dort bricht der Text ohnehin um, die festen <br> erzeugen sonst kurze Zeilen. */
@media screen and (max-width: 991px) {
  .avatars-wrapper-inner-left.section-ai p br {
    display: none;
  }
}

/* Referenzen auf Mobil/Tablet: beide Geräte (Tablet-Mockup + Phone) wie auf
   Desktop nebeneinander zeigen – inkl. Phone-Fade-Effekt (.mockup-phone .in-view) –
   statt nur des einzelnen Phone-Bildes. Steht am Dateiende → überschreibt die
   bisherige display:none/block-Logik. */
@media screen and (max-width: 991px) {
  /* Zwei-Geräte-Komposition direkt nach dem Heading zeigen (im Mobile-Div),
     separates Wrapper-Element unten ausblenden. */
  .case-study-image-mobile.case-study-mockups {
    display: flex;
    /* etwas schmaler + rechtsbündig → die ganze Grafik rückt nach rechts,
       sodass das Phone (left:-7%) nicht mehr über das Padding hinausragt */
    width: 88%;
    align-self: flex-end;
    margin: 0;
  }
  .case-study-image-wrapper-desktop.case-study-mockups {
    display: none;
  }
}

/* ===== Referenzen auf Mobil: komplett linksbündig, CI-Kreise begrenzt,
   Trennstrich (links) nach dem Heading-Block ===== */
@media screen and (max-width: 991px) {
  /* Abstand um den Abschluss-Satz ("…zwei Partner…"): oben mehr (zur letzten
     Referenz), unten etwas weniger */
  .references-outro {
    margin-top: 5.5rem;
    margin-bottom: 2.5rem;
  }
  /* Section-Heading ("Ergebnisse, keine Versprechen.") ebenfalls linksbündig */
  .section-portfolio .headline-wrapper.centered {
    align-items: flex-start;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
  .section-portfolio .headline-wrapper.centered h2,
  .section-portfolio .headline-wrapper.centered .text-align-center {
    text-align: left;
  }
  /* Text-Spalte linksbündig (Eyebrow, H3, Beschreibung, Tags) */
  .flex-vertical-left-top-3,
  .flex-vertical-left-top-3 .gap-1-5rem {
    align-items: flex-start;
    text-align: left;
  }
  /* HTML-Zentrier-Klassen für H3 & Beschreibung auf links überschreiben */
  .h3-xl.text-color-white.text-align-mobile-center {
    text-align: left;
  }
  .text-color-grey-bright.text-centered-on-mobile {
    text-align: left;
  }
  .case-study-tags-wrapper {
    justify-content: flex-start;
    grid-column-gap: 0.6rem;
    grid-row-gap: 0.6rem;
    column-gap: 0.6rem;
    row-gap: 0.6rem;
  }
  /* Link (z. B. "Sally-Website besuchen") linksbündig + mehr Abstand darüber */
  .quote-link-wrapper {
    align-items: flex-start;
    margin-top: 2rem;
  }
  .case-study-link {
    justify-content: flex-start;
  }
  /* Zitat linksbündig; Foto + Name nebeneinander (Original-Reihen-Layout) */
  .quote-box {
    align-items: flex-start;
    text-align: left;
  }
  .quote-box .horizontal-flex.quote-avatar {
    flex-flow: row;
    align-items: center;
    text-align: left;
  }
  .quote-box .quote-avatar .flex-col {
    align-items: flex-start;
  }
  /* Reihenfolge: KPIs → Zitat → Link (statt Link → Zitat → KPIs).
     order wirkt unter den Flex-/Grid-Geschwistern, die Gaps bleiben unverändert. */
  .quote-kpi-row {
    order: -1;            /* Zitat+KPI-Block vor den Link */
    grid-row-gap: 3rem;   /* mehr Abstand KPIs ↔ Quote-Box */
    row-gap: 3rem;
  }
  .case-study-link-text {
    font-size: 13px;   /* etwas größer als zuvor (war 10–12px), aber dezent */
  }
  .case-study-link .btn-arrow {
    width: 13px;
    height: 13px;
  }
  /* KPI: Wert oben, Erläuterung darunter – eine KPI pro Zeile (gestapelt) */
  .kpi-box {
    grid-template-columns: 1fr;
    grid-row-gap: 1.75rem;
    row-gap: 1.75rem;
    order: -1;            /* KPIs vor das Zitat */
  }
  .kpi-item {
    flex-flow: column;
    align-items: flex-start;
    text-align: left;
    grid-row-gap: 0.25rem;
    row-gap: 0.25rem;
  }
  /* CI-Hintergrundkreise als diagonaler Verlauf durch die Referenz:
     bg-1 (linke CI-Farbe) groß oben-links wie Desktop, bg-2 (rechte CI-Farbe)
     tiefer rechts, aber noch überschneidend (top-Offset statt unten verankert). */
  .case-study-card-bg-1,
  .case-study-card-bg-2 {
    position: absolute;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .case-study-card-bg-1 {
    width: 125%;
    inset: 4% auto auto -34%;
  }
  .case-study-card-bg-2 {
    width: 125%;
    inset: 30% -34% auto auto;
  }
}

/* ===== "Wer wir sind"-Bild auf Mobil: volle Breite, Höhe beibehalten,
   kleinerer Abstand zum Text darüber. Steht am Dateiende → überschreibt die
   verstreuten Webflow-Regeln. ===== */
@media screen and (max-width: 991px) {
  .who-we-are-img-wrapper.mobile-only {
    margin-top: 2.5rem;   /* war 4rem → etwas weniger Abstand zum Text */
    width: 100%;
    height: 400px;        /* feste (bisherige) Höhe behalten */
    border-radius: 20px;
    overflow: hidden;
  }
  .who-we-are-img {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    height: 100%;         /* = 400px der Wrapperhöhe */
    object-fit: cover;
    object-position: 50% 20%;
  }
  /* Abstand von den Accordeons zu den "Wir tauchen ein…"-Karten reduzieren */
  .who-we-are-cards-wrapper {
    margin-top: 3rem;     /* war 6rem */
  }
}

/* Submit-Button des Kontaktformulars auf Mobil volle Breite */
@media screen and (max-width: 767px) {
  .contact-submit {
    align-self: stretch;
  }
}

/* Footer-Avatare: Desktop Name rechts daneben, Mobil Name unter den Fotos */
.footer-avatars {
  display: flex;
  flex-flow: row;
  align-items: center;
  gap: 1rem;
}
@media screen and (max-width: 991px) {
  .footer-avatars {
    flex-flow: column;
    align-items: flex-start;
    gap: 0.75rem;   /* Abstand Fotos → "Anton & Philipp"-Zeile */
  }
  /* Mehr Abstand über dem "Unternehmen"-Header (Spaltenabstand im Footer) */
  .footer-links-grid {
    grid-row-gap: 2.5rem;
    row-gap: 2.5rem;
  }
}

/* Vollbreiten-Submit-Button: Kreis linksbündig (wie andere Buttons),
   Text zentriert im verbleibenden Bereich. Icon bleibt im Fluss → Button-Höhe bleibt. */
@media screen and (max-width: 767px) {
  .contact-submit {
    justify-content: flex-start;
  }
  .contact-submit .button-text-wrapper {
    flex: 1;
  }
}

/* Eyebrows: Ausrichtung soll der jeweiligen Headline folgen. Mobil sind Eyebrows
   per Default zentriert (.eyebrow-text text-align:center). In den LINKSbündigen
   Sektionen (Referenzen-Heading, Case-Studies, "Wer wir sind") daher auf links
   ziehen, passend zur dortigen Headline. Zentrierte Sektionen bleiben zentriert. */
@media screen and (max-width: 991px) {
  .section-portfolio .headline-wrapper.centered .eyebrow-text,
  .flex-vertical-left-top-3 .eyebrow-text,
  .section-who-we-are .eyebrow-text {
    text-align: left;
  }
}

/* Desktop-only Zeilenumbruch (z. B. nach "zwei Partner,") – auf Mobil/Tablet aus */
@media screen and (max-width: 991px) {
  .desktop-br {
    display: none;
  }
}

/* ==========================================================================
   TABLET-SCHICHT  (Juni 2026)
   Steht bewusst am Datei-ENDE → gewinnt bei gleicher Spezifität gegen die
   früheren Responsive-Blöcke (vgl. Hinweis zu ≤479-Shorthands).

   Zwei Bereiche:
     A) Portrait-Tablet  768–991px  – korrigiert die "Riesen-Handy"-Optik
        (einspaltig / width:80%) hin zu echtem 2-Spalten-Tablet-Layout.
     B) Landscape-Tablet 992–1280px – "kleiner Desktop": nur große Fixed-Gaps
        entschärfen, damit nichts klemmt.
     C) CRM-Szene Orientierungs-Split – großes Portrait-Touch-Tablet (≥992px
        hochkant, z.B. iPad Pro 12.9" = 1024px) bekommt die Mobil-Sticky-Szene
        statt des Desktop-Pins (passend zu js/crm-scene.js → wantsMobileScene()).
   ========================================================================== */

/* ---------- A) PORTRAIT-TABLET 768–991px ---------------------------------- */
@media screen and (min-width: 768px) and (max-width: 991px) {

  /* --- Hero-Orbit: größer + linksbündig (statt zentriert), bündig zu H1/Text.
         Orbit-Icons werden in main.js dynamisch zur Kreisgröße platziert
         (getBoundingClientRect + resize-Recalc) → Skalieren ist sicher. --- */
  .hero-tablet {
    justify-content: flex-start;
    padding-left: 0;
  }
  .hero-tablet .hero-animation-wrapper {
    width: 440px;
    height: 440px;
    margin: 0;
  }
  .hero-tablet .hero-logo-outer-circle {
    width: 420px;
    height: 420px;
  }
  .hero-tablet .hero-logo-inner-circle {
    width: 250px;
    height: 250px;
  }
  .hero-tablet .hero-logo-box,
  .hero-tablet .hero-logo-box-middle {
    width: 54px;
    height: 54px;
  }
  .hero-tablet .hero-logo-box-sm {
    width: 46px;
    height: 46px;
  }
  .hero-tablet .logo-hero {
    max-width: 27px;
    height: 22px;
  }
  .hero-tablet .logo-hero-sm {
    max-width: 22px;
    height: 19px;
  }
  .hero-tablet .hero-tools-names {
    font-size: 9px;
  }

  /* --- Hamburger-Menü-Panel breiter (war 55%) --- */
  .hamburger-nav-menu {
    width: 80%;
  }

  /* --- Prozess-Funnel: der volle-Breite-„Deckel" (.funnel-walls) wurde durch
         das -2.5rem-Überlappen nach oben in die Punktlinie gezogen und kreuzte
         sie als horizontale Linie. Überlappen auf Tablet aufheben → Deckel sitzt
         unter der Punktlinie. --- */
  .services-flow-wrapper {
    margin-top: 0;
  }
  /* Funnel-Boden: flachere Mobil-Kurve nutzen. Die Tablet-Kurve (1236×939) ist
     zu steil und schneidet die Bubbles in Stufe 03 an. */
  .funnel-cone--tablet {
    display: none;
  }
  .funnel-cone--mobile {
    display: block;
  }

  /* --- Problem-Karten (hell oben + dunkel „Was ihr bekommt"): einspaltig
         gestapelt, je 80% breit & zentriert (statt 2+1). --- */
  .problem-grid {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    grid-row-gap: 1.75rem;
  }
  .problem-grid .outline-box {
    width: 80%;
  }
  /* Einspaltig gestapelt, je Kachel 80% breit & zentriert (statt 2+1) */
  .problem-grid-top {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .problem-grid-top .outline-box {
    width: 80%;
  }
  /* „Wer wir sind"-Karten: einspaltig, volle Breite (untereinander) */
  .who-we-are-cards-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    grid-row-gap: 1.5rem;
  }

  /* --- Footer wieder 2-spaltig (Marke | Links) wie auf Desktop --- */
  .footer-grid {
    grid-template-rows: auto;
    grid-template-columns: 1fr .75fr;
  }

  /* --- Leistungs-Kacheln: Animation als 16:9-Banner oben einblenden
         (auf Portrait war sie bisher ganz aus). Übernimmt das bewährte
         ≤767px-Muster, nutzt aber die größere Tablet-Fläche. --- */
  .leistungen-right {
    display: block;
    order: -9999;
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 300px;
    overflow: hidden;
    border-radius: var(--radius-m) var(--radius-m) 0 0;
  }
  .flex-vertical-left-top-3 {
    order: -9999;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  /* --- Heading-Block der Referenzen-Sektion gleich einrücken wie die Referenz-
         Karten darunter (.case-studies-wrapper hat 1.75rem Seiten-Padding). --- */
  .section-portfolio .container-large > .headline-wrapper {
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }

  /* --- Referenz-Mockup: volle Breite, linksbündig, mehr Luft oben/unten. WICHTIG:
         höhere Spezifität (.case-study-image-mobile.case-study-mockups) nötig, sonst
         gewinnt die ≤991-Regel mit align-self:flex-end (rechtsbündig) + margin:0. --- */
  .case-study-image-mobile.case-study-mockups {
    align-self: stretch;
    width: 100%;
    max-width: none;
    margin: 3.5rem 0;
  }
  /* Phone-Offset auf 0 (statt -7%), damit es bei voller Breite nicht links aus
     der Karte ragt; überlappt weiterhin die linke Ecke des Desktop-Mockups. */
  .case-study-image-mobile.case-study-mockups .mockup-phone {
    left: 0;
  }

  /* --- Referenzen-Abschlusstext („60+ Projekte…"): mehr Luft oben & unten
         (war 5.5rem / 2.5rem). --- */
  .references-outro {
    margin-top: 8rem;
    margin-bottom: 6rem;
  }

  /* --- CRM-Kacheln (Mobil-Sticky) auf breitem Tablet nicht vollflächig,
         sondern zentriert & begrenzt. margin-top(-42vh) bleibt unberührt. --- */
  .crm-boxes-flex {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
  }

  /* --- CRM-Kreis: getunte Mobil-Größenkette übernehmen. Tablet nutzte sonst
         die großen Desktop-Basisgrößen (Kreis 550px, Ringe 600/650px) → die
         Ringe ragten ins Overflow-Clip und wirkten angeschnitten. Ring-Größe und
         Sticky-Hub (padding-bottom) sind gekoppelt, daher beide von Mobil. --- */
  .crm-cricle,
  .crm-cricle-bg,
  .crm-bg-light {
    width: 350px;
    height: 350px;
  }
  .crm-circle-abs-s {
    width: 400px;
    height: 400px;
  }
  .crm-circle-abs-m {
    width: 450px;
    height: 450px;
  }
  /* Sichtfläche (= 100vh − padding-bottom) größer als der äußere Ring (450px),
     damit er nicht vom overflow:hidden beschnitten wird → ~540px statt 400px. */
  .js-anim .crm-cricle-wrapper {
    padding-bottom: min(60vh, calc(100vh - 540px));
  }

  /* --- AI-&-Automation-Sektion: Bild + Label waren mit den Handy-Werten zu klein
         (290px / 0.9rem) und der -2rem-Zug klemmte das Label in den Funnel.
         Größer skalieren + Luft zwischen Funnel und Label. --- */
  .ai-automation-img {
    height: 410px;
  }
  .custom-ai-wrapper {
    height: 410px;
  }
  .custom-ai-text {
    font-size: 1.35rem;
    line-height: 1.3;
    padding: 16px 12px;
  }
  .ai-animation-wrapper {
    margin-left: 0;
  }
  /* Oben 5rem (Funnel→Text-Gap aus ≤991 bleibt), unten ~15rem
     (= 11rem wrapper-padding-bottom + 4rem result-margin). */
  .ai-automation-wrapper {
    padding-bottom: 11rem;
  }

  /* --- CTA „Anton & Philipp": Portraits/Text gestapelt & zentriert. Trennstrich nach
         den Portraits weg; Button sitzt mittig auf der unteren Pill-Linie; mehr
         Luft ober- und unterhalb des Textes. --- */
  .avatars-wrapper.white-stroke {
    position: relative;
    padding-top: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2rem;          /* Platz für die unten überstehende Button-Hälfte */
  }
  .avatars-wrapper-inner-left.section-ai {
    flex-flow: column;
    align-items: center;
    text-align: center;
    grid-row-gap: 2rem;           /* mehr Abstand Portraits → Text */
    row-gap: 2rem;
  }
  /* keine Trennlinie nach den Portraits (weder vertikal noch horizontal) */
  .avatars-wrapper.white-stroke .vertical-line.white,
  .avatars-wrapper.white-stroke .horizontal-line._50--wide {
    display: none;
  }
  /* Button mittig auf den unteren Rand der Pill setzen (straddle) */
  .avatars-wrapper.white-stroke .primary-button.white-bg {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
  }
}

/* ---------- B) LANDSCAPE-TABLET / kleiner Laptop 992–1280px --------------- */
@media screen and (min-width: 992px) and (max-width: 1280px) {
  /* 8rem-Spalten-Gap ist hier zu groß → Spalten würden klemmen */
  .who-we-are-grid {
    grid-column-gap: 3rem;
    grid-row-gap: 3rem;
  }
}

/* ---------- C) CRM-Szene: großes Portrait-Touch-Tablet → Mobil-Sticky ----- */
@media (min-width: 992px) and (orientation: portrait) and (pointer: coarse) {
  /* Desktop-Pin zurücknehmen */
  .js-anim .scroll-track { height: auto; }
  .js-anim .animation-content {
    position: sticky;
    top: 0;
    height: auto;
    display: block;
    overflow: visible;
  }
  .animation-content { overflow: visible; }

  /* Mobil-Sticky-Kreis (aus dem ≤991-Setup) */
  .js-anim .crm-cricle-wrapper {
    position: sticky;
    top: 0;
    flex: none;
    width: 100%;
    height: 100vh;
    max-height: none;
    margin: 0;
    padding-bottom: min(68vh, calc(100vh - 600px));
    overflow: hidden;
    border-radius: 0;
    z-index: 0;
  }
  .crm-animation { padding-bottom: 0; }

  /* Kacheln gestapelt, zentriert, unter dem Kreis */
  .crm-boxes-flex,
  .js-anim .crm-boxes-flex {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    z-index: 2;
    flex-flow: column;
    width: 100%;
    max-width: 42rem;
    margin: -42vh auto 0;
    padding: 0 1.5rem 2rem;
    background-color: var(--brand-dark-blue);
    align-items: stretch;
  }
  .crm-anim-box { width: 100%; padding: 2rem 2rem 4rem; }
  .crm-anim-box.left,
  .crm-anim-box.right { top: 0; }
  .crm-box-text {
    text-align: center;
    align-items: center;
    padding-left: 0;
    padding-right: 0;
  }
  .js-anim .crm-anim-box {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .js-anim .crm-anim-box.in-view {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   Flache Desktop-Screens (z. B. 13"-Laptops im Querformat): Die gepinnte CRM-
   Szene kompakter, damit Heading + Kacheln in den 100vh-Frame passen und das
   Heading beim Hochscrollen nicht oben abgeschnitten wird. Nur Größen/Offsets –
   die JS-Transforms (Lift/Kachel-Einblendung) bleiben unangetastet; calcLift in
   crm-scene.js misst neu und ergibt dadurch automatisch einen kleineren Lift.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 880px) {
  .crm-cricle h2 {
    font-size: var(--h2-l);            /* 60px → 46px: kompakteres Heading */
  }
  .crm-box-text h3 {
    font-size: var(--h3-s);            /* 30px → 26px */
  }
  .crm-anim-box {
    padding-bottom: 2rem;              /* Kacheln etwas niedriger */
  }
  /* Kacheln tiefer ansetzen → weniger Überlappung mit dem Heading, weniger Lift nötig */
  .crm-boxes-flex {
    top: -40px;
  }
  .crm-anim-box.left,
  .crm-anim-box.right {
    top: -110px;
  }
}
