
.hfh-hero {
  --hfh-accent: #1f56d8;
  --hfh-noise-opacity: .05;
  --hfh-accent-hover: #2b67f0;
  --hfh-ghost-hover: #e8f0ff;
  --hfh-title-color: #123b8f;
  --hfh-eyebrow-color: #123b8f;
  --hfh-body-copy-color: #294f95;
  --hfh-badge-copy-color: #ffffff;
  --hfh-button-text-color: #ffffff;
  --hfh-ghost-button-text-color: #143a8c;
  --hfh-card-title-color: #123b8f;
  --hfh-card-text-color: #33558f;
  --hfh-bg: #061216;
  --hfh-bg-2: #08171d;
  --hfh-panel: rgba(255,255,255,0.10);
  --hfh-border: rgba(255,255,255,0.14);
  --hfh-text: #123b8f;
  --hfh-muted: #33558f;
  --hfh-stage-max-width: 1280px;
  --hfh-section-pt: 0px;
  --hfh-section-pb: 14px;
  --hfh-stage-pt: 38px;
  --hfh-stage-pb: 14px;
  --hfh-stage-px: 26px;
  --hfh-title-max-width: 780px;
  --hfh-radius: 34px;
  --hfh-title-size: 64px;
  --hfh-text-size: 15px;
  --hfh-card-text-size: 10.5px;
  --hfh-eyebrow-size: 12px;
  --hfh-badge-size: 13px;
  --hfh-top-fade-color: #ffffff;
  --hfh-top-fade-height: 180px;
  --hfh-top-fade-softness: 120px;
  --hfh-bg-image: none;
  --hfh-card-image: none;
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: var(--hfh-section-pt) 0 var(--hfh-section-pb);
  margin-top: 0 !important;
  color: var(--hfh-text);
  overflow: hidden;
}


.hfh-hero__bg,
.hfh-hero__lines,
.hfh-hero__image {
  position: absolute;
  inset: 0;
}

.hfh-hero__bg { z-index: 0; }
.hfh-hero__image { z-index: 1; }
.hfh-hero__lines { z-index: 2; }

.hfh-hero__bg {
  background: linear-gradient(180deg,
    #ffffff 0%,
    #ffffff 24%,
    #fbfdff 44%,
    #f2f8fc 66%,
    #e4f1f9 84%,
    #d6eaf7 100%
  );
}

.hfh-hero__bg::before,
.hfh-hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hfh-hero__bg::before {
  display: none;
}

.hfh-hero__bg::after {
  opacity: calc(var(--hfh-noise-opacity) + .015);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
  background-size: 220px 220px;
  mix-blend-mode: soft-light;
}

.hfh-hero__image {
  background-image:
    linear-gradient(180deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,1) 12%,
      rgba(255,255,255,0.985) 22%,
      rgba(255,255,255,0.95) 34%,
      rgba(255,255,255,0.86) 48%,
      rgba(255,255,255,0.70) 62%,
      rgba(255,255,255,0.46) 78%,
      rgba(255,255,255,0.18) 92%,
      rgba(255,255,255,0.00) 100%
    ),
    var(--hfh-bg-image);
  background-position: center top, center bottom;
  background-size: 100% 100%, cover;
  background-repeat: no-repeat, no-repeat;
  opacity: .075;
  mix-blend-mode: normal;
}

 .hfh-stage {
  position: relative;
  z-index: 2;
  max-width: var(--hfh-stage-max-width);
  margin: -8px auto 0;
  border-radius: var(--hfh-radius);
  padding: var(--hfh-stage-pt) var(--hfh-stage-px) var(--hfh-stage-pb);
  overflow: hidden;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.hfh-container {
  position: relative;
  z-index: 2;
  max-width: 100%;
  margin: 0 auto;
}

.hfh-hero.has-line-overlay .hfh-hero__lines::before,
.hfh-hero.has-line-overlay .hfh-hero__lines::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 12%, rgba(255,255,255,0.18) 12.08%, transparent 12.16%),
    linear-gradient(90deg, transparent 82%, rgba(255,255,255,0.18) 82.08%, transparent 82.16%);
  pointer-events: none;
}

.hfh-hero__lines::after {
  inset: auto 14% 22px 14%;
  height: 1px;
  background: rgba(255,255,255,0.18);
}

.hfh-hero__glow {
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  filter: blur(70px);
}

.hfh-hero__glow--left {
  left: -180px;
  bottom: -220px;
  background: color-mix(in srgb, var(--hfh-accent) 16%, transparent);
}

.hfh-hero__glow--right {
  right: -170px;
  bottom: -230px;
  background: rgba(110, 206, 255, 0.14);
}

.hfh-hero__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
  padding-top: 0;
}

.hfh-badge-wrap {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(18,59,143,0.10);
  background: rgba(18,59,143,0.18);
  backdrop-filter: blur(10px);
  font-size: var(--hfh-badge-size);
}

.hfh-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #fff;
  color: #123b8f;
  font-weight: 700;
  font-size: 12px;
}

.hfh-badge-copy,
.hfh-badge-arrow { color: var(--hfh-badge-copy-color); }

.hfh-copy {
  max-width: var(--hfh-title-max-width);
  position: relative;
  z-index: 3;
}

.hfh-copy::before { display: none; }

.hfh-eyebrow {
  font-size: var(--hfh-eyebrow-size);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 10px;
  color: var(--hfh-eyebrow-color);
}

.hfh-title {
  margin: 0;
  font-size: clamp(34px, 4vw, var(--hfh-title-size));
  line-height: .98;
  letter-spacing: -0.05em;
  color: var(--hfh-title-color);
  text-wrap: balance;
}

.hfh-text {
  max-width: min(900px, 100%);
  margin: 14px auto 0;
  font-size: clamp(13px, 0.95vw, var(--hfh-text-size));
  line-height: 1.65;
  color: var(--hfh-body-copy-color);
}

.hfh-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}

.hfh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 20px;
  border-radius: 14px;
  text-decoration: none !important;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease, color .2s ease;
  box-shadow: none !important;
}

.hfh-btn:hover { transform: translateY(-2px); }
.hfh-btn--primary:hover { background: var(--hfh-accent-hover); }
.hfh-btn--ghost:hover { background: var(--hfh-ghost-hover); color: var(--hfh-ghost-button-text-color); }
.hfh-btn--ghost:hover span,
.hfh-btn--ghost:hover span[aria-hidden="true"] { color: var(--hfh-ghost-button-text-color); }

.hfh-btn--primary {
  background: var(--hfh-accent);
  color: var(--hfh-button-text-color);
}

.hfh-btn--primary span,
.hfh-btn--primary span[aria-hidden="true"] { color: var(--hfh-button-text-color); }

.hfh-btn--ghost {
  background: rgba(255,255,255,0.90);
  color: var(--hfh-ghost-button-text-color);
  border: 1px solid rgba(20,58,140,0.08);
}

.hfh-btn--ghost span,
.hfh-btn--ghost span[aria-hidden="true"] { color: var(--hfh-ghost-button-text-color); }

.hfh-showcase {
  position: relative;
  display: grid;
  grid-template-columns: 1.25fr .78fr .68fr .78fr 1.18fr;
  gap: 12px;
  align-items: stretch;
  margin-top: 24px;
}

.hfh-showcase::before {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 18px;
  height: 240px;
  border: 1px solid rgba(18,59,143,0.08);
  border-bottom: none;
  border-radius: 999px 999px 0 0;
  opacity: .45;
  pointer-events: none;
}

.hfh-card {
  position: relative;
  min-height: 208px;
  padding: 18px;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,0.42);
  background: linear-gradient(180deg, rgba(255,255,255,0.62), rgba(241,248,252,0.52));
  box-shadow: none;
  overflow: hidden;
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.hfh-card > * { position: relative; z-index: 1; }

.hfh-card.is-image,
.hfh-card.is-stat.large { min-height: 244px; }
.hfh-card.is-image { padding: 0; }

.hfh-card__photo {
  position: absolute;
  inset: 0;
  background: var(--hfh-card-image) center / contain no-repeat;
  filter: none;
  background-color: var(--hfh-card-image-bg, white);
}

.hfh-card__photo-overlay {
  position: absolute;
  inset: auto 0 0 0;
  height: 55%;
  background: linear-gradient(180deg, transparent, rgba(6,15,16,0.82));
}

.hfh-hero.no-card-image-overlay .hfh-card__photo-overlay {
  opacity: 0;
}

.hfh-card__photo-copy {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 2;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hfh-card__photo-copy strong,
.hfh-card__value,
.hfh-card__title {
  color: var(--hfh-card-title-color);
}

.hfh-card__photo-copy strong,
.hfh-card__value {
  font-weight: 800;
}

.hfh-card__photo-copy span {
  color: var(--hfh-card-text-color);
  line-height: 1.45;
  font-size: var(--hfh-card-text-size);
}

.hfh-card__value {
  font-size: clamp(34px, 2.55vw, 46px);
  line-height: 1;
  margin-bottom: 8px;
}

.hfh-card__title {
  font-size: clamp(18px, 1.4vw, 28px);
  line-height: 1.12;
  font-weight: 700;
}

.hfh-card__text {
  margin-top: 10px;
  font-size: var(--hfh-card-text-size);
  line-height: 1.55;
  color: var(--hfh-card-text-color);
}

.hfh-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
  justify-content: center;
}

.hfh-card__tags span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--hfh-accent) 10%, white 90%);
  border: 1px solid color-mix(in srgb, var(--hfh-accent) 22%, transparent);
  color: var(--hfh-accent);
  font-size: 11px;
  font-weight: 700;
}

.hfh-card.is-copy,
.hfh-card.is-bars { align-self: stretch; }

.hfh-bars {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 10px;
  height: 102px;
  margin-top: 18px;
  width: 100%;
  max-width: 120px;
}

.hfh-bars span {
  flex: 1;
  border-radius: 999px;
  background: rgba(18,59,143,0.12);
}

.hfh-bars span:nth-child(1) { height: 32px; }
.hfh-bars span:nth-child(2) { height: 46px; }
.hfh-bars span:nth-child(3) { height: 58px; }
.hfh-bars span:nth-child(4) { height: 86px; }
.hfh-bars span:nth-child(5) { height: 42px; }
.hfh-bars span.is-active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--hfh-accent) 70%, white 30%), color-mix(in srgb, var(--hfh-accent) 84%, black 16%));
  box-shadow: none;
}

@media (max-width: 1400px) {
  .hfh-stage {
    max-width: min(calc(100vw - 28px), var(--hfh-stage-max-width));
  }
}

@media (max-width: 1200px) {
  .hfh-showcase {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .hfh-card.is-stat.large,
  .hfh-card.is-image {
    grid-column: auto;
  }
}

@media (max-width: 767px) {
  .hfh-hero {
    --hfh-section-pt: 0px;
    --hfh-section-pb: 18px;
  }

  .hfh-stage {
    max-width: calc(100vw - 18px);
    padding: 18px 14px 16px;
    border-radius: 24px;
  }

  .hfh-badge-wrap {
    font-size: 12px;
    gap: 8px;
    padding: 7px 12px;
  }

  .hfh-title {
    font-size: clamp(30px, 11vw, 44px);
  }

  .hfh-text {
    font-size: 14px;
    line-height: 1.55;
  }

  .hfh-showcase {
    grid-template-columns: 1fr;
    margin-top: 22px;
    gap: 10px;
  }

  .hfh-showcase::before,
  .hfh-hero__lines::before,
  .hfh-hero__lines::after { display: none; }

  .hfh-card,
  .hfh-card.is-stat.large,
  .hfh-card.is-image {
    grid-column: auto;
    min-height: 164px;
    border-radius: 22px;
  }

  .hfh-card.is-image { min-height: 210px; }

  .hfh-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hfh-btn { width: 100%; }
}

body.hfh-hero-active .hfh-hero { margin-bottom: 0; }
body.hfh-hero-active { overflow-x: hidden; }

.hfh-hero.has-stage-overlay .hfh-stage {
  background:
    radial-gradient(circle at 12% 100%, color-mix(in srgb, var(--hfh-accent) 26%, transparent), transparent 22%),
    radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--hfh-accent) 22%, transparent), transparent 24%),
    linear-gradient(180deg, rgba(5, 14, 17, .76) 0%, rgba(7, 19, 24, .84) 55%, rgba(8, 23, 29, .88) 100%);
  border: 1px solid rgba(255,255,255,0.04);
  box-shadow: none;
}

.hfh-hero.no-stage-overlay .hfh-stage {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.hfh-hero.no-stage-overlay .hfh-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.62), rgba(240,248,252,0.52));
  border-color: rgba(255,255,255,0.42);
}


.hfh-card__value[data-target] { font-variant-numeric: tabular-nums; }
.hfh-card.is-stat { justify-content: center; }
.hfh-card.is-stat.large { min-height: 244px; }
.hfh-card.is-stat:not(.large) { min-height: 208px; }
.hfh-card.is-copy { min-height: 224px; }
.hfh-card.is-bars { min-height: 224px; }
.hfh-hero.no-stage-overlay .hfh-stage { margin-top: -10px; }
@media (max-width: 767px) {
  .hfh-stage { margin-top: -4px; }
  .hfh-card__title { font-size: clamp(18px, 6vw, 28px); }
  .hfh-card__value { font-size: clamp(28px, 10vw, 42px); }
}


.hfh-popup {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.hfh-popup.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Native hash fallback: the catalog still opens when script execution is delayed. */
.hfh-popup:target {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hfh-popup__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 18, 28, .62);
  backdrop-filter: blur(8px);
}

.hfh-popup__dialog {
  position: relative;
  z-index: 1;
  width: min(620px, 100%);
  max-height: min(88vh, 820px);
  overflow: auto;
  border-radius: 24px;
  background: #ffffff;
  color: #123b8f;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .24);
  padding: 34px;
  transform: translateY(14px) scale(.98);
  transition: transform .22s ease;
}

.hfh-popup.is-open .hfh-popup__dialog {
  transform: translateY(0) scale(1);
}

.hfh-popup:target .hfh-popup__dialog {
  transform: translateY(0) scale(1);
}

.hfh-popup__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: rgba(18,59,143,.08);
  color: #123b8f;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
}

.hfh-popup__close:hover,
.hfh-popup__close:focus-visible {
  background: rgba(18,59,143,.15);
}

.hfh-popup__header {
  padding-right: 38px;
  margin-bottom: 20px;
}

.hfh-popup__eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--hfh-accent);
}

.hfh-popup__header h2 {
  margin: 0 0 8px;
  color: #123b8f;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.hfh-popup__header p:last-child {
  margin: 0;
  color: #33558f;
  line-height: 1.55;
}

.hfh-popup__form .wpcf7-form p {
  margin: 0 0 14px;
}

.hfh-popup__form input:not([type="submit"]),
.hfh-popup__form textarea,
.hfh-popup__form select {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(18,59,143,.18);
  border-radius: 12px;
  padding: 10px 12px;
  color: #123b8f;
  background: #fff;
}

.hfh-popup__form textarea {
  min-height: 110px;
}

.hfh-popup__form input[type="submit"],
.hfh-popup__form button[type="submit"] {
  min-height: 48px;
  border: 0;
  border-radius: 14px;
  padding: 0 20px;
  background: var(--hfh-accent);
  color: var(--hfh-button-text-color);
  font-weight: 800;
  cursor: pointer;
}

.hfh-popup__form input[type="submit"]:hover,
.hfh-popup__form button[type="submit"]:hover {
  background: var(--hfh-accent-hover);
}

body.hfh-popup-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .hfh-popup {
    padding: 14px;
  }

  .hfh-popup__dialog {
    padding: 26px 20px;
    border-radius: 20px;
  }
}


.hfh-popup__content--catalog {
  width: 100%;
}

.hfh-popup__form-host {
  color: #123b8f;
  box-sizing: border-box;
}

.hfh-popup__form-host .hfh-popup__content--catalog {
  width: 100%;
  max-width: 100%;
}

.hfh-popup__form-host .hfh-popup__header {
  padding-right: 0;
}

.hfh-popup__form-host .hfh-popup__form {
  width: 100%;
}


/* v1.6.14 – refined popup form styling */
.hfh-popup__dialog {
  width: min(760px, 100%);
  border-radius: 28px;
  padding: 38px;
}

.hfh-popup__content--catalog {
  max-width: 100%;
}

.hfh-popup__header {
  margin-bottom: 26px;
}

.hfh-popup__eyebrow {
  color: #6a7a96;
  font-size: 11px;
  letter-spacing: .16em;
}

.hfh-popup__header h2 {
  color: #173b7a;
}

.hfh-popup__header p:last-child {
  color: #667792;
}

.hfh-popup__form .wpcf7,
.hfh-popup__form .wpcf7 form,
.hfh-popup__form .hef_form {
  width: 100%;
}

