/* Basis-Styles Leopold-Theme — Werte 1:1 aus dem Original extrahiert (universal.css) */

/* Global box-sizing wie im Original (oxygen.css) */
html {
  box-sizing: border-box;
}
*,
::after,
::before {
  box-sizing: inherit;
}

/* Wie im Original (computed): Body schneidet horizontalen Überstand ab (Mega-Menü u.a.) */
body {
  overflow-x: hidden;
}

/* Wie Original-Wrapper div_block-7346-12: schneidet Blur-Ausläufer der Sektionen ab */
main#main-content {
  /* clip statt hidden: der Blur-Ausläufer (.has-blured-end:after, translateY 50 %)
     macht main sonst zum Scroll-Container — Anker-Klicks (#leistungen …) scrollen
     dann main statt das Fenster, der Sticky-Header greift nicht. */
  overflow: hidden;
  overflow: clip;
}

.section>.section-inner {
  display:flex;
flex-direction:column;
align-items:flex-start;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  body * {
    min-height: 1px;
  }
}

.section-inner {
  max-width: 1920px;
  /* Oxygen .ct-section-inner-wrap: zentriert, sonst hängt alles ab 1921px Breite links */
  margin-left: auto;
  margin-right: auto;
}

body {
  font-family: 'Open Sans';
}

body {
  line-height: 1.6;font-size: 18px;font-weight: ;color: #2f2f2f;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Open Sans';
}

a {
  color: #0074db;text-decoration: none;
}

.section-inner {
  padding-top: 85px;
padding-right: 20px;
padding-bottom: 85px;
padding-left: 20px;
}

.headline-xl {
  line-height:1.2;
 font-size:54px;
 margin-bottom:22px;
}

@media (max-width: 1920px) {
  .headline-xl {
    font-size:50px;
  }
}

@media (max-width: 1399px) {
  .headline-xl {
    font-size:44px;
  }
}

@media (max-width: 767px) {
  .headline-xl {
    font-size:44px;
  }
}

@media (max-width: 479px) {
  .headline-xl {
    font-size:30px;
  }
}

.headline-s {
  margin-bottom:14px;
}

.headline-xs {
  color:#fdfeff;
}

.body-l {
  color:#fdfeff;
 font-weight:300;
}

.italic {
  margin-bottom:0px;
}

.btn-xl-primary {
  margin-top:22px;
}

@media (max-width: 767px) {
  .btn-xl-primary {
    width:100%;
  }
}

.has-blured-end:after {
  content:"";
}

.has-blured-end {
  position:relative;
}

.has-blured-end .section-inner {
  padding-top: 42px;
padding-bottom: 68px;
}

.border-radius-global {
  overflow:hidden;
}

.white-text {
  color:#ffffff;
}

.btn-outline {
  border-top-color:#32b4a2;
 border-right-color:#32b4a2;
 border-bottom-color:#32b4a2;
 border-left-color:#32b4a2;
}

.margin-bottom-l {
  margin-bottom:80px;
 font-weight:300;
}

.btn-outline-green {
  border-top-color:#32b4a2;
 border-right-color:#32b4a2;
 border-bottom-color:#32b4a2;
 border-left-color:#32b4a2;
 border-top-width:1px;
 border-right-width:1px;
 border-bottom-width:1px;
 border-left-width:1px;
 border-top-style:solid;
 border-right-style:solid;
 border-bottom-style:solid;
 border-left-style:solid;
}

.cocco-narrow {
  font-style:normal;
}

.btn-xl-secondary {
  background-color :#223a4f;
border: 1px solid #223a4f;
}

