@charset "UTF-8";
/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* ----- Kontaktformulare -----*/

.wpcf7-spinner {
  position: absolute;
}

.wpcf7 .wpcf7-submit {
  background-color: #004986 !important;
}
.wpcf7 .wpcf7-submit:hover {
  background-color: #5988B0 !important;
}
.wpcf7 .ajax-loader {
  position: absolute;
}
.wpcf7 .cf7md-checkbox-item {
  width: 92%;
}
.wpcf7 .cf7md-checkbox-label {
  color: white;
}
.wpcf7 .mdc-text-field {
  background-color: transparent !important;
}
.wpcf7 .wpcf7-email {
  background-color: white;
}
.wpcf7 .wpcf7-response-output {
  color: white !important;
}
.wpcf7-response-output {
  margin: 48px 0px !important;
  padding: 24px !important;
  border-bottom: none !important;
}
div.wpcf7-validation-errors, div.wpcf7-acceptance-missing {
  border: 2px solid #FF9E1B !important;
}
div.wpcf7-mail-sent-ok {
  border: 2px solid #12D1AA !important;
  color: #fff !important;
  background-color: #12D1AA !important;
  margin-top: 0px !important;
}
.wpcf7 .cf7md-admin-customize-message {
  display: none !important;
}
.wpcf7 .mdc-line-ripple {
  background-color: #004986 !important;
}
.wpcf7 #cf7md-form .mdc-checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background {
  background-color: #004986 !important;
}
.wpcf7 #cf7md-form .mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled), .wpcf7 #cf7md-form .mdc-radio .mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle, .wpcf7 #cf7md-form .mdc-radio .mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {
  border-color: #004986 !important;
}
.wpcf7 #cf7md-form .mdc-button--raised:not(:disabled):hover, .wpcf7 #cf7md-form .mdc-button--unelevated:not(:disabled):hover {
  background-color: #5988B0 !important;
  color: #050505 !important;
}
.wpcf7 #cf7md-form .mdc-text-field:not(.mdc-text-field--disabled), .wpcf7 .mdc-select {
  background-color: #fff !important;
}
.wpcf7 #cf7md-form .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input, .wpcf7 .mdc-select {
  border: 1px solid #c2c2c2;
  border-radius: 5px;
}
.wpcf7 #cf7md-form .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input, .wpcf7 .mdc-select--invalid {
  border-bottom-color: #CE0D0D !important;
}
.wpcf7 .wpcf7-submit {
  padding: 16px 32px !important;
  height: auto !important;
  text-transform: none !important;
  background-color: #004986 !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 1rem !important;
}
#contact-form-success-msg-wrapper {
  display: none;
}

.wpcf7 .col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

/* ----- Cookie-Consent ----- */ 

#cookie-consent-wrapper {
  background: #004986;
  background: rgba(0, 73, 134, 0.9);
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 9999999999;
}

.cookie-consent-dialog {
  background-color: #fff;
  margin: auto;
  width: 90%;
  max-width: 990px;
  padding: 72px;
  margin-top: calc(10vh);
  box-shadow: 0px 4px 8px #163148;
  max-height: 90vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.kw-cookie-button {
  cursor: pointer;
  text-align: center;
  padding: 16px 32px 16px 32px;
  width: 260px;
}

.kw-cookie-button:first-child {
    margin-bottom: 16px;
    margin-top: 32px;
}

.cookie-settings-save {
  border: 1px solid #004986;
  color: #004986;
  background-color: #fff;
}
.cookie-accept-all {
  border: 1px solid #004986;
  color: #fff;
  background-color: #004986;
}
.consent-content-removed-block {
  border: 2px solid #979FAA;
}

/* WICHTIG: Cookie Banner Mobile Fixes - alle Breakpoints abdecken */
@media (max-width:742px){
    .cookie-consent-dialog {
        padding: 24px;
        margin-top: 5vh;
        max-height: 90vh;
    }

   .cookie-consent-dialog p, .cookie-consent-dialog .cookie-info-text {
     font-size: 0.75rem !important;
   }

   .cookie-consent-dialog h2 {
     font-size: 1.4rem !important;
   }
   
   /* FIX: Buttons auf Mobile immer 100% Breite */
   .kw-cookie-button {
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px 0 !important;
    }
    
    #cookie-consent-wrapper .mt-60 {
        margin-top: 20px !important;
    }
    
    #cookie-consent-wrapper .text-right {
        text-align: center !important;
    }
}


@media (max-width:1366px){
  
    .cookie-consent-dialog {
        padding: 40px;
    }


  .cookie-consent-dialog h2 {
    font-size: 1.6rem !important;
  }
  
  .cookie-consent-dialog p, .cookie-consent-dialog .cookie-info-text {
    font-size: 0.73rem !important;
  }

    .cookie-name-wrapper {
     margin-top: 16px;
     margin-bottom: 16px;
   }
}

/* Extra kleine Geräte - noch kompakter */
@media (max-width: 390px) {
    .cookie-consent-dialog {
        width: 95%;
        padding: 16px;
        margin-top: 3vh;
        max-height: 94vh;
    }
    
    .cookie-consent-dialog h2 {
        font-size: 1.2rem !important;
        margin-bottom: 12px !important;
    }
}

/* ============================================================
   ERGAENZUNGEN FUER COOKIE BANNER (Switches & Typo)
   (Ohne Margins, ohne Grid, MIT d-none)
   ============================================================ */

/* --- Switches / Toggles --- */
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 22px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 0px;
  bottom: -2px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
  border: 1px solid #979FAA;
}

input:checked + .slider {
  background-color: #004986;
}