.hfh-popup__form .hef_form {
  background: #f8fafc;
  border: 1px solid #e4ebf3;
  border-radius: 22px;
  padding: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.hfh-popup__form .row.no-gutters {
  margin-left: -8px;
  margin-right: -8px;
}

.hfh-popup__form .row.no-gutters > [class*="col-"] {
  padding-left: 8px;
  padding-right: 8px;
}

.hfh-popup__form .hef-contact-left .row,
.hfh-popup__form .hef-contact-right .row {
  row-gap: 12px;
}

.hfh-popup__form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
.hfh-popup__form textarea,
.hfh-popup__form select,
.hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
  width: 100%;
  min-height: 54px;
  border: 1px solid #dbe4ef;
  border-radius: 14px;
  padding: 14px 16px;
  background: #ffffff;
  color: #173b7a;
  font-size: 15px;
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .03);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.hfh-popup__form input::placeholder,
.hfh-popup__form textarea::placeholder {
  color: #93a1b5;
}

.hfh-popup__form input:not([type="submit"]):not([type="checkbox"]):focus,
.hfh-popup__form textarea:focus,
.hfh-popup__form select:focus {
  outline: none;
  border-color: #97acd1;
  box-shadow: 0 0 0 4px rgba(33, 71, 138, .10);
}

.hfh-popup__form textarea,
.hfh-popup__form .hef-message {
  min-height: 172px;
  resize: vertical;
}