:root {
  --primary-1000: #223a4f;
      --primary-900: #3E596F;
      --primary-800: #536B7F;
      --primary-700: #697E8F;
      --primary-600: #7E909F;
      --primary-500: #93A2AF;
      --primary-400: #A9B5BF;
      --primary-300: #BEC7CF;
      --primary-200: #D4DADF;
      --primary-100: #E9ECEF;
    
      
      --secondary-1000: #32B4A2;
      --secondary-900: #47BBAB;
      --secondary-800: #5BC3B5;
      --secondary-700: #70CBBE;
      --secondary-600: #84D2C7;
      --secondary-500: #98D9D1; 
      --secondary-400: #ADE1DA;
      --secondary-300: #C1E8E3;
      --secondary-200: #D6F0EC;
      --secondary-100: #EAF7F6;
    
      
      --tertiary-1000: #004270;
      --tertiary-900: #1A557E;
      --tertiary-800: #33688D;
      --tertiary-700: #4D7B9B;
      --tertiary-600: #668EA9;
      --tertiary-500: #80A0B7;
      --tertiary-400: #99B3C6;
      --tertiary-300: #B2C6D4;
      --tertiary-200: #CCD9E2;
      --tertiary-100: #E5ECF1;
    
      
      --dark-primary: #2F2F2F;
      --dark-secondary: #525252;
      --dark-disable: #8A8A8A;
    
      
      --light-primary: #FDFEFF;
      --light-secondary: #BBBBBB;
      --light-disable: #8E8E8E;
    
      
      --semantic-error: #F34D47;
      --semantic-success: #6FD366;
      --semantic-warning: #F5982B;
      --semantic-info: #74C0DD;

  
  
  --dropshadow-001: 0 4px 20px 0 rgba(0,0,0,.25);
  --dropshadow-002: 0 4px 50px 0 rgba(0,0,0,.25);
  --dropshadow-003: 0 20px 50px 0 rgba(0,0,0,.25);
  --dropshadow-004: 0 50px 50px 0 rgba(0,0,0,.25);
  --dropshadow-005: 40px 80px 50px 0 rgba(0,0,0,.25);
  
  
  
  --border-radius-global: 15px;
  --border-radius-minimal: 5px;
  

  
      
      --extended-5xl-size: 6.192rem;
      --extended-4xl-size: 5.160rem;
      --extended-3xl-size: 4.3rem;
      --extended-2xl-size: 3.583rem;
      --extended-xl-size: 2.986rem;
      --extended-l-size: 2.488rem;
      --extended-m-size: 2.074rem;
      --extended-s-size: 1.728rem;
      --extended-xs-size: 1.440rem;

      
      --headline-5xl-size: 6.192rem;
      --headline-4xl-size: 5.160rem;
      --headline-3xl-size: 4.3rem;
      --headline-2xl-size: 3.583rem;
      --headline-xl-size: 2.986rem;
      --headline-l-size: 2.488rem;
      --headline-m-size: 2.074rem;
      --headline-s-size: 1.728rem;
      --headline-xs-size: 1.440rem;
      --headline-xxs-size: 1.222rem;

      
      --body-xl-size: 1.44rem;
      --body-l-size: 1.2rem;
      --body-m-size: 1rem;
      --body-s-size: .833rem;
      --body-xs-size: .694rem;

      
      --preheading-size: 1.2rem;
      --subheading-size: 1.44rem;

      
      --link-primary-size: 1rem;

  
      
      --extended-5xl-lineheight: 120%;
      --extended-4xl-lineheight: 120%;
      --extended-3xl-lineheight: 120%;
      --extended-2xl-lineheight: 120%;
      --extended-xl-lineheight: 120%;
      --extended-l-lineheight: 120%;
      --extended-m-lineheight: 120%;
      --extended-s-lineheight: 120%;
      --extended-xs-lineheight: 120%;
      
      
      --headline-5xl-lineheight: 120%;
      --headline-4xl-lineheight: 120%;
      --headline-3xl-lineheight: 120%;
      --headline-2xl-lineheight: 120%;
      --headline-xl-lineheight: 120%;
      --headline-l-lineheight: 120%;
      --headline-m-lineheight: 120%;
      --headline-s-lineheight: 120%;
      --headline-xs-lineheight: 120%;
      --headline-xxs-lineheight: 120%;

      
      --preheading-lineheight: 120%;
      --subheading-lineheight: 120%;

      
      --link-primary-lineheight: 120%;

   
      
      --extended-5xl-letterspacing: -5.12%;
      --extended-4xl-letterspacing: -5.12%;
      --extended-3xl-letterspacing: -5.12%;
      --extended-2xl-letterspacing: -5.12%;
      --extended-xl-letterspacing: -5.12%;
      --extended-l-letterspacing: -5.12%;
      --extended-m-letterspacing: -5.12%;
      --extended-s-letterspacing: -5.12%;
      --extended-xs-letterspacing: -5.12%;
      
      
      --headline-5xl-letterspacing: -5.12%;
      --headline-4xl-letterspacing: -5.12%;
      --headline-3xl-letterspacing: -5.12%;
      --headline-2xl-letterspacing: -5.12%;
      --headline-xl-letterspacing: -5.12%;
      --headline-l-letterspacing: -5.12%;
      --headline-m-letterspacing: -5.12%;
      --headline-s-letterspacing: -5.12%;
      --headline-xs-letterspacing: -5.12%;
      --headline-xxs-letterspacing: -5.12%;

      
      --preheading-letterspacing: -5.12%;
      --subheading-letterspacing: -5.12%;

      
      --link-primary-letterspacing: 0.48%;

  
  --global-transition: .15s;

  
  --btn-arrow-image: url("/wp-content/uploads/2024/02/Icon.png");
  --btn-phone-image: url("/wp-content/uploads/2024/04/phone-arrow-up-right.png");
  --btn-mail-image: url("/wp-content/uploads/2024/04/envelope.png");
  --btn-mail-image-invert: url("/wp-content/uploads/2024/05/envelope_white.webp");
}

