/*
 Theme Name:   GeneratePress Child
 Template:     generatepress
 Version:      1.0.0
*/
/*
Theme Name: GeneratePress
Theme URI: https://generatepress.com
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
Version: 3.6.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: generatepress
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

GeneratePress, Copyright 2014-2025 EDGE22 Studios LTD.
GeneratePress is distributed under the terms of the GNU GPL

GeneratePress is based on Underscores http://underscores.me/, (C) 2012-2025 Automattic, Inc.

Actual CSS can be found in /assets/css/ folder.
*/


/* Desktop: Branding links + Nav rechts schön ausrichten */

:root {
  --wp--preset--font-size--large: 26px;
  --wp--preset--font-size--large-sm: 18px;
  --wp--preset--font-size--large-xs: 18px;
  --wp--preset--font-size--medium: 20px;
  --wp--preset--font-size--small: 15px;
  --darkblue: rgb(46,56,92);

  --customaccent: 110 170 219; /* entspricht #6eaadb */
  --mediumgray: 182 195 206; /* entspricht b6c3ce */
  --lightgray: 214 219 224; /* entspricht b6c3ce */
  --custombase3: 212 219 225;
  --sticky-top: 80px;
  --sticky-offset: 80px;
  

  --btn-pad-y: .6rem;
  --btn-pad-x: 1.4rem;
  
  
}

html { scroll-behavior: smooth; }

h1,h2,h4 {
  color:var(--darkblue);
}
@media (max-width: 767px) {
  h1{ font-size: 32px !important; }
}
.inside-article p a{
  color:var(--darkblue);
  opacity:1;
  display:inline-block;
  position:relative;

}
.inside-article p a;hover{
  text-decoration:underline;
}
.inside-article p a:after{content:'';

}

.hidden{display:none !important; }
.sticky-enabled .main-navigation.stuckElement {
    box-shadow: none;
}
.inside-navigation{
  padding:0 30px !important;
}
  .navigation-branding img, .site-logo.mobile-header-logo img {
    max-height: 55px;
}


.gb-element-1508d2f7 {
background-color: #e9eaec;
}
@media (max-width: 768px) {

  p.has-large-font-size{
    font-size:var(--wp--preset--font-size--large-sm) !important;
  }
  body, button, input, select, textarea {
      font-size: 14px;
  }
  .navigation-branding .main-title, .mobile-header-navigation .site-logo {
    margin-left: 0px;
  }
  
  .site-logo.mobile-header-logo img {
    max-height: 45px;
  }
  
  .separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header {
      padding: 50px 30px 30px 30px;
  }
  
  .gb-element-1508d2f7{
    background-image:none !important;
  }
  .gb-element-900b2d10 {
      width: 100%;
      padding-bottom:0 !important;
  }

}

@media (max-width: 1024px) {
  
  .inside-navigation{
   background-color: #b6c2ce !important;
   background: rgb(var(--custombase3) / 0.9) !important;
  }
  .header-wrap{
  z-index: 100 !important;
  position: relative;
  }
}

@media (min-width: 1025px) {
  
  
  
  
  .page-hero:after{
    content:'';
    /*
    background-image: url(/wp-content/uploads/2025/09/titelbild_web.webp) !important; */
    background-image: url(/wp-content/uploads/2025/10/titelbild-frei.webp) !important;
    background-color:#e4e7e9;
    
    width:60% !important;
    background-size: auto 100%;
    position:absolute !important;
    background-position:center center !important;
    background-repeat:no-repeat;
    height:100% !important;
   right: 0 !important;
   left: auto !important;
   opacity: 1 !important;
   z-index:0;
  }
  .page-hero{
    background-image:none !important;
  }
  .page-hero:before {
    content:'';
    background-image: linear-gradient(285deg, rgba(47, 55, 89, 0) 52%, var(--custombase3) 33%);
    background-image: linear-gradient(285deg, rgba(47, 55, 89, 0) 52%, var(--base-3) 33%);
    background-image: linear-gradient(285deg, rgba(47, 55, 89, 0) 52%, var(--base-3) 33%);
        
    position:absolute;
    left:0;
    top:0;
    height:100%;
    width:100%; 
    z-index:1;
  }
  
  .element-bg-image{
  min-height:390px !important;
  }
  
}
@media (min-width: 1600px) {
  .element-bg-image{
  min-height:540px !important;
  }
}

