/*
Theme Name: ZQUAD Theme (Hello Child)
Description: Entdecke das maßgeschneiderte WordPress-Theme von ZQUAD, der Full-Service-Agentur für kreative und mutige Markenauftritte. Unser Theme vereint ästhetisches Design mit leistungsstarker Funktionalität und bietet eine flexible Grundlage für professionelle We
Author: ZQUAD Full-Service-Agentur
Author URI: zquad.de
Author Email: hallo@zquad.de
Version: 1.0.0
Text Domain: hello-elementor-child
Template: hello-elementor
*/
/*
Add your custom styles here
*/
/* Mobile adjustment */
@media (max-width: 767px) {
    .elementor-element {
        --widgets-spacing: 20px !important;
    }
}

/* Standard CSS-Syntax */
p, li, .e-n-accordion-item-title-text, .elementor-widget-text-editor div {
	hyphens: auto;
	hyphenate-limit-chars: 5 5 5;
	hyphenate-limit-lines: 5;

	/* Unterstützung für alle relevanten Browser */
	-webkit-hyphens: auto; /* Webkit-Unterstützung */
	-ms-hyphens: auto; /* Internet Explorer */
	-moz-hyphens: auto; /* Mozilla */
}

.no-hyphen, .no-hyphen * {
	hyphens: manual;
	-webkit-hyphens: manual; /* Webkit-Unterstützung */
	-ms-hyphens: manual; /* Internet Explorer */
	-moz-hyphens: manual; /* Mozilla */
}

body {
	overflow-x: hidden;
}
ul {
	padding-left: 25px;
}
li::marker {
	font-size: 80%;
}
.text-box p, .text-box li {
	margin-bottom: 5px;
}
#menu-toggle-container {
	min-height: 80px;
    transition: all .5s ease;
	background: rgba(50, 56, 73, .95);
	height: 80px;
    overflow: hidden;
    transition: all .5s ease;
    pointer-events: auto;
}
#menu-toggle-container.open {
	min-height: calc(100vh - 30px);
    width: 100%;
	background: rgba(50, 56, 73, 1);
}
#menu-toggle-container a {
	padding-left: 0;
	padding-right: 0;
}
@media (max-width: 767px) {
    #menu-toggle-container a {
		font-size: 22px;
	}
}
#menu-toggle-container #menu-toggle-icon .elementor-icon {
	transform: rotate(0);
	transition: transform .5s ease;
}
#menu-toggle-container.open #menu-toggle-icon .elementor-icon {
	transform: rotate(225deg) !important;
}
#menu-toggle-container #menu-toggle-content {
	opacity: 0;
	transform: translateY(-30px);
	transition: all .65s ease;
	height: calc(100vh - 160px);
    width: 100vw;
}
#menu-toggle-container.open #menu-toggle-content {
	opacity: 1;
	transform: none;
}
#menu-toggle-wrapper #menu-logo {
	transition: all .65s ease;
}
#menu-toggle-wrapper.elementor-sticky--effects.closed #menu-toggle-container,
#menu-toggle-wrapper #menu-toggle-container {
	transform-origin: top left;
	transform: scale(1);
}
#menu-toggle-wrapper.elementor-sticky--effects.closed #menu-logo,
#menu-toggle-wrapper #menu-logo {
	transform-origin: 22px 0px;
	transform: scale(1);
}
#menu-toggle-wrapper.elementor-sticky--effects.closed #menu-toggle-container, #menu-toggle-wrapper.elementor-sticky--effects.closed #menu-logo {
	transform: scale(.75);
}


/* Verbesserte Fade-In-Up Animation */
.fadeInUp {
    animation-name: fadeInUpAnimation !important;
}

/* Verbesserte Fade-In-Down Animation */
.fadeInDown {
    animation-name: fadeInDownAnimation !important;
}

/* Verbesserte Fade-In-Left Animation */
.fadeInLeft {
    animation-name: fadeInLeftAnimation !important;
}

/* Verbesserte Fade-In-Right Animation */
.fadeInRight {
    animation-name: fadeInRightAnimation !important;
}

.fadeInUp, .fadeInDown, .fadeInLeft, .fadeInRight {
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
    animation-fill-mode: forwards !important;
}