@media only screen and (max-width: 1400px) {
  :root {
    --headline-5xl-size: 5.5rem;
  }
}

@media only screen and (max-width: 1024px) {
  :root {
    --extended-5xl-size: 4.375rem;
          --extended-4xl-size: 3.625rem;
          --extended-3xl-size: 3.062rem;
          --extended-2xl-size: 2.562rem;
          --extended-xl-size: 2.125rem;
          --extended-l-size: 1.4375rem;
          --extended-m-size: 1.25rem;
          --extended-s-size: 1rem;
          --extended-xs-size: .875rem;
    
          
          --headline-5xl-size: 4.375rem;
          --headline-4xl-size: 3.625rem;
          --headline-3xl-size: 3.062rem;
          --headline-2xl-size: 2.562rem;
          --headline-xl-size: 2.125rem;
          --headline-l-size: 1.4375rem;
          --headline-m-size: 1.25rem;
          --headline-s-size: 1rem;
          --headline-xs-size: .875rem;
          --headline-xxs-size: .625rem;
    
          
          --body-xl-size: 1.44rem;
          --body-l-size: 1.2rem;
          --body-m-size: 1rem;
          --body-s-size: .833rem;
          --body-xs-size: .694rem;
    
          
          --preheading-size: 1.125rem;
          --subheading-size: 1.375rem;
  }
}

@media only screen and (max-width: 480px) {
  :root {
    --extended-5xl-size: 2.5rem;
          --extended-4xl-size: 2.071rem;
          --extended-3xl-size: 1.712rem;
          --extended-2xl-size: 1.428rem;
          --extended-xl-size: 1.214rem;
          --extended-l-size: 1rem;
          --extended-m-size: .857rem;
          --extended-s-size: .714rem;
          --extended-xs-size: .571rem;
    
          
          --headline-5xl-size: 2.5rem;
          --headline-4xl-size: 2.071rem;
          --headline-3xl-size: 1.712rem;
          --headline-2xl-size: 1.428rem;
          --headline-xl-size: 1.214rem;
          --headline-l-size: 1rem;
          --headline-m-size: .875rem;
          --headline-s-size: .714rem;
          --headline-xs-size: .571rem;
          --headline-xxs-size: .5rem;
    
          
          --body-xl-size: 1.266rem;
          --body-l-size: 1.125rem;
          --body-m-size: 1rem;
          --body-s-size: .889rem;
          --body-xs-size: .790rem;
    
          
          --preheading-size: 1.142rem;
          --subheading-size: 1.285rem;
  }
}

.headline-5xl {
  font-size: var(--headline-5xl-size);
  font-weight: normal;
  line-height: var(--headline-5xl-lineheight);
  letter-spacing: var(--headline-5xl-letterspacing);
}

