/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.0.1757663614
Updated: 2025-09-12 09:53:34

*/

/*Styling Navigation*/

@media only screen and (max-width: 768px) {
.main-navigation {
	padding: 0 0 0 10px !important;
	}
}

@media only screen and (max-width: 991px) {
.main-navigation {
	padding: 0 16px;
	}
}

@media only screen and (min-width: 992px) {
.main-navigation {
	padding: 0 100px;
	}
}

.navigation-branding img {
	height: 60px !important;
	width: auto;
}

/*Mobile Nav*/
.main-navigation.offside {
	width: 90% !important;
}

.slideout-navigation button.slideout-exit {
	text-align: right;
}

#generate-slideout-menu.main-navigation .main-nav ul ul {
  margin-left: 20px;
	width: 94% !important;

}

.main-navigation ul ul {
		box-shadow: none;
}

/*Preise*/

.desktop-pricing-spacing {
	padding: 12px 24px;
	min-height: 50px;
}

/*Archive Pages Styling*/

.generate-columns .inside-article {
	background-color: #f5f5f5;
	border-radius: 20px;
	padding: 24px;
}

.generate-columns .inside-article h2.entry-title {
	font-size: 24px;
}


.generate-columns .inside-article .post-image img {
	border-radius: 20px;
}

.generate-columns-container .paging-navigation {
    margin-bottom: 100px;
    display: flex;
    justify-content: center;
}

@media (max-width: 1200px) {
.generate-columns .inside-article h2.entry-title {
	font-size: 20px;
}
}

/*Hero Startseite*/

.rating-stars svg {
	width: auto !important;
	height: 16px !important;
}

/* Generell*/
.one-container .site-content {
	padding: 0 16px;
}

.plr16 {
	padding: 0 16px;
}

/*HR-Linie*/
hr.pricing {
    margin: 20px 0px;
}

/*Default Block Image rechtsbünding und ab Tablet zentriert*/

.imgalignmentright {
  float: right;
}

@media (max-width: 1024px) {
  .imgalignmentright {
    float: none;
    display: block;
    margin: 0 auto; 
  }
}

.imgalignmentleft {
  float: left;
}

@media (max-width: 1024px) {
  .imgalignmentleft {
    float: none;
    display: block;
    margin: 0 auto; 
  }
}

/*Startseite Hero*/
.hero-outer {
  position: relative;
  --hero-inner-max: 1400px;
  --overhang: 120px;
  --pad: 24px;         
}

.shape-yellow {
  position: absolute;
  top: 35%;
  right: calc(50% - var(--hero-inner-max) / 2 - var(--overhang));
  width: clamp(180px, 28vw, 320px);
  transform: rotate(320deg);
  pointer-events: none;
  z-index: 0;
}

.shape-green{
  position: absolute;
  top: 0%;
  left: calc(50% - var(--hero-inner-max)/2 - 150px); 
  width: clamp(380px, 28vw, 320px);
  transform: rotate(120deg);	
  pointer-events: none;
  z-index: 0;
}

@media (max-width: 1200px) {
  .shape-yellow {
    right: -120px;  
    width: 220px;
  }

	.shape-green {
    top: 5%;
		left: -120px;
		 width: 220px;
  }
}

@media (max-width: 768px) {
  .shape-yellow {
    top: 55%;
    right: -140px;
    width: 180px;
  }
	 .shape-green {
    top: 5%;
		left: -160px;
		 width: 220px;
  }
}

html, body {
  overflow-x: clip;
}

/*Zweiter Hero*/

/*blaue Form */

.second-shape-blue{
  position: absolute;
  top: 6%;
  left: calc(50% - var(--hero-inner-max)/2 - 55px);
  width: clamp(90px, 10vw, 140px);
  aspect-ratio: 1 / 1; 
  pointer-events: none;
  z-index: 0;
}

@media (max-width: 1200px) {
  .second-shape-blue{
    left: -75px;             
    width: 110px;
  }
}