@media (max-width: 1600px) {
  .page-hero {
    background-size: auto 100%;
    background-position: bottom right;
  }
}

@media (min-width: 1025px) {
  .default-spacing-top { padding-top:70px !important; }
  
  .site-branding {
  margin: 0;
  line-height: 1;     /* kompakter */
  }
  .site-title { margin: 0; }
  .site-tagline {
  margin-top: 2px;
  font-size: 13px;
  letter-spacing: .04em;
  }

  /* Falls die Tagline zu breit wird, leicht begrenzen */
  .site-branding { max-width: 52ch; }

  /* Sicherheit: Navigation wirklich nach rechts drücken */
  .main-navigation { margin-left: auto; }
  .header-wrap{
    /*
   padding-left: 35px !important; padding-right:25px !important; */
    max-width:100% !important; 

  }
  header.site-header.grid-container {
      max-width:100% !important; 
      min-width:100% !important; 
      padding-left:100px !important; padding-right:100px !important;
  }
}

.page-hero p.blockquote{
  color:#2e385c;
  font-weight:400 !important;
  font-size:18px;
}
  .page-header{
  background-color:#b6c2ce !important;
 }
 .page-header.page-header-404{
min-height:calc(100vh - 220px);
margin-bottom:0 !important;
width:100%;
  }
@media (orientation: landscape) and (min-width: 1025px) {
.page-hero { min-height: 700px !important; }
}

/* Im Hochformat NICHT 100vh (z.B. auto oder geringerer Wert) */
@media (orientation: portrait) {
  .gb-element-1508d2f7.page-hero { min-height: auto  !important;}
}

/* Always show the sticky header / nav */
.site-header .auto-hide-sticky {
  transform: translateY(0) !important;
  top:0 !important;
}

.desktop-sticky-menu .site-header.hide-on-scroll,
.main-navigation.hide-on-scroll,
.sticky-is-hidden,
.auto-hide-sticky {
  transform: translateY(0) !important;
}

/* (Optional) disable the slide/transition so it never flickers */
.site-header,
.main-navigation {
  transition: none !important;
}

.is_stuck{ 
  backdrop-filter: blur(2px);          
  -webkit-backdrop-filter: blur(2px);
}
.is_stuck,.is_stuck .inside-navigation{
  background:rgb(var(--custombase3) / 0.9) !important;
  margin: 0;
  min-width: 100% !important;
} 
.is_stuck.main-navigation .main-nav ul li a, .menu-toggle, .is_stuck.main-navigation .menu-bar-item > a {
    line-height: 60px;
}

.header-wrap .site-description,
.footer-tagline {
  font-size: 13px !important;
  font-weight: 500;
  letter-spacing: 0.087em;
  opacity:0.6;
   font-family: var(--gp-font--bitter);
   color:rgba(0,0,0,0.7);
}

.copyright .has-small-font-size { font-size:13px !important;   color: rgba(0,0,0,0.6) !important; }
.copyright a{ padding:0 0px; display:inline-block; margin:0 15px 0 0 ;   color: rgba(0,0,0,0.6) !important; }

body h4.has-x-large-font-size {
    font-size:67px !important;
}

:root{
  --faq-speed: 260ms;
  --faq-ease: cubic-bezier(.2,.7,.2,1);
}

.msr{
  font-family: 'Material Symbols Rounded';
  font-size: 18px;           /* 24 für etwas größer */
  line-height: 1;
  font-variation-settings: 'wght' 250, 'FILL' 0, 'GRAD' 0, 'opsz' 24;
  color: var(--ink);
  width: 22px; height: 18px; display:grid; place-items:center;
 position:relative; top:4px; margin-bottom:-4px;
}

.custom-list {
  list-style: none;          /* Standardpunkte entfernen */
  margin: 0 0 30px 0;                 /* keine Einrückung */
  padding: 0;
}

.custom-list li,.faq .answer li {
  position: relative;
  padding-left: 1.2rem;      /* Platz für Linie links */
}