.headline-4xl {
  font-size: var(--headline-4xl-size);
  font-weight: normal;
  line-height: var(--headline-4xl-lineheight);
  letter-spacing: var(--headline-4xl-letterspacing);
}

.headline-3xl {
  font-size: var(--headline-3xl-size);
  font-weight: normal;
  line-height: var(--headline-3xl-lineheight);
  letter-spacing: var(--headline-3xl-letterspacing);
}

.headline-2xl {
  font-size: var(--headline-2xl-size);
  font-weight: normal;
  line-height: var(--headline-2xl-lineheight);
  letter-spacing: var(--headline-2xl-letterspacing);
}

.headline-xl {
  font-size: var(--headline-xl-size);
  font-weight: normal;
  line-height: var(--headline-xl-lineheight);
  letter-spacing: var(--headline-xl-letterspacing);
}

.headline-l {
  font-size: var(--headline-l-size);
  font-weight: normal;
  line-height: var(--headline-l-lineheight);
  letter-spacing: var(--headline-l-letterspacing);
}

.headline-m {
  font-size: var(--headline-m-size);
  font-weight: normal;
  line-height: var(--headline-m-lineheight);
  letter-spacing: var(--headline-m-letterspacing);
}

.headline-s {
  font-size: var(--headline-s-size);
  font-weight: normal;
  line-height: var(--headline-s-lineheight);
  letter-spacing: var(--headline-s-letterspacing);
}

.headline-xs {
  font-size: var(--headline-xs-size);
  font-weight: normal;
  line-height: var(--headline-xs-lineheight);
  letter-spacing: var(--headline-xs-letterspacing);
}

.headline-xxs {
  font-size: var(--headline-xxs-size);
  font-weight: normal;
  line-height: var(--headline-xxs-lineheight);
  letter-spacing: var(--headline-xxs-letterspacing);
}

.extended-5xl {
  font-size: var(--extended-5xl-size);
	font-weight: normal;
	line-height: var(--extended-5xl-lineheight);
	letter-spacing: var(--extended-5xl-letterspacing);
}

.extended-4xl {
  font-size: var(--extended-4xl-size);
	font-weight: normal;
	line-height: var(--extended-4xl-lineheight);
	letter-spacing: var(--extended-4xl-letterspacing);
}

.extended-3xl {
  font-size: var(--extended-3xl-size);
	font-weight: normal;
	line-height: var(--extended-3xl-lineheight);
	letter-spacing: var(--extended-3xl-letterspacing);
}

.extended-2xl {
  font-size: var(--extended-2xl-size);
	font-weight: normal;
	line-height: var(--extended-2xl-lineheight);
	letter-spacing: var(--extended-2xl-letterspacing);
}

.extended-xl {
  font-size: var(--extended-xl-size);
	font-weight: normal;
	line-height: var(--extended-xl-lineheight);
	letter-spacing: var(--extended-xl-letterspacing);
}

.extended-l {
  font-size: var(--extended-l-size);
	font-weight: normal;
	line-height: var(--extended-l-lineheight);
	letter-spacing: var(--extended-l-letterspacing);
}

.extended-m {
  font-size: var(--extended-m-size);
	font-weight: normal;
	line-height: var(--extended-m-lineheight);
	letter-spacing: var(--extended-m-letterspacing);
}

.extended-s {
  font-size: var(--extended-s-size);
	font-weight: normal;
	line-height: var(--extended-s-lineheight);
	letter-spacing: var(--extended-s-letterspacing);
}

.extended-xs {
  font-size: var(--extended-xs-size);
	font-weight: normal;
	line-height: var(--extended-xs-lineheight);
	letter-spacing: var(--extended-xs-letterspacing);
}

.extended-xxs {
  font-size: var(--extended-xxs-size);
	font-weight: normal;
	line-height: var(--extended-xxs-lineheight);
	letter-spacing: var(--extended-xxs-letterspacing);
}

.body-xl {
  font-size: var(--body-xl-size);
	font-weight: normal;
	line-height: var(--body-xl-lineheight);
	letter-spacing: var(--body-xl-letterspacing);
}