@media (max-width: 768px) {
  .second-shape-blue{
    left: -80px;             
    width: 90px;
  }
}

/*rote Form*/

.second-shape-red {
  position: absolute;
  bottom: 25%;
  left: calc(50% - var(--hero-inner-max)/2 - 10px); 
  width: clamp(60px, 8vw, 100px);
  height: clamp(120px, 18vw, 180px);
  pointer-events: none;
  z-index: 0;
}

@media (max-width: 1200px) {
  .second-shape-red {
    bottom: 15%;
    left: -15px;
    width: 70px;
    height: 180px;
  }
}

@media (max-width: 768px) {
  .second-shape-red {
    bottom: 20%;
    left: -30px;
    width: 60px;
    height: 120px;
  }
}

/*grüner Punkt*/

.second-shape-green {
  position: absolute;
  bottom: 12%;
  right: calc(50% - var(--hero-inner-max)/2 - -100px); 
  width: clamp(40px, 6vw, 100px);
  aspect-ratio: 1 / 1;
  pointer-events: none;
  z-index: 0;
}

@media (max-width: 1200px) {
  .second-shape-green {
    bottom: 5px;
    right: 10px;
    width: 55px;
  }
}

@media (max-width: 768px) {
  .second-shape-green {
    width: 45px;
  }
}

/*gelbe Form*/ 
.second-shape-yellow {
  position: absolute;
  top: 30%;
  right: calc(50% - var(--hero-inner-max)/2 - 100px);
  width: 250px;
  aspect-ratio: 1 / 1;
  transform: rotate(90deg);
  pointer-events: none;
  z-index: 0;
}

@media (max-width: 1200px) {
  .second-shape-yellow {
    top: 30%;
    right: -80px;
    width: 150px;
  }
}

/* =======================================================================
   3 Steps Slider – Basis (Slides + horizontales Scrolling)
   ======================================================================= */
/* === Patch: Slider auf allen Viewports horizontal erzwingen === */
.steps-wrap{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;      /* niemals umbrechen */
  align-items:stretch;
  gap:clamp(2rem,4vw,4rem);

  /* echtes horizontales Scrolling */
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}

.step-slide{
  /* genau eine Slide pro Viewport-Breite */
  flex:0 0 100% !important;
  min-width:100% !important;
  max-width:100%;
  box-sizing:border-box;

  /* Snap bleibt stabil, auch wenn Inhalt höher ist */
  scroll-snap-align:start;
  scroll-snap-stop:always;
}

/* Sicherheitsnetz gegen generische Mobil-Styles */
@media (max-width: 1024px){
  .steps-wrap{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
  }
}

/* Optional: unerwünschte Außenabstände verhindern (falls Blöcke margin setzen) */
.step-slide:first-child{ margin-left:0 !important; }
.step-slide:last-child { margin-right:0 !important; }


.steps-wrap::-webkit-scrollbar{ display:none; }

/* =======================================================================
   Progressbar-Navigation (Linie + Dots + Caption + Pfeile außen)
   ======================================================================= */

/* Variablen – hier bequem anpassen */
:root{
  --step-accent:#0066cc;         /* aktive Farbe / Fill */
  --step-muted:#f5f5f5;       /* Track / inaktiv */
  --step-text:#0D2029;           /* Caption */

/*Variable für Über Uns Seite geändert*/
.page-id-9016 {
  --step-muted:#fff;
}
	
  /* Pfeile */
  --step-arrow-bg:#0066cc;    /* Button-Hintergrund (gewünscht) */
  --step-arrow-icon:#fff;     /* Iconfarbe */
  --step-arrow-border:#e5e5e5;
  --step-arrow-size:40px;     /* Kreis-Durchmesser (content-box) */
  --step-arrow-pad:10px;      /* dein Padding */
  --step-arrow-gap:12px;      /* Abstand Pfeil <-> Track-Linie */
}

.steps-bar{ width:100%; }
.steps-progress{
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:stretch;
}