.custom-list li::before,
.faq .answer li::before {
  content: "○";
  content: "▪";
  content: "•";

  position: absolute;
  color:#94a0b2;
  color:var(--accent);
  color:#2e385c; /*dunkelblau*/
  left: 0px;
  top:-1px;
  font-size:100%;         
  font-weight:600 !important;
}


.hero-zitat{
  opacity:0.5;
  position:absolute;
  bottom:0px;
  z-index:1;
  position:absolute !important;
  position:fixed !important;
  padding-bottom:0;
  max-width:1600px;
  margin:0 auto; 
}

p.zitat-author{
  display:block;
  font-weight:600; text-align:right;
  font-size:.85em;
  opacity:0.8;
  letter-spacing:.04em;
  color: #fff;
  margin-top:10px;
}
p.testimonial-author{
  display:inline-block;
  font-weight:400 !important; text-align:right;
  font-size:88% !important;
  letter-spacing:.04em;
  opacity:0.6;
}
.blockquote{position:relative; }
.blockquote::before{ 
  content: open-quote; 
  left: 0; }
 
.blockquote::after { 
  content: close-quote;
}

.gb-text-b45fd650 .gb-shape{ display:none; }
.gb-text-b45fd650 .gb-shape svg {
    color: #fff;
    fill: #fff;
}

.image-100{
  min-width:100%;
  width:100% !important;
}

hr.wp-block-separator  {
    background-color: rgb(var(--mediumgray) / 0.3) !important;
    border-top: 2px solid rgb(var(--mediumgray) / 0.3) !important;
    border: 0;
    height: 1px;
}
 h3{ color:var(--contrast-2); }

 h3.ol-h3 {
   display:inline-block; 
   color:var(--contrast-2);
 }
 
 h3.ol-h3 + h4{margin-top:-24px; padding-left:25px; margin-bottom: 20px;  }
 
 
 p.mb-0{margin-bottom:0 !important;}
 
 .custom-border-left {  border-left: 2px solid rgb(var(--mediumgray) / 0.6); }
 .custom-border-top {  border-top: 2px solid rgb(var(--mediumgray) / 0.6); }

.bg-light{
  background:#f0f0f0;
}
.bg-mediumlight{ background-color:rgba(255,255,255,0.5) }
.bg-blur{  backdrop-filter: blur(8px);          
  -webkit-backdrop-filter: blur(8px); }
 
.opacity-0{ opacity:0; }



/* 1) Das Bild/der Container bleibt kleben */
._gb-sticky{
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: var(--sticky-offset, 96px); /* an deinen Header anpassen */
  align-self: start;               /* wichtig in Grid/Flex-Layouts */
  z-index: 2;
}

/* 2) Vorfahren dürfen Sticky nicht "abschneiden" */
.sticky-scope,
.sticky-scope > .gb-container,
.sticky-scope .gb-grid,
.sticky-scope .gb-grid-wrapper,
.sticky-scope .gb-grid-column{
  overflow: visible !important;
}

/* Optional schön: Bild füllt die Spalte */
.gb-sticky img{ display:block; width:100%; height:auto; }

/* Adminbar (eingeloggt) berücksichtigen */
.admin-bar ._gb-sticky{
  top: calc(var(--sticky-offset, 96px) + 32px);
}

/* Mobil sticky deaktivieren (optional) */
@media (max-width: 768px){
  ._gb-sticky{ position: static; }
}

/* sticky already works via gb-sticky; keep it */
._photo-stack{
  position: relative;          /* to stack images */
  overflow: hidden;
}

/* Base image in normal flow */
._photo-stack .ph{
  display:block;
  width:100%;
  height:auto;
}

/* Fading image sits on top and is hidden initially */
._photo-stack .ph--fade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition: opacity 600ms ease;
  pointer-events:none;
}

/* When class is added, fade the second image in */
._photo-stack.is-inview .ph--fade{ opacity:1; }

/* (already from earlier) ensure sticky works nicely in grids */
._gb-sticky{ position:sticky; top:var(--sticky-offset, 96px); align-self:start; z-index:2; }
._admin-bar .gb-sticky{ top:calc(var(--sticky-offset, 96px) + 32px); }