/* Keyframes für verbesserte Animationen */
@keyframes fadeInUpAnimation {
    0% { opacity: 0; transform: translateY(100px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDownAnimation {
    0% { opacity: 0; transform: translateY(-100px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeftAnimation {
    0% { opacity: 0; transform: translateX(-100px); }
    100% { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRightAnimation {
    0% { opacity: 0; transform: translateX(100px); }
    100% { opacity: 1; transform: translateX(0); }
}

/* VoBa Icons */
.voba-icon svg path {
	transition: fill .15s ease;
}
.voba-icon.white svg path:not(.cls-1) {
	fill: var(--e-global-color-secondary);
}
.voba-icon.white svg path.cls-1 {
	fill: white;
}
.voba-icon svg:hover path, .elementor-icon-list-item a:hover svg path {
	fill: var(--e-global-color-327b953) !important;
}


/* Formular */
input[type="date"]:before {
	content: attr(placeholder) !important;
	color: var(--e-global-color-f1bc822) !important;
	display: block;
}
input::-webkit-date-and-time-value {
	text-align: left !important;
}
input[type="date"] {
	display: block;
    -webkit-appearance: none;
    padding: 10px; /* Versuche, das Padding hier hinzuzufügen */
    border: 1px solid #ccc; 
    font-size: 16px;
}

/* Für Webkit-Browser (wie Safari) spezifisch */
input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-calendar-picker-indicator {
    -webkit-appearance: none;
}
input::placeholder,
textarea::placeholder {
  color: var(--e-global-color-f1bc822) !important;
  opacity: 1 !important;
}

input:-ms-input-placeholder, 
textarea:-ms-input-placeholder {
  color: var(--e-global-color-f1bc822) !important;
  opacity: 1 !important;
}

input::-ms-input-placeholder, 
textarea::-ms-input-placeholder {
  color: var(--e-global-color-f1bc822) !important;
  opacity: 1 !important;
}
input[disabled] {
	color: var(--e-global-color-f1bc822) !important;
	border-color: var(--e-global-color-f1bc822) !important;
	opacity: 1;
}
.elementor-widget-form .e-form__buttons {
	margin-top: 40px;
}
.e-form__buttons .elementor-field-type-previous {
	width: 50%;
	justify-content: flex-end;
}
.e-form__buttons .elementor-field-type-submit, .e-form__buttons .elementor-field-type-next {
	width: 50%;
	justify-content: flex-start;
}
.e-form__buttons .elementor-field-type-next:only-child {
	width: 100%;
	justify-content: center;
}
.e-form__buttons .elementor-field-type-previous button,
.button-style-2 .elementor-button {
	border: 2px solid var(--e-global-color-accent) !important;
    padding: 10px 24px !important;
	background: none !important;
	color: var(--e-global-color-primary) !important;
}
.e-form__buttons .elementor-field-type-previous button:hover,
.button-style-2 .elementor-button:hover {
	border-color: var(--e-global-color-secondary) !important; 
}
.e-form__buttons .elementor-field-type-previous button::before,
.button-style-2 .elementor-button::before {
	content: unset;
}
.button-style-2 .elementor-button .elementor-button-text {
	color: var(--e-global-color-primary) !important;
}
.button-style-2.termin-vereinbaren .elementor-button {
	margin-left: 40px;
	overflow: visible;
}
.button-style-2.termin-vereinbaren .elementor-button::before {
	content: "";
	width: 40px;
	height: 30px;
	background: url("/wp-content/uploads/2024/10/close-blue.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: top left;
	transform: none;
	left: -40px;
	top: -2px;
}

.elementor-widget-form .elementor-field-group > label { 
	display: none;
}
#kontaktformular_popup .elementor-field-group-termin_bereits_kunde, .elementor-field-group-termin_bereits_kunde .elementor-field-subgroup {
	justify-content: center;
}
.elementor-field-group .elementor-field-textual, .elementor-field-group input { 
 	padding: 16px 20px !important;	
}
.elementor-widget-form .form-head {
    font-weight: 400;
	margin-bottom: 40px;
	margin-top: 5px;
	display: flex;
    gap: 25px;
	padding-right: 50px;
}
.elementor-widget-form .form-head .step {
    font-weight: 700;
}
.elementor-widget-form .form-head .step span {
    color: var(--e-global-color-secondary);
}
@media (max-width: 767px) {
    .elementor-widget-form .form-head {
		margin-top: 0px;
    	gap: 0px;
		flex-direction: column;
		margin-bottom: 20px;
	}
	.elementor-widget-form .form-head .step, 
	.elementor-widget-form .form-head .termin {
    	margin: 0;
	}
}
.elementor-widget-form .form-title-question {
	text-align: center;
}
.elementor-widget-form .elementor-field-group {
	align-items: flex-start;
	margin-bottom: 30px !important;
	align-items: center;
}
@media (max-width: 767px) {
	.elementor-widget-form .elementor-field-group:not(.elementor-error) {
		margin-bottom: 15px !important;
	}
	.elementor-widget-form .elementor-field-group {
		
	}
	.elementor-widget-form .form-title-question {
		margin-top: 40px !important;
	}
}
.elementor-widget-form .elementor-field-group.elementor-error label,
.elementor-widget-form .elementor-field-group.elementor-error input,
.elementor-widget-form .elementor-field-group.elementor-error select,
.elementor-widget-form .elementor-field-group.elementor-error .select-selected,
.elementor-widget-form .elementor-field-group.elementor-error label::before {
	border-color: var(--e-global-color-4f7a0f5) !important;
	color: var(--e-global-color-4f7a0f5) !important;
}
.elementor-widget-form .elementor-field-group.elementor-error input::placeholder {
	color: #EF9999 !important;
}
.elementor-widget-form .elementor-field-group.elementor-error input::-ms-input-placeholder {
	color: #EF9999 !important;
}
.elementor-widget-form .elementor-field-group.elementor-error input:-ms-input-placeholder {
	color: #EF9999 !important;
}
.elementor-message-danger {
	color: var(--e-global-color-4f7a0f5) !important;
}
.elementor-message-danger::before {
	vertical-align: baseline;
}
.elementor-widget-form .elementor-field-option label {
	display: flex !important;
}
.elementor-help-inline {
	position: absolute;
	bottom: -16px;
	margin: 0;
	font-size: 12px !important;
	white-space: nowrap;
}
form > .elementor-message {
	text-align: center;
	margin-top: 20px;
}
/*
.elementor-field-type-tel .elementor-form-help-inline.elementor-message-danger {
	visibility: hidden;
	font-size: 0px !important;
}
.elementor-field-type-tel .elementor-form-help-inline.elementor-message-danger::before, .elementor-field-type-tel .elementor-form-help-inline.elementor-message-danger::after {
	visibility: visible;
	font-size: 12px !important;
}
.elementor-field-type-tel .elementor-form-help-inline.elementor-message-danger::after {
	content: "Dieses Feld ist erforderlich. (Nur Zahlen)";
}
*/
/* Custom select styling */
.elementor-select-wrapper .select-caret-down-wrapper {
    z-index: 9;
}
.custom-select {
  	position: relative;
  	width: 100%;
  	cursor: pointer;
  	padding: 0;
}

/* Selected item styling */
.select-selected {
	color: var(--e-global-color-primary);
}

/* Dropdown items styling */
.select-items {
  	position: absolute;
  	width: 100%;
  	top: calc(100% - 2px);
	left: 0;
  	z-index: 99;
	border-style: solid;
	border-top: none;
}

/* Hide dropdown items by default */
.select-hide {
  display: none;
}

/* Dropdown options styling */
.select-items div {
  padding: 16px 20px;
  cursor: pointer;
}

/* Hover effect for dropdown options */
.select-items div:hover {
  background-color: var(--e-global-color-327b953);
}

/* Styling for selected option */
.same-as-selected {
  font-weight: bold;
  color: var(--e-global-color-primary);
}

/* Checkbox Styling */

.elementor-field-option input[type="checkbox"], .elementor-field-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
	top: 0;
	left: 0;
	height: 40px;
	width: 40px;
}

.elementor-field-option {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: 'Arial', sans-serif; 
    font-size: 24px; 
    color: var(--e-global-color-primary); 
}

.elementor-field-option label {
    display: inline-flex;
    align-items: center;
    position: relative;
    cursor: pointer;
}

.elementor-field-option label::before {
    content: "";
    width: 40px;  
    height: 40px; 
    border: 2px solid var(--e-global-color-primary); 
    display: inline-block;
    margin-right: 10px; 
    box-sizing: border-box;
}

.elementor-field-option input[type="checkbox"]:checked + label::after, .elementor-field-option input[type="radio"]:checked + label::after {
    content: "";
    position: absolute;
	left: 7px;
    width: 25px;
    height: 25px;
    background-size: contain;
	background-image: url("/wp-content/uploads/2024/10/close-icon.svg");
	background-repeat: no-repeat;
}
.flatpickr-current-month, .flatpickr-current-month .numInputWrapper {
	display: flex !important;
}
.flatpickr-current-month select, .flatpickr-current-month input {
	border: none !important;
	font-size: 18px !important;
	font-family: "GenosGFG" !important;
	background: none !important;
}

/* Container for Button Effects */
.elementor-button {
    position: relative;
    overflow: hidden; /* Ensures the fill effect stays within button bounds */
}

/* Fill box effect for Elementor buttons */
.elementor-button::before {
    content: '';
    position: absolute;
    background: var(--e-global-color-secondary); /* <-- Change fill color here */
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transform: scaleX(0);
	z-index: -1;
    transform-origin: left; /* <-- Change fill out direction */
    transition: transform 0.4s ease; /* <-- Change fill speed */
}

/* Hover effect for fill animation */
.elementor-button:hover::before {
    transform: scaleX(1);
    transform-origin: left; /* <-- Change fill in direction */
}

/* Button text and icon stay above the fill effect */
.elementor-button, 
.elementor-button-text, 
.elementor-button-icon,
.elementor-button-content-wrapper,
.elementor-button,
.elementor-button:hover, 
.elementor-button-text:hover, 
.elementor-button-icon:hover,
.elementor-button-content-wrapper:hover,
.elementor-button:hover {
    position: relative;
    z-index: 1;
    transition: all 0.4s ease !important; /* Unified transition for text and icon */
}
.elementor-button .elementor-button-text {
	color: white !important;
}
.elementor-button:hover .elementor-button-text, .elementor-button:hover {
	color: var(--e-global-color-primary) !important;
}


/* BTN Mehr informationen Animation */
.btn-mehr .elementor-icon-box-content a {
	height: 50px;
	padding-left: 15px;
	display: flex;
    align-items: center;
}
/*
.btn-mehr svg {
	transition: transform 0.4s ease !important;
}
.btn-mehr:hover svg {
	transform: rotate(135deg);
}
*/

/* Accordion */
.e-n-accordion summary {
	transition: all .2s ease;
}
.e-n-accordion details svg rect, .e-n-accordion details svg path {
	transition: all 0.2s ease;
}
.e-n-accordion details:not([open]) svg .cls-1 {
	fill: var(--e-global-color-86aa2c7) !important;
}
.e-n-accordion details svg .cls-1 {
	fill: var(--e-global-color-86aa2c7) !important;
	transform: rotate(0deg);
	transform-origin: center;
}
.e-n-accordion details[open] svg .cls-1 {
	fill: var(--e-global-color-primary) !important;
	transform: rotate(135deg);
}
.e-n-accordion summary:hover svg .cls-1 {
	fill: var(--e-global-color-primary) !important;
}
.e-n-accordion details:not([open]) svg .cls-2 {
	fill: var(--e-global-color-accent) !important;
	stroke: var(--e-global-color-accent) !important;
}
.e-n-accordion summary:hover svg .cls-2 {
	fill: var(--e-global-color-86aa2c7) !important;
	stroke: var(--e-global-color-86aa2c7) !important;
}
.e-n-accordion details[open] svg .cls-2 {
	fill: none !important;
	stroke: var(--e-global-color-accent) !important;
}

.popup-kacheln a:hover {
	background-color: var(--e-global-color-secondary) !important;
}
.popup-kacheln a:hover .elementor-icon {
    transform: scale(1.1) !important;
    transition: all 0.2s ease !important;
}
.popup-kacheln svg * {
	transition: fill .2s ease !important;
}
.popup-kacheln a:hover .elementor-icon svg * {
	fill: var(--e-global-color-a359fbf) !important;
}

footer a, footer span {
	text-decoration: underline !important;
}

.current-progress {
	height: 2px !important;
}

.elementor-field-group.cfef-hidden {
	display: block !important;
}
.elementor-field-group.cfef-hidden input {
	visibility: hidden;
}
.elementor-field-group.cfef-hidden::before {
	content: "Telefonnummer*";
	width: calc(100% - 20px);
	height: 100%;
	position: absolute;
	top: 0;
	left: 10px;
	padding: 16px 20px;
	color: var(--e-global-color-f1bc822) !important;
	background-color: var(--e-global-color-86aa2c7);
    border-color: var(--e-global-color-f1bc822);
    border-width: 2px 2px 2px 2px;
    border-radius: 0px 0px 0px 0px;
	border-style: solid;
	font-family: var(--e-global-typography-text-font-family), Sans-serif;
	font-size: var(--e-global-typography-8cd21b5-font-size);
    font-weight: var(--e-global-typography-8cd21b5-font-weight);
    line-height: var(--e-global-typography-8cd21b5-line-height);
    letter-spacing: var(--e-global-typography-8cd21b5-letter-spacing);
}
.elementor-field-group.elementor-field-type-tel.cfef-hidden::before {
	content: "Telefonnummer";
}
.elementor-field-group.elementor-field-type-text.cfef-hidden::before {
	content: "Zeitfenster";
}
.elementor-field-group.elementor-field-type-email.cfef-hidden::before {
	content: "E-Mail-Adresse";
}
.elementor-field-group.cfef-hidden .elementor-form-help-inline {
	display: none;
}

@media (max-width: 1024px) {
	.elementor-field-group .elementor-field-textual, .elementor-field-group input,
	.elementor-field-group.cfef-hidden::before,
	.select-items div {
    	padding: 14px 18px !important;
		padding-right: 26px !important;
	}
	.e-form__buttons .elementor-field-type-previous,
	.e-form__buttons .elementor-field-type-submit,
	.e-form__buttons .elementor-field-type-next {
		width: unset !important;
	}
}

