.elementor-kit-5{--e-global-color-primary:#0096E4;--e-global-color-secondary:#00408C;--e-global-color-text:#7A7A7A;--e-global-color-accent:#EDE500;--e-global-color-b1e31ca:#FFFFFF;--e-global-typography-primary-font-family:"Fira Sans";--e-global-typography-primary-font-size:clamp(2.7rem, 4.8vw, 4.6rem);--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Fira Sans";--e-global-typography-secondary-font-size:clamp(1.3rem, 1.45vw, 1.6rem);--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-line-height:1.12rem;--e-global-typography-text-font-family:"Fira Sans";--e-global-typography-text-font-weight:300;--e-global-typography-accent-font-family:"Fira Sans";--e-global-typography-accent-font-weight:500;--e-global-typography-8f9638d-font-family:"Fira Sans";--e-global-typography-8f9638d-font-size:11rem;--e-global-typography-8f9638d-font-weight:600;--e-global-typography-f231743-font-family:"Fira Sans";--e-global-typography-f231743-font-weight:300;--e-global-typography-649812c-font-family:"Fira Sans";--e-global-typography-649812c-font-weight:500;--e-global-typography-649812c-text-transform:capitalize;--e-global-typography-1e71512-font-size:0.8rem;--e-global-typography-1e71512-font-weight:300;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1300px;}.e-con{--container-max-width:1300px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================================
   PROTECTYOURIT – GLOBALES DESIGNSYSTEM
   Vollständiger konsolidierter Austauschblock

   Ort:
   Elementor
   → Website-Einstellungen
   → Individuelles CSS
   ========================================================= */


/* =========================================================
   01 | DESIGN-TOKENS
   ========================================================= */

:root {

  /* Markenfarben */
  --pyi-color-primary: #00408c;
  --pyi-color-secondary: #0096e4;
  --pyi-color-highlight: #ede500;

  /* Textfarben */
  --pyi-color-heading: #071f46;
  --pyi-color-text: #455368;
  --pyi-color-muted: #68778a;

  /* Flächen */
  --pyi-color-white: #ffffff;
  --pyi-color-surface: #f4f8fc;
  --pyi-color-surface-blue: #edf6ff;

  /* Schrift */
  --pyi-font-primary: "Fira Sans", sans-serif;

  /* Inhaltsbreite */
  --pyi-content-width: 1200px;

  /* Radien */
  --pyi-radius-small: 0.35rem;
  --pyi-radius-card: 0.9rem;
  --pyi-radius-pill: 999px;

  /* Abschnittsabstände */
  --pyi-section-space:
    clamp(5rem, 7vw, 7rem);

  --pyi-section-space-tablet:
    5rem;

  --pyi-section-space-mobile:
    4rem;
}


/* =========================================================
   02 | KOMPATIBILITÄTSVARIABLEN
   Für ältere lokale CSS-Blöcke
   ========================================================= */

:root {

  --pyi-font:
    var(--pyi-font-primary, "Fira Sans", sans-serif);

  --pyi-blue-dark:
    var(--pyi-color-primary, #00408c);

  --pyi-blue:
    var(--pyi-color-secondary, #0096e4);

  --pyi-yellow:
    var(--pyi-color-highlight, #ede500);

  --pyi-text:
    var(--pyi-color-heading, #071f46);

  --pyi-text-soft:
    var(--pyi-color-text, #455368);

  --pyi-muted:
    var(--pyi-color-muted, #68778a);

  --pyi-white:
    var(--pyi-color-white, #ffffff);

  --pyi-surface:
    var(--pyi-color-surface, #f4f8fc);

  --pyi-surface-blue:
    var(--pyi-color-surface-blue, #edf6ff);

  --pyi-radius:
    var(--pyi-radius-card, 0.9rem);

  --pyi-pill:
    var(--pyi-radius-pill, 999px);
}


/* =========================================================
   03 | GLOBALE SEITENÜBERSCHRIFT / H1

   Klasse:
   pyi-page-title

   HTML-Tag:
   H1
   ========================================================= */

.elementor-widget-heading.pyi-page-title
h1.elementor-heading-title {

  width: 100%;
  max-width: 100%;

  margin: 0 !important;
  padding: 0 !important;

  color:
    var(--pyi-color-heading, #071f46) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(2.7rem, 4.8vw, 4.6rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.03 !important;

  letter-spacing:
    -0.045em !important;

  -webkit-hyphens:
    manual !important;

  hyphens:
    manual !important;

  word-break:
    normal !important;

  overflow-wrap:
    normal !important;
}


@media (max-width: 1024px) {

  .elementor-widget-heading.pyi-page-title
  h1.elementor-heading-title {

    font-size:
      clamp(2.5rem, 6vw, 3.8rem) !important;

    line-height:
      1.04 !important;
  }
}


@media (max-width: 767px) {

  .elementor-widget-heading.pyi-page-title
  h1.elementor-heading-title {

    font-size:
      clamp(2.1rem, 9vw, 2.85rem) !important;

    line-height:
      1.07 !important;

    letter-spacing:
      -0.035em !important;
  }
}


/* =========================================================
   04 | H1-VARIANTE – STARTSEITE

   Zusatzklasse:
   pyi-page-title--home
   ========================================================= */

.elementor-widget-heading.pyi-page-title--home
h1.elementor-heading-title {

  font-size:
    clamp(2.65rem, 3.35vw, 3.75rem) !important;
}


@media (max-width: 1024px) {

  .elementor-widget-heading.pyi-page-title--home
  h1.elementor-heading-title {

    font-size:
      clamp(2.55rem, 6vw, 3.7rem) !important;
  }
}


@media (max-width: 767px) {

  .elementor-widget-heading.pyi-page-title--home
  h1.elementor-heading-title {

    font-size:
      clamp(2.2rem, 9.4vw, 2.85rem) !important;

    line-height:
      1.04 !important;

    letter-spacing:
      -0.045em !important;
  }
}


/* =========================================================
   05 | GLOBALE ABSCHNITTSÜBERSCHRIFT / H2

   Klasse:
   pyi-section-title

   HTML-Tag:
   H2
   ========================================================= */

.elementor-widget-heading.pyi-section-title
h2.elementor-heading-title {

  width: 100%;
  max-width: 100%;

  margin: 0 !important;
  padding: 0 !important;

  color:
    var(--pyi-color-heading, #071f46) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(2.15rem, 3.15vw, 3.25rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.08 !important;

  letter-spacing:
    -0.04em !important;

  -webkit-hyphens:
    manual !important;

  hyphens:
    manual !important;

  word-break:
    normal !important;

  overflow-wrap:
    normal !important;
}


@media (max-width: 1024px) {

  .elementor-widget-heading.pyi-section-title
  h2.elementor-heading-title {

    font-size:
      clamp(2rem, 5vw, 2.85rem) !important;

    line-height:
      1.09 !important;
  }
}


@media (max-width: 767px) {

  .elementor-widget-heading.pyi-section-title
  h2.elementor-heading-title {

    font-size:
      clamp(1.9rem, 8vw, 2.4rem) !important;

    line-height:
      1.1 !important;

    letter-spacing:
      -0.035em !important;
  }
}


/* =========================================================
   06 | H2-VARIANTE – KOMPAKT

   Zusatzklasse:
   pyi-section-title--compact
   ========================================================= */

.elementor-widget-heading.pyi-section-title--compact
h2.elementor-heading-title {

  font-size:
    clamp(1.9rem, 2.55vw, 2.7rem) !important;

  line-height:
    1.08 !important;
}


@media (max-width: 1024px) {

  .elementor-widget-heading.pyi-section-title--compact
  h2.elementor-heading-title {

    font-size:
      clamp(1.85rem, 4.4vw, 2.5rem) !important;
  }
}


@media (max-width: 767px) {

  .elementor-widget-heading.pyi-section-title--compact
  h2.elementor-heading-title {

    font-size:
      clamp(1.75rem, 7.4vw, 2.15rem) !important;

    line-height:
      1.1 !important;
  }
}


/* =========================================================
   07 | GLOBALE EYEBROW

   Basisklasse:
   pyi-section-eyebrow

   Farbvarianten:
   pyi-section-eyebrow--dark
   pyi-section-eyebrow--light

   Linienvariante:
   pyi-section-eyebrow--line

   Standard:
   - Fira Sans
   - 0.76rem
   - 700
   - Versalien
   - definierte Laufweite
   - gelbe Linie
   ========================================================= */


/* ---------------------------------------------------------
   07.1 | Basis
   --------------------------------------------------------- */

.pyi-section-eyebrow {

  position: relative;

  box-sizing: border-box;

  width: auto !important;
  max-width: 100% !important;

  margin:
    0
    0
    1rem !important;

  padding: 0 !important;
}


.pyi-section-eyebrow,
.pyi-section-eyebrow
.elementor-heading-title,
.pyi-section-eyebrow
.elementor-widget-container,
.pyi-section-eyebrow
.elementor-widget-container p,
.pyi-section-eyebrow p {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.76rem !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.075em !important;

  text-transform:
    uppercase !important;

  color:
    var(--pyi-color-secondary, #0096e4) !important;
}


.pyi-section-eyebrow
.elementor-heading-title,
.pyi-section-eyebrow
.elementor-widget-container,
.pyi-section-eyebrow
.elementor-widget-container p,
.pyi-section-eyebrow p {

  margin: 0 !important;
  padding: 0 !important;
}


/* ---------------------------------------------------------
   07.2 | Dunkle Eyebrow auf hellem Hintergrund
   --------------------------------------------------------- */

.pyi-section-eyebrow--dark,
.pyi-section-eyebrow--dark
.elementor-heading-title,
.pyi-section-eyebrow--dark
.elementor-widget-container,
.pyi-section-eyebrow--dark
.elementor-widget-container p,
.pyi-section-eyebrow--dark p,
.pyi-section-eyebrow--dark * {

  color:
    var(--pyi-color-primary, #00408c) !important;
}


/* ---------------------------------------------------------
   07.3 | Helle Eyebrow auf dunklem Hintergrund
   --------------------------------------------------------- */

.pyi-section-eyebrow--light,
.pyi-section-eyebrow--light
.elementor-heading-title,
.pyi-section-eyebrow--light
.elementor-widget-container,
.pyi-section-eyebrow--light
.elementor-widget-container p,
.pyi-section-eyebrow--light p,
.pyi-section-eyebrow--light * {

  color:
    var(--pyi-color-white, #ffffff) !important;
}


/* ---------------------------------------------------------
   07.4 | Elementor-Absicherung
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-section-eyebrow,
html body .elementor
.elementor-element.pyi-section-eyebrow * {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.76rem !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.075em !important;

  text-transform:
    uppercase !important;
}


html body .elementor
.elementor-element.pyi-section-eyebrow--dark,
html body .elementor
.elementor-element.pyi-section-eyebrow--dark * {

  color:
    var(--pyi-color-primary, #00408c) !important;
}


html body .elementor
.elementor-element.pyi-section-eyebrow--light,
html body .elementor
.elementor-element.pyi-section-eyebrow--light * {

  color:
    var(--pyi-color-white, #ffffff) !important;
}


/* ---------------------------------------------------------
   07.5 | Gelbe Linie
   --------------------------------------------------------- */

.pyi-section-eyebrow--line {

  padding-bottom:
    0.75rem !important;
}


.pyi-section-eyebrow--line::after {

  content: "";

  position: absolute;

  left: 0;
  bottom: 0;

  width:
    2.4rem;

  height:
    3px;

  border-radius:
    var(--pyi-radius-pill, 999px);

  background:
    var(--pyi-color-highlight, #ede500) !important;
}


/* Die Linie bleibt auch auf dunklem Hintergrund gelb */

.pyi-section-eyebrow--light.pyi-section-eyebrow--line::after {

  background:
    var(--pyi-color-highlight, #ede500) !important;
}


/* ---------------------------------------------------------
   07.6 | Mobil
   --------------------------------------------------------- */

@media (max-width: 767px) {

  .pyi-section-eyebrow {

    margin-bottom:
      0.85rem !important;
  }


  .pyi-section-eyebrow,
  .pyi-section-eyebrow
  .elementor-heading-title,
  .pyi-section-eyebrow
  .elementor-widget-container,
  .pyi-section-eyebrow
  .elementor-widget-container p,
  .pyi-section-eyebrow p {

    font-size:
      0.72rem !important;

    line-height:
      1.25 !important;

    letter-spacing:
      0.07em !important;
  }
}


/* =========================================================
   08 | ZENTRIERTES ABSCHNITTSINTRO

   Klasse:
   pyi-intro-centered
   ========================================================= */

html body .elementor
.e-con.pyi-intro-centered,
.e-con.pyi-intro-centered,
.pyi-intro-centered {

  --align-items:
    center !important;

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    center !important;

  box-sizing:
    border-box;

  width:
    100% !important;

  max-width:
    68rem !important;

  margin-inline:
    auto !important;

  text-align:
    center !important;
}


html body .elementor
.pyi-intro-centered
> .elementor-element,
html body .elementor
.pyi-intro-centered
.pyi-section-title,
html body .elementor
.pyi-intro-centered
.pyi-competence__headline,
html body .elementor
.pyi-intro-centered
.pyi-competence__lead,
html body .elementor
.pyi-intro-centered
.elementor-widget-text-editor {

  margin-right:
    auto !important;

  margin-left:
    auto !important;

  text-align:
    center !important;
}


html body .elementor
.pyi-intro-centered
.elementor-heading-title,
html body .elementor
.pyi-intro-centered
.elementor-widget-text-editor,
html body .elementor
.pyi-intro-centered
.elementor-widget-text-editor p {

  text-align:
    center !important;
}


html body .elementor
.pyi-intro-centered
.pyi-section-eyebrow--line::after {
  left: 50% !important;
  transform: translateX(-50%) !important;
}


/* =========================================================
   09 | ZURÜCK-NACH-OBEN-BUTTON

   HTML-Widget:
   pyi-back-to-top
   ========================================================= */

.pyi-back-to-top {

  position:
    fixed;

  right:
    clamp(1rem, 2vw, 2rem);

  bottom:
    max(1rem, env(safe-area-inset-bottom));

  z-index:
    900;

  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  width:
    3.25rem;

  height:
    3.25rem;

  padding:
    0;

  color:
    var(--pyi-color-white, #ffffff);

  background:
    var(--pyi-color-primary, #00408c);

  border:
    0;

  border-radius:
    50%;

  box-shadow:
    0 0.65rem 1.6rem
    rgba(7, 31, 70, 0.22);

  opacity:
    0;

  visibility:
    hidden;

  pointer-events:
    none;

  transform:
    translateY(0.75rem);

  cursor:
    pointer;

  transition:
    opacity 180ms ease,
    visibility 180ms ease,
    transform 180ms ease,
    background-color 180ms ease;
}


.pyi-back-to-top.is-visible {

  opacity:
    1;

  visibility:
    visible;

  pointer-events:
    auto;

  transform:
    translateY(0);
}


.pyi-back-to-top:hover {

  background:
    var(--pyi-color-secondary, #0096e4);
}


.pyi-back-to-top:focus-visible {

  outline:
    0.18rem solid
    var(--pyi-color-highlight, #ede500);

  outline-offset:
    0.2rem;
}


.pyi-back-to-top svg {

  width:
    1.35rem;

  height:
    1.35rem;
}


@media (max-width: 767px) {

  .pyi-back-to-top {

    right:
      1rem;

    bottom:
      max(1rem, env(safe-area-inset-bottom));

    width:
      2.85rem;

    height:
      2.85rem;
  }
}


@media (prefers-reduced-motion: reduce) {

  .pyi-back-to-top {

    transition:
      none;
  }
}


@media print {

  .pyi-back-to-top {

    display:
      none !important;
  }
}


/* =========================================================
   10 | BROWSERFESTER HEADER-RESET

   Der Header bleibt im normalen Seitenfluss.
   ========================================================= */

body:not(.elementor-editor-active) {

  padding-top:
    0 !important;
}


.elementor-location-header,
.elementor-location-header.pyi-smart-header,
.elementor-location-header
.pyi-header {

  position:
    relative !important;

  top:
    auto !important;

  right:
    auto !important;

  bottom:
    auto !important;

  left:
    auto !important;

  transform:
    none !important;

  pointer-events:
    auto !important;
}


.elementor-location-header.is-hidden,
.elementor-location-header.pyi-smart-header.is-hidden,
.elementor-location-header
.pyi-header.is-hidden {

  transform:
    none !important;

  pointer-events:
    auto !important;
}


/* =========================================================
   11 | BUTTONINHALT ZENTRIEREN

   Klasse:
   pyi-button-centered
   ========================================================= */

.pyi-button-centered
.elementor-button {

  display:
    inline-flex !important;

  align-items:
    center !important;

  justify-content:
    center !important;

  text-align:
    center !important;
}


.pyi-button-centered
.elementor-button-content-wrapper {

  display:
    inline-flex !important;

  align-items:
    center !important;

  justify-content:
    center !important;

  width:
    100%;

  line-height:
    1 !important;
}


.pyi-button-centered
.elementor-button-text {

  display:
    block;

  margin:
    0 !important;

  padding:
    0 !important;

  line-height:
    1.2 !important;
}


/* =========================================================
   12 | KOMPETENZBEREICH
   ========================================================= */

.pyi-competence {

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    100%;

  min-width:
    0;

  margin:
    0;

  padding:
    0;

  overflow-x:
    hidden;

  overflow-x:
    clip;

  background:
    var(--pyi-color-white, #ffffff);
}


.pyi-competence-inner {

  box-sizing:
    border-box;

  width:
    min(
      calc(100% - 4rem),
      var(--pyi-content-width, 1200px)
    );

  max-width:
    var(--pyi-content-width, 1200px);

  min-width:
    0;

  margin-inline:
    auto;

  padding:
    var(--pyi-section-space, clamp(5rem, 7vw, 7rem))
    0;
}


.pyi-competence__content {

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    100%;

  min-width:
    0;

  margin:
    0;

  padding:
    0;
}


.pyi-competence__head {

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    flex-start !important;

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    54rem;

  min-width:
    0;

  margin:
    0
    0
    clamp(2.75rem, 4.5vw, 4.25rem);

  padding:
    0;
}


.pyi-competence__headline {

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    100%;

  min-width:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.pyi-competence__lead {

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    50rem;

  min-width:
    0;

  margin:
    clamp(1.25rem, 2vw, 1.75rem)
    0
    0 !important;

  padding:
    0 !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1rem, 1.1vw, 1.12rem) !important;

  font-weight:
    400 !important;

  line-height:
    1.65 !important;

  overflow-wrap:
    break-word !important;
}


.pyi-competence__lead p {

  margin:
    0 !important;
}


.pyi-competence__grid {

  display:
    grid !important;

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

  align-items:
    stretch !important;

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    100%;

  min-width:
    0;

  gap:
    clamp(1.25rem, 2vw, 1.75rem) !important;

  margin:
    0;

  padding:
    0;
}


.pyi-competence-card {

  position:
    relative;

  display:
    flex !important;

  flex-direction:
    column !important;

  box-sizing:
    border-box;

  width:
    100% !important;

  max-width:
    100% !important;

  min-width:
    0 !important;

  min-height:
    22rem;

  margin:
    0 !important;

  padding:
    clamp(2rem, 3vw, 2.75rem) !important;

  overflow:
    hidden;

  border:
    1px solid
    rgba(0, 64, 140, 0.12);

  border-radius:
    var(--pyi-radius-card, 0.9rem);

  background:
    var(--pyi-color-surface, #f4f8fc);

  box-shadow:
    0 0.75rem 2rem
    rgba(0, 64, 140, 0.035);
}


.pyi-competence-card
> .elementor-element,
.pyi-competence-card
> .e-con-inner {

  width:
    100% !important;

  max-width:
    100% !important;

  min-width:
    0 !important;
}


.pyi-competence-card--privacy {

  background:
    linear-gradient(
      145deg,
      #f3f9ff 0%,
      #ffffff 100%
    );
}


.pyi-competence-card--security {

  background:
    linear-gradient(
      145deg,
      #f5f9fd 0%,
      #ffffff 100%
    );
}


.pyi-competence-card--standards {

  background:
    linear-gradient(
      145deg,
      #edf6ff 0%,
      #ffffff 100%
    );
}


.pyi-competence-card--revision {

  border-color:
    rgba(0, 105, 190, 0.22) !important;

  background:
    linear-gradient(
      145deg,
      #dceeff 0%,
      #ffffff 100%
    ) !important;
}


@media (max-width: 1024px) {

  .pyi-competence-inner {

    width:
      min(
        calc(100% - 3rem),
        var(--pyi-content-width, 1200px)
      );

    padding:
      var(--pyi-section-space-tablet, 5rem)
      0;
  }


  .pyi-competence__grid {

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


  .pyi-competence-card {

    min-height:
      0;
  }
}


@media (max-width: 767px) {

  .pyi-competence-inner {

    width:
      100% !important;

    max-width:
      100% !important;

    margin:
      0
      auto !important;

    padding:
      var(--pyi-section-space-mobile, 4rem)
      1.25rem !important;
  }


  .pyi-competence__head {

    margin-bottom:
      2.5rem !important;
  }


  .pyi-competence__lead {

    max-width:
      100% !important;

    margin:
      1.25rem
      0
      0 !important;

    font-size:
      1rem !important;

    line-height:
      1.6 !important;
  }


  .pyi-competence__grid {

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

    gap:
      1.25rem !important;
  }


  .pyi-competence-card {

    min-height:
      0 !important;

    padding:
      1.6rem !important;
  }
}


/* =========================================================
   13 | PARTNERBEREICH
   ========================================================= */

.pyi-partner {

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    100%;

  min-width:
    0;

  margin:
    0;

  padding:
    0;

  overflow-x:
    hidden;

  overflow-x:
    clip;

  background:
    linear-gradient(
      180deg,
      #f4f9fd 0%,
      #edf6ff 100%
    );
}


.pyi-partner__inner {

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    stretch !important;

  box-sizing:
    border-box;

  width:
    min(
      calc(100% - 4rem),
      var(--pyi-content-width, 1200px)
    );

  max-width:
    var(--pyi-content-width, 1200px);

  min-width:
    0;

  margin-inline:
    auto;

  padding:
    var(--pyi-section-space, clamp(5rem, 7vw, 7rem))
    0;
}


.pyi-partner__intro {

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    center !important;

  box-sizing:
    border-box;

  width:
    100%;

  max-width:
    58rem;

  margin:
    0
    auto
    clamp(3rem, 5vw, 4.5rem);

  text-align:
    center;
}


.pyi-partner__label {

  margin-right:
    auto !important;

  margin-left:
    auto !important;
}


.pyi-partner__label::after {

  left:
    50% !important;

  transform:
    translateX(-50%);
}


.pyi-partner__title {

  width:
    100%;

  max-width:
    56rem;

  margin:
    0
    auto !important;

  text-align:
    center;
}


.pyi-partner__intro-text {

  width:
    100%;

  max-width:
    48rem;

  margin:
    clamp(1.25rem, 2vw, 1.75rem)
    auto
    0 !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1rem, 1.1vw, 1.12rem) !important;

  line-height:
    1.65 !important;

  text-align:
    center;
}


.pyi-partner__intro-text p {

  margin:
    0 !important;
}


.pyi-partner__main {

  display:
    grid !important;

  grid-template-columns:
    minmax(20rem, 0.78fr)
    minmax(0, 1.22fr);

  align-items:
    stretch !important;

  gap:
    clamp(2rem, 4vw, 4rem);

  width:
    100% !important;

  min-width:
    0 !important;
}


.pyi-partner__visual {

  position:
    relative;

  width:
    100% !important;

  min-height:
    38rem;

  overflow:
    hidden;

  border-radius:
    var(--pyi-radius-card, 0.9rem);

  background:
    #eaf4fc;
}


.pyi-partner__visual
> .pyi-partner__image {

  position:
    absolute !important;

  inset:
    0 !important;

  width:
    100% !important;

  height:
    100% !important;
}


.pyi-partner__visual
> .pyi-partner__image
> .elementor-widget-container,
.pyi-partner__visual
> .pyi-partner__image
picture {

  display:
    block !important;

  width:
    100% !important;

  height:
    100% !important;
}


.pyi-partner__visual
> .pyi-partner__image img {

  display:
    block !important;

  width:
    100% !important;

  height:
    100% !important;

  object-fit:
    cover !important;

  object-position:
    center center !important;
}


.pyi-partner__body {

  display:
    flex !important;

  flex-direction:
    column !important;

  gap:
    clamp(1.5rem, 2.5vw, 2rem);

  min-width:
    0 !important;
}


.pyi-partner-benefits {

  display:
    grid !important;

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

  gap:
    clamp(1.25rem, 2vw, 1.75rem) !important;
}


.pyi-partner__benefit {

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    flex-start !important;

  min-height:
    11rem;

  padding:
    clamp(1.35rem, 2vw, 1.75rem) !important;

  border:
    1px solid
    rgba(0, 64, 140, 0.1);

  border-radius:
    var(--pyi-radius-card, 0.9rem);

  background:
    rgba(255, 255, 255, 0.72);
}


.pyi-partner-benefit__icon {

  display:
    flex !important;

  align-items:
    center !important;

  justify-content:
    center !important;

  width:
    3.15rem !important;

  height:
    3.15rem !important;

  margin:
    0
    0
    0.85rem !important;

  border:
    1px solid
    rgba(0, 150, 228, 0.18);

  border-radius:
    50%;

  background:
    rgba(255, 255, 255, 0.8);
}


.pyi-partner-benefit__icon
.elementor-icon {

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    1.25rem !important;
}


.pyi-partner-benefit__title,
.pyi-partner-benefit__title
.elementor-heading-title {

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1.05rem, 1.2vw, 1.25rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.22 !important;

  letter-spacing:
    -0.02em !important;
}


.pyi-partner-benefit__text {

  margin:
    0.55rem
    0
    0 !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.94rem !important;

  line-height:
    1.5 !important;
}


.pyi-partner-benefit__text p {

  margin:
    0 !important;
}


/* ---------------------------------------------------------
   13.1 | Kontaktkarte
   --------------------------------------------------------- */

.pyi-partner__contact {

  display:
    grid !important;

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

  align-items:
    center !important;

  column-gap:
    clamp(1.5rem, 3vw, 2.75rem);

  width:
    100% !important;

  padding:
    clamp(1.75rem, 3vw, 2.5rem) !important;

  border-radius:
    var(--pyi-radius-card, 0.9rem);

  background:
    linear-gradient(
      145deg,
      #00408c 0%,
      #0076c4 72%,
      #0096e4 100%
    );

  box-shadow:
    0 1rem 2.75rem
    rgba(0, 64, 140, 0.16);
}


.pyi-partner__contact-title {

  grid-column:
    1;
}


.pyi-partner__contact-title,
.pyi-partner__contact-title
.elementor-heading-title {

  margin:
    0 !important;

  color:
    #ffffff !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1.45rem, 1.9vw, 1.85rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.16 !important;

  letter-spacing:
    -0.03em !important;
}


.pyi-partner__contact-text {

  grid-column:
    1;

  margin:
    1rem
    0
    0 !important;

  color:
    rgba(255, 255, 255, 0.86) !important;

  font-size:
    0.98rem !important;

  line-height:
    1.55 !important;
}


.pyi-partner__contact-text p {

  margin:
    0 !important;
}


.pyi-partner__contact-list {

  grid-column:
    1;

  margin:
    1.2rem
    0
    0 !important;
}


.pyi-partner__contact-list
.elementor-icon-list-items {

  display:
    flex !important;

  flex-direction:
    column !important;

  gap:
    0.65rem !important;
}


.pyi-partner__contact-list
.elementor-icon-list-item {

  color:
    #ffffff !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.94rem !important;

  font-weight:
    600 !important;
}


.pyi-partner__button {

  grid-column:
    2;

  grid-row:
    1 / 4;

  align-self:
    center;

  width:
    auto !important;
}


.pyi-partner__button
.elementor-button {

  min-width:
    10rem;

  min-height:
    3.2rem;

  padding:
    0.85rem
    1.35rem !important;

  border:
    1px solid
    var(--pyi-color-highlight, #ede500) !important;

  border-radius:
    999px !important;

  background:
    var(--pyi-color-highlight, #ede500) !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-weight:
    700 !important;
}


.pyi-partner__button
.elementor-button:hover,
.pyi-partner__button
.elementor-button:focus {

  background:
    #ffffff !important;

  border-color:
    #ffffff !important;
}


@media (max-width: 1024px) {

  .pyi-partner__inner {

    width:
      min(
        calc(100% - 3rem),
        var(--pyi-content-width, 1200px)
      );

    padding:
      var(--pyi-section-space-tablet, 5rem)
      0;
  }


  .pyi-partner__main {

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


  .pyi-partner__visual {

    min-height:
      26rem;
  }
}


@media (max-width: 767px) {

  .pyi-partner__inner {

    width:
      100% !important;

    padding:
      var(--pyi-section-space-mobile, 4rem)
      1.25rem !important;
  }


  .pyi-partner__intro {

    align-items:
      flex-start !important;

    text-align:
      left;
  }


  .pyi-partner__label {

    margin-left:
      0 !important;
  }


  .pyi-partner__label::after {

    left:
      0 !important;

    transform:
      none !important;
  }


  .pyi-partner__title,
  .pyi-partner__intro-text {

    text-align:
      left;
  }


  .pyi-partner-benefits {

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

    padding-inline:
      0.85rem !important;
  }


  .pyi-partner__visual {

    min-height:
      18rem;
  }


  .pyi-partner__contact {

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

    padding:
      1.75rem !important;
  }


  .pyi-partner__contact-title,
  .pyi-partner__contact-text,
  .pyi-partner__contact-list,
  .pyi-partner__button {

    grid-column:
      1;

    grid-row:
      auto;
  }


  .pyi-partner__button {

    width:
      100% !important;

    margin-top:
      1.5rem !important;
  }


  .pyi-partner__button
  .elementor-button {

    width:
      100% !important;
  }
}


/* =========================================================
   14 | REFERENZEN / KUNDENSTIMMEN
   ========================================================= */

.pyi-references {

  position:
    relative;

  width:
    100%;

  padding-block:
    clamp(4.5rem, 6vw, 6rem) !important;

  overflow:
    hidden;

  background:
    #ffffff;
}


.pyi-references
.pyi-references__inner {

  width:
    calc(100% - 8vw) !important;

  max-width:
    1200px !important;

  margin:
    0 auto !important;

  display:
    flex !important;

  flex-direction:
    column !important;

  gap:
    clamp(2.75rem, 4vw, 4rem);
}


.pyi-references
.pyi-references__intro {

  width:
    100% !important;

  max-width:
    47rem !important;

  margin:
    0 auto !important;

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    center !important;

  text-align:
    center;
}


/* Referenzen-Label bleibt kompatibel mit Altstruktur */

.pyi-references
.pyi-references__label {

  position:
    relative;

  width:
    auto !important;

  margin:
    0
    0
    1rem !important;

  padding:
    0
    0
    0.75rem !important;
}


.pyi-references
.pyi-references__label::after {

  content:
    "";

  position:
    absolute;

  left:
    50%;

  bottom:
    0;

  width:
    2.4rem;

  height:
    3px;

  border-radius:
    999px;

  background:
    var(--pyi-color-highlight, #ede500);

  transform:
    translateX(-50%);
}


.pyi-references
.pyi-references__label,
.pyi-references
.pyi-references__label * {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.76rem !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.075em !important;

  text-transform:
    uppercase !important;

  color:
    var(--pyi-color-primary, #00408c) !important;
}


.pyi-references
.pyi-references__title {

  margin:
    0
    0
    0.9rem !important;
}


.pyi-references
.pyi-references__title
.elementor-heading-title {

  margin:
    0 !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(2rem, 2.8vw, 2.85rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.08 !important;

  letter-spacing:
    -0.03em !important;

  color:
    var(--pyi-color-heading, #071f46) !important;
}


.pyi-references
.pyi-references__intro-text {

  max-width:
    44rem !important;
}


.pyi-references
.pyi-references__intro-text,
.pyi-references
.pyi-references__intro-text * {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(0.96rem, 1.05vw, 1.06rem) !important;

  line-height:
    1.6 !important;

  color:
    var(--pyi-color-text, #455368) !important;
}


.pyi-references
.pyi-references__grid {

  position:
    relative;

  display:
    grid !important;

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

  align-items:
    stretch !important;

  gap:
    clamp(1rem, 1.6vw, 1.5rem);
}


.pyi-references
.pyi-reference {

  position:
    relative;

  display:
    flex !important;

  flex-direction:
    column !important;

  align-items:
    flex-start !important;

  padding:
    clamp(1.7rem, 2.3vw, 2.3rem)
    clamp(1.3rem, 1.8vw, 1.8rem)
    clamp(1.5rem, 2vw, 2rem) !important;

  border-bottom:
    2px solid
    rgba(0, 150, 228, 0.16);
}


.pyi-references
.pyi-reference::before {

  content:
    "“";

  display:
    block;

  height:
    2.2rem;

  margin:
    0
    0
    0.7rem;

  font-family:
    Georgia,
    serif;

  font-size:
    3.4rem;

  font-weight:
    700;

  line-height:
    1;

  color:
    rgba(0, 150, 228, 0.24);
}


.pyi-references
.pyi-reference:not(:last-child)::after {

  content:
    "";

  position:
    absolute;

  top:
    2rem;

  right:
    calc(-0.5 * clamp(1rem, 1.6vw, 1.5rem));

  width:
    1px;

  height:
    calc(100% - 4rem);

  background:
    rgba(0, 64, 140, 0.09);
}


.pyi-references
.pyi-reference__quote {

  margin:
    0
    0
    auto !important;

  padding-bottom:
    1.6rem !important;
}


.pyi-references
.pyi-reference__quote,
.pyi-references
.pyi-reference__quote * {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1rem, 1.12vw, 1.12rem) !important;

  font-weight:
    400 !important;

  line-height:
    1.55 !important;

  color:
    #253750 !important;

  hyphens:
    none !important;

  -webkit-hyphens:
    none !important;

  word-break:
    normal !important;

  overflow-wrap:
    normal !important;
}


.pyi-references
.pyi-reference__company,
.pyi-references
.pyi-reference__company *,
.pyi-references
.pyi-reference__company
.elementor-heading-title {

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.95rem !important;

  font-weight:
    700 !important;

  line-height:
    1.3 !important;
}


.pyi-references
.pyi-reference__context,
.pyi-references
.pyi-reference__context * {

  color:
    #6a7483 !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.78rem !important;

  font-weight:
    500 !important;

  line-height:
    1.4 !important;
}


@media (max-width: 767px) {

  .pyi-references {

    padding-block:
      4rem !important;
  }


  .pyi-references
  .pyi-references__inner {

    width:
      86% !important;

    gap:
      2.5rem;
  }


  .pyi-references
  .pyi-references__intro {

    align-items:
      flex-start !important;

    text-align:
      left;
  }


  .pyi-references
  .pyi-references__label::after {

    left:
      0;

    transform:
      none;
  }


  .pyi-references
  .pyi-references__grid {

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

    gap:
      0;
  }


  .pyi-references
  .pyi-reference {

    padding:
      1.8rem
      0
      1.7rem !important;
  }


  .pyi-references
  .pyi-reference:not(:last-child)::after {

    display:
      none;
  }
}


/* =========================================================
   15 | LEISTUNGEN – SPRUNGNAVIGATION
   ========================================================= */

.pyi-services-jump {

  display:
    flex !important;

  align-items:
    center !important;

  gap:
    0.75rem !important;

  box-sizing:
    border-box !important;

  width:
    min(100%, 34rem) !important;

  margin:
    clamp(1.25rem, 2.5vw, 2rem)
    0
    0 !important;

  padding:
    0.65rem
    0.75rem
    0.65rem
    1rem !important;

  border:
    1px solid
    rgba(0, 64, 140, 0.14) !important;

  border-radius:
    999px !important;

  background:
    #ffffff !important;

  box-shadow:
    0 0.6rem 1.5rem
    rgba(0, 64, 140, 0.06) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;
}


.pyi-services-jump label {

  flex:
    0
    0
    auto !important;

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    0.82rem !important;

  font-weight:
    700 !important;

  white-space:
    nowrap !important;
}


.pyi-services-jump select {

  -webkit-appearance:
    none !important;

  appearance:
    none !important;

  flex:
    1
    1
    auto !important;

  min-width:
    0 !important;

  min-height:
    2.75rem !important;

  padding:
    0.65rem
    2.5rem
    0.65rem
    1rem !important;

  border:
    1px solid
    rgba(0, 105, 190, 0.2) !important;

  border-radius:
    999px !important;

  background-color:
    #f3f9ff !important;

  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      #00408c 50%
    ),
    linear-gradient(
      135deg,
      #00408c 50%,
      transparent 50%
    ) !important;

  background-position:
    calc(100% - 1.15rem) 50%,
    calc(100% - 0.85rem) 50% !important;

  background-size:
    0.35rem 0.35rem,
    0.35rem 0.35rem !important;

  background-repeat:
    no-repeat !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.9rem !important;

  font-weight:
    600 !important;

  cursor:
    pointer !important;
}


#schutz,
#infosicherheit,
#standards-compliance,
#it-revision {

  scroll-margin-top:
    calc(
      var(--pyi-header-height, 5rem)
      + 1.5rem
    );
}


@media (max-width: 767px) {

  .pyi-services-jump {

    flex-direction:
      column !important;

    align-items:
      stretch !important;

    gap:
      0.5rem !important;

    width:
      100% !important;

    padding:
      4% !important;

    border-radius:
      0.85rem !important;
  }


  .pyi-services-jump label {

    white-space:
      normal !important;
  }


  .pyi-services-jump select {

    width:
      100% !important;

    font-size:
      0.92rem !important;
  }
}


/* =========================================================
   16 | LEISTUNGEN – BEREICHSKARTEN
   ========================================================= */

.pyi-services-areas__label,
.pyi-services-areas__label p {

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.76rem !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.075em !important;

  text-transform:
    uppercase !important;
}


.pyi-service-area__header {

  flex-wrap:
    nowrap !important;

  align-items:
    center !important;
}


.pyi-service-area__title {

  flex:
    1
    1
    0 !important;

  min-width:
    0 !important;
}


.pyi-service-area--audit,
.pyi-service-area--revision {

  border-color:
    rgba(0, 105, 190, 0.24) !important;

  background:
    linear-gradient(
      150deg,
      #f7fbff 0%,
      #dceeff 100%
    ) !important;
}


.pyi-service-area--audit
.pyi-service-area__icon,
.pyi-service-area--revision
.pyi-service-area__icon {

  background:
    linear-gradient(
      145deg,
      #00408c 0%,
      #0069be 100%
    ) !important;

  box-shadow:
    0 0.6rem 1.2rem
    rgba(0, 64, 140, 0.18) !important;
}


.pyi-service-area
.pyi-service-area__link,
.pyi-service-area
.pyi-service-area__link a {

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.95rem !important;

  font-weight:
    700 !important;

  line-height:
    1.25 !important;

  text-transform:
    none !important;
}


.pyi-service-area
.pyi-service-area__link {

  margin-top:
    auto !important;

  padding-top:
    1rem !important;
}


/* =========================================================
   17 | LEISTUNGEN – DETAILLISTEN
   ========================================================= */

.pyi-service-points,
.pyi-service-points
> .e-con-inner {

  display:
    flex !important;

  flex-direction:
    column !important;

  gap:
    clamp(0.9rem, 1.2vw, 1.15rem) !important;
}


.pyi-service-points
> .elementor-element {

  margin-top:
    0 !important;

  margin-bottom:
    0 !important;
}


.pyi-service-detail__list,
.pyi-service-detail__list
> .elementor-widget-container {

  width:
    100% !important;

  max-width:
    100% !important;

  min-width:
    0 !important;
}


.pyi-service-detail__list
ul {

  display:
    grid !important;

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

  column-gap:
    clamp(1.5rem, 4vw, 4rem) !important;

  row-gap:
    0.85rem !important;

  margin:
    0 !important;

  padding:
    0 !important;
}


.pyi-service-detail__list
li {

  min-width:
    0 !important;

  margin:
    0 !important;

  line-height:
    1.45 !important;

  overflow-wrap:
    anywhere;
}


@media (max-width: 1024px) {

  .pyi-service-detail__list
  ul {

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

    row-gap:
      0.75rem !important;
  }
}


/* =========================================================
   18 | WISSEN – EINSTIEGSKARTEN
   ========================================================= */

html body .elementor
.elementor-element.pyi-knowledge-entry__grid {

  display:
    grid !important;

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

  gap:
    clamp(1.25rem, 2.5vw, 2rem) !important;

  width:
    100% !important;
}


html body .elementor
.elementor-element.pyi-knowledge-entry__grid
> .elementor-element.pyi-knowledge-entry-card {

  width:
    100% !important;

  max-width:
    none !important;

  min-width:
    0 !important;
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-knowledge-entry__grid {

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


/* =========================================================
   19 | GLOSSAR – KATEGORIENFILTER
   ========================================================= */

html body .elementor
.elementor-element.pyi-glossary-filter
.e-filter {

  display:
    flex !important;

  flex-wrap:
    wrap !important;

  align-items:
    center !important;

  justify-content:
    center !important;

  width:
    100% !important;

  max-width:
    54rem !important;

  gap:
    0.65rem
    0.55rem !important;

  margin:
    0
    auto !important;
}


html body .elementor
.elementor-element.pyi-glossary-filter
.e-filter-item {

  flex:
    0
    0
    auto !important;

  margin:
    0 !important;

  white-space:
    nowrap !important;
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-glossary-filter
  .e-filter {

    max-width:
      100% !important;

    gap:
      0.5rem !important;
  }
}


/* =========================================================
   20 | GLOSSAR – LOOP-GRID
   ========================================================= */

html body .elementor
.elementor-element.pyi-glossary__loop.elementor-widget-loop-grid
> .elementor-widget-container
> .elementor-loop-container.elementor-grid {

  grid-template-columns:
    repeat(3, minmax(0, 1fr)) !important;
}


@media (max-width: 1024px) {

  html body .elementor
  .elementor-element.pyi-glossary__loop.elementor-widget-loop-grid
  > .elementor-widget-container
  > .elementor-loop-container.elementor-grid {

    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-glossary__loop.elementor-widget-loop-grid
  > .elementor-widget-container
  > .elementor-loop-container.elementor-grid {

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


/* =========================================================
   21 | GLOSSAR – EINZELBEITRAG
   ========================================================= */

.elementor-element.pyi-glossary-single,
html body .elementor
.elementor-element.pyi-glossary-single {

  display:
    block !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width:
    0 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__layout {

  display:
    grid !important;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(15rem, 18rem) !important;

  align-items:
    start !important;

  width:
    100% !important;

  max-width:
    78rem !important;

  gap:
    clamp(2rem, 5vw, 4rem) !important;

  margin:
    0
    auto !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__content,
html body .elementor
.elementor-element.pyi-glossary-single__sidebar {

  min-width:
    0 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__back {

  margin:
    0
    0
    1.5rem !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__back
.elementor-heading-title,
html body .elementor
.elementor-element.pyi-glossary-single__back a {

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.88rem !important;

  font-weight:
    700 !important;

  text-decoration:
    none !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__article {

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    1rem !important;

  line-height:
    1.7 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__article p,
html body .elementor
.elementor-element.pyi-glossary-single__article li {

  font-size:
    1rem !important;

  line-height:
    1.7 !important;

  overflow-wrap:
    break-word !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__article h2 {

  margin:
    clamp(2.1rem, 4vw, 3rem)
    0
    0.75rem !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    clamp(1.35rem, 2vw, 1.6rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__article h3 {

  margin:
    1.75rem
    0
    0.65rem !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    1.18rem !important;

  font-weight:
    700 !important;
}


/* ---------------------------------------------------------
   21.1 | Callouts
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-glossary-single__callout,
html body .elementor
.elementor-element.pyi-glossary-single__related {

  width:
    100% !important;

  margin-top:
    clamp(1.5rem, 3vw, 2.25rem) !important;

  padding:
    clamp(1.25rem, 2.5vw, 1.75rem) !important;

  border:
    1px solid
    rgba(0, 64, 140, 0.1) !important;

  border-radius:
    var(--pyi-radius-card, 0.9rem) !important;

  background:
    var(--pyi-color-surface, #f4f8fc) !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__callout
.elementor-heading-title,
html body .elementor
.elementor-element.pyi-glossary-single__related
.elementor-heading-title {

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1.35rem, 2vw, 1.65rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.18 !important;
}


/* ---------------------------------------------------------
   21.2 | Sidebar / Inhaltsverzeichnis
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-glossary-single__sidebar-sticky {

  position:
    sticky !important;

  top:
    calc(
      var(--pyi-header-height, 5rem)
      + 1.5rem
    ) !important;

  align-self:
    flex-start !important;

  width:
    100% !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__toc {

  width:
    100% !important;

  padding:
    1.25rem !important;

  border:
    0 !important;

  border-radius:
    var(--pyi-radius-card, 0.9rem) !important;

  background:
    var(--pyi-color-surface, #f4f8fc) !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__toc
.elementor-toc__header-title {

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    1.05rem !important;

  font-weight:
    700 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__toc
.elementor-toc__list-item-text {

  display:
    block !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.9rem !important;

  line-height:
    1.4 !important;

  overflow-wrap:
    break-word !important;
}


@media (max-width: 1024px) {

  html body .elementor
  .elementor-element.pyi-glossary-single__layout {

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

    padding-inline:
      4% !important;
  }


  html body .elementor
  .elementor-element.pyi-glossary-single__sidebar {

    display:
      none !important;
  }
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-glossary-single__layout {

    padding-inline:
      5% !important;
  }
}


/* =========================================================
   22 | GLOSSAR – EINZELBEITRAG CTA
   ========================================================= */

html body .elementor
.elementor-element.pyi-glossary-single__cta {

  width:
    100% !important;

  max-width:
    none !important;

  margin:
    clamp(3rem, 6vw, 5rem)
    0 !important;

  padding:
    clamp(2.75rem, 5vw, 4.25rem)
    clamp(1.25rem, 4vw, 3rem) !important;

  background:
    linear-gradient(
      110deg,
      #00408c 0%,
      #0068b8 62%,
      #0096e4 100%
    ) !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-inner {

  display:
    grid !important;

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

  align-items:
    center !important;

  width:
    100% !important;

  max-width:
    78rem !important;

  gap:
    0.85rem
    clamp(2rem, 6vw, 5rem) !important;

  margin:
    0
    auto !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-eyebrow {

  grid-column:
    1 !important;

  margin:
    0 !important;

  color:
    var(--pyi-color-highlight, #ede500) !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-eyebrow,
html body .elementor
.elementor-element.pyi-glossary-single__cta-eyebrow
.elementor-heading-title {

  color:
    var(--pyi-color-highlight, #ede500) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.76rem !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.075em !important;

  text-transform:
    uppercase !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-title {

  grid-column:
    1 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-title
.elementor-heading-title {

  color:
    #ffffff !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    clamp(1.8rem, 3.2vw, 2.65rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.08 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-text {

  grid-column:
    1 !important;

  max-width:
    46rem !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-text,
html body .elementor
.elementor-element.pyi-glossary-single__cta-text p {

  color:
    rgba(255, 255, 255, 0.84) !important;

  font-size:
    0.96rem !important;

  line-height:
    1.55 !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-button {

  grid-column:
    2 !important;

  grid-row:
    1 / 4 !important;

  align-self:
    center !important;
}


html body .elementor
.elementor-element.pyi-glossary-single__cta-button
.elementor-button {

  min-height:
    3rem !important;

  padding:
    0.8rem
    1.45rem !important;

  border:
    0 !important;

  border-radius:
    999px !important;

  background:
    var(--pyi-color-highlight, #ede500) !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-weight:
    700 !important;
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-glossary-single__cta-inner {

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


  html body .elementor
  .elementor-element.pyi-glossary-single__cta-button {

    grid-column:
      1 !important;

    grid-row:
      auto !important;

    justify-self:
      start !important;

    margin-top:
      0.65rem !important;
  }
}


/* =========================================================
   23 | KONTAKTSEITE – DIREKTKONTAKT AUSRICHTUNG
   ========================================================= */

@media (min-width: 1025px) {

  .pyi-contact-direct-align {

    position:
      relative !important;

    align-self:
      flex-start !important;

    top:
      clamp(10rem, 11vw, 12rem) !important;

    margin-top:
      0 !important;
  }
}


@media (max-width: 1024px) {

  .pyi-contact-direct-align {

    top:
      auto !important;

    margin-top:
      0 !important;
  }
}


/* =========================================================
   24 | KONTAKTSEITE – VERTRAUENSPUNKTE
   ========================================================= */

.pyi-contact__trust-points ul {

  display:
    grid !important;

  gap:
    0.45rem !important;

  margin:
    0 !important;

  padding:
    0 !important;

  list-style:
    none !important;
}


.pyi-contact__trust-points li {

  position:
    relative;

  min-height:
    1.3rem;

  margin:
    0 !important;

  padding:
    0
    0
    0
    1.75rem !important;

  color:
    var(--pyi-color-heading, #071f46) !important;

  font-weight:
    600 !important;

  line-height:
    1.35 !important;
}


.pyi-contact__trust-points li::before {

  content:
    "✓";

  position:
    absolute;

  top:
    0.08rem;

  left:
    0;

  display:
    grid;

  place-items:
    center;

  width:
    1.2rem;

  height:
    1.2rem;

  border-radius:
    50%;

  background:
    var(--pyi-color-primary, #00408c);

  color:
    #ffffff;

  font-size:
    0.72rem;

  font-weight:
    700;
}


/* =========================================================
   25 | KONTAKTSEITE – ABLAUFKARTEN
   ========================================================= */

.pyi-contact-step {

  display:
    flex !important;

  flex-direction:
    column !important;
}


.pyi-contact-step__head {

  display:
    flex !important;

  flex-direction:
    row !important;

  align-items:
    center !important;

  gap:
    0.85rem !important;
}


.pyi-contact-step__number {

  flex:
    0
    0
    auto !important;
}


.pyi-contact-step__number
.elementor-heading-title,
.pyi-contact-step__number
.elementor-widget-container
> p {

  display:
    grid !important;

  place-items:
    center !important;

  width:
    2.35rem !important;

  height:
    2.35rem !important;

  margin:
    0 !important;

  border-radius:
    50% !important;

  background:
    var(--pyi-color-primary, #00408c) !important;

  color:
    #ffffff !important;

  font-size:
    1rem !important;

  font-weight:
    700 !important;
}


.pyi-contact-step__title {

  display:
    flex !important;

  align-items:
    center !important;

  min-height:
    2.35rem !important;

  margin:
    0 !important;
}


.pyi-contact-step__text {

  margin:
    0.55rem
    0
    0 !important;
}


/* =========================================================
   26 | KONTAKTSEITE – DIREKT-SPRECHEN-KARTE
   ========================================================= */

.pyi-contact-card__title,
.pyi-contact-card__intro,
.pyi-contact-card__details,
.pyi-contact-card__subtitle,
.pyi-contact-card__list {

  width:
    100% !important;

  padding:
    0 !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;
}


.pyi-contact-card__title,
.pyi-contact-card__title * {

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    clamp(1.15rem, 1.3vw, 1.35rem) !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;
}


.pyi-contact-card__title {

  margin-bottom:
    0.85rem !important;
}


.pyi-contact-card__intro,
.pyi-contact-card__intro * {

  margin:
    0 !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-size:
    0.95rem !important;

  line-height:
    1.55 !important;
}


.pyi-contact-card__intro {

  margin-bottom:
    1rem !important;
}


.pyi-contact-card__details,
.pyi-contact-card__details * {

  margin:
    0 !important;

  color:
    var(--pyi-color-primary, #00408c) !important;

  font-size:
    1rem !important;

  font-weight:
    700 !important;

  line-height:
    1.4 !important;

  overflow-wrap:
    anywhere !important;
}


.pyi-contact-card__details {

  margin-bottom:
    1.5rem !important;
}


.pyi-contact-card__subtitle,
.pyi-contact-card__subtitle * {

  margin:
    0 !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-size:
    0.86rem !important;

  font-weight:
    600 !important;
}


.pyi-contact-card__subtitle {

  margin-bottom:
    0.7rem !important;
}


.pyi-contact-card__list,
.pyi-contact-card__list * {

  color:
    var(--pyi-color-text, #455368) !important;

  font-size:
    0.9rem !important;

  line-height:
    1.5 !important;
}


/* =========================================================
   27 | KONTAKTFORMULAR
   ========================================================= */

html body .elementor
.elementor-element.pyi-contact-form {

  width:
    100% !important;
}


html body .elementor
.elementor-element.pyi-contact-form
.elementor-form {

  width:
    100%;

  padding:
    clamp(1.5rem, 3vw, 2.35rem) !important;

  border:
    1px solid
    rgba(0, 64, 140, 0.1);

  border-radius:
    var(--pyi-radius-card, 0.9rem);

  background:
    var(--pyi-color-surface, #f4f8fc);
}


html body .elementor
.elementor-element.pyi-contact-form
.elementor-form-fields-wrapper {

  row-gap:
    clamp(1rem, 1.4vw, 1.25rem) !important;
}


html body .elementor
.elementor-element.pyi-contact-form
.elementor-field-label {

  margin-bottom:
    0.42rem !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.9rem !important;

  font-weight:
    600 !important;
}


html body .elementor
.elementor-element.pyi-contact-form
.elementor-field-label
.elementor-mark-required,
html body .elementor
.elementor-element.pyi-contact-form
.elementor-field-label::after {

  color:
    #d62828 !important;
}


html body .elementor
.elementor-element.pyi-contact-form
input.elementor-field,
html body .elementor
.elementor-element.pyi-contact-form
select.elementor-field,
html body .elementor
.elementor-element.pyi-contact-form
textarea.elementor-field {

  width:
    100%;

  padding:
    0.78rem
    0.95rem !important;

  border:
    1px solid
    rgba(0, 64, 140, 0.2) !important;

  border-radius:
    var(--pyi-radius-small, 0.35rem) !important;

  background:
    #ffffff !important;

  color:
    var(--pyi-color-text, #455368) !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    1rem !important;

  line-height:
    1.4 !important;

  box-shadow:
    none !important;
}


html body .elementor
.elementor-element.pyi-contact-form
input.elementor-field,
html body .elementor
.elementor-element.pyi-contact-form
select.elementor-field {

  min-height:
    3.25rem;
}


html body .elementor
.elementor-element.pyi-contact-form
textarea.elementor-field {

  min-height:
    9rem;

  resize:
    vertical;
}


html body .elementor
.elementor-element.pyi-contact-form
input.elementor-field:focus,
html body .elementor
.elementor-element.pyi-contact-form
select.elementor-field:focus,
html body .elementor
.elementor-element.pyi-contact-form
textarea.elementor-field:focus {

  border-color:
    var(--pyi-color-secondary, #0096e4) !important;

  box-shadow:
    0 0 0 3px
    rgba(0, 150, 228, 0.12) !important;
}


/* ---------------------------------------------------------
   27.1 | Datenschutz-Checkbox
   --------------------------------------------------------- */

.pyi-contact-form
.elementor-field-type-acceptance
.elementor-field-subgroup {

  display:
    block !important;
}


.pyi-contact-form
.elementor-field-type-acceptance
.elementor-field-subgroup
> .elementor-field-option {

  display:
    flex !important;

  align-items:
    flex-start !important;

  gap:
    0.55rem !important;
}


.pyi-contact-form
.elementor-field-type-acceptance
.elementor-field-subgroup
> .elementor-field-option
> input[type="checkbox"] {

  position:
    static !important;

  width:
    1.05rem !important;

  min-width:
    1.05rem !important;

  height:
    1.05rem !important;

  flex:
    0
    0
    1.05rem !important;

  align-self:
    flex-start !important;

  margin:
    0.12rem
    0
    0 !important;
}


.pyi-contact-form
.elementor-field-type-acceptance
label {

  display:
    block !important;

  flex:
    1
    1
    auto !important;

  margin:
    0 !important;

  line-height:
    1.5 !important;
}


/* ---------------------------------------------------------
   27.2 | Pflichtangaben
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-contact-form
.pyi-required-star {

  color:
    #d62828 !important;

  font-weight:
    700 !important;
}


/* ---------------------------------------------------------
   27.3 | Absende-Button
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-contact-form
.elementor-button[type="submit"] {

  display:
    inline-flex !important;

  align-items:
    center !important;

  justify-content:
    center !important;

  min-height:
    3.25rem;

  padding:
    0.85rem
    1.6rem !important;

  border:
    0 !important;

  border-radius:
    999px !important;

  background:
    var(--pyi-color-primary, #00408c) !important;

  color:
    #ffffff !important;

  font-family:
    var(--pyi-font-primary, "Fira Sans", sans-serif) !important;

  font-size:
    0.95rem !important;

  font-weight:
    700 !important;
}


html body .elementor
.elementor-element.pyi-contact-form
.elementor-button[type="submit"]:hover,
html body .elementor
.elementor-element.pyi-contact-form
.elementor-button[type="submit"]:focus-visible {

  background:
    var(--pyi-color-secondary, #0096e4) !important;
}


/* ---------------------------------------------------------
   27.4 | Erfolgsmeldung
   --------------------------------------------------------- */

html body .elementor
.elementor-element.pyi-contact-form
.elementor-message-success {

  position:
    static !important;

  display:
    flex !important;

  width:
    100% !important;

  margin:
    1.15rem
    0
    0 !important;

  padding:
    0.8rem
    1rem !important;

  border:
    1px solid
    rgba(20, 128, 72, 0.2) !important;

  border-radius:
    var(--pyi-radius-small, 0.35rem) !important;

  background:
    rgba(20, 128, 72, 0.08) !important;

  color:
    #147f48 !important;

  font-size:
    0.9rem !important;

  font-weight:
    600 !important;
}


@media (max-width: 767px) {

  html body .elementor
  .elementor-element.pyi-contact-form
  .elementor-form {

    padding:
      1.25rem !important;
  }


  html body .elementor
  .elementor-element.pyi-contact-form
  .elementor-field-group {

    width:
      100% !important;
  }
}


/* =========================================================
   28 | ENDE DES GLOBALEN DESIGNSYSTEMS
   ========================================================= */
   
   /* =====================================================
   ProtectYourIT – Brief-IT Bestätigungsseite
   Viewport-Layout
   NUR Seite 49
   ===================================================== */


/* Browserfenster vollständig nutzen */

html {
  min-height: 100%;
}

body.page-id-49 {
  min-height: 100vh !important;
  min-height: 100dvh !important;

  display: flex !important;
  flex-direction: column !important;
}


/* Reduced Header + Footer behalten natürliche Höhe */

body.page-id-49 > header,
body.page-id-49 > footer {
  flex: 0 0 auto !important;
}


/* Main nimmt den kompletten verbleibenden Raum ein */

body.page-id-49 > main#content {
  width: 100% !important;

  flex: 1 1 auto !important;

  display: flex !important;
  flex-direction: column !important;
}


/* Elementor-Seitenwrapper ebenfalls wachsen lassen */

body.page-id-49 > main#content > .elementor {
  width: 100% !important;

  flex: 1 1 auto !important;

  display: flex !important;
  flex-direction: column !important;
}


/* Unsere eigentliche Bestätigungsfläche füllt den Elementor-Raum */

body.page-id-49
.pyi-confirmation {
  width: 100% !important;

  flex: 1 1 auto !important;

  display: grid !important;
  place-items: center !important;
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://protectyourit.de/wp-content/uploads/2026/07/FiraSans-Regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://protectyourit.de/wp-content/uploads/2026/07/FiraSans-Medium-1.woff2') format('woff2');
}
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://protectyourit.de/wp-content/uploads/2026/07/FiraSans-SemiBold-1.woff2') format('woff2');
}
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://protectyourit.de/wp-content/uploads/2026/07/FiraSans-Bold-1.woff2') format('woff2');
}
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://protectyourit.de/wp-content/uploads/2026/07/FiraSans-Light-1.woff2') format('woff2');
}
/* End Custom Fonts CSS */