/* ============================================================================
   Farb- und Kurvenwerte

   style.css setzt sie auf .elementor-page. Diese Klasse trägt der <body> der
   Rechtsseiten nicht, dort wären --ease, --ink und --blue leer — und eine
   Regel wie "animation: navIn .8s var(--ease)" fällt dann komplett aus, die
   Kopfzeile bliebe unsichtbar. Deshalb hier zusätzlich auf body — nicht auf
   :root, denn die zugrunde liegenden --e-global-color-* stehen selbst am
   body und wären eine Ebene höher noch leer.
   ========================================================================= */
body { --blue:var(--e-global-color-uicore_primary);--blue-deep:var(--e-global-color-uicore_secondary);--ink:var(--e-global-color-uicore_headline);--ink-soft:var(--e-global-color-uicore_body);--ease:cubic-bezier(.16,1,.3,1);--line:rgba(17,18,20,.10) }

/* Einblenden der Kopfzeile (aus style.css) */
@keyframes navIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================================
   Kopf- und Fußzeile der Unterseiten

   Automatisch aus style.css gezogen: alle Regeln, die den Navigationsbalken
   (#nav-shell) und den Footer (#footer, #foot-brand, .foot-col, .foot-bottom)
   betreffen. In style.css hängen sie an .elementor-461 bzw. body.page-id-461,
   also an der Startseite; hier ist dieser Vorsatz entfernt, damit dieselbe
   Kopf- und Fußzeile auch auf Kontakt, Impressum und Datenschutz greift.

   NICHT VON HAND ÄNDERN — bei einer Änderung an style.css neu erzeugen.
   ========================================================================= */

.elementor-element.elementor-element-5741ed3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:24px 24px;--row-gap:24px;--column-gap:24px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:rgba(255,255,255,0.7);--border-color:rgba(255,255,255,0.7);--border-radius:100px 100px 100px 100px;--padding-top:12px;--padding-bottom:12px;--padding-left:22px;--padding-right:12px;}
.elementor-element.elementor-element-9d13874 .elementor-button-content-wrapper{flex-direction:row-reverse;}
.elementor-element.elementor-element-9d13874 .elementor-button{font-weight:600;letter-spacing:-0.01em;}
.elementor-element.elementor-element-bf243c6{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-bf243c6:not(.elementor-motion-effects-element-type-background), .elementor-element.elementor-element-bf243c6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#1226B8;}
.elementor-element.elementor-element-148f367{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:rgba(255,255,255,0.14);--border-color:rgba(255,255,255,0.14);--padding-top:74px;--padding-bottom:42px;--padding-left:64px;--padding-right:64px;}
.elementor-element.elementor-element-30dcae8{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:40px 60px;--row-gap:40px;--column-gap:60px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-fef7c71{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-a637d8b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-d7cc802{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#CDCCD338;--border-color:#CDCCD338;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-d28b32d{width:100%;max-width:100%;margin:20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;border-style:none;}
.elementor-element.elementor-element-d6539ef{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#CDCCD338;--border-color:#CDCCD338;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.elementor-element.elementor-element-53945cf{width:auto;max-width:auto;margin:20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;border-style:none;text-align:end;}
@media (max-width:767px) {
.elementor-element.elementor-element-5741ed3{--justify-content:space-between;--gap:8px 0px;--row-gap:8px;--column-gap:0px;--flex-wrap:nowrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:10px;--padding-bottom:10px;--padding-left:10px;--padding-right:10px;}
.elementor-element.elementor-element-1cf644c img{width:132px;}
.elementor-element.elementor-element-148f367{--padding-top:60px;--padding-bottom:34px;--padding-left:24px;--padding-right:24px;}
.elementor-element.elementor-element-30dcae8{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}
.elementor-element.elementor-element-fef7c71{--width:100%;}
.elementor-element.elementor-element-d28b32d{margin:20px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px;}
}
@media (min-width:768px) {
.elementor-element.elementor-element-148f367{--width:100%;}
.elementor-element.elementor-element-30dcae8{--width:100%;}
.elementor-element.elementor-element-fef7c71{--width:34%;}
}
@media (max-width:600px) {
.elementor-element.elementor-element-5741ed3#nav-shell .logo img{width:140px;
    max-width:140px;
    height:auto;}
}
#nav-shell{position:fixed;top:16px;left:clamp(24px,4.5vw,64px);right:clamp(24px,4.5vw,64px);width:auto;z-index:50;background:rgba(251,251,252,.55);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);box-shadow:0 16px 40px -20px rgba(17,18,20,.25),inset 0 1px 0 rgba(255,255,255,.9);opacity:0;animation:navIn .8s var(--ease) .05s forwards}
#nav-shell .logo{width:auto;flex:0 0 auto}
#nav-shell .logo img{height:52px;width:auto;max-width:none;display:block}
#nav-shell .mainnav{display:flex;align-items:center;gap:2px;width:auto}
#nav-shell .mainnav a{font-weight:600;font-size:.98rem;letter-spacing:-.01em;padding:.55rem 1rem;border-radius:100px;color:var(--ink);text-decoration:none;transition:background .25s}
#nav-shell .mainnav a:hover{background:rgba(17,18,20,.06)}
#nav-shell .mainnav a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
#nav-shell .btn-touch{width:auto;flex:0 0 auto}
#nav-shell .btn-touch .elementor-button{display:inline-flex;align-items:center;gap:.55em;background-color:var(--ink);color:#fff;font-weight:600;font-size:.98rem;letter-spacing:-.01em;padding:.85rem 1.4rem;border-radius:100px;border:0;transition:transform .35s var(--ease),background-color .3s}
#nav-shell .btn-touch .elementor-button:hover{transform:translateY(-2px);background-color:var(--blue)}
#nav-shell .btn-touch .elementor-button svg{width:15px;height:15px;transition:transform .35s var(--ease)}
#nav-shell .btn-touch .elementor-button:hover svg{transform:translate(2px,-2px)}
@media (max-width:767px) {
#nav-shell{left:14px;right:14px}
#nav-shell .mainnav{display:none}
#nav-shell .logo img{height:42px}
#nav-shell .btn-touch .elementor-button{min-height:44px}
}
#final-inner, #footer{position:relative;z-index:2}
#footer{background:rgba(18,20,30,.42);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3)}
#foot-brand{max-width:420px}
#foot-brand .foot-logo{display:inline-flex;align-items:center;gap:.6em;color:#fff;font-weight:700;font-size:1.35rem;letter-spacing:-.02em}
#foot-brand .foot-logo sup{font-size:.5em;font-weight:600;opacity:.7;margin-left:.1em}
#foot-brand p{color:rgba(255,255,255,.6);font-weight:500;font-size:.96rem;line-height:1.55;margin:1.1rem 0 0;max-width:38ch}
#foot-brand .foot-socials{display:flex;gap:.7rem;margin-top:1.5rem}
#foot-brand .foot-socials a{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.24);color:#fff;transition:.3s var(--ease)}
#foot-brand .foot-socials a:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}
#foot-brand .foot-socials svg{width:17px;height:17px}
.foot-col{flex:1 1 140px}
.foot-col h4{color:rgba(255,255,255,.5);font-weight:700;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;margin:0 0 1.3rem}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}
.foot-col a{color:rgba(255,255,255,.85);font-weight:500;font-size:1.02rem;text-decoration:none;transition:color .25s}
.foot-col a:hover{color:#fff}
.foot-col a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;width:100%;max-width:1300px;margin:clamp(34px,4vw,52px) auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;color:rgba(255,255,255,.5)}
@media (max-width:767px) {
#foot-brand, .foot-col{width:100%}
}
#foot-brand .foot-logo img{filter:brightness(0) invert(1)!important}
#foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(30px,4vw,64px);max-width:1300px;margin-inline:auto;width:100%}
#refs-top > *, #pos-wrap > *, #gf-1 > *, #gf-2 > *, #team-grid > *, #stats-grid > *, #testi-wrap > *, #foot-grid > *{width:100%}
@media (max-width:900px) {
#foot-grid{grid-template-columns:1fr 1fr}
}
.foot-col h4, .foot-col .elementor-heading-title{line-height:normal}

/* ============================================================================
   Der Footer liegt auf den Unterseiten innerhalb des Inhaltscontainers und
   wäre dort auf dessen Breite eingezwängt. Die erste Zeile holt ihn wieder
   über die volle Fensterbreite, wie auf der Startseite. Dazu die beiden
   Regeln des Rahmens selbst (dunkler Verlauf über dem Hintergrund).
   ========================================================================= */
#kontakt{position:relative}
#kontakt::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(6,9,26,.62) 0%,rgba(6,9,26,.48) 42%,rgba(6,9,26,.78) 100%)}
/* 24.09.2026: Fußzeile randlos, ohne 100vw.
   100vw zählt die Scrollleiste mit - dadurch war die Fußzeile auf den
   Unterseiten um ein paar Pixel verschoben und links angeschnitten.
   Jetzt füllt sie ihren Container, und der Container ist auf den Unterseiten
   über die volle Breite gestellt; der Text bleibt mittig begrenzt. */
#kontakt { width: auto; max-width: none; margin-left: 0; margin-right: 0; }
.uicore-content:has(.bw-page),
.uicore-content-wrapper:has(.bw-page),
.uicore-container:has(.bw-page) { max-width: none !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.uicore.uicore-box .uicore.uicore-container:has(.bw-page) { padding-left: 0 !important; padding-right: 0 !important; }
.bw-page { margin-left: auto !important; margin-right: auto !important; }

/* ============================================================================
   Abstand zwischen der schwebenden Kopfzeile und dem Seiteninhalt

   Bis 09/2026 stand auf den Unterseiten ein eigener Kopfbalken im Textfluss;
   der Inhalt begann darunter. Die Kopfzeile der Startseite schwebt dagegen
   über dem Inhalt, deshalb braucht der Anfang der Seite jetzt selbst etwas
   Luft. Auf der Kontaktseite fällt der Abstand dadurch kleiner aus als
   vorher, auf Impressum und Datenschutz etwas größer — auf allen drei Seiten
   beginnt der Text nun auf gleicher Höhe.
   ========================================================================= */
/* Kontaktseite: auf Wunsch 40px mehr Luft zwischen Kopfzeile und dem
   Wort „Kontakt“ als bei den Rechtsseiten. */
#bw-kon { --padding-top: clamp(140px, calc(12vh + 40px), 172px); }
.bw-page.bw-recht { padding-top: clamp(84px, 9vh, 96px); }


/* 24.09.2026: Auf Impressum/Datenschutz besteht der Abschnitt #kontakt nur aus
   der Fusszeile. Der Verlauf (oben heller, unten dunkler) begann dort direkt
   ueber dem Footer, deshalb wirkte die Flaeche heller als auf der Startseite.
   Ohne den Abschluss-Block (#final-inner) daher gleichmaessig abdunkeln. */
#kontakt:not(:has(#final-inner))::after { background: rgba(0, 0, 0, .78); }