/* Desktop */
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: #2e385c;
}

.main-navigation .main-nav ul li.active > a {
    letter-spacing: -0.005em;
    font-weight:bold;
}

.main-navigation .main-nav ul li[class*="current-menu-"] > a:hover {
  color: rgb(var(--customaccent)) !important;
}

.main-navigation.has-branding .menu-toggle, .main-navigation.has-sticky-branding.navigation-stick .menu-toggle {
    padding-right: 0px !important;
}
.main-navigation a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items {
    font-size: 14px !important;
}

/* Offcanvas/Mobil (falls genutzt) */
.slideout-navigation .current-menu-item > a {   color: #2e385c !important;  }

#leistungen { scroll-margin-top: calc(var(--sticky-offset, 20px) - 22px); }
#ueber-mich { scroll-margin-top: calc(var(--sticky-offset, 20px) - 22px); }
#home { scroll-margin-top: calc(var(--sticky-offset, 20px) - 22px); }
#kontakt { scroll-margin-top: calc(var(--sticky-offset, 20px) - 22px); }



/* Base button */
.btn{
  --bg-1: var(--brand-sky-400);
  --bg-2: var(--brand-sky-500);
  font-family: var(--gp-font--dosis);
  letter-spacing: 0.06em;
color:#fff !important;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: var(--btn-pad-y) var(--btn-pad-x);
  color: var(--text);
  text-decoration: none;
 background:
 linear-gradient(135deg, rgba(46,56,92,.18), rgba(46,56,92,1) 85%),
  linear-gradient(135deg, rgba(27,163,225,0.9), rgba(27,163,225,0.9));
  background:var(--darkblue);

  /* HOVER: vertauschen
  background: linear-gradient(135deg, rgba(46, 56, 92, .18), rgba(46, 56, 92, 0.2) 85%), linear-gradient(135deg, rgba(27, 163, 225, 0.1), rgba(27, 163, 225, 0.2));
  */
  transition: transform .12s ease, box-shadow .12s ease, background .2s ease;
}

/* Brand gradient + subtle diagonal sheen (like the logo geometry) */
.btn--brand{
  background:
    linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,0) 45%) /* sheen */,
    linear-gradient(135deg, var(--bg-1), var(--bg-2));                       /* core */
  color: #0f1b2d;
  color: #0f1b2d; /* only used for outline variant below; keep here for scope */
   /* final color for filled */
}

/* Arrow */
.btn--brand > span::after{
  content: "→";
  transition: transform .15s ease;
  display: inline-block;
}

/* Hover/focus/active */
.btn--brand:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(38,50,72,.18);

}
.btn--brand:hover > span::after{ transform: translateX(3px); }

.btn--brand:active{
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(38,50,72,.14) inset, 0 2px 6px rgba(38,50,72,.18);
}

/* Keyboard focus */
.btn:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--brand-sky-400) 70%, white);
  outline-offset: 2px;
}

/* Disabled look (if you add [aria-disabled="true"]) */
.btn[aria-disabled="true"]{
  opacity: .55; pointer-events: none;
}