.body-l {
  font-size: var(--body-l-size);
	font-weight: normal;
	line-height: var(--body-l-lineheight);
	letter-spacing: var(--body-l-letterspacing);
}

.body-m {
  font-size: var(--body-m-size);
	font-weight: normal;
	line-height: var(--body-m-lineheight);
	letter-spacing: var(--body-m-letterspacing);
}

.body-s {
  font-size: var(--body-s-size);
	font-weight: normal;
	line-height: var(--body-s-lineheight);
	letter-spacing: var(--body-s-letterspacing);
}

.body-xs {
  font-size: var(--body-xs-size);
	font-weight: normal;
	line-height: var(--body-xs-lineheight);
	letter-spacing: var(--body-xs-letterspacing);
}

.italic {
  font-style: italic;
}

.btn-xl-primary {
  background: var(--secondary-1000);
  border-radius: var(--border-radius-global);
  border: 1px solid var(--secondary-1000);
  transition: var(--global-transition);
  text-transform: uppercase;
  line-height: 100%;
  padding: 15px 24px;
  position: relative;
  font-size: 1.111rem;
  line-height: 100%;
  letter-spacing: 0;
}

.btn-xl-primary:hover {
  background: var(--secondary-700);
  border: 1px solid var(--secondary-700);
  color: var(--light-primary) !important;
}

.btn-el-left {
  padding-left: 48px;
}

.phone-btn {
  padding-left: 45px;
}

.phone-btn:before {
  content:"";
  background: var(--btn-phone-image);
  background-size: contain;
  width: 20px;
  height: 20px;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  transition: var(--global-transition);
}

.btn-el-right {
  padding-right: 48px;
}

.btn-el-both {
  padding: 15px 48px;
}

.btn-outline {
  background: transparent;
  border-color: var(--light-primary);
  color: var(--light-primary);
  font-weight: normal;
}

.btn-outline-green {
  background: transparent;
  border-color: var(--secondary-1000);
  color: var(--secondary-1000);
  font-weight: normal;
}