input:disabled + .slider {
  background: rgba(0, 73, 134, 0.3);
  cursor: not-allowed;
}

input:focus + .slider {
  box-shadow: 0 0 1px #004986;
}

input:checked + .slider:before {
  -webkit-transform: translateX(34px);
  -ms-transform: translateX(34px);
  transform: translateX(34px);
}

/* Runde Slider */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.switch-label {
  width: 34px;
  float: right;
  text-align: left;
  padding: 5px;
  line-height: 22px;
}

.cookie-swither {
  line-height: 22px;
  vertical-align: middle;
}


/* --- Typografie & Button Styles (Variablen aufgelöst) --- */

.kw-cookie-button {
  font-size: 1rem; 
}

.cookie-settings-save:hover {
    background-color: #f1f3f5;
}

.cookie-accept-all:hover {
    background-color: #004c8b;
}

.font-bold {
    font-weight: bold;
}

.font-light {
    font-weight: 300;
}

.font-size-regular {
    font-size: 1rem;
}

.font-size-small {
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
}

.line-height-regular {
    line-height: 1.5;
}

.line-height-small {
    line-height: 1.5;
}

/* --- Layout Helper (Minimal) --- */

.text-right {
    text-align: right;
}

/* --- Functional Classes --- */

.d-none {
    display: none !important;
}

/* Animation Classes (werden im JS getriggert) */
.animated {
    animation-duration: 0.5s;
    animation-fill-mode: both;
}

.fadeIn {
    animation-name: fadeIn;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ============================================================
   FINALER FIX: Cookie Banner für Blocksy
   ============================================================ */

/* 1. Das Layout-Gerüst (Flexbox statt Bootstrap) */
#cookie-consent-wrapper .row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    margin-right: -15px;
    margin-left: -15px;
}

#cookie-consent-wrapper .mb-20 {
    margin-bottom: 20px;
}

/* 2. Spaltenbreiten definieren */
#cookie-consent-wrapper .col-xl-8 {
    width: 65%;
    padding: 0 15px;
}

#cookie-consent-wrapper .col-xl-4 {
    width: 35%;
    padding: 0 15px;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
}

/* 3. FIX: TEXT KLEBT AM SWITCH */
#cookie-consent-wrapper .cookie-name {
    margin-right: 20px !important;
    white-space: nowrap;
}

/* 4. FIX: SPRINGEN BEI AN/AUS */
#cookie-consent-wrapper .switch-label {
    display: inline-block !important; 
    width: 40px !important;
    min-width: 40px !important;
    text-align: left;
    white-space: nowrap !important;
    margin-left: 10px !important;
}

/* 5. Switch-Element säubern */
#cookie-consent-wrapper .switch {
    margin-bottom: 0 !important;
    margin-right: 0 !important;
    flex-shrink: 0;
}

/* --- MOBILE VERSION (Handy) --- */
@media (max-width: 991px) {
    #cookie-consent-wrapper .row {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    #cookie-consent-wrapper .col-xl-8,
    #cookie-consent-wrapper .col-xl-4 {
        width: 100% !important;
        display: block !important;
    }

    #cookie-consent-wrapper .col-xl-4 {
        display: flex !important;
        justify-content: space-between !important;
        margin-top: 15px;
        border-bottom: 1px solid #eee;
        padding-bottom: 10px;
        margin-bottom: 10px;
    }
}

/* ----- Trusted Signals ----- */

.trusted-signal-group-wrapper .block-title {
	 margin-bottom: 50px !important;
	text-align: center !important;
}
 .trusted-signal-group-wrapper .schema-faq-question {
	 flex-direction: column;
}
 .trusted-signal-group-wrapper .ts-group-title {
	 font-size: 22px !important;
	 margin: 0px !important;
}
 .trusted-signal-group-wrapper .ts-group-short-description {
	 font-size: 22px !important;
	 margin-top: 6px !important;
	 line-height: 24px !important;
}
 .trusted-signal-group-wrapper .schema-faq-answer {
	font-size: 1em;
	max-height: 0;
	height: auto;
	margin: 0;
	overflow: hidden;
	transition: max-height .1s;
	line-height: 32px;
}
 .trusted-signal-group-wrapper .ts-group-description {
	 border-top: 1px solid;
	 padding: 24px 0;
}
 .trusted-signal-group-wrapper .ts-group-links {
	 border-top: 1px solid;
	 padding: 24px 0;
}
 .trusted-signal-group-wrapper .wp-block-yoast-faq-block .schema-faq-question {
	 padding-right: 0px !important;
}

.trusted-signal-group-wrapper .wp-block-border-logo {
	margin: 20px 0 0 0;
	border: 1px solid #bec3ca;
	width: 100%;
	text-align: center;
	min-height: 250px;
}

.trusted-signal-group-wrapper .kw-block-ref-partner {
	min-height: 136px;
	background-color: #f1f3f5;
	padding: 20px;
  	padding-top: 20px;
  	padding-bottom: 20px;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -18px;
  margin-left: -18px;
}

.mb-60, .mb-60-children * {
  margin-bottom: 60px !important;
}

  @media (min-width: 1080px){
.col-xl-6 {
  flex: 0 0 33%;
  max-width: 33%;
} }

  @media (max-width: 768px){
.col-md-6 {
  flex: 0 0 50%;
  max-width: 50%;
}}

  @media (max-width: 576px){
.col-sm-12 {
  flex: 0 0 100%;
  max-width: 100%;
}}

.col-xl-6, .col-md-6, .col-sm-12 {
position: relative;
width: 100%;
padding-right: 18px;
padding-left: 18px;}