/* Optional variants */
.btn--outline{
  --text: var(--brand-navy);
  background: transparent;
  border: 2px solid color-mix(in srgb, var(--brand-sky-400) 65%, var(--brand-ice));
  color: var(--text);
}
.btn--outline:hover{
  background: linear-gradient(135deg, var(--brand-ice), #f3f5f7);
}

/* Size helpers (optional) */
.btn--lg{ font-size: 1.0625rem; --btn-pad-y: 1rem; --btn-pad-x: 1.6rem; }
.btn--sm{ font-size: .9375rem;  --btn-pad-y: .7rem; --btn-pad-x: 1.1rem; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .btn{ transition: none; }
  .btn--brand > span::after{ transition: none; }
}

/* GeneratePress Site CSS */

.navigation-branding {
  margin-left:0 !important;
}

.main-navigation:not(.slideout-navigation) .main-nav li.nav-button a {
  background: var(--accent-2);
  line-height: 38px;
  padding: 8px 32px 9px 32px;
  margin-left: 24px;
  transition: all 0.6s ease 0s;
   color: #ffffff;
}

.main-navigation:not(.slideout-navigation) .main-nav li.nav-button a:hover {
  color: #ffffff;
}

.element-bg-image{
  position:relative;
}
.element-bg-image div{
  position:relative; z-index:2; 
}
.element-bg-image{
 background-size: 41% auto;
 background-position:center left;
}
.element-bg-image:after{
    content: '';

background: rgb(var(--lightgray));
position: absolute;
z-index: 1;
width: 60%;
right: 0;
top: 0;
height: 100%;
}

.button,
.wp-block-button__link {
    background-color: #374065;
    color: #fff !important;
    padding: 12px 32px;
    border-radius: 4px;
}

.button:hover,
.wp-block-button__link:hover {
    background-color: #56abdf;
}

.site-footer .is-layout-flex{
  margin-bottom:0 !important;
}
.site-footer a{
  color:var(--accent);
  text-transform:none !important;
}


@media (max-width: 1024px) {
    .gb-element-826c9abf {
        padding-left:0px  !important;
        padding-right: 0px  !important;
    }
    
}


#cmplz-document h2{
  font-size:15px !important; 
}
#cmplz-document h3{
  color:var( --darkblue);
  font-size:15px !important; 
}
#cmplz-document .cmplz-dropdown{
 border-bottom: 1px solid rgb(var(--mediumgray) / 1) !important;
}
/* Container COOKIE BANNER */
.cmplz-cookiebanner{}

/* Logo */
.cmplz-cookiebanner .cmplz-logo{}
/* Title */
.cmplz-cookiebanner .cmplz-title{}
/* Close icon */
.cmplz-cookiebanner .cmplz-close{}

/* Message */
.cmplz-cookiebanner .cmplz-message{}

 /* All buttons */
.cmplz-buttons .cmplz-btn{
  border-radius: 0;
}
/* Accept button */
.cmplz-btn .cmplz-accept{} 
 /* Deny button */
.cmplz-btn .cmplz-deny{}
 /* Save preferences button */
.cmplz-btn .cmplz-deny{}
 /* View preferences button */
.cmplz-btn .cmplz-deny{}
.cmplz-manage-consent {
  background:#fff !important;
font-size:13px !important; 
font-weight:bold;
color:rgb(--customaccent) !important; 
height:15px; } 

.cmplz-manage-consent{ bottom:0 !important;
  padding:4px 8px !important; height:25px !important;
}
.cmplz-manage-consent::before{
  content: "";
 right:0;
  width:50px; height: 50px;
  padding:0 10px !important;
  display: none;
  position:absolute;
  top:-30px;
  background-color:#fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50% 50%;
  /* SVG als Data-URL; du kannst das Motiv tauschen (z.B. Pfeil, Telefon, Mail) */
  background-image: url("data:image/svg+xml;utf8,\
  <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231ba3e1'>\
    <path d='M20 2H4a2 2 0 0 0-2 2v13.5A2.5 2.5 0 0 0 4.5 20H18l4 4V4a2 2 0 0 0-2-2zM6 7h12v2H6V7zm0 4h8v2H6v-2z'/>\
  </svg>");
}


 /* Document hyperlinks */
.cmplz-links .cmplz-documents{}

 /* Categories */
.cmplz-cookiebanner .cmplz-category{}
.cmplz-cookiebanner .cmplz-category-title{} 

/* Manage consent tab */
#cmplz-manage-consent .cmplz-manage-consent{} 

/* Soft cookie wall */
.cmplz-soft-cookiewall{}

/* Placeholder button - Per category */
.cmplz-blocked-content-container .cmplz-blocked-content-notice{}

/* Placeholder button & message - Per service */
.cmplz-blocked-content-container .cmplz-blocked-content-notice,
.cmplz-blocked-content-notice{}
button.cmplz-accept-service{}

/* Styles for the AMP notice */
#cmplz-consent-ui, #cmplz-post-consent-ui {}
/* Message */
#cmplz-consent-ui .cmplz-consent-message {}
/* Buttons */
#cmplz-consent-ui button, #cmplz-post-consent-ui button {}

/* End COOKIE BANNER */