.hfh-popup__form .hef-cotnact-accept.accept {
  margin-top: 6px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #dbe4ef;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-list-item,
.hfh-popup__form .hef-cotnact-accept label {
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
  width: 20px;
  min-width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: #294f95;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
  display: block;
  color: #5f6f86;
  font-size: 13px;
  line-height: 1.6;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label a {
  color: #294f95;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hfh-popup__form .input_anfordern {
  margin-top: 4px;
}

.hfh-popup__form .input_anfordern .button {
  display: block;
  width: 100%;
}

.hfh-popup__form .input_anfordern .hef-button {
  display: none !important;
}

.hfh-popup__form input.wpcf7-submit,
.hfh-popup__form .wpcf7-submit,
.hfh-popup__form button[type="submit"] {
  appearance: none;
  width: 100%;
  min-height: 56px;
  border: 0;
  border-radius: 16px;
  padding: 0 22px;
  background: linear-gradient(135deg, #244a8c 0%, #163567 100%);
  color: #ffffff;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .01em;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(23, 59, 122, .18);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease, background .2s ease;
}

.hfh-popup__form input.wpcf7-submit:hover,
.hfh-popup__form .wpcf7-submit:hover,
.hfh-popup__form button[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(23, 59, 122, .22);
  background: linear-gradient(135deg, #2b579f 0%, #1a417d 100%);
}

.hfh-popup__form input.wpcf7-submit[disabled],
.hfh-popup__form .wpcf7-submit[disabled],
.hfh-popup__form .hef-form-button.disabled {
  opacity: .55;
  cursor: not-allowed;
  box-shadow: none;
}

.hfh-popup__form .wpcf7-spinner {
  display: block;
  margin: 10px auto 0;
}

.hfh-popup__form .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 14px;
  font-size: 13px;
}

.hfh-popup__form .wpcf7-not-valid-tip {
  margin-top: 6px;
  color: #b42318;
  font-size: 12px;
}

.hfh-popup__form .screen-reader-response {
  display: none;
}

@media (max-width: 767px) {
  .hfh-popup__dialog {
    width: min(100%, 100%);
    padding: 26px 18px;
    border-radius: 22px;
  }

  .hfh-popup__header {
    margin-bottom: 18px;
  }

  .hfh-popup__form .hef_form {
    padding: 14px;
    border-radius: 18px;
  }

  .hfh-popup__form textarea,
  .hfh-popup__form .hef-message {
    min-height: 140px;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    font-size: 12px;
    line-height: 1.55;
  }
}


/* v1.6.15 – stacked centered form layout with visible submit button */
.hfh-popup__dialog {
  width: min(720px, 100%);
}

.hfh-popup__form {
  max-width: 620px;
  margin: 0 auto;
}

.hfh-popup__form .row.no-gutters {
  display: flex;
  flex-wrap: wrap;
}

.hfh-popup__form .hef-contact-left,
.hfh-popup__form .hef-contact-right {
  flex: 0 0 100%;
  max-width: 100%;
}

.hfh-popup__form .hef-contact-left {
  margin-bottom: 2px;
}

.hfh-popup__form .hef-contact-right .row {
  display: flex;
  flex-wrap: wrap;
}

.hfh-popup__form .hef-contact-message,
.hfh-popup__form .hef-cotnact-accept,
.hfh-popup__form .input_anfordern {
  flex: 0 0 100%;
  max-width: 100%;
}

.hfh-popup__form .hef-contact-message {
  order: 1;
}

.hfh-popup__form .hef-cotnact-accept {
  order: 2;
}

.hfh-popup__form .input_anfordern {
  order: 3;
}

.hfh-popup__form .hef-contact-message,
.hfh-popup__form .hef-cotnact-accept.accept,
.hfh-popup__form .input_anfordern {
  margin-top: 12px;
}

.hfh-popup__form textarea,
.hfh-popup__form .hef-message {
  min-height: 150px;
}

.hfh-popup__form .hef-cotnact-accept.accept {
  text-align: left;
}

.hfh-popup__form .input_anfordern {
  padding-bottom: 4px;
}

.hfh-popup__form .input_anfordern .button {
  position: relative;
  display: block;
  width: 100%;
  min-height: 56px;
}

/* show the visual button again, but style it nicely */
.hfh-popup__form .input_anfordern .hef-button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 56px;
  border-radius: 16px;
  padding: 0 22px;
  background: linear-gradient(135deg, #244a8c 0%, #163567 100%);
  color: #ffffff;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.2;
  box-shadow: 0 14px 30px rgba(23, 59, 122, .18);
  box-sizing: border-box;
}

.hfh-popup__form .input_anfordern .hef-button.disabled {
  opacity: .55;
  box-shadow: none;
}

.hfh-popup__form .input_anfordern .hef-button .hef-button-arrow {
  display: inline-flex;
  align-items: center;
}

.hfh-popup__form .input_anfordern .hef-button .hef-button-arrow svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

/* keep real submit clickable and visible above any theme rules */
.hfh-popup__form .input_anfordern input.wpcf7-submit,
.hfh-popup__form .input_anfordern .wpcf7-submit,
.hfh-popup__form input.wpcf7-submit.hartl_anfordern {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  width: 100% !important;
  min-height: 56px !important;
  margin-top: 12px !important;
  border: 0 !important;
  border-radius: 16px !important;
  padding: 0 22px !important;
  background: linear-gradient(135deg, #244a8c 0%, #163567 100%) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 56px !important;
  text-align: center !important;
  box-shadow: 0 14px 30px rgba(23, 59, 122, .18) !important;
  cursor: pointer !important;
  appearance: none !important;
}

.hfh-popup__form .input_anfordern input.wpcf7-submit:hover,
.hfh-popup__form .input_anfordern .wpcf7-submit:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg, #2b579f 0%, #1a417d 100%) !important;
}

.hfh-popup__form .input_anfordern input.wpcf7-submit[disabled],
.hfh-popup__form .input_anfordern .wpcf7-submit[disabled] {
  opacity: .55 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

@media (max-width: 767px) {
  .hfh-popup__form {
    max-width: 100%;
  }

  .hfh-popup__form textarea,
  .hfh-popup__form .hef-message {
    min-height: 130px;
  }
}


/* v1.6.16 – clean single-button popup, visible header, inline close */
.hfh-popup__content--catalog {
  position: relative;
}

.hfh-popup__content--catalog .hfh-popup__header {
  display: block !important;
  max-width: 620px;
  margin: 0 auto 22px;
  text-align: center;
}

.hfh-popup__content--catalog .hfh-popup__header h2,
.hfh-popup__content--catalog .hfh-popup__header p,
.hfh-popup__content--catalog .hfh-popup__eyebrow {
  display: block !important;
}

.hfh-popup__inner-close {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: #eef3f8;
  color: #49627f;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(16,24,40,.08);
  text-decoration: none !important;
}

.hfh-popup__inner-close:hover,
.hfh-popup__inner-close:focus-visible {
  background: #e4ebf3;
}

.hfh-popup__form .hef_form {
  background: #f7f9fc;
}

.hfh-popup__form .hef-cotnact-accept.accept {
  background: #f7f9fc;
  border-color: #e1e8f0;
}

.hfh-popup__form .input_anfordern .hef-button {
  display: none !important;
}

.hfh-popup__form .input_anfordern input.wpcf7-submit,
.hfh-popup__form .input_anfordern .wpcf7-submit,
.hfh-popup__form input.wpcf7-submit.hartl_anfordern {
  display: block !important;
  margin-top: 0 !important;
}

.hfh-popup__form .input_anfordern {
  margin-top: 14px;
}

@media (max-width: 767px) {
  .hfh-popup__inner-close {
    top: -4px;
    right: -4px;
  }
}


/* v1.6.17 – smaller scrollable popup, cleaner acceptance area */
.hfh-popup__dialog {
  width: min(660px, 100%);
  max-height: min(84vh, 760px);
  overflow-y: auto;
}

.hfh-popup__content--catalog {
  max-width: 560px;
  margin: 0 auto;
  padding-top: 8px;
}

.hfh-popup__form-host {
  position: relative;
  max-height: 82vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  padding: 10px 10px 4px;
  box-sizing: border-box;
}

.hfh-popup__form-host .hfh-popup__content--catalog {
  max-width: 560px;
  margin: 0 auto;
}

.hfh-popup__content--catalog .hfh-popup__header {
  margin: 0 auto 16px;
  padding-top: 4px;
}

.hfh-popup__content--catalog .hfh-popup__header h2 {
  margin-bottom: 6px;
  font-size: clamp(24px, 3vw, 38px);
}

.hfh-popup__content--catalog .hfh-popup__header p:last-child {
  font-size: 14px;
}

.hfh-popup__form {
  max-width: 560px;
}

.hfh-popup__form .hef_form {
  padding: 14px;
  border-radius: 18px;
}

.hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
.hfh-popup__form textarea,
.hfh-popup__form select,
.hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
  min-height: 50px;
  padding: 12px 14px;
}

.hfh-popup__form textarea,
.hfh-popup__form .hef-message {
  min-height: 130px;
}

.hfh-popup__form .hef-contact-message,
.hfh-popup__form .hef-cotnact-accept.accept,
.hfh-popup__form .input_anfordern {
  margin-top: 10px;
}

/* acceptance should look integrated, not like a separate card */
.hfh-popup__form .hef-cotnact-accept.accept {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-form-control.wpcf7-acceptance {
  display: block;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-list-item,
.hfh-popup__form .hef-cotnact-accept label {
  gap: 10px;
}

.hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
  color: #5f6f86;
  font-size: 12px;
  line-height: 1.55;
}

.hfh-popup__form .input_anfordern input.wpcf7-submit,
.hfh-popup__form .input_anfordern .wpcf7-submit,
.hfh-popup__form input.wpcf7-submit.hartl_anfordern {
  min-height: 52px !important;
  line-height: 52px !important;
  border-radius: 14px !important;
}

/* close button should remain visible while scrolling */
.hfh-popup__inner-close {
  position: sticky;
  top: 0;
  right: 0;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
}

/* for replaced popup content in Elementor/other modals */
.hfh-popup__form-host.elementor-widget-container,
.dialog-message .hfh-popup__form-host,
.pum-content .hfh-popup__form-host,
.modal-body .hfh-popup__form-host {
  max-height: 82vh;
  overflow-y: auto;
}

@media (max-width: 767px) {
  .hfh-popup__dialog {
    width: min(94vw, 100%);
    max-height: 86vh;
  }

  .hfh-popup__form-host {
    max-height: 84vh;
    padding: 8px 4px 2px;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__form {
    max-width: 100%;
  }

  .hfh-popup__form .hef_form {
    padding: 12px;
  }

  .hfh-popup__content--catalog .hfh-popup__header {
    margin-bottom: 14px;
  }
}


/* v1.6.18 – more top offset under header, roomier frame/padding */
.hfh-popup {
  align-items: flex-start;
  padding-top: 96px;
  padding-bottom: 32px;
}

.hfh-popup__dialog {
  margin: 0 auto;
  width: min(680px, 100%);
  max-height: calc(100vh - 128px);
  padding: 30px 30px 24px;
  overflow-y: auto;
}

.hfh-popup__content--catalog,
.hfh-popup__form {
  max-width: 590px;
}

.hfh-popup__content--catalog {
  padding-top: 6px;
}

.hfh-popup__content--catalog .hfh-popup__header {
  margin-bottom: 18px;
}

.hfh-popup__form-host {
  max-width: 680px;
  margin: 18px auto 0;
  padding: 24px 28px 18px;
  box-sizing: border-box;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
  overflow-x: hidden;
  scroll-padding-top: 22px;
}

.hfh-popup__form-host .hfh-popup__content--catalog {
  max-width: 590px;
  margin: 0 auto;
}

.hfh-popup__form {
  margin: 0 auto;
}

.hfh-popup__form .hef_form {
  padding: 20px;
  border-radius: 20px;
}

.hfh-popup__form .hef-contact-left .row,
.hfh-popup__form .hef-contact-right .row {
  row-gap: 14px;
}

.hfh-popup__form .hef-contact-message,
.hfh-popup__form .hef-cotnact-accept.accept,
.hfh-popup__form .input_anfordern {
  margin-top: 12px;
}

.hfh-popup__inner-close {
  top: 4px;
}

/* when injected into Elementor/other popups, keep it below header and roomier */
.elementor-popup-modal .dialog-message .hfh-popup__form-host,
.dialog-widget .hfh-popup__form-host,
.pum .hfh-popup__form-host,
.modal .hfh-popup__form-host,
[role="dialog"] .hfh-popup__form-host {
  margin-top: 26px;
  padding-top: 30px;
  padding-right: 30px;
  padding-left: 30px;
  padding-bottom: 20px;
  max-height: calc(100vh - 155px);
}

@media (max-width: 767px) {
  .hfh-popup {
    padding-top: 78px;
    padding-bottom: 20px;
  }

  .hfh-popup__dialog {
    width: min(94vw, 100%);
    max-height: calc(100vh - 96px);
    padding: 24px 18px 18px;
  }

  .hfh-popup__form-host {
    margin-top: 10px;
    padding: 18px 16px 14px;
    max-height: calc(100vh - 110px);
  }

  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    margin-top: 14px;
    padding-top: 20px;
    padding-right: 16px;
    padding-left: 16px;
    padding-bottom: 14px;
    max-height: calc(100vh - 118px);
  }

  .hfh-popup__form .hef_form {
    padding: 16px;
  }
}


/* v1.6.19 – more top spacing under header + full popup scrolling */
.hfh-popup {
  align-items: flex-start;
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: 120px;
  padding-right: 24px;
  padding-bottom: 32px;
  padding-left: 24px;
  box-sizing: border-box;
}

.hfh-popup__dialog {
  margin: 0 auto 24px;
  width: min(680px, 100%);
  max-height: none;
  overflow: visible;
}

/* allow the overall popup area to scroll instead of squeezing/cutting the top */
.hfh-popup__content--catalog {
  max-width: 590px;
  margin: 0 auto;
}

/* injected form inside existing popups: keep distance from top and enable inner scroll when needed */
.hfh-popup__form-host {
  margin: 28px auto 0;
  padding: 26px 30px 20px;
  max-width: 690px;
  max-height: calc(100vh - 170px);
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
  scroll-padding-top: 24px;
}

.hfh-popup__form-host .hfh-popup__content--catalog,
.hfh-popup__form-host .hfh-popup__form {
  max-width: 590px;
}

/* make sure popup content starts lower under foreign modal headers */
.elementor-popup-modal .dialog-message .hfh-popup__form-host,
.dialog-widget .hfh-popup__form-host,
.pum .hfh-popup__form-host,
.modal .hfh-popup__form-host,
[role="dialog"] .hfh-popup__form-host {
  margin-top: 34px;
  padding-top: 30px;
  padding-right: 30px;
  padding-bottom: 20px;
  padding-left: 30px;
  max-height: calc(100vh - 185px);
  overflow-y: auto;
  overflow-x: hidden;
}

@media (max-width: 767px) {
  .hfh-popup {
    padding-top: 86px;
    padding-right: 14px;
    padding-bottom: 18px;
    padding-left: 14px;
  }

  .hfh-popup__dialog {
    margin-bottom: 18px;
    width: min(94vw, 100%);
  }

  .hfh-popup__form-host {
    margin-top: 16px;
    padding: 18px 16px 14px;
    max-height: calc(100vh - 120px);
  }

  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    margin-top: 18px;
    padding-top: 20px;
    padding-right: 16px;
    padding-bottom: 14px;
    padding-left: 16px;
    max-height: calc(100vh - 130px);
  }
}


/* v1.6.20 – push popup further below fixed header and protect top text */
.hfh-popup {
  padding-top: 150px;
  scroll-padding-top: 150px;
}

.hfh-popup__dialog {
  margin-top: 0;
}

.hfh-popup__content--catalog {
  padding-top: 28px;
}

.hfh-popup__content--catalog .hfh-popup__header {
  padding-top: 0;
  margin-top: 0;
  margin-bottom: 20px;
}

.hfh-popup__inner-close {
  top: 12px;
  right: 12px;
}

/* When the catalog form replaces another popup's content, keep it clear of the site header. */
.hfh-popup__form-host {
  margin-top: 58px;
  padding-top: 42px;
  max-height: calc(100vh - 210px);
  overflow-y: auto;
  overflow-x: hidden;
  scroll-padding-top: 42px;
}

.elementor-popup-modal .dialog-message .hfh-popup__form-host,
.dialog-widget .hfh-popup__form-host,
.pum .hfh-popup__form-host,
.modal .hfh-popup__form-host,
[role="dialog"] .hfh-popup__form-host {
  margin-top: 58px;
  padding-top: 44px;
  max-height: calc(100vh - 215px);
  overflow-y: auto;
  overflow-x: hidden;
  scroll-padding-top: 44px;
}

/* Slightly more air inside the form frame without changing the fields. */
.hfh-popup__form .hef_form {
  padding: 22px;
}

@media (max-width: 767px) {
  .hfh-popup {
    padding-top: 104px;
    scroll-padding-top: 104px;
  }

  .hfh-popup__content--catalog {
    padding-top: 22px;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    margin-top: 32px;
    padding-top: 34px;
    max-height: calc(100vh - 150px);
  }

  .hfh-popup__form .hef_form {
    padding: 18px;
  }
}


/* v1.6.21 – balanced top gap + robust mobile scrolling */
.hfh-popup {
  align-items: flex-start;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  padding-top: 118px;
  padding-bottom: 32px;
  box-sizing: border-box;
}

.hfh-popup__dialog {
  margin: 0 auto 28px;
  max-height: none !important;
  overflow: visible !important;
}

/* Catalog form injected into an existing popup: scroll the whole popup, not only a squeezed inner block. */
.hfh-catalog-popup-active,
.elementor-popup-modal.hfh-catalog-popup-active,
.dialog-widget.hfh-catalog-popup-active,
.pum.hfh-catalog-popup-active,
.pum-overlay.hfh-catalog-popup-active,
.modal.hfh-catalog-popup-active,
[role="dialog"].hfh-catalog-popup-active {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  align-items: flex-start !important;
  justify-content: center !important;
  box-sizing: border-box;
}

.elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
.dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
.pum.hfh-catalog-popup-active .pum-container,
.pum-overlay.hfh-catalog-popup-active .pum-container,
.modal.hfh-catalog-popup-active .modal-content,
[role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
  margin-top: 28px !important;
  margin-bottom: 32px !important;
  max-height: calc(100vh - 70px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

.hfh-popup__form-host,
.elementor-popup-modal .dialog-message .hfh-popup__form-host,
.dialog-widget .hfh-popup__form-host,
.pum .hfh-popup__form-host,
.modal .hfh-popup__form-host,
[role="dialog"] .hfh-popup__form-host {
  margin-top: 24px !important;
  padding-top: 28px !important;
  padding-right: 30px !important;
  padding-bottom: 22px !important;
  padding-left: 30px !important;
  max-height: none !important;
  overflow: visible !important;
}

.hfh-popup__content--catalog {
  padding-top: 8px !important;
}

.hfh-popup__content--catalog .hfh-popup__header {
  margin-bottom: 18px !important;
}

@media (max-width: 767px) {
  .hfh-popup {
    padding-top: 78px;
    padding-right: 14px;
    padding-bottom: 20px;
    padding-left: 14px;
  }

  .elementor-popup-modal.hfh-catalog-popup-active,
  .dialog-widget.hfh-catalog-popup-active,
  .pum.hfh-catalog-popup-active,
  .pum-overlay.hfh-catalog-popup-active,
  .modal.hfh-catalog-popup-active,
  [role="dialog"].hfh-catalog-popup-active {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
  .dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
  .pum.hfh-catalog-popup-active .pum-container,
  .pum-overlay.hfh-catalog-popup-active .pum-container,
  .modal.hfh-catalog-popup-active .modal-content,
  [role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
    margin-top: 16px !important;
    margin-bottom: 18px !important;
    max-height: calc(100dvh - 36px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    margin-top: 8px !important;
    padding-top: 18px !important;
    padding-right: 16px !important;
    padding-bottom: 16px !important;
    padding-left: 16px !important;
    max-height: none !important;
    overflow: visible !important;
  }
}


/* v1.6.22 – balanced two-column popup layout on desktop */
@media (min-width: 768px) {
  .hfh-popup__form {
    max-width: 700px;
    margin: 0 auto;
  }

  .hfh-popup__form .hef_form {
    padding: 18px;
  }

  .hfh-popup__form .row.no-gutters {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin-left: -10px;
    margin-right: -10px;
  }

  .hfh-popup__form .row.no-gutters > [class*="col-"] {
    padding-left: 10px;
    padding-right: 10px;
  }

  .hfh-popup__form .hef-contact-left,
  .hfh-popup__form .hef-contact-right {
    flex: 0 0 50%;
    max-width: 50%;
    display: flex;
  }

  .hfh-popup__form .hef-contact-left > .row,
  .hfh-popup__form .hef-contact-right > .row {
    width: 100%;
    margin: 0;
  }

  .hfh-popup__form .hef-contact-left > .row {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    row-gap: 12px;
  }

  .hfh-popup__form .hef-contact-right > .row {
    display: flex;
    flex-direction: column;
    height: 100%;
    row-gap: 12px;
  }

  .hfh-popup__form .hef-contact-message,
  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 0;
  }

  .hfh-popup__form .hef-contact-message {
    flex: 1 1 auto;
    display: flex;
  }

  .hfh-popup__form .hef-contact-message .wpcf7-form-control-wrap,
  .hfh-popup__form .hef-contact-message textarea {
    width: 100%;
    height: 100%;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    min-height: 248px;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    padding-top: 2px;
  }

  .hfh-popup__form .input_anfordern {
    margin-top: auto;
    padding-bottom: 2px;
  }
}


/* v1.6.23 – wider desktop popup, right column stacked under message */
@media (min-width: 768px) {
  .hfh-popup__dialog {
    width: min(900px, calc(100vw - 64px)) !important;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form-host .hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__form {
    max-width: 800px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 22px !important;
  }

  .hfh-popup__form .row.no-gutters {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 20px;
    row-gap: 0;
    align-items: stretch;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .hfh-popup__form .row.no-gutters > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .hfh-popup__form .hef-contact-left,
  .hfh-popup__form .hef-contact-right {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    display: block !important;
  }

  .hfh-popup__form .hef-contact-left > .row,
  .hfh-popup__form .hef-contact-right > .row {
    width: 100%;
    margin: 0;
  }

  .hfh-popup__form .hef-contact-left > .row {
    display: flex !important;
    flex-wrap: wrap;
    align-content: flex-start;
    row-gap: 12px;
  }

  .hfh-popup__form .hef-contact-right > .row {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    height: 100%;
    min-height: 100%;
    row-gap: 12px;
  }

  .hfh-popup__form .hef-contact-message,
  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .hfh-popup__form .hef-contact-message {
    order: 1;
    flex: 1 1 auto !important;
    display: flex !important;
  }

  .hfh-popup__form .hef-contact-message .wpcf7-form-control-wrap {
    display: flex;
    width: 100%;
    flex: 1 1 auto;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    width: 100%;
    height: 100% !important;
    min-height: 245px !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    order: 2;
    padding-top: 0;
  }

  .hfh-popup__form .input_anfordern {
    order: 3;
    margin-top: auto !important;
    padding-bottom: 0;
  }

  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    margin-top: 0 !important;
  }
}


/* v1.6.24 – wider desktop popup without inner scrolling */
@media (min-width: 768px) {
  .hfh-popup {
    padding-top: 96px !important;
    padding-right: 24px !important;
    padding-left: 24px !important;
    overflow-y: visible !important;
  }

  .hfh-popup__dialog {
    width: min(1040px, calc(100vw - 70px)) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto 24px !important;
    padding: 26px 28px 24px !important;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form-host .hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__form {
    max-width: 940px !important;
  }

  /* remove inner desktop scroll when injected into other popups */
  .hfh-catalog-popup-active,
  .elementor-popup-modal.hfh-catalog-popup-active,
  .dialog-widget.hfh-catalog-popup-active,
  .pum.hfh-catalog-popup-active,
  .pum-overlay.hfh-catalog-popup-active,
  .modal.hfh-catalog-popup-active,
  [role="dialog"].hfh-catalog-popup-active {
    overflow: visible !important;
    align-items: flex-start !important;
  }

  .elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
  .dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
  .pum.hfh-catalog-popup-active .pum-container,
  .pum-overlay.hfh-catalog-popup-active .pum-container,
  .modal.hfh-catalog-popup-active .modal-content,
  [role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
    width: min(1040px, calc(100vw - 70px)) !important;
    max-width: min(1040px, calc(100vw - 70px)) !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 18px !important;
    margin-bottom: 24px !important;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    max-width: 980px !important;
    width: 100% !important;
    margin-top: 12px !important;
    padding-top: 20px !important;
    padding-right: 20px !important;
    padding-bottom: 14px !important;
    padding-left: 20px !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header {
    margin-bottom: 20px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 24px !important;
  }

  .hfh-popup__form .row.no-gutters {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 24px !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    min-height: 235px !important;
  }
}


/* v1.6.25 – slightly narrower fields + robust mobile scrolling */
@media (min-width: 768px) {
  .hfh-popup__dialog {
    width: min(1000px, calc(100vw - 70px)) !important;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form-host .hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__form {
    max-width: 820px !important;
  }

  .elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
  .dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
  .pum.hfh-catalog-popup-active .pum-container,
  .pum-overlay.hfh-catalog-popup-active .pum-container,
  .modal.hfh-catalog-popup-active .modal-content,
  [role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
    width: min(1000px, calc(100vw - 70px)) !important;
    max-width: min(1000px, calc(100vw - 70px)) !important;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    max-width: 860px !important;
    padding-right: 28px !important;
    padding-left: 28px !important;
  }

  .hfh-popup__form .row.no-gutters {
    column-gap: 20px !important;
  }
}

@media (max-width: 767px) {
  .hfh-popup {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    height: 100dvh !important;
    padding-top: 74px !important;
    padding-right: 12px !important;
    padding-bottom: 14px !important;
    padding-left: 12px !important;
    align-items: flex-start !important;
  }

  .hfh-popup__dialog {
    width: min(94vw, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto 14px !important;
    padding: 22px 16px 16px !important;
  }

  .hfh-catalog-popup-active,
  .elementor-popup-modal.hfh-catalog-popup-active,
  .dialog-widget.hfh-catalog-popup-active,
  .pum.hfh-catalog-popup-active,
  .pum-overlay.hfh-catalog-popup-active,
  .modal.hfh-catalog-popup-active,
  [role="dialog"].hfh-catalog-popup-active {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    height: 100dvh !important;
    align-items: flex-start !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
  .dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
  .pum.hfh-catalog-popup-active .pum-container,
  .pum-overlay.hfh-catalog-popup-active .pum-container,
  .modal.hfh-catalog-popup-active .modal-content,
  [role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
    width: min(94vw, 100%) !important;
    max-width: min(94vw, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 10px !important;
    margin-bottom: 12px !important;
    box-sizing: border-box;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 6px !important;
    padding-top: 14px !important;
    padding-right: 14px !important;
    padding-bottom: 12px !important;
    padding-left: 14px !important;
    box-sizing: border-box;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form-host .hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__form {
    max-width: 100% !important;
  }

  .hfh-popup__form .hef_form {
    padding: 14px !important;
  }
}


/* v1.6.26 – mobile starts at top and full popup remains scrollable */
@media (max-width: 767px) {
  .hfh-popup {
    padding-top: 10px !important;
    padding-right: 10px !important;
    padding-bottom: 12px !important;
    padding-left: 10px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    align-items: flex-start !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    min-height: 100dvh !important;
    height: 100dvh !important;
  }

  .hfh-popup__dialog {
    width: min(96vw, 100%) !important;
    margin: 0 auto 12px !important;
    padding: 14px 12px 12px !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header {
    margin-bottom: 12px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header h2 {
    font-size: 20px !important;
    line-height: 1.15 !important;
    margin-bottom: 6px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header p:last-child,
  .hfh-popup__content--catalog .hfh-popup__eyebrow {
    font-size: 12px !important;
  }

  .hfh-popup__inner-close {
    top: 0 !important;
    right: 0 !important;
    width: 34px !important;
    height: 34px !important;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    max-height: none !important;
    overflow: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0 !important;
    padding: 10px 10px 8px !important;
    box-sizing: border-box;
  }

  .elementor-popup-modal.hfh-catalog-popup-active,
  .dialog-widget.hfh-catalog-popup-active,
  .pum.hfh-catalog-popup-active,
  .pum-overlay.hfh-catalog-popup-active,
  .modal.hfh-catalog-popup-active,
  [role="dialog"].hfh-catalog-popup-active {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    max-height: 100dvh !important;
  }

  .elementor-popup-modal.hfh-catalog-popup-active .dialog-widget-content,
  .dialog-widget.hfh-catalog-popup-active .dialog-widget-content,
  .pum.hfh-catalog-popup-active .pum-container,
  .pum-overlay.hfh-catalog-popup-active .pum-container,
  .modal.hfh-catalog-popup-active .modal-content,
  [role="dialog"].hfh-catalog-popup-active .dialog-widget-content {
    width: min(96vw, 100%) !important;
    max-width: min(96vw, 100%) !important;
    margin-top: 8px !important;
    margin-bottom: 12px !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .hfh-popup__form .hef_form {
    padding: 10px !important;
  }

  .hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
  .hfh-popup__form textarea,
  .hfh-popup__form select,
  .hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    min-height: 44px !important;
    padding: 10px 12px !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    min-height: 150px !important;
  }
}

@media (min-width: 768px) {
  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    min-height: 320px !important;
  }
}


/* v1.6.27 – message field reduced to roughly street-field height */
@media (min-width: 768px) {
  .hfh-popup__form .hef-contact-message {
    flex: 0 0 auto !important;
  }

  .hfh-popup__form .hef-contact-message .wpcf7-form-control-wrap {
    display: block !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    margin-top: 0 !important;
  }

  .hfh-popup__form .input_anfordern {
    margin-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    min-height: 120px !important;
    height: 120px !important;
    max-height: 120px !important;
  }
}


/* v1.6.28 – even smaller message field so button aligns closer to phone field */
@media (min-width: 768px) {
  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
  }
}

@media (max-width: 767px) {
  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 105px !important;
    min-height: 105px !important;
    max-height: 105px !important;
  }
}


/* v1.6.29 – real mobile fix: use clean fallback popup, visible top, scrollable full panel */
@media (max-width: 767px) {
  body.hfh-popup-open,
  body.hfh-catalog-popup-active-body {
    overflow: hidden !important;
    height: 100dvh !important;
  }

  .hfh-popup {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: calc(104px + env(safe-area-inset-top)) !important;
    padding-right: 12px !important;
    padding-bottom: 16px !important;
    padding-left: 12px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    box-sizing: border-box;
  }

  .hfh-popup__backdrop {
    position: fixed !important;
    inset: 0 !important;
  }

  .hfh-popup__dialog {
    position: relative !important;
    z-index: 2 !important;
    width: min(94vw, 440px) !important;
    max-width: min(94vw, 440px) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto 16px !important;
    padding: 20px 14px 14px !important;
    border-radius: 22px !important;
    box-sizing: border-box;
  }

  .hfh-popup__close {
    top: 10px !important;
    right: 10px !important;
    width: 34px !important;
    height: 34px !important;
    font-size: 22px !important;
    z-index: 10 !important;
  }

  .hfh-popup__content--catalog {
    padding-top: 4px !important;
    max-width: 100% !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header,
  .hfh-popup__header {
    display: block !important;
    margin: 0 auto 12px !important;
    padding: 0 36px 0 0 !important;
    text-align: center !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header h2,
  .hfh-popup__header h2 {
    display: block !important;
    font-size: 21px !important;
    line-height: 1.15 !important;
    margin: 0 0 6px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header p:last-child,
  .hfh-popup__header p:last-child {
    display: block !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .hfh-popup__content--catalog .hfh-popup__eyebrow,
  .hfh-popup__eyebrow {
    display: block !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    margin-bottom: 5px !important;
  }

  .hfh-popup__form,
  .hfh-popup__form-host .hfh-popup__form {
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  .hfh-popup__form .hef_form {
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
  .hfh-popup__form textarea,
  .hfh-popup__form select,
  .hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    min-height: 44px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 110px !important;
    min-height: 110px !important;
    max-height: 110px !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    min-height: 48px !important;
    line-height: 48px !important;
  }
}


/* v1.6.30 – mobile always uses clean fallback popup, with a visible header */
@media (max-width: 767px) {
  .hfh-popup {
    padding-top: calc(88px + env(safe-area-inset-top)) !important;
  }

  .hfh-popup__dialog {
    padding-top: 18px !important;
  }

  .hfh-popup__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .hfh-popup__content--catalog,
  .hfh-popup__content--catalog .hfh-popup__header,
  .hfh-popup__header {
    overflow: visible !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header,
  .hfh-popup__header {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}


/* v1.6.31 – move popup to body and calculate real mobile top offset */
.hfh-popup {
  z-index: 2147483000 !important;
}

@media (max-width: 767px) {
  .hfh-popup {
    padding-top: var(--hfh-mobile-top-offset, calc(88px + env(safe-area-inset-top))) !important;
  }

  .hfh-popup__dialog {
    width: min(94vw, 420px) !important;
    max-width: min(94vw, 420px) !important;
  }
}


/* v1.6.32 - aggressive mobile popup top/header fix */
@media (max-width: 900px) {
  .hsb-catalog-popup.active,
  .hsb-catalog-popup.is-open,
  .hsb-catalog-popup,
  .hfh-popup.is-open,
  .hfh-popup {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-top: var(--hfh-mobile-top-offset, calc(96px + env(safe-area-inset-top))) !important;
    padding-right: 12px !important;
    padding-bottom: 16px !important;
    padding-left: 12px !important;
    box-sizing: border-box !important;
  }

  .hsb-catalog-popup__dialog,
  .hfh-popup__dialog,
  .hsb-catalog-popup [role="document"],
  .hfh-popup [role="document"] {
    width: min(94vw, 420px) !important;
    max-width: min(94vw, 420px) !important;
    min-height: auto !important;
    height: auto !important;
    max-height: calc(100dvh - var(--hfh-mobile-top-offset, calc(96px + env(safe-area-inset-top))) - 20px) !important;
    margin: 0 auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    align-self: flex-start !important;
    box-sizing: border-box !important;
  }

  .hsb-catalog-popup__content,
  .hfh-popup__content {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .hsb-catalog-popup .hfh-popup__header,
  .hfh-popup .hfh-popup__header,
  .hsb-catalog-popup .hfh-popup__form,
  .hfh-popup .hfh-popup__form,
  .hsb-catalog-popup .hfh-popup__content,
  .hfh-popup .hfh-popup__content {
    scroll-margin-top: calc(var(--hfh-mobile-top-offset, 96px) + 8px) !important;
  }
}


/* v1.6.33 – compact mobile spacing so bottom fits better */
@media (max-width: 900px) {
  .hsb-catalog-popup.active,
  .hsb-catalog-popup.is-open,
  .hsb-catalog-popup,
  .hfh-popup.is-open,
  .hfh-popup {
    padding-bottom: 10px !important;
  }

  .hsb-catalog-popup__dialog,
  .hfh-popup__dialog,
  .hsb-catalog-popup [role="document"],
  .hfh-popup [role="document"] {
    padding: 14px 10px 10px !important;
    max-height: calc(100dvh - var(--hfh-mobile-top-offset, calc(96px + env(safe-area-inset-top))) - 12px) !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header,
  .hfh-popup__header {
    margin-bottom: 8px !important;
    padding-right: 32px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header h2,
  .hfh-popup__header h2 {
    font-size: 19px !important;
    margin-bottom: 4px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header p:last-child,
  .hfh-popup__header p:last-child {
    font-size: 11px !important;
    line-height: 1.28 !important;
  }

  .hfh-popup__content--catalog .hfh-popup__eyebrow,
  .hfh-popup__eyebrow {
    font-size: 9.5px !important;
    margin-bottom: 4px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 8px !important;
    border-radius: 16px !important;
  }

  .hfh-popup__form .row,
  .hfh-popup__form .row.no-gutters,
  .hfh-popup__form .hef-contact-left .row,
  .hfh-popup__form .hef-contact-right .row {
    row-gap: 7px !important;
  }

  .hfh-popup__form .hef-contact-message,
  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    margin-top: 7px !important;
  }

  .hfh-popup__form .hef-contact-left > .row > [class*="col-"],
  .hfh-popup__form .hef-contact-right > .row > [class*="col-"],
  .hfh-popup__form .row.no-gutters > [class*="col-"] {
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
  .hfh-popup__form textarea,
  .hfh-popup__form select,
  .hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    min-height: 39px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
    border-radius: 12px !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 86px !important;
    min-height: 86px !important;
    max-height: 86px !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    font-size: 10.2px !important;
    line-height: 1.33 !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    width: 16px !important;
    min-width: 16px !important;
    height: 16px !important;
  }

  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    min-height: 42px !important;
    line-height: 42px !important;
    border-radius: 12px !important;
  }
}


/* v1.6.34 – mobile final tuning: lower popup, tighter spacing, cleaner bottom */
@media (max-width: 900px) {
  .hsb-catalog-popup.active,
  .hsb-catalog-popup.is-open,
  .hsb-catalog-popup,
  .hfh-popup.is-open,
  .hfh-popup {
    padding-top: calc(var(--hfh-mobile-top-offset, calc(96px + env(safe-area-inset-top))) + 10px) !important;
    padding-right: 10px !important;
    padding-bottom: 8px !important;
    padding-left: 10px !important;
  }

  .hsb-catalog-popup__dialog,
  .hfh-popup__dialog,
  .hsb-catalog-popup [role="document"],
  .hfh-popup [role="document"] {
    width: min(94vw, 420px) !important;
    max-width: min(94vw, 420px) !important;
    padding: 10px 8px 8px !important;
    max-height: calc(100dvh - var(--hfh-mobile-top-offset, calc(96px + env(safe-area-inset-top))) - 18px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form-host,
  .elementor-popup-modal .dialog-message .hfh-popup__form-host,
  .dialog-widget .hfh-popup__form-host,
  .pum .hfh-popup__form-host,
  .modal .hfh-popup__form-host,
  [role="dialog"] .hfh-popup__form-host {
    margin-top: 12px !important;
    padding-top: 14px !important;
    padding-right: 12px !important;
    padding-bottom: 10px !important;
    padding-left: 12px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header,
  .hfh-popup__header {
    margin-bottom: 6px !important;
    padding-right: 30px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header h2,
  .hfh-popup__header h2 {
    font-size: 18px !important;
    line-height: 1.08 !important;
    margin-bottom: 3px !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header p:last-child,
  .hfh-popup__header p:last-child {
    font-size: 10px !important;
    line-height: 1.22 !important;
  }

  .hfh-popup__content--catalog .hfh-popup__eyebrow,
  .hfh-popup__eyebrow {
    margin-bottom: 3px !important;
    font-size: 9px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 6px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  .hfh-popup__form .row,
  .hfh-popup__form .row.no-gutters,
  .hfh-popup__form .hef-contact-left .row,
  .hfh-popup__form .hef-contact-right .row {
    row-gap: 5px !important;
  }

  .hfh-popup__form .hef-contact-message,
  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    margin-top: 5px !important;
  }

  .hfh-popup__form .hef-contact-left > .row > [class*="col-"],
  .hfh-popup__form .hef-contact-right > .row > [class*="col-"],
  .hfh-popup__form .row.no-gutters > [class*="col-"] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .hfh-popup__form input:not([type="submit"]):not([type="checkbox"]),
  .hfh-popup__form textarea,
  .hfh-popup__form select,
  .hfh-popup__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    min-height: 36px !important;
    padding: 7px 9px !important;
    font-size: 12.5px !important;
    border-radius: 11px !important;
  }

  .hfh-popup__form .hef-contact-message textarea,
  .hfh-popup__form .hef-message {
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    font-size: 10px !important;
    line-height: 1.28 !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    width: 15px !important;
    min-width: 15px !important;
    height: 15px !important;
    margin-top: 1px !important;
  }

  .hfh-popup__form .input_anfordern {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    min-height: 40px !important;
    line-height: 40px !important;
    border-radius: 11px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}


/* v1.6.35 – mobile: remove lower white space + keep privacy checkbox inside the frame */
@media (max-width: 900px) {
  .hsb-catalog-popup__dialog,
  .hsb-catalog-popup__dialog.hfh-popup__form-host,
  .hfh-popup__dialog,
  .hfh-popup__form-host,
  .hsb-catalog-popup [role="document"],
  .hfh-popup [role="document"] {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__content,
  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form .wpcf7,
  .hfh-popup__form .wpcf7 form,
  .hfh-popup__form .hef_form {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef_form {
    overflow: hidden !important;
    padding: 5px !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 4px !important;
    margin: 4px 0 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control-wrap,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control.wpcf7-acceptance,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item,
  .hfh-popup__form .hef-cotnact-accept label {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 7px !important;
    padding-left: 0 !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    position: static !important;
    margin: 1px 0 0 0 !important;
    flex: 0 0 15px !important;
    transform: none !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .hfh-popup__form .input_anfordern {
    margin: 4px 0 0 !important;
    padding: 0 !important;
  }

  .hfh-popup__form .input_anfordern .button,
  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern,
  .hfh-popup__form .wpcf7-response-output {
    margin-bottom: 0 !important;
  }
}

/* v1.6.36 – mobile: keep privacy + button inside the frame and remove lower empty white area */
@media (max-width: 900px) {
  .hsb-catalog-popup__dialog,
  .hsb-catalog-popup__dialog.hfh-popup__form-host,
  .hfh-popup__dialog,
  .hfh-popup__form-host,
  .hfh-popup__content.hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__form,
  .hsb-catalog-popup [role="document"],
  .hfh-popup [role="document"] {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__content.hfh-popup__content--catalog,
  .hfh-popup__form-host .hfh-popup__content--catalog {
    overflow: visible !important;
    padding-bottom: 8px !important;
  }

  .hfh-popup__form,
  .hfh-popup__form .wpcf7,
  .hfh-popup__form .wpcf7 form,
  .hfh-popup__form .hef_form {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef_form > .row.no-gutters {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
    margin: 0 !important;
    row-gap: 4px !important;
  }

  .hfh-popup__form .hef_form > .row.no-gutters > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    clear: both !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control-wrap,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control.wpcf7-acceptance,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item,
  .hfh-popup__form .hef-cotnact-accept label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 6px !important;
    padding-left: 0 !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 2px 0 0 0 !important;
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    flex: 0 0 14px !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .hfh-popup__form .input_anfordern {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .hfh-popup__form .input_anfordern .button,
  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .wpcf7-response-output,
  .hfh-popup__form .hef_form > .row.no-gutters > [class*="col-"]:last-child,
  .hfh-popup__form .input_anfordern:last-child,
  .hfh-popup__form .hef_form:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}


/* v1.6.37 – real mobile bottom fix: target actual dialog classes + keep accept/button inside */
@media (max-width: 900px) {
  /* The real mobile wrapper uses hsb-catalog-popup-dialog (hyphen), not only __dialog. */
  .hsb-catalog-popup-dialog,
  .hsb-catalog-popup-dialog.hfh-popup__form-host,
  .hsb-catalog-popup-dialog.hfh_popup__form-host,
  .hfh-popup__dialog,
  .hfh-popup__form-host,
  .hfh_popup__form-host,
  .hfh-popup [role="document"],
  .hsb-catalog-popup [role="document"] {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__content,
  .hfh-popup__content--catalog,
  .hfh_popup__content,
  .hfh_popup__content--catalog {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form,
  .hfh_popup__form,
  .hfh-popup__form .wpcf7,
  .hfh-popup__form .wpcf7 form,
  .hfh-popup__form .hef_form {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef_form {
    padding: 5px !important;
    overflow: visible !important;
  }

  .hfh-popup__form .hef_form > .row.no-gutters {
    margin: 0 !important;
    padding: 0 !important;
    row-gap: 4px !important;
  }

  .hfh-popup__form .hef_form > .row.no-gutters > [class*="col-"],
  .hfh-popup__form .hef-contact-left,
  .hfh-popup__form .hef-contact-right,
  .hfh-popup__form .hef-contact-left > .row,
  .hfh-popup__form .hef-contact-right > .row {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    width: auto !important;
    max-width: none !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
    clear: both !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control-wrap,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-form-control.wpcf7-acceptance,
  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item,
  .hfh-popup__form .hef-cotnact-accept label {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 6px !important;
    padding-left: 0 !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 2px 0 0 0 !important;
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    flex: 0 0 14px !important;
  }

  .hfh-popup__form .hef-cotnact-accept .wpcf7-list-item-label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .hfh-popup__form .input_anfordern {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .hfh-popup__form .input_anfordern .button,
  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .wpcf7-response-output {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}


/* v1.6.38 – mobile height fix: remove old min-height, limit dialog height, reduce bottom white area */
@media (max-width: 900px) {
  .hsb-catalog-popup-active .hsb-catalog-popup-dialog,
  .hsb-catalog-popup-dialog.hfh-popup__form-host,
  .hfh-catalog-popup-active.hfh-popup__form-host,
  .hfh-popup__form-host,
  .hfh-popup__dialog,
  .hfh-popup [role="document"],
  .hsb-catalog-popup [role="dialog"],
  .hsb-catalog-popup [role="document"] {
    height: auto !important;
    min-height: 0 !important;
    max-height: 80dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__content,
  .hfh-popup__content--catalog,
  .hfh-popup__form,
  .hfh-popup__form .wpcf7,
  .hfh-popup__form .wpcf7 form,
  .hfh-popup__form .hef_form,
  .hfh-popup__form .hef_form > .row.no-gutters {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__content--catalog {
    padding-bottom: 6px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 5px 5px 0 !important;
    overflow: hidden !important;
  }

  .hfh-popup__form .hef_form > .row.no-gutters {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    row-gap: 4px !important;
  }

  .hfh-popup__form .hef-contact-left,
  .hfh-popup__form .hef-contact-right,
  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept.accept,
  .hfh-popup__form .input_anfordern {
    margin: 4px 0 0 0 !important;
    padding: 0 5px !important;
  }

  .hfh-popup__form .hef-cotnact-accept label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form .hef-cotnact-accept input[type="checkbox"] {
    position: static !important;
    margin: 2px 0 0 0 !important;
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    flex: 0 0 14px !important;
    transform: none !important;
  }

  .hfh-popup__form .input_anfordern .button,
  .hfh-popup__form .input_anfordern input.wpcf7-submit,
  .hfh-popup__form .input_anfordern .wpcf7-submit,
  .hfh-popup__form input.wpcf7-submit.hartl_anfordern {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
}


/* v1.6.47 – hide stale hsb wrapper only after X-close cleanup */
[data-hsb-catalog-popup].hfh-force-hidden,
.hsb-catalog-popup.hfh-force-hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* v1.7.0 – FairPlus split hero with live showcase products */
.hfh-hero {
  padding: 0 !important;
  background: #fff;
  color: #0e2d6c;
}

.hfh-hero__bg {
  background:
    radial-gradient(circle at 78% 24%, rgba(64,198,242,.14), transparent 28%),
    linear-gradient(120deg,#ffffff 0%,#ffffff 48%,#f5fbff 100%);
}

.hfh-hero__bg::after {
  opacity: .018;
}

.hfh-hero__image,
.hfh-hero__lines,
.hfh-hero__glow,
.hfh-badge-wrap,
.hfh-showcase {
  display: none !important;
}

.hfh-stage,
.hfh-hero.no-stage-overlay .hfh-stage,
.hfh-hero.has-stage-overlay .hfh-stage {
  width: min(var(--hfh-stage-max-width),calc(100% - 48px));
  max-width: none;
  min-height: 500px;
  margin: 0 auto;
  padding: 56px 0 46px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.hfh-container {
  width: 100%;
}

.hfh-hero__top {
  display: grid;
  grid-template-columns: minmax(0,.88fr) minmax(480px,1.12fr);
  align-items: center;
  gap: clamp(30px,4vw,70px);
  min-height: 398px;
  padding: 0;
  text-align: left;
}

.hfh-copy {
  width: 100%;
  max-width: 570px;
  text-align: left;
}

.hfh-title {
  max-width: 560px;
  margin: 0;
  color: var(--hfh-title-color,#0e2d6c);
  font-size: clamp(46px,5vw,var(--hfh-title-size));
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.hfh-text {
  max-width: 520px;
  margin: 24px 0 0;
  color: var(--hfh-body-copy-color,#0e2d6c);
  font-size: clamp(16px,1.4vw,19px);
  line-height: 1.55;
}

.hfh-actions {
  justify-content: flex-start;
  gap: 16px;
  margin-top: 30px;
}

.hfh-btn {
  min-height: 54px;
  padding: 0 24px;
  border-radius: 8px;
  font-size: 16px;
  line-height: 1;
  box-shadow: 0 12px 28px rgba(14,45,108,.10) !important;
}

.hfh-btn--primary {
  background: var(--hfh-accent,#0e2d6c);
}

.hfh-btn--primary:hover,
.hfh-btn--primary:focus-visible {
  background: var(--hfh-accent-hover,#40c6f2);
  color: #0e2d6c;
}

.hfh-btn--primary:hover span,
.hfh-btn--primary:focus-visible span {
  color: #0e2d6c;
}

.hfh-btn--ghost {
  border: 1px solid rgba(14,45,108,.14);
  background: #fff;
  color: var(--hfh-ghost-button-text-color,#0e2d6c);
}

.hfh-btn--ghost:hover,
.hfh-btn--ghost:focus-visible {
  border-color: #40c6f2;
  background: #dff7ff;
}

.hfh-hero__visual {
  position: relative;
  min-width: 0;
  min-height: 420px;
  isolation: isolate;
}

.hfh-hero__visual::before {
  content: "";
  position: absolute;
  inset: 0 -8% -4% 0;
  z-index: -3;
  background: linear-gradient(135deg,rgba(64,198,242,.07),rgba(25,108,230,.20));
  clip-path: polygon(18% 10%,100% 0,90% 95%,22% 100%,0 55%);
}

.hfh-hero__visual::after {
  content: "";
  position: absolute;
  inset: 8% 2% 4% 18%;
  z-index: -2;
  background: linear-gradient(145deg,rgba(64,198,242,.28),rgba(21,89,220,.80));
  clip-path: polygon(35% 0,100% 18%,82% 100%,0 87%,12% 30%);
  opacity: .76;
}

.hfh-hero__visual-shape {
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.hfh-hero__visual-shape--one {
  inset: 2% 28% 46% 0;
  border: 16px solid rgba(255,255,255,.72);
  transform: rotate(-11deg);
  clip-path: polygon(0 0,100% 18%,74% 100%,15% 82%);
}

.hfh-hero__visual-shape--two {
  right: -4%;
  bottom: 4%;
  width: 54%;
  height: 56%;
  background: rgba(255,255,255,.26);
  clip-path: polygon(15% 0,100% 22%,76% 100%,0 72%);
}

.hfh-hero-product {
  position: absolute;
  z-index: 2;
  display: block;
  object-fit: contain;
  mix-blend-mode: multiply;
  filter: drop-shadow(0 16px 18px rgba(14,45,108,.18));
}

.hfh-hero-product--1 {
  left: 23%;
  top: -2%;
  width: 62%;
  height: 49%;
}

.hfh-hero-product--2 {
  left: 0;
  top: 46%;
  width: 42%;
  height: 43%;
}

.hfh-hero-product--3 {
  right: 4%;
  top: 35%;
  width: 29%;
  height: 28%;
}

.hfh-hero-product--4 {
  right: -2%;
  bottom: -1%;
  width: 58%;
  height: 38%;
}

.hfh-hero__visual-fallback {
  position: absolute;
  inset: 4% 0;
  z-index: 2;
  display: block;
  background: var(--hfh-card-image-bg,#fff) var(--hfh-card-image) center/contain no-repeat;
  mix-blend-mode: multiply;
  filter: drop-shadow(0 16px 18px rgba(14,45,108,.16));
}

.hfh-trust-bar {
  position: relative;
  z-index: 4;
  width: 100%;
  padding: 20px 24px;
  background: linear-gradient(105deg,#0e2d6c 0%,#1557c9 48%,#0e2d6c 100%);
  color: #fff;
}

.hfh-trust-bar__inner {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  width: min(var(--hfh-stage-max-width),100%);
  margin: 0 auto;
}

.hfh-trust-item {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(0,1fr);
  align-items: center;
  gap: 18px;
  min-height: 64px;
  padding: 0 clamp(24px,3vw,46px);
}

.hfh-trust-item:first-child {
  padding-left: 0;
}

.hfh-trust-item:last-child {
  padding-right: 0;
}

.hfh-trust-item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 8px;
  right: 0;
  bottom: 8px;
  width: 1px;
  background: rgba(255,255,255,.30);
}

.hfh-trust-item__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  color: #40c6f2;
}

.hfh-trust-item__icon svg {
  display: block;
  width: 48px;
  height: 48px;
}

.hfh-trust-item__copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.hfh-trust-item__copy strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.25;
}

.hfh-trust-item__copy span {
  color: rgba(255,255,255,.84);
  font-size: 12px;
  line-height: 1.45;
}

.hfh-floating-catalog {
  position: absolute;
  right: 0;
  bottom: 96px;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 92px;
  min-height: 112px;
  padding: 14px 10px;
  border-radius: 18px 0 0 18px;
  background: linear-gradient(155deg,#1761e8 0%,#0e2d6c 100%);
  box-shadow: 0 14px 32px rgba(14,45,108,.24);
  color: #fff !important;
  text-align: center;
  text-decoration: none !important;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  transition: transform .2s ease,filter .2s ease;
}

.hfh-floating-catalog:hover,
.hfh-floating-catalog:focus-visible {
  color: #fff !important;
  transform: translateY(-3px);
  filter: brightness(1.06);
}

.hfh-floating-catalog svg {
  width: 38px;
  height: 38px;
  color: #40c6f2;
}

#fairplus-produkte {
  scroll-margin-top: 110px;
}

@media (max-width: 1080px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage {
    width: min(100%,calc(100% - 36px));
  }

  .hfh-hero__top {
    grid-template-columns: minmax(0,.92fr) minmax(400px,1.08fr);
    gap: 24px;
  }

  .hfh-title {
    font-size: clamp(42px,5vw,60px);
  }

  .hfh-floating-catalog {
    display: none;
  }

  .hfh-trust-item {
    grid-template-columns: 46px minmax(0,1fr);
    gap: 12px;
    padding: 0 20px;
  }

  .hfh-trust-item__icon,
  .hfh-trust-item__icon svg {
    width: 44px;
    height: 44px;
  }
}

@media (max-width: 820px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage {
    width: min(100%,calc(100% - 28px));
    min-height: 0;
    margin: 0 auto;
    padding: 42px 0 34px;
  }

  .hfh-hero__top {
    grid-template-columns: 1fr;
    gap: 24px;
    min-height: 0;
  }

  .hfh-copy {
    max-width: 620px;
  }

  .hfh-title {
    max-width: 620px;
    font-size: clamp(38px,8vw,54px);
  }

  .hfh-text {
    margin-top: 18px;
  }

  .hfh-actions {
    margin-top: 24px;
  }

  .hfh-hero__visual {
    min-height: 330px;
  }

  .hfh-trust-bar {
    padding: 16px 20px;
  }

  .hfh-trust-bar__inner {
    grid-template-columns: 1fr;
  }

  .hfh-trust-item,
  .hfh-trust-item:first-child,
  .hfh-trust-item:last-child {
    min-height: 70px;
    padding: 10px 0;
  }

  .hfh-trust-item:not(:last-child)::after {
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: 1px;
  }
}

@media (max-width: 520px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage {
    width: min(100%,calc(100% - 24px));
    padding: 34px 0 28px;
  }

  .hfh-title {
    font-size: clamp(36px,11.5vw,48px);
  }

  .hfh-text {
    font-size: 16px;
  }

  .hfh-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .hfh-btn {
    width: 100%;
  }

  .hfh-hero__visual {
    min-height: 280px;
  }

  .hfh-hero-product--1 {
    left: 19%;
    width: 66%;
  }

  .hfh-hero-product--2 {
    width: 44%;
  }

  .hfh-hero-product--4 {
    width: 60%;
  }
}


/* v1.8.0 – dark premium FairPlus product stage and catalog order dialog */
.hfh-hero {
  background: #03152f !important;
  color: #fff;
  padding-bottom: 0 !important;
}

.hfh-hero__bg {
  display: block !important;
  background:
    radial-gradient(circle at 81% 44%,rgba(0,180,255,.24) 0,rgba(0,128,255,.10) 24%,transparent 47%),
    radial-gradient(circle at 14% 20%,rgba(20,95,220,.20),transparent 38%),
    linear-gradient(115deg,#031329 0%,#062454 54%,#03152f 100%) !important;
}

.hfh-hero__bg::before {
  display: block !important;
  opacity: .34;
  background-image:
    linear-gradient(rgba(64,198,242,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(64,198,242,.11) 1px,transparent 1px),
    linear-gradient(rgba(64,198,242,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(64,198,242,.05) 1px,transparent 1px);
  background-size: 88px 88px,88px 88px,22px 22px,22px 22px;
  transform: perspective(900px) rotateX(61deg) scale(1.45) translateY(18%);
  transform-origin: center 58%;
  mask-image: linear-gradient(to bottom,transparent 4%,#000 43%,#000 100%);
}

.hfh-hero__bg::after {
  opacity: .04;
  mix-blend-mode: screen;
}

.hfh-stage,
.hfh-hero.no-stage-overlay .hfh-stage,
.hfh-hero.has-stage-overlay .hfh-stage {
  min-height: 520px;
  padding-top: 54px;
  padding-bottom: 44px;
  background: transparent !important;
}

.hfh-title {
  color: #fff !important;
  text-shadow: 0 8px 34px rgba(0,0,0,.24);
}

.hfh-text {
  color: rgba(255,255,255,.86) !important;
}

.hfh-btn--primary {
  border: 1px solid #40c6f2;
  background: linear-gradient(135deg,#40c6f2 0%,#18aee8 100%) !important;
  color: #072653 !important;
  box-shadow: 0 14px 34px rgba(64,198,242,.22) !important;
}

.hfh-btn--primary span {
  color: #072653 !important;
}

.hfh-btn--primary:hover,
.hfh-btn--primary:focus-visible {
  border-color: #8ce6ff;
  background: linear-gradient(135deg,#77dcfa 0%,#40c6f2 100%) !important;
  transform: translateY(-2px);
}

.hfh-btn--ghost {
  border: 1px solid rgba(64,198,242,.82) !important;
  background: rgba(4,28,65,.42) !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04),0 12px 28px rgba(0,0,0,.16) !important;
  backdrop-filter: blur(8px);
}

.hfh-btn--ghost span {
  color: #fff !important;
}

.hfh-btn--ghost:hover,
.hfh-btn--ghost:focus-visible {
  border-color: #75e1ff !important;
  background: rgba(64,198,242,.16) !important;
  transform: translateY(-2px);
}

.hfh-hero__visual {
  min-height: 440px;
}

.hfh-hero__visual::before {
  inset: 13% -9% 2% 3%;
  border: 1px solid rgba(64,198,242,.24);
  background:
    linear-gradient(90deg,rgba(64,198,242,.13) 1px,transparent 1px),
    linear-gradient(rgba(64,198,242,.13) 1px,transparent 1px),
    linear-gradient(145deg,rgba(21,89,220,.20),rgba(0,190,255,.03));
  background-size: 42px 42px,42px 42px,100% 100%;
  clip-path: polygon(14% 5%,100% 0,94% 88%,24% 100%,0 58%);
  box-shadow: inset 0 0 72px rgba(0,166,255,.14);
}

.hfh-hero__visual::after {
  inset: auto -1% -1% 8%;
  width: 94%;
  height: 30%;
  border: 1px solid rgba(64,198,242,.58);
  background:
    linear-gradient(90deg,rgba(64,198,242,.18) 1px,transparent 1px),
    linear-gradient(rgba(64,198,242,.16) 1px,transparent 1px),
    linear-gradient(160deg,rgba(26,115,255,.52),rgba(4,28,65,.78));
  background-size: 34px 34px,34px 34px,100% 100%;
  clip-path: polygon(15% 0,100% 18%,78% 100%,0 65%);
  filter: drop-shadow(0 18px 26px rgba(0,0,0,.36));
  opacity: 1;
}

.hfh-hero__visual-shape--one {
  inset: 5% 26% 45% 1%;
  border-color: rgba(64,198,242,.18);
  opacity: .58;
}

.hfh-hero__visual-shape--two {
  right: -3%;
  bottom: 5%;
  border: 1px solid rgba(64,198,242,.32);
  background: linear-gradient(145deg,rgba(34,105,224,.20),rgba(64,198,242,.08));
}

.hfh-hero-product {
  mix-blend-mode: normal !important;
  filter: drop-shadow(0 20px 22px rgba(0,0,0,.42)) !important;
}

.hfh-hero__visual-fallback {
  mix-blend-mode: normal;
  filter: drop-shadow(0 20px 22px rgba(0,0,0,.42));
}

.hfh-trust-bar {
  background: linear-gradient(100deg,#0e2d6c 0%,#1458ce 48%,#0e2d6c 100%);
  box-shadow: 0 -1px 0 rgba(64,198,242,.26),0 12px 32px rgba(5,31,76,.16);
}

.hfh-popup__dialog {
  width: min(1040px,calc(100vw - 48px)) !important;
  max-width: 1040px !important;
  max-height: min(90vh,900px) !important;
  padding: 34px !important;
  border: 1px solid rgba(14,45,108,.10);
  border-radius: 26px !important;
  overflow-y: auto !important;
}

.hfh-popup__content--catalog,
.hfh-popup__form-host .hfh-popup__content--catalog {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.hfh-popup__catalog-layout {
  display: grid;
  grid-template-columns: 235px minmax(0,1fr);
  align-items: start;
  gap: clamp(28px,4vw,52px);
}

.hfh-popup__catalog-layout.no-image {
  grid-template-columns: minmax(0,1fr);
}

.hfh-popup__catalog-media {
  position: sticky;
  top: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 280px;
  padding: 22px;
  border: 1px solid #dce9f5;
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 22%,rgba(64,198,242,.20),transparent 44%),
    linear-gradient(155deg,#f8fcff,#eaf5ff);
  box-shadow: 0 18px 42px rgba(14,45,108,.10);
}

.hfh-popup__catalog-media img {
  display: block;
  width: 100%;
  max-width: 190px;
  height: auto;
  max-height: 330px;
  object-fit: contain;
}

.hfh-popup__catalog-main {
  min-width: 0;
}

.hfh-popup__content--catalog .hfh-popup__header {
  max-width: none !important;
  margin: 0 50px 14px 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

.hfh-popup__content--catalog .hfh-popup__header h2 {
  margin: 0 !important;
  color: #0e2d6c !important;
  font-size: clamp(28px,3vw,42px) !important;
  line-height: 1.08 !important;
}

.hfh-popup__content--catalog .hfh-popup__eyebrow {
  margin: 0 0 8px !important;
  color: #159ecf !important;
}

.hfh-popup__description,
.hfh-popup__notice {
  color: #31558f;
  font-size: 14px;
  line-height: 1.6;
}

.hfh-popup__description p,
.hfh-popup__notice p {
  margin: 0;
}

.hfh-popup__notice {
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 4px solid #40c6f2;
  border-radius: 10px;
  background: #edf9fd;
  color: #0e2d6c;
}

.hfh-popup__catalog-main > .hfh-popup__form {
  max-width: none !important;
  margin: 22px 0 0 !important;
  padding-top: 22px;
  border-top: 1px solid #dce9f5;
}

.hfh-name-split {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  width: 100%;
  margin: 0 0 14px;
}

.hfh-name-split label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 0;
  color: #173b7a;
  font-size: 13px;
  font-weight: 700;
}

.hfh-name-split input {
  width: 100% !important;
  min-height: 54px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  background: #fff !important;
  color: #173b7a !important;
  box-sizing: border-box;
}

.hfh-name-source-container {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

@media (max-width: 900px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage {
    min-height: 0;
  }

  .hfh-hero__visual {
    min-height: 350px;
  }

  .hfh-popup__dialog {
    width: min(100%,calc(100vw - 24px)) !important;
    max-height: 80dvh !important;
    padding: 24px 18px !important;
    border-radius: 20px !important;
  }

  .hfh-popup__catalog-layout {
    grid-template-columns: minmax(0,1fr);
    gap: 22px;
  }

  .hfh-popup__catalog-media {
    position: static;
    min-height: 0;
    padding: 14px;
  }

  .hfh-popup__catalog-media img {
    max-width: 170px;
    max-height: 210px;
  }

  .hfh-popup__content--catalog .hfh-popup__header {
    margin-right: 42px !important;
  }
}

@media (max-width: 560px) {
  .hfh-title {
    font-size: clamp(38px,12vw,52px);
  }

  .hfh-hero__visual {
    min-height: 300px;
  }

  .hfh-name-split {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .hfh-popup__description,
  .hfh-popup__notice {
    font-size: 13px;
  }
}


/* v1.9.0 – optional hero media, compact header spacing, wide form and mobile title fix */
.hfh-hero {
  margin-top: calc(var(--hfh-header-gap-reduction,78px) * -1) !important;
}

.hfh-hero__bg {
  isolation: isolate;
}

.hfh-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.hfh-hero__media img,
.hfh-hero__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hfh-hero__media-blue {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background: linear-gradient(110deg,#031329 0%,#062d68 55%,#03152f 100%);
  opacity: var(--hfh-media-blue-opacity,.72);
}

.hfh-hero__bg::before,
.hfh-hero__bg::after {
  z-index: 2;
}

.hfh-media-mode-none .hfh-hero__top,
.hfh-media-mode-image .hfh-hero__top,
.hfh-media-mode-video .hfh-hero__top {
  grid-template-columns: minmax(0,720px);
  min-height: 340px;
}

.hfh-media-mode-none .hfh-copy,
.hfh-media-mode-image .hfh-copy,
.hfh-media-mode-video .hfh-copy {
  max-width: 650px;
}

.hfh-media-mode-none .hfh-stage,
.hfh-media-mode-image .hfh-stage,
.hfh-media-mode-video .hfh-stage,
.hfh-media-mode-none.no-stage-overlay .hfh-stage,
.hfh-media-mode-image.no-stage-overlay .hfh-stage,
.hfh-media-mode-video.no-stage-overlay .hfh-stage {
  min-height: 440px;
  padding-top: 48px;
  padding-bottom: 40px;
}

.hfh-popup__catalog-layout > .hfh-popup__form {
  grid-column: 1 / -1;
  width: 100% !important;
  max-width: none !important;
  margin: 24px 0 0 !important;
  padding: 24px 0 0 !important;
  border-top: 1px solid #dce9f5;
}

.hfh-popup__form .wpcf7,
.hfh-popup__form .wpcf7 form,
.hfh-popup__form form.wpcf7-form,
.hfh-popup__form .hef_form {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.hfh-popup__form .hef_form {
  padding: 22px !important;
}

.hfh-name-split {
  grid-column: 1 / -1;
  margin: 0 0 18px !important;
}

.hfh-name-source-container {
  display: none !important;
}

@media (max-width: 900px) {
  .hfh-hero {
    margin-top: 0 !important;
  }

  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage {
    padding-top: calc(46px + var(--hfh-mobile-header-overlap,0px)) !important;
    padding-bottom: 36px !important;
  }

  .hfh-media-mode-none .hfh-hero__top,
  .hfh-media-mode-image .hfh-hero__top,
  .hfh-media-mode-video .hfh-hero__top {
    grid-template-columns: minmax(0,1fr);
    min-height: 0;
  }

  .hfh-title {
    position: relative;
    z-index: 4;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
  }

  .hfh-popup__catalog-layout > .hfh-popup__form {
    margin-top: 4px !important;
    padding-top: 20px !important;
  }

  .hfh-popup__form .hef_form {
    padding: 16px !important;
  }
}

@media (max-width: 560px) {
  .hfh-title {
    font-size: clamp(34px,10.5vw,46px) !important;
    line-height: 1.04 !important;
  }

  .hfh-name-split {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hfh-hero__media video {
    display: none;
  }
}


/* v1.10.0 – two-step catalog popup, aligned form and robust header spacing */
.hfh-hero {
  top: calc(var(--hfh-dynamic-top-gap,0px) * -1);
  margin-bottom: calc(var(--hfh-dynamic-top-gap,0px) * -1) !important;
}

.hfh-popup__step[hidden] {
  display: none !important;
}

.hfh-popup__dialog {
  width: min(1000px,calc(100vw - 48px)) !important;
  max-width: 1000px !important;
  max-height: min(88dvh,880px) !important;
  padding: 36px !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

.hfh-popup__catalog-layout {
  grid-template-columns: 250px minmax(0,1fr) !important;
  align-items: center;
  gap: clamp(32px,5vw,58px) !important;
}

.hfh-popup__catalog-layout.no-image {
  grid-template-columns: minmax(0,1fr) !important;
}

.hfh-popup__catalog-media {
  position: static !important;
  top: auto !important;
  min-height: 340px;
  padding: 26px;
  border-color: #d4e7f5;
  background:
    radial-gradient(circle at 50% 25%,rgba(64,198,242,.22),transparent 48%),
    linear-gradient(155deg,#f8fcff,#e9f5ff);
}

.hfh-popup__catalog-media img {
  max-width: 205px;
  max-height: 300px;
}

.hfh-popup__content--catalog .hfh-popup__header {
  margin: 0 46px 18px 0 !important;
}

.hfh-popup__content--catalog .hfh-popup__header h2 {
  max-width: 680px;
  font-size: clamp(32px,3.6vw,46px) !important;
}

.hfh-popup__description {
  max-width: 720px;
  font-size: 15px;
  line-height: 1.65;
}

.hfh-popup__notice {
  max-width: 720px;
  margin-top: 18px;
  padding: 16px 18px;
  line-height: 1.55;
}

.hfh-popup__intro-action {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
}

.hfh-popup__intro-action small {
  max-width: 230px;
  color: #6680a4;
  font-size: 12px;
  line-height: 1.45;
}

.hfh-popup__next {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  min-height: 54px;
  min-width: 245px;
  padding: 0 22px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg,#0e2d6c 0%,#1761e8 100%);
  box-shadow: 0 14px 28px rgba(14,45,108,.20);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
}

.hfh-popup__next:hover,
.hfh-popup__next:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 18px 34px rgba(14,45,108,.25);
}

.hfh-popup__form-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 44px 22px 0;
  padding-bottom: 18px;
  border-bottom: 1px solid #dce9f5;
}

.hfh-popup__form-heading .hfh-popup__eyebrow {
  margin: 0 0 6px !important;
  color: #159ecf !important;
}

.hfh-popup__form-heading h2 {
  margin: 0;
  color: #0e2d6c;
  font-size: clamp(28px,3vw,40px);
  line-height: 1.08;
}

.hfh-popup__back {
  padding: 9px 13px;
  border: 1px solid #d2e1ef;
  border-radius: 10px;
  background: #f7fbff;
  color: #31558f;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.hfh-popup__back:hover,
.hfh-popup__back:focus-visible {
  border-color: #40c6f2;
  background: #edf9fd;
  color: #0e2d6c;
}

.hfh-popup__form--wizard {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.hfh-popup__form--wizard .hef_form {
  width: 100% !important;
  max-width: none !important;
  padding: 24px !important;
  border: 1px solid #dfe9f3 !important;
  border-radius: 20px !important;
  background: #f7faff !important;
}

.hfh-popup__form--wizard .row.no-gutters {
  width: calc(100% + 20px) !important;
}

.hfh-popup__form--wizard .hfh-email-field {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}

.hfh-popup__form--wizard .hfh-email-field .wpcf7-form-control-wrap,
.hfh-popup__form--wizard .hfh-email-field input[type="email"],
.hfh-popup__form--wizard input[type="email"] {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

.hfh-popup__form--wizard input:not([type="submit"]):not([type="checkbox"]),
.hfh-popup__form--wizard textarea,
.hfh-popup__form--wizard select {
  box-sizing: border-box !important;
}

.hfh-popup__form--wizard .input_anfordern input.wpcf7-submit,
.hfh-popup__form--wizard input.wpcf7-submit {
  min-height: 56px !important;
  background: linear-gradient(135deg,#0e2d6c 0%,#1761e8 100%) !important;
}

body > .hfh-floating-catalog {
  position: fixed !important;
  top: 64% !important;
  right: 0 !important;
  bottom: auto !important;
  z-index: 9990 !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(110%);
  transition: transform .28s ease,opacity .28s ease,visibility .28s ease !important;
}

body > .hfh-floating-catalog.is-scroll-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

body > .hfh-floating-catalog.is-scroll-visible:hover,
body > .hfh-floating-catalog.is-scroll-visible:focus-visible {
  transform: translateX(0) translateY(-3px);
}

@media (max-width: 1080px) {
  body > .hfh-floating-catalog {
    display: none !important;
  }
}

@media (max-width: 900px) {
  .hfh-hero {
    top: 0 !important;
    margin-bottom: 0 !important;
  }

  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage {
    padding-top: calc(52px + var(--hfh-mobile-header-overlap,0px)) !important;
    overflow: visible !important;
  }

  .hfh-title {
    margin-top: 0 !important;
    clip: auto !important;
    clip-path: none !important;
    transform: none !important;
  }

  .hfh-popup__dialog {
    width: min(100%,calc(100vw - 20px)) !important;
    max-height: calc(100dvh - var(--hfh-mobile-top-offset,82px) - 12px) !important;
    padding: 22px 16px !important;
    border-radius: 20px !important;
  }

  .hfh-popup__catalog-layout {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 18px !important;
  }

  .hfh-popup__catalog-media {
    min-height: 0;
    padding: 14px;
  }

  .hfh-popup__catalog-media img {
    max-width: 135px;
    max-height: 155px;
  }

  .hfh-popup__content--catalog .hfh-popup__header {
    margin: 0 38px 12px 0 !important;
    padding: 0 !important;
  }

  .hfh-popup__content--catalog .hfh-popup__header h2 {
    font-size: clamp(25px,7vw,34px) !important;
  }

  .hfh-popup__description,
  .hfh-popup__notice {
    max-width: none;
    font-size: 13px;
  }

  .hfh-popup__intro-action {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
    margin-top: 18px;
  }

  .hfh-popup__next {
    width: 100%;
    min-width: 0;
  }

  .hfh-popup__intro-action small {
    max-width: none;
  }

  .hfh-popup__form-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    margin: 0 38px 16px 0;
    padding-bottom: 14px;
  }

  .hfh-popup__form-heading h2 {
    font-size: 28px;
  }

  .hfh-popup__form--wizard .hef_form {
    padding: 14px !important;
  }

  .hfh-popup__form--wizard .row.no-gutters {
    width: 100% !important;
    margin: 0 !important;
  }

  .hfh-popup__form--wizard .hef-contact-left,
  .hfh-popup__form--wizard .hef-contact-right,
  .hfh-popup__form--wizard .row.no-gutters > [class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* v1.10.1 – exact popup field grid and stronger mobile title clearance */
@media (min-width: 901px) {
  .hfh-popup__form--wizard .hef_form {
    --hfh-form-column-gap: 20px;
  }

  .hfh-popup__form--wizard .hfh-name-split,
  .hfh-popup__form--wizard .hef_form > .row.no-gutters {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form--wizard .hfh-name-split,
  .hfh-popup__form--wizard .hef_form > .row.no-gutters {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    column-gap: var(--hfh-form-column-gap) !important;
  }

  .hfh-popup__form--wizard .hfh-name-split {
    margin-bottom: 18px !important;
  }

  .hfh-popup__form--wizard .hef-contact-left,
  .hfh-popup__form--wizard .hef-contact-right {
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .hfh-popup__form--wizard .hef-contact-left > .row {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 12px 14px !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .hfh-popup__form--wizard .hef-contact-left > .row > *,
  .hfh-popup__form--wizard .hef-contact-right > .row > * {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form--wizard .hef-contact-left > .row > .hfh-grid-full {
    grid-column: 1 / -1 !important;
  }

  .hfh-popup__form--wizard .hef-contact-right > .row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
  }

  .hfh-popup__form--wizard .hfh-name-split label,
  .hfh-popup__form--wizard .hfh-name-split input,
  .hfh-popup__form--wizard .hfh-email-field,
  .hfh-popup__form--wizard .hfh-email-field .wpcf7-form-control-wrap,
  .hfh-popup__form--wizard .hfh-email-field input,
  .hfh-popup__form--wizard .hfh-field-message,
  .hfh-popup__form--wizard .hfh-field-message .wpcf7-form-control-wrap,
  .hfh-popup__form--wizard .hfh-field-message textarea {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  .hfh-popup__form--wizard .input_anfordern {
    position: relative !important;
    top: var(--hfh-submit-align-offset,0px) !important;
  }
}


/* v1.11.1 – catalog dialog always centered; FairPlus-only hover colors */
#hfs-suite-katalog-popup.hfh-popup {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

#hfs-suite-katalog-popup .hfh-popup__dialog {
  margin: 0 auto !important;
  max-height: calc(100vh - 32px) !important;
  max-height: calc(100dvh - 32px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

#hfs-suite-katalog-popup .hfh-popup__close:hover,
#hfs-suite-katalog-popup .hfh-popup__close:focus-visible,
#hfs-suite-katalog-popup .hfh-popup__inner-close:hover,
#hfs-suite-katalog-popup .hfh-popup__inner-close:focus-visible {
  border-color: #40c6f2 !important;
  background: #dff7ff !important;
  color: #0e2d6c !important;
  filter: none !important;
}

#hfs-suite-katalog-popup .hfh-popup__next:hover,
#hfs-suite-katalog-popup .hfh-popup__next:focus-visible,
#hfs-suite-katalog-popup .hfh-popup__form input.wpcf7-submit:hover,
#hfs-suite-katalog-popup .hfh-popup__form input.wpcf7-submit:focus-visible,
#hfs-suite-katalog-popup .hfh-popup__form button[type="submit"]:hover,
#hfs-suite-katalog-popup .hfh-popup__form button[type="submit"]:focus-visible {
  border-color: #40c6f2 !important;
  background: linear-gradient(135deg,#1761e8 0%,#40c6f2 100%) !important;
  color: #ffffff !important;
  filter: none !important;
}

#hfs-suite-katalog-popup .hfh-popup__back:hover,
#hfs-suite-katalog-popup .hfh-popup__back:focus-visible {
  border-color: #40c6f2 !important;
  background-color: #edf9fd !important;
  color: #0e2d6c !important;
  filter: none !important;
}

#hfs-suite-katalog-popup a:not(.hfh-popup__close):not(.hfh-popup__back):hover,
#hfs-suite-katalog-popup a:not(.hfh-popup__close):not(.hfh-popup__back):focus-visible {
  background-color: transparent !important;
  color: #159ecf !important;
  filter: none !important;
}

body > .hfh-floating-catalog.is-scroll-visible:hover,
body > .hfh-floating-catalog.is-scroll-visible:focus-visible {
  background: linear-gradient(155deg,#1761e8 0%,#40c6f2 100%) !important;
  color: #ffffff !important;
  filter: none !important;
}

@media (max-width: 900px) {
  #hfs-suite-katalog-popup.hfh-popup {
    align-items: center !important;
    justify-content: center !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 10px !important;
  }

  #hfs-suite-katalog-popup .hfh-popup__dialog {
    width: min(100%,calc(100vw - 20px)) !important;
    max-height: calc(100vh - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 900px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage {
    padding-top: calc(96px + var(--hfh-mobile-header-overlap,0px)) !important;
  }

  .hfh-copy,
  .hfh-title {
    position: relative !important;
    top: auto !important;
    margin-top: 0 !important;
    transform: none !important;
  }
}


/* v1.10.2 – show validation feedback only once at the form bottom */
.hfh-popup__form--wizard .wpcf7-not-valid-tip,
.hfh-popup__form-host .wpcf7-not-valid-tip {
  display: none !important;
}


/* v1.10.5 – Handwerkerforum proportions and shared FairPlus content width */
@media (min-width: 901px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage,
  .hfh-media-mode-products .hfh-stage {
    min-height: 535px !important;
    box-sizing: border-box;
  }

  .hfh-media-mode-none .hfh-hero__top,
  .hfh-media-mode-image .hfh-hero__top,
  .hfh-media-mode-video .hfh-hero__top {
    min-height: 437px !important;
  }

  .hfh-trust-bar {
    display: flex;
    align-items: center;
    min-height: 128px;
    padding: 20px 24px;
    box-sizing: border-box;
  }

  .hfh-trust-bar__inner {
    width: min(1440px,calc(100% - 48px));
  }

  .hfh-trust-item {
    min-height: 88px;
  }
}


/* v1.13.0 – Hartl-aligned wide layout and subtle FairPlus plus motion */
.hfh-hero__plus-field {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
}

.hfh-hero__plus {
  --hfh-plus-size: 34px;
  --hfh-plus-alpha: .12;
  --hfh-plus-mid: .07;
  --hfh-plus-low: .04;
  position: absolute;
  display: block;
  width: var(--hfh-plus-size);
  height: var(--hfh-plus-size);
  color: #78dcff;
  opacity: 0;
  transform: translate3d(0,8px,0) scale(.82);
  animation: hfhPlusBreathe 16s ease-in-out infinite;
  will-change: opacity,transform;
}

.hfh-hero__plus::before,
.hfh-hero__plus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 18px rgba(64,198,242,.18);
  transform: translate(-50%,-50%);
}

.hfh-hero__plus::before {
  width: 100%;
  height: 3px;
}

.hfh-hero__plus::after {
  width: 3px;
  height: 100%;
}

.hfh-hero__plus--1 { top: 17%; left: 56%; --hfh-plus-size: 24px; --hfh-plus-alpha: .09; --hfh-plus-mid: .055; --hfh-plus-low: .03; animation-duration: 18s; animation-delay: -3s; }
.hfh-hero__plus--2 { top: 39%; left: 63%; --hfh-plus-size: 43px; --hfh-plus-alpha: .14; --hfh-plus-mid: .085; --hfh-plus-low: .05; animation-duration: 21s; animation-delay: -11s; }
.hfh-hero__plus--3 { top: 23%; left: 70%; --hfh-plus-size: 31px; --hfh-plus-alpha: .10; --hfh-plus-mid: .06; --hfh-plus-low: .035; animation-duration: 15s; animation-delay: -7s; }
.hfh-hero__plus--4 { top: 62%; left: 73%; --hfh-plus-size: 19px; --hfh-plus-alpha: .08; --hfh-plus-mid: .05; --hfh-plus-low: .028; animation-duration: 19s; animation-delay: -14s; }
.hfh-hero__plus--5 { top: 34%; left: 82%; --hfh-plus-size: 54px; --hfh-plus-alpha: .07; --hfh-plus-mid: .045; --hfh-plus-low: .025; animation-duration: 23s; animation-delay: -5s; }
.hfh-hero__plus--6 { top: 72%; left: 60%; --hfh-plus-size: 29px; --hfh-plus-alpha: .11; --hfh-plus-mid: .068; --hfh-plus-low: .04; animation-duration: 17s; animation-delay: -9s; }

@keyframes hfhPlusBreathe {
  0%,100% { opacity: var(--hfh-plus-low); transform: translate3d(0,8px,0) scale(.82); }
  42% { opacity: var(--hfh-plus-alpha); transform: translate3d(0,-3px,0) scale(1.05); }
  68% { opacity: var(--hfh-plus-mid); transform: translate3d(0,2px,0) scale(.94); }
}

@media (min-width: 901px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage,
  .hfh-media-mode-products .hfh-stage {
    width: min(var(--hfh-stage-max-width),78vw) !important;
    max-width: none !important;
  }

  .hfh-trust-bar__inner {
    width: min(var(--hfh-stage-max-width),78vw) !important;
    max-width: none !important;
  }

  .hfh-media-mode-none .hfh-copy,
  .hfh-media-mode-image .hfh-copy,
  .hfh-media-mode-video .hfh-copy,
  .hfh-copy {
    max-width: var(--hfh-title-max-width,800px) !important;
  }

  .hfh-title {
    max-width: 100% !important;
  }

  .hfh-text {
    max-width: 650px !important;
  }
}

@media (max-width: 900px) {
  .hfh-hero__plus--5,
  .hfh-hero__plus--6 {
    display: none;
  }

  .hfh-hero__plus--1 { left: 62%; }
  .hfh-hero__plus--2 { left: 76%; }
  .hfh-hero__plus--3 { left: 86%; }
  .hfh-hero__plus--4 { left: 68%; }
}

@media (prefers-reduced-motion: reduce) {
  .hfh-hero__plus {
    animation: none !important;
    opacity: var(--hfh-plus-mid);
    transform: none;
  }
}


/* v1.14.0 – FairPlus rings, compact trust copy and persistent form success */
.hfh-hero__plus {
  box-sizing: border-box;
  border: 3px solid currentColor;
  border-radius: 50%;
  filter: drop-shadow(0 0 12px rgba(64,198,242,.12));
}

.hfh-hero__plus::before {
  width: 56%;
  height: 4px;
  box-shadow: none;
}

.hfh-hero__plus::after {
  width: 4px;
  height: 56%;
  box-shadow: none;
}

.hfh-hero__plus--1 { top: 15%; left: 45%; --hfh-plus-size: 27px; }
.hfh-hero__plus--2 { top: 39%; left: 52%; --hfh-plus-size: 46px; }
.hfh-hero__plus--3 { top: 20%; left: 60%; --hfh-plus-size: 34px; }
.hfh-hero__plus--4 { top: 63%; left: 65%; --hfh-plus-size: 24px; }
.hfh-hero__plus--5 { top: 32%; left: 74%; --hfh-plus-size: 58px; }
.hfh-hero__plus--6 { top: 73%; left: 49%; --hfh-plus-size: 31px; }

@media (min-width: 901px) {
  .hfh-trust-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 28px;
  }

  .hfh-trust-item:first-child {
    justify-content: flex-start;
    padding-left: 0;
  }

  .hfh-trust-item:nth-child(2) {
    justify-content: center;
  }

  .hfh-trust-item:last-child {
    justify-content: flex-end;
    padding-right: 0;
  }

  .hfh-trust-item__icon {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
  }

  .hfh-trust-item__icon svg {
    width: 42px;
    height: 42px;
  }

  .hfh-trust-item__copy {
    flex: 0 1 auto;
    width: auto;
    max-width: 270px;
    align-items: flex-end;
    text-align: right;
  }
}

.hfh-popup__form .wpcf7-spinner {
  display: none !important;
}

.hfh-popup__form.is-sending .wpcf7-submit,
.hfh-popup__form.is-sending button[type="submit"] {
  opacity: .72;
  cursor: wait;
}

.hfh-catalog-success[hidden] {
  display: none !important;
}

.hfh-catalog-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 390px;
  padding: clamp(30px,5vw,62px);
  border: 1px solid rgba(64,198,242,.24);
  border-radius: 20px;
  background: linear-gradient(145deg,#f7fcff 0%,#eef7ff 100%);
  color: #0e2d6c;
  text-align: center;
}

.hfh-catalog-success__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 82px;
  height: 82px;
  margin-bottom: 22px;
  border-radius: 50%;
  background: rgba(0,130,66,.10);
  color: #008242;
}

.hfh-catalog-success__icon svg {
  width: 62px;
  height: 62px;
}

.hfh-catalog-success h3 {
  margin: 0;
  color: #0e2d6c;
  font-size: clamp(28px,3vw,38px);
  line-height: 1.1;
}

.hfh-catalog-success p {
  max-width: 560px;
  margin: 14px 0 26px;
  color: #31558f;
  font-size: 16px;
  line-height: 1.55;
}

.hfh-catalog-success__close {
  min-width: 210px;
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg,#1761e8 0%,#0e2d6c 100%);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  transition: transform .2s ease,box-shadow .2s ease,background .2s ease;
}

.hfh-catalog-success__close:hover,
.hfh-catalog-success__close:focus-visible {
  background: linear-gradient(135deg,#1557c9 0%,#159ecf 100%);
  box-shadow: 0 12px 26px rgba(14,45,108,.20);
  transform: translateY(-1px);
  outline: none;
}

@media (max-width: 900px) {
  .hfh-hero__plus--1 { left: 48%; }
  .hfh-hero__plus--2 { left: 62%; }
  .hfh-hero__plus--3 { left: 76%; }
  .hfh-hero__plus--4 { left: 54%; }

  .hfh-catalog-success {
    min-height: 320px;
    padding: 28px 20px;
  }
}


/* v1.15.0 – staggered white/cyan FairPlus plus motion and left-aligned trust copy */
.hfh-hero__plus {
  opacity: 0;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
}

.hfh-hero__plus--1 { top: 14%; left: 36%; color: rgba(255,255,255,.92); --hfh-plus-size: 24px; animation: hfhPlusAppearA 19s ease-in-out 1.1s infinite both; }
.hfh-hero__plus--2 { top: 42%; left: 42%; color: rgba(174,234,255,.96); --hfh-plus-size: 43px; animation: hfhPlusAppearB 27s ease-in-out 3.0s infinite both; }
.hfh-hero__plus--3 { top: 21%; left: 49%; color: rgba(255,255,255,.82); --hfh-plus-size: 31px; animation: hfhPlusAppearC 22s ease-in-out 5.2s infinite both; }
.hfh-hero__plus--4 { top: 67%; left: 54%; color: rgba(110,219,255,.92); --hfh-plus-size: 20px; animation: hfhPlusAppearA 17s ease-in-out 7.4s infinite both; }
.hfh-hero__plus--5 { top: 32%; left: 62%; color: rgba(255,255,255,.72); --hfh-plus-size: 55px; animation: hfhPlusAppearB 30s ease-in-out 9.1s infinite both; }
.hfh-hero__plus--6 { top: 76%; left: 39%; color: rgba(190,241,255,.88); --hfh-plus-size: 28px; animation: hfhPlusAppearC 24s ease-in-out 11.3s infinite both; }
.hfh-hero__plus--7 { top: 55%; left: 47%; color: rgba(255,255,255,.78); --hfh-plus-size: 17px; animation: hfhPlusAppearA 21s ease-in-out 13.2s infinite both; }
.hfh-hero__plus--8 { top: 12%; left: 57%; color: rgba(111,220,255,.84); --hfh-plus-size: 37px; animation: hfhPlusAppearB 33s ease-in-out 15.0s infinite both; }

@keyframes hfhPlusAppearA {
  0%,12% { opacity:0; transform:translate3d(0,8px,0) scale(.82); }
  24% { opacity:.13; transform:translate3d(0,-2px,0) scale(1.03); }
  53% { opacity:.08; transform:translate3d(0,-7px,0) scale(.96); }
  72%,100% { opacity:0; transform:translate3d(0,-12px,0) scale(.86); }
}

@keyframes hfhPlusAppearB {
  0%,8% { opacity:0; transform:translate3d(0,5px,0) scale(.88); }
  19% { opacity:.11; transform:translate3d(0,0,0) scale(1); }
  62% { opacity:.075; transform:translate3d(0,-5px,0) scale(1.04); }
  82%,100% { opacity:0; transform:translate3d(0,-10px,0) scale(.94); }
}

@keyframes hfhPlusAppearC {
  0%,18% { opacity:0; transform:translate3d(0,10px,0) scale(.78); }
  31% { opacity:.07; transform:translate3d(0,3px,0) scale(.94); }
  47% { opacity:.15; transform:translate3d(0,-2px,0) scale(1.06); }
  66% { opacity:.055; transform:translate3d(0,-7px,0) scale(.97); }
  79%,100% { opacity:0; transform:translate3d(0,-13px,0) scale(.86); }
}

@media (min-width: 901px) {
  .hfh-trust-item__copy {
    align-items: flex-start;
    text-align: left;
  }
}

@media (max-width: 900px) {
  .hfh-hero__plus--5,
  .hfh-hero__plus--6,
  .hfh-hero__plus--7,
  .hfh-hero__plus--8 {
    display: none;
  }

  .hfh-hero__plus--1 { left: 48%; }
  .hfh-hero__plus--2 { left: 61%; }
  .hfh-hero__plus--3 { left: 75%; }
  .hfh-hero__plus--4 { left: 55%; }
}

@media (prefers-reduced-motion: reduce) {
  .hfh-hero__plus {
    animation: none !important;
    opacity: .07;
  }
}


/* v1.16.0 – shared 76vw rhythm, exact fairPLUS plus marks and edge-aligned trust groups */
@media (min-width: 901px) {
  .hfh-stage,
  .hfh-hero.no-stage-overlay .hfh-stage,
  .hfh-hero.has-stage-overlay .hfh-stage,
  .hfh-media-mode-none .hfh-stage,
  .hfh-media-mode-image .hfh-stage,
  .hfh-media-mode-video .hfh-stage,
  .hfh-media-mode-products .hfh-stage,
  .hfh-trust-bar__inner {
    width: min(var(--hfh-stage-max-width),76vw) !important;
    max-width: none !important;
  }

  .hfh-trust-bar__inner {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

  .hfh-trust-item {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .hfh-trust-item:first-child {
    justify-content: flex-start;
  }

  .hfh-trust-item:nth-child(2) {
    justify-content: center;
  }

  .hfh-trust-item:last-child {
    justify-content: flex-end;
  }

  .hfh-trust-item__copy {
    align-items: flex-start;
    max-width: 270px;
    text-align: left;
  }
}

.hfh-hero__plus {
  box-sizing: border-box;
  border: 3px solid currentColor;
  border-radius: 50%;
  color: rgba(255,255,255,.88);
  filter: drop-shadow(0 0 10px rgba(255,255,255,.08));
  opacity: 0;
}

.hfh-hero__plus::before,
.hfh-hero__plus::after {
  border-radius: 999px;
  background: currentColor;
  box-shadow: none;
}

.hfh-hero__plus::before {
  width: 56%;
  height: 3px;
}

.hfh-hero__plus::after {
  width: 3px;
  height: 56%;
}

.hfh-hero__plus--1 { top: 13%; left: 28%; --hfh-plus-size: 25px; animation: hfhFairPlusInitialA 24s ease-in-out -3s infinite both; }
.hfh-hero__plus--2 { top: 41%; left: 34%; --hfh-plus-size: 44px; animation: hfhFairPlusInitialB 31s ease-in-out -7s infinite both; }
.hfh-hero__plus--3 { top: 20%; left: 41%; --hfh-plus-size: 32px; animation: hfhFairPlusInitialC 27s ease-in-out -12s infinite both; }
.hfh-hero__plus--4 { top: 67%; left: 47%; --hfh-plus-size: 21px; animation: hfhFairPlusLaterA 22s ease-in-out 3.5s infinite both; }
.hfh-hero__plus--5 { top: 31%; left: 55%; --hfh-plus-size: 56px; animation: hfhFairPlusLaterB 34s ease-in-out 7.5s infinite both; }
.hfh-hero__plus--6 { top: 76%; left: 31%; --hfh-plus-size: 29px; animation: hfhFairPlusLaterC 29s ease-in-out 12s infinite both; }
.hfh-hero__plus--7 { top: 56%; left: 39%; --hfh-plus-size: 18px; animation: hfhFairPlusLaterA 26s ease-in-out 16s infinite both; }
.hfh-hero__plus--8 { top: 11%; left: 50%; --hfh-plus-size: 38px; animation: hfhFairPlusLaterB 37s ease-in-out 20s infinite both; }

@keyframes hfhFairPlusInitialA {
  0%,8% { opacity:0; transform:translate3d(0,7px,0) scale(.88); }
  20% { opacity:.12; transform:translate3d(0,0,0) scale(1); }
  58% { opacity:.075; transform:translate3d(0,-5px,0) scale(1.02); }
  76%,100% { opacity:0; transform:translate3d(0,-10px,0) scale(.92); }
}

@keyframes hfhFairPlusInitialB {
  0%,10% { opacity:0; transform:translate3d(0,6px,0) scale(.86); }
  22% { opacity:.095; transform:translate3d(0,1px,0) scale(.98); }
  68% { opacity:.065; transform:translate3d(0,-5px,0) scale(1.03); }
  86%,100% { opacity:0; transform:translate3d(0,-11px,0) scale(.94); }
}

@keyframes hfhFairPlusInitialC {
  0%,7% { opacity:0; transform:translate3d(0,5px,0) scale(.90); }
  18% { opacity:.08; transform:translate3d(0,0,0) scale(1); }
  50% { opacity:.13; transform:translate3d(0,-3px,0) scale(1.04); }
  72%,100% { opacity:0; transform:translate3d(0,-10px,0) scale(.91); }
}

@keyframes hfhFairPlusLaterA {
  0%,14% { opacity:0; transform:translate3d(0,8px,0) scale(.84); }
  28% { opacity:.11; transform:translate3d(0,0,0) scale(1); }
  57% { opacity:.07; transform:translate3d(0,-5px,0) scale(1.02); }
  74%,100% { opacity:0; transform:translate3d(0,-11px,0) scale(.90); }
}

@keyframes hfhFairPlusLaterB {
  0%,18% { opacity:0; transform:translate3d(0,9px,0) scale(.82); }
  31% { opacity:.085; transform:translate3d(0,1px,0) scale(.98); }
  70% { opacity:.06; transform:translate3d(0,-5px,0) scale(1.03); }
  88%,100% { opacity:0; transform:translate3d(0,-12px,0) scale(.93); }
}

@keyframes hfhFairPlusLaterC {
  0%,20% { opacity:0; transform:translate3d(0,7px,0) scale(.86); }
  35% { opacity:.12; transform:translate3d(0,0,0) scale(1); }
  52% { opacity:.08; transform:translate3d(0,-3px,0) scale(1.04); }
  69%,100% { opacity:0; transform:translate3d(0,-10px,0) scale(.92); }
}

@media (max-width: 900px) {
  .hfh-hero__plus--1 { left: 34%; }
  .hfh-hero__plus--2 { left: 47%; }
  .hfh-hero__plus--3 { left: 61%; }
  .hfh-hero__plus--4 { left: 40%; }
}

@media (prefers-reduced-motion: reduce) {
  .hfh-hero__plus {
    animation: none !important;
    opacity: .065;
    transform: none;
  }
}


/* v1.16.1 – FairPlus trust gradient and Handwerkerforum-style group alignment */
.hfh-trust-bar {
  background: linear-gradient(105deg,#0e2d6c 0%,#1557c9 36%,#159ecf 55%,#1557c9 73%,#0e2d6c 100%);
}

@media (min-width: 901px) {
  .hfh-trust-item,
  .hfh-trust-item:first-child,
  .hfh-trust-item:nth-child(2),
  .hfh-trust-item:last-child {
    justify-content: flex-start;
  }

  .hfh-trust-item {
    padding-right: 24px;
    padding-left: clamp(26px,2.1vw,38px);
  }

  .hfh-trust-item:first-child {
    padding-left: 0;
  }

  .hfh-trust-item:last-child {
    padding-right: 0;
  }

  .hfh-trust-item__copy {
    max-width: 245px;
  }
}

.hfh-hero__plus--1 { left: 33%; }
.hfh-hero__plus--2 { left: 39%; }
.hfh-hero__plus--3 { left: 46%; }
.hfh-hero__plus--4 { left: 52%; }
.hfh-hero__plus--5 { left: 60%; }
.hfh-hero__plus--6 { left: 36%; }
.hfh-hero__plus--7 { left: 44%; }
.hfh-hero__plus--8 { left: 55%; }

@media (max-width: 900px) {
  .hfh-hero__plus--1 { left: 39%; }
  .hfh-hero__plus--2 { left: 52%; }
  .hfh-hero__plus--3 { left: 66%; }
  .hfh-hero__plus--4 { left: 45%; }
}


/* v1.16.2 – calmer trust gradient derived from the product-card hover palette */
.hfh-trust-bar {
  background: linear-gradient(105deg,#243565 0%,#31558f 40%,#3b88a8 57%,#31558f 73%,#243565 100%);
}

/* v1.16.3 – quiet fairPLUS blue balance and restrained background marks */
.hfh-hero__bg {
  background:
    radial-gradient(circle at 79% 42%,rgba(58,116,165,.12) 0,rgba(38,82,129,.06) 25%,transparent 48%),
    linear-gradient(112deg,#173b5d 0%,#214d75 48%,#173759 100%) !important;
}

.hfh-hero__media-blue {
  background:linear-gradient(110deg,#173b5d 0%,#214d75 52%,#173759 100%);
}

.hfh-trust-bar {
  background:linear-gradient(105deg,#263a68 0%,#304a75 42%,#36577d 56%,#304a75 70%,#263a68 100%);
  box-shadow:0 -1px 0 rgba(106,181,213,.14),0 10px 28px rgba(20,43,79,.12);
}

.hfh-hero__plus-field {
  opacity:.42;
}

/* v1.16.4 – original-color image edge, card-derived trust band and left marks */
.hfh-hero__media-blue {
  background:linear-gradient(90deg,
    rgba(23,59,93,.98) 0%,
    rgba(27,66,103,.88) 34%,
    rgba(29,70,108,.54) 50%,
    rgba(26,61,94,.18) 66%,
    rgba(23,55,89,0) 80%,
    rgba(23,55,89,0) 100%);
}

.hfh-trust-bar {
  background:linear-gradient(180deg,#294a74 0%,#1b3353 48%,#091624 100%);
  box-shadow:0 -1px 0 rgba(78,139,184,.12),0 10px 26px rgba(7,18,31,.14);
}

.hfh-hero__plus--9{
  top:24%;left:5%;--hfh-plus-size:17px;
  animation:hfhFairPlusLaterA 28s ease-in-out 6s infinite both;
}
.hfh-hero__plus--10{
  top:58%;left:12%;--hfh-plus-size:26px;
  animation:hfhFairPlusInitialB 34s ease-in-out -5s infinite both;
}
.hfh-hero__plus--11{
  top:76%;left:21%;--hfh-plus-size:14px;
  animation:hfhFairPlusLaterC 25s ease-in-out 13s infinite both;
}
.hfh-hero__plus--12{
  top:9%;left:24%;--hfh-plus-size:21px;
  animation:hfhFairPlusInitialA 31s ease-in-out -10s infinite both;
}

@media (max-width:900px){
  .hfh-hero__plus--9,
  .hfh-hero__plus--11,
  .hfh-hero__plus--12{display:none;}
  .hfh-hero__plus--10{left:10%;}
}

/* v1.16.5 – fuller, more visible, varied fairPLUS motion field */
.hfh-hero__plus-field{opacity:.68;}

.hfh-hero__plus--13{
  top:8%;left:2%;--hfh-plus-size:18px;color:rgba(255,255,255,.72);
  animation:hfhFairPlusDriftA 29s ease-in-out -8s infinite both;
}
.hfh-hero__plus--14{
  top:36%;left:4%;--hfh-plus-size:34px;color:rgba(177,235,255,.64);
  animation:hfhFairPlusDriftB 37s ease-in-out -17s infinite both;
}
.hfh-hero__plus--15{
  top:72%;left:3%;--hfh-plus-size:23px;color:rgba(255,255,255,.68);
  animation:hfhFairPlusDriftC 31s ease-in-out 4s infinite both;
}
.hfh-hero__plus--16{
  top:86%;left:18%;--hfh-plus-size:13px;color:rgba(190,241,255,.66);
  animation:hfhFairPlusDriftA 24s ease-in-out -4s infinite both;
}
.hfh-hero__plus--17{
  top:88%;left:28%;--hfh-plus-size:19px;color:rgba(255,255,255,.60);
  animation:hfhFairPlusDriftB 34s ease-in-out 11s infinite both;
}
.hfh-hero__plus--18{
  top:8%;left:31%;--hfh-plus-size:28px;color:rgba(164,226,250,.62);
  animation:hfhFairPlusDriftC 42s ease-in-out -21s infinite both;
}

@keyframes hfhFairPlusDriftA{
  0%,9%{opacity:0;transform:translate3d(-4px,9px,0) scale(.86);}
  21%{opacity:.15;transform:translate3d(0,1px,0) scale(1);}
  57%{opacity:.095;transform:translate3d(7px,-5px,0) scale(1.04);}
  78%,100%{opacity:0;transform:translate3d(11px,-13px,0) scale(.91);}
}
@keyframes hfhFairPlusDriftB{
  0%,14%{opacity:0;transform:translate3d(6px,10px,0) scale(.82);}
  29%{opacity:.12;transform:translate3d(1px,0,0) scale(.98);}
  70%{opacity:.075;transform:translate3d(-7px,-7px,0) scale(1.03);}
  88%,100%{opacity:0;transform:translate3d(-10px,-14px,0) scale(.93);}
}
@keyframes hfhFairPlusDriftC{
  0%,7%{opacity:0;transform:translate3d(-2px,6px,0) scale(.90);}
  19%{opacity:.10;transform:translate3d(2px,0,0) scale(1);}
  47%{opacity:.16;transform:translate3d(5px,-4px,0) scale(1.05);}
  73%,100%{opacity:0;transform:translate3d(9px,-12px,0) scale(.90);}
}

@media (max-width:900px){
  .hfh-hero__plus-field{opacity:.56;}
  .hfh-hero__plus--13,
  .hfh-hero__plus--14,
  .hfh-hero__plus--16,
  .hfh-hero__plus--17,
  .hfh-hero__plus--18{display:none;}
  .hfh-hero__plus--15{left:5%;}
}

@media (prefers-reduced-motion:reduce){
  .hfh-hero__plus{animation:none !important;opacity:.055;transform:none;}
}

/* v1.22.0 – calm, spaced hero product animation */
.hfh-hero__floating-products {
  position: absolute;
  inset: 0 0 10% 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}

.hfh-animated-product {
  --hfh-float-x: 52%;
  --hfh-float-y: 50%;
  --hfh-float-size: 92px;
  --hfh-float-alpha: .16;
  --hfh-float-alpha-mid: .11;
  --hfh-float-alpha-low: .07;
  --hfh-float-duration: 36s;
  --hfh-float-delay: 0s;
  --hfh-float-drift-x: 18px;
  --hfh-float-drift-y: -14px;
  --hfh-float-drift-x-low: 3px;
  --hfh-float-drift-y-low: -2px;
  --hfh-float-drift-x-mid: 9px;
  --hfh-float-drift-y-mid: -7px;
  --hfh-float-drift-x-high: 15px;
  --hfh-float-drift-y-high: -12px;
  --hfh-float-rotation: 2deg;
  --hfh-float-rotation-start: -2deg;
  --hfh-hero-sequence-duration: 12s;
  position: absolute;
  top: var(--hfh-float-y);
  left: var(--hfh-float-x);
  width: var(--hfh-float-size);
  height: var(--hfh-float-size);
  object-fit: contain;
  opacity: 0;
  filter: saturate(.9) drop-shadow(0 10px 20px rgba(5,23,43,.16));
  transform: translate3d(-50%,-50%,0) scale(1) rotate(var(--hfh-float-rotation-start));
  animation: hfhFloatingProduct var(--hfh-float-duration) cubic-bezier(.42,0,.28,1) var(--hfh-float-delay) infinite both;
  will-change: opacity,transform;
}

/* Hero items are intentionally invisible before JavaScript starts them. This
   prevents several fully opaque products flashing during the first paint. */
.hfh-hero__floating-products .hfh-animated-product {
  width: 112px;
  height: 112px;
  opacity: 0;
  visibility: hidden;
  animation: none;
  transform: translate3d(-50%,calc(-50% + 18px),0) scale(1) rotate(var(--hfh-float-rotation-start));
}

.hfh-hero__floating-products .hfh-animated-product.is-hfh-hero-sequence-active {
  visibility: visible;
  animation: hfhHeroProductSequence var(--hfh-hero-sequence-duration) cubic-bezier(.33,.02,.2,1) 1 both !important;
}

@keyframes hfhHeroProductSequence {
  0% {
    opacity: 0;
    transform: translate3d(-50%,calc(-50% + 18px),0) scale(.98) rotate(var(--hfh-float-rotation-start));
  }
  18% {
    opacity: 1;
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-low)),calc(-50% + var(--hfh-float-drift-y-low)),0) scale(1) rotate(0deg);
  }
  70% {
    opacity: 1;
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-mid)),calc(-50% + var(--hfh-float-drift-y-mid)),0) scale(1) rotate(0deg);
  }
  82% {
    opacity: 1;
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-high)),calc(-50% + var(--hfh-float-drift-y-high)),0) scale(1) rotate(var(--hfh-float-rotation));
  }
  100% {
    opacity: 0;
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x)),calc(-50% + var(--hfh-float-drift-y) - 12px),0) scale(.99) rotate(var(--hfh-float-rotation));
  }
}

@keyframes hfhFloatingProduct {
  0%,18% {
    opacity: 0;
    transform: translate3d(-50%,-50%,0) scale(1) rotate(var(--hfh-float-rotation-start));
  }
  27% {
    opacity: var(--hfh-float-alpha-low);
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-low)),calc(-50% + var(--hfh-float-drift-y-low)),0) scale(1) rotate(0deg);
  }
  38%,58% {
    opacity: var(--hfh-float-alpha);
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-mid)),calc(-50% + var(--hfh-float-drift-y-mid)),0) scale(1) rotate(0deg);
  }
  64% {
    opacity: var(--hfh-float-alpha);
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x-high)),calc(-50% + var(--hfh-float-drift-y-high)),0) scale(1) rotate(var(--hfh-float-rotation));
  }
  72%,100% {
    opacity: 0;
    transform: translate3d(calc(-50% + var(--hfh-float-drift-x)),calc(-50% + var(--hfh-float-drift-y)),0) scale(1) rotate(var(--hfh-float-rotation));
  }
}

@media (max-width:900px) {
  .hfh-hero__floating-products .hfh-animated-product {
    width: 96px;
    height: 96px;
  }
}

@media (max-width:600px) {
  .hfh-hero__floating-products .hfh-animated-product {
    width: 82px;
    height: 82px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .hfh-animated-product {
    animation: none !important;
    opacity: 0;
    transform: translate3d(-50%,-50%,0) scale(.92);
  }

  .hfh-animated-product.is-hfh-floating-static {
    opacity: var(--hfh-float-alpha-low);
    visibility: visible;
  }

  .hfh-hero__floating-products .hfh-animated-product.is-hfh-floating-static {
    opacity: 1;
    visibility: visible;
  }

  .hfh-animated-product:nth-child(n+5) {
    display: none;
  }
}


/* v1.16.14: Zwei klare Katalogwege – PDF sofort herunterladen oder Druckexemplar anfragen. */
.hfh-popup__content--catalog .hfh-popup__intro-action {
  align-items: stretch;
  flex-direction: column;
  gap: 12px;
  margin-top: 22px;
}
.hfh-popup__content--catalog .hfh-popup__download {
  display: inline-flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 54px;
  width: 100%;
  padding: 13px 20px;
  border: 1px solid #0e2d6c !important;
  border-radius: 14px;
  background: linear-gradient(135deg,#0e2d6c 0%,#1761e8 100%) !important;
  color: #fff !important;
    font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
  text-decoration: none !important;
  box-shadow: 0 12px 26px rgba(14,45,108,.17);
  transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.hfh-popup__content--catalog .hfh-popup__download:hover,
.hfh-popup__content--catalog .hfh-popup__download:focus-visible {
  color: #fff !important;
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(14,45,108,.23);
}
.hfh-popup__content--catalog .hfh-popup__download span:last-child {
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}
.hfh-popup__content--catalog .hfh-popup__request-action {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  width: 100%;
}
.hfh-popup__content--catalog .hfh-popup__next {
  width: 100%;
  min-width: 0;
  background: #f3f8ff !important;
  color: #0e2d6c !important;
  border: 1px solid #c7d9ef !important;
  box-shadow: none;
}
.hfh-popup__content--catalog .hfh-popup__next:hover,
.hfh-popup__content--catalog .hfh-popup__next:focus-visible {
  background: #e8f5ff !important;
  color: #0e2d6c !important;
  border-color: #40c6f2 !important;
  box-shadow: none;
}
.hfh-popup__content--catalog .hfh-popup__request-action small {
  max-width: none;
  color: #6680a4;
  font-size: 12px;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .hfh-popup__content--catalog .hfh-popup__intro-action { gap: 10px; }
  .hfh-popup__content--catalog .hfh-popup__download { font-size: 14px; }
}

/* v1.16.15: Lato typography for the entire fairPLUS page, including modal and showcase.
   The body class is added by fairplus-hero.js only where the hero is present. */
body.hfh-hero-active,
body.hfh-hero-active :is(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,.elementor-heading-title,.elementor-button-text),
.hfh-hero,
.hfh-hero :is(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,span,strong,em,small,li),
.hfh-popup,
.hfh-popup :is(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,span,strong,em,small,li),
.hsb-section,
.hsb-section :is(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,span,strong,em,small,li) {
  font-family: "Lato", Arial, Helvetica, sans-serif !important;
}

/* v1.16.20 – mobile edge containment and truly centered catalog dialog */
@media (max-width: 900px) {
  /* Restrict the sideways page drag without clipping the open popup. */
  html:has(.hfh-hero),
  body.hfh-hero-active {
    max-width: 100% !important;
    overflow-x: clip !important;
    overscroll-behavior-x: none;
  }

  /* Full-width sections must never calculate their x-position with -50vw
     inside WordPress content containers on mobile. */
  .hfh-hero,
  .hartl-fairplus-category-chooser,
  .hartl-fairplus-category-assortment,
  .hartl-fairplus-closing,
  .hsb-content-block {
    position: relative;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .hfh-stage,
  .hfh-container,
  .hartl-fairplus-category-system,
  .hartl-fairplus-category-panel,
  .hartl-fairplus-category-grid,
  .hsb-section,
  .hsb-content-wrap,
  .hsb-content-inner,
  .hsb-cards-grid,
  .hsb-smart-filter,
  .hsb-smart-filter-grid {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Layout of the site must not be affected by the modal positioning. */
  #hfs-suite-katalog-popup.hfh-popup {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  #hfs-suite-katalog-popup .hfh-popup__backdrop {
    position: absolute !important;
    inset: 0 !important;
  }

  /* Absolute 50/50 centering avoids older popup top-offset overrides. */
  #hfs-suite-katalog-popup > .hfh-popup__dialog {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: calc(100% - 28px) !important;
    max-width: 430px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 32px) !important;
    margin: 0 !important;
    padding: 18px 14px 20px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box !important;
  }

  #hfs-suite-katalog-popup .hfh-popup__content--catalog {
    max-width: 100% !important;
    padding-bottom: 2px !important;
  }

  #hfs-suite-katalog-popup .hfh-popup__intro-action,
  #hfs-suite-katalog-popup .hfh-popup__request-action {
    padding-bottom: 8px !important;
  }

  #hfs-suite-katalog-popup .hfh-popup__close {
    z-index: 20 !important;
    top: 10px !important;
    right: 10px !important;
  }

  /* Preserve the intended compact mobile fields without trapping their labels. */
  #hfs-suite-katalog-popup .hfh-popup__form-host {
    width: 100% !important;
    max-width: 100% !important;
    padding: 4px 0 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
}


/* v1.16.21 – final mobile-only popup position and comfortable CTA breathing room.
   Scoped to the real suite popup: never modify the desktop layout or theme widgets. */
@media (max-width: 767px) {
  body #hfs-suite-katalog-popup.hfh-popup {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 12px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }

  body #hfs-suite-katalog-popup > .hfh-popup__dialog {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    align-self: center !important;
    flex: 0 1 auto !important;
    width: 100% !important;
    max-width: 420px !important;
    max-height: calc(100dvh - 24px) !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 18px 14px 26px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body #hfs-suite-katalog-popup .hfh-popup__content--catalog {
    padding-bottom: 4px !important;
  }

  body #hfs-suite-katalog-popup .hfh-popup__intro-action {
    padding-bottom: 12px !important;
  }

  body #hfs-suite-katalog-popup .hfh-popup__request-action {
    padding-bottom: 0 !important;
  }

  body #hfs-suite-katalog-popup .hfh-popup__close {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 20 !important;
  }
}