.linear-gradient {
  background: rgba(0,66,112,1);
  background: linear-gradient(273deg, #32B4A2 14.05%, #004270 99.79%);
}

.border-radius-global {
  border-radius: var(--border-radius-global);
}

html {
  scroll-behavior: smooth;
}

/* Ankersprünge: Ziel nicht unter dem fixen Header positionieren.
   Werte = Headerhöhe (unfixed) + Luft, vgl. header.css:
   Desktop 35+93+15+10=153px, ≤1399px 35+70+15+10=130px, ≤479px 14+35+12+10=71px */
[id] {
  scroll-margin-top: 170px;
}

@media (max-width: 1399px) {
  [id] {
    scroll-margin-top: 140px;
  }
}

@media (max-width: 479px) {
  [id] {
    scroll-margin-top: 85px;
  }
}

body {
  background: var(--secondary-1000);
  transition: background .5s;
  hyphens: auto;
}

/* iOS-Safari-Fix (iPad-QA 09/2026): Elemente, die per Transform/Animation
   kurz über den Viewport ragen (Hero-Bilder, AOS), machen die Seite auf
   iOS horizontal pannbar — Schrift wirkt dann links abgeschnitten.
   clip statt hidden, damit kein neuer Scroll-Container entsteht. */
html, body {
  overflow-x: hidden;
  overflow-x: clip;
}

.footer-divider {
  width: 5px;
  height: 3px;
  border-radius: 3px;
  background: var(--dark-primary);
  display: flex;
}

/* Statischer Gradient-Ersatz für das Original (1000px-Rechteck #32B4A2 mit
   filter: blur(150px)) — iOS-Safari hängt bei Laufzeit-Blur auf großen Flächen.
   Box = Rechteck + 2×3σ Falloff (1000 + 900 = 1900px), Alpha-Stops folgen der
   Gauß-CDF (erf) mit σ = 150px. Footprint/Position identisch zum Blur. */
.has-blured-end:after {
  content: "";
  width: 150%;
  height: 1900px;
  bottom: 0;
  left: -50%;
  transform: translateY(50%);
  position: absolute;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(to bottom,
    rgba(50,180,162,0) 0%,
    rgba(50,180,162,0.006) 3.95%,
    rgba(50,180,162,0.023) 7.89%,
    rgba(50,180,162,0.067) 11.84%,
    rgba(50,180,162,0.159) 15.79%,
    rgba(50,180,162,0.309) 19.74%,
    rgba(50,180,162,0.5) 23.68%,
    rgba(50,180,162,0.691) 27.63%,
    rgba(50,180,162,0.841) 31.58%,
    rgba(50,180,162,0.933) 35.53%,
    rgba(50,180,162,0.977) 39.47%,
    rgba(50,180,162,0.994) 43.42%,
    rgba(50,180,162,1) 47.37%,
    rgba(50,180,162,1) 52.63%,
    rgba(50,180,162,0.994) 56.58%,
    rgba(50,180,162,0.977) 60.53%,
    rgba(50,180,162,0.933) 64.47%,
    rgba(50,180,162,0.841) 68.42%,
    rgba(50,180,162,0.691) 72.37%,
    rgba(50,180,162,0.5) 76.32%,
    rgba(50,180,162,0.309) 80.26%,
    rgba(50,180,162,0.159) 84.21%,
    rgba(50,180,162,0.067) 88.16%,
    rgba(50,180,162,0.023) 92.11%,
    rgba(50,180,162,0.006) 96.05%,
    rgba(50,180,162,0) 100%);
}

.has-blured-background {
  position: relative;
}

@media only screen and (max-width: 768px) {
  /* Original: 700px-Rechteck, blur(50px) → Box 700 + 2×150 = 1000px, σ = 50px */
  .has-blured-end:after {
    height: 1000px;
    background: linear-gradient(to bottom,
      rgba(50,180,162,0) 0%,
      rgba(50,180,162,0.006) 2.5%,
      rgba(50,180,162,0.023) 5%,
      rgba(50,180,162,0.067) 7.5%,
      rgba(50,180,162,0.159) 10%,
      rgba(50,180,162,0.309) 12.5%,
      rgba(50,180,162,0.5) 15%,
      rgba(50,180,162,0.691) 17.5%,
      rgba(50,180,162,0.841) 20%,
      rgba(50,180,162,0.933) 22.5%,
      rgba(50,180,162,0.977) 25%,
      rgba(50,180,162,0.994) 27.5%,
      rgba(50,180,162,1) 30%,
      rgba(50,180,162,1) 70%,
      rgba(50,180,162,0.994) 72.5%,
      rgba(50,180,162,0.977) 75%,
      rgba(50,180,162,0.933) 77.5%,
      rgba(50,180,162,0.841) 80%,
      rgba(50,180,162,0.691) 82.5%,
      rgba(50,180,162,0.5) 85%,
      rgba(50,180,162,0.309) 87.5%,
      rgba(50,180,162,0.159) 90%,
      rgba(50,180,162,0.067) 92.5%,
      rgba(50,180,162,0.023) 95%,
      rgba(50,180,162,0.006) 97.5%,
      rgba(50,180,162,0) 100%);
  }
}

@font-face {
  font-family: 'CocogoosePro';
    src: url('/wp-content/uploads/fonts/CocogoosePro-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
  font-family: 'CocogooseProNarrow';
    src: url('/wp-content/uploads/fonts/CocogooseProNarrow-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
  font-family: 'CocogooseProNarrow Semilight';
    src: url('/wp-content/uploads/fonts/CocogooseProNarrow-Semilight.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
  font-family: 'CocogoosePro';
    src: url('/wp-content/uploads/fonts/CocogoosePro-Regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

body, h1,h2,h3,h4,h5,h6 {
  font-family:"CocogoosePro", sans-serif;
}

.cocco-narrow,
.cocco-narrow p {
  font-family: "CocogooseProNarrow",sans-serif !important;
}

.cocco-narrow-semi,
.cocco-narrow-semi {
  font-family: "CocogooseProNarrow Semilight", sans-serif !important;
}

.cocco-narrow-light,
.cocco-narrow-light {
  font-family: "CocogooseProNarrow Light", sans-serif !important;
}

/* Google-Rating-Badge (QA 08/2026, gerendert aus inc/google-rating.php) */
.google-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 9px 18px;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 999px;
  color: #ffffff;
  text-decoration: none;
  font-size: 17px;
  transition: background-color 0.3s ease;
}
.google-badge:hover { background-color: rgba(255, 255, 255, 0.12); }
.google-badge-stern { color: #ffb400; font-size: 20px; line-height: 1; }
.google-badge-text { opacity: 0.9; }
/* Variante fuer helle Hintergruende (Kontakt-Karte) */
.google-badge--kontakt {
  color: #223a4f;
  border-color: rgba(34, 58, 79, 0.35);
  margin: 4px 0 22px;
  font-size: 15px;
}
.google-badge--kontakt:hover { background-color: rgba(34, 58, 79, 0.07); }

/* FAQ-Akkordeon auf Leistungsseiten (inc/faq.php, 08/2026) */
/* z-index 3: liegt sonst unter dem has-blured-end-Verlauf (z-index 2, 1900px hoch)
   der vorangehenden CTA-Sektion */
.faq-section { position: relative; z-index: 3; }
.faq-section > .section-inner { max-width: 1000px; margin: 0 auto; padding: 70px 30px 40px; }
.faq-headline { color: #ffffff; margin: 0 0 35px; text-align: center; }
.faq-liste {
  background-color: #fdfeff;
  border-radius: var(--border-radius-global, 15px);
  box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.15);
  padding: 14px 40px;
}
.faq-item { border-bottom: 1px solid rgba(34, 58, 79, 0.18); }
.faq-frage {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 0;
  font-size: 20px;
  color: #223a4f;
  cursor: pointer;
  list-style: none;
}
.faq-frage::-webkit-details-marker { display: none; }
.faq-pfeil {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  border-right: 2px solid #32b4a2;
  border-bottom: 2px solid #32b4a2;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}
.faq-item[open] .faq-pfeil { transform: rotate(225deg); }
.faq-antwort { padding: 0 0 22px; max-width: 820px; color: #223a4f; }
.faq-antwort p { margin: 0 0 12px; }
.faq-antwort p:last-child { margin-bottom: 0; }
.faq-item:last-child { border-bottom: none; }
@media (max-width: 767px) {
  .faq-section > .section-inner { padding: 45px 20px 25px; }
  .faq-liste { padding: 6px 22px; }
  .faq-frage { font-size: 17px; }
}

/* Rueckruf-Overlay + mobiler Anruf-Button (Conversion, 08/2026) */
.rueckruf-overlay { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.rueckruf-overlay[hidden], .rueckruf-inhalt[hidden] { display: none !important; }
.rueckruf-backdrop { position: absolute; inset: 0; background: rgba(16, 34, 46, 0.72); }
.rueckruf-panel { position: relative; background: #ffffff; color: #28465f; border-radius: 18px; padding: 34px 30px 26px; width: 100%; max-width: 420px; box-shadow: 0 24px 60px rgba(0,0,0,0.35); }
.rueckruf-close { position: absolute; top: 10px; right: 14px; border: none; background: none; font-size: 30px; line-height: 1; color: #5b6b6c; cursor: pointer; }
.rueckruf-titel { font-size: 26px; margin-bottom: 6px; }
.rueckruf-text { margin: 0 0 18px; font-size: 16px; }
.rueckruf-label { display: block; font-size: 14px; margin: 12px 0 4px; }
.rueckruf-input { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #c9d4d3; border-radius: 10px; font-size: 16px; }
.rueckruf-input:focus { outline: 2px solid #32b4a2; border-color: #32b4a2; }
.rueckruf-submit { width: 100%; margin-top: 18px; border: none; cursor: pointer; }
.rueckruf-hinweis { margin: 14px 0 0; font-size: 14px; color: #5b6b6c; text-align: center; }
.rueckruf-hinweis a { color: #218b7d; }
.rueckruf-hp { position: absolute; left: -9999px; top: -9999px; }
.call-fab { display: none; }

/* Hero-Scroll-Link kollidiert mit dem Hero-Inhalt (nav.js misst) → ausblenden */
.is-colliding { display: none !important; }
@media (max-width: 767px) {
  .call-fab { display: flex; align-items: center; justify-content: center; position: fixed; right: 16px; bottom: 18px; z-index: 9000; width: 56px; height: 56px; border-radius: 50%; background: #32b4a2; color: #ffffff; box-shadow: 0 8px 24px rgba(0,0,0,0.3); }
}

/* Vertrauenszeile Startseite (SEO-Audit 09/2026) */
.start-fakten {
  /* ueber dem has-blured-end-Verlauf des Heros */
  position: relative;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
  padding: 18px 20px;
  background-color: #1c3346;
  color: #fdfeff;
  font-family: "CocogooseProNarrow Semilight", sans-serif;
  font-size: 16px;
}
.start-fakten span { display: inline-flex; align-items: center; gap: 18px; }
.start-fakten span + span::before { content: "|"; opacity: 0.35; }
.start-fakten a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(253, 254, 255, 0.45); }
.start-fakten a:hover, .start-fakten a:focus-visible { text-decoration-color: currentColor; }
@media (max-width: 767px) {
  .start-fakten { font-size: 13px; gap: 6px 12px; padding: 14px 14px; }
  .start-fakten span + span::before { content: "·"; }
  .start-fakten span { gap: 12px; }
}

/* "So läuft die Zusammenarbeit ab" (inc/ablauf.php, 09/2026) */
.ablauf-section {
  /* ueber dem has-blured-end-Verlauf der Vorgaenger-Sektion */
  position: relative;
  z-index: 3;
}
.ablauf-section > .section-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 30px 30px;
}
.ablauf-headline { color: #ffffff; margin: 0 0 18px; text-align: center; }
.ablauf-intro {
  max-width: 780px;
  margin: 0 auto 38px;
  text-align: center;
  color: #ffffff;
  opacity: 0.92;
}
.ablauf-liste {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}
.ablauf-schritt {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background-color: #fdfeff;
  border-radius: var(--border-radius-global, 15px);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.12);
  padding: 22px 24px;
}
.ablauf-nummer {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background-color: #32b4a2;
  color: #ffffff;
  font-size: 19px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ablauf-titel { font-size: 19px; color: #223a4f; line-height: 1.25; }
.ablauf-beschreibung { font-size: 16px; color: #2f2f2f; margin-top: 5px; font-family: 'Open Sans', sans-serif; font-weight: 400; }
@media (max-width: 767px) {
  .ablauf-section > .section-inner { padding: 45px 20px 20px; }
  .ablauf-schritt { padding: 18px 18px; }
  .ablauf-titel { font-size: 17px; }
  .ablauf-beschreibung { font-size: 15px; }
}

/* Fallstudien-Karte — eine Referenz je Leistungsseite (inc/fallstudie-karte.php, 09/2026) */
.fs-karte-section { position: relative; z-index: 3; }
.fs-karte-section > .section-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px 30px 30px;
}
.fs-karte {
  display: flex;
  align-items: stretch;
  width: 100%;
  background-color: #fdfeff;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.12);
  text-decoration: none;
  color: #223a4f;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fs-karte:hover,
.fs-karte:focus-visible {
  color: #223a4f;
  transform: translateY(-3px);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.18);
}
.fs-karte-img {
  flex: 0 0 36%;
  width: 36%;
  height: auto;
  object-fit: cover;
}
.fs-karte-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 30px 36px;
}
.fs-karte-kicker {
  color: #32b4a2;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.fs-karte-title { font-size: 24px; line-height: 1.2; color: #223a4f; }
.fs-karte-copy { font-size: 16px; color: #2f2f2f; font-family: 'Open Sans', sans-serif; font-weight: 400; }
.fs-karte-link { margin-top: auto; padding-top: 6px; color: #32b4a2; font-size: 17px; }
@media (max-width: 767px) {
  .fs-karte-section > .section-inner { padding: 0 20px 20px; }
  .fs-karte { flex-direction: column; }
  .fs-karte-img { flex: 0 0 auto; width: 100%; max-height: 220px; }
  .fs-karte-text { padding: 22px 20px; }
  .fs-karte-title { font-size: 21px; }
  .fs-karte-copy { font-size: 15px; }
}