/* ---------------- Track mit dynamischem Gutter ---------------- */
.progress-track{
  position:relative;
  height:32px; /* Klick-/Touch-Fläche */
  /* Gutter = Pfeilbreite inkl. Padding + Gap; Dots/Fill nutzen diese Kante */
  --gutter: calc(var(--step-arrow-size) + 2*var(--step-arrow-pad) + var(--step-arrow-gap));
  overflow:visible; /* Pfeile sichtbar halten */
}
.progress-track::before{
  content:"";
  position:absolute;
  top:50%;
  left:var(--gutter);
  right:var(--gutter);
  height:4px;
  transform:translateY(-50%);
  background:var(--step-muted);
  border-radius:999px;
}

/* ---------------- Fill (Breite via --fill: 0..1 aus JS) ---------------- */
.progress-fill{
  position:absolute;
  top:50%;
  left:var(--gutter);
  height:4px;
  width:calc( (100% - 2*var(--gutter)) * var(--fill, 0) );
  transform:translateY(-50%);
  background:var(--step-accent);
  border-radius:999px;
  transition:width .35s ease;
}

/* ---------------- Dots (Position via --pos: 0..1 aus JS) --------------- */
.step-dot{
  position:absolute;
  top:50%;
  left:calc( var(--gutter) + (100% - 2*var(--gutter)) * var(--pos, 0) );
  width:16px; height:16px;
  transform:translate(-50%, -50%);
  border-radius:50%;
  background:#fff;
  border:2px solid var(--step-muted);
  display:block;
  text-decoration:none;
  text-indent:-9999px; /* visuellen Text ausblenden */
  overflow:hidden;
  outline:none;
  transition:border-color .2s, background .2s, box-shadow .2s;
  cursor:pointer;
}
.step-dot:is(:hover,:focus-visible){ box-shadow:0 0 0 6px rgba(0,0,0,.06); }
.step-dot.is-active,
.step-dot.is-done{
  border-color:var(--step-accent);
  background:var(--step-accent);
}

/* ---------------- Caption (Zahl + Titel) ------------------------------- */
.step-caption{
  display:flex;
  align-items:flex-start;   /* statt baseline */
  gap:.6rem;
  color:var(--step-text);
}

.step-index{ 
	display:inline-flex; 
	align-items:baseline; 
	gap:0.08em;
}

/* Zahl – separat skalierbar wie im Screenshot */
.step-index-num{
  font-size:120px;
  line-height:1;
  letter-spacing:.01em;
}
.step-index-dot{
  font-size:80px;
  line-height:1;
}
.step-title{
  font-size:30px;
  line-height:1.2;
}

/* ---------------- Pfeile: immer außen, Teil der 100%-Breite ------------ */
.step-arrow{
  position:absolute;
  top:50%;
  width:var(--step-arrow-size);
  height:var(--step-arrow-size);
  padding:var(--step-arrow-pad);
  display:grid;
  place-items:center;
  background:var(--step-arrow-bg);
  border:1px solid var(--step-arrow-border);
  border-radius:999px;
  box-shadow:0 1px 2px rgba(0,0,0,.08);
  cursor:pointer;
  z-index:2;
  transform:translateY(-50%); /* exakt vertikal mittig */
}
.step-prev{ left:0; }   /* am linken Rand des 100%-Containers */
.step-next{ right:0; }  /* am rechten Rand */

.step-arrow svg{ width:18px; height:18px; color:var(--step-arrow-icon); }
.step-arrow:is(:hover,:focus-visible){ box-shadow:0 0 0 6px rgba(0,0,0,.06); }
.step-arrow.is-disabled{ opacity:.4; pointer-events:none; }

/* =======================================================================
   Responsive Tweaks
   ======================================================================= */
@media (max-width:768px){
  .progress-track{ height:28px; }
  .step-dot{ width:14px; height:14px; }
	.step-title{ font-size:20px;}
	.step-index-num{  font-size:70px;}
}