/**
 * All of the CSS for your public-facing functionality should be
 * included in this file.
 */

#cf7cstmzr_frontend {
    position: fixed;
    bottom: 0;
    background-color: #fff;
    padding: 10px;
    right: -303px;
    border: 1px solid #1e73be;
    width: 100%;
    max-width: 300px;
    z-index: 6000;
    transition: all 0.6s;
}
#cf7cstmzr_frontend.active {
    right: 0;
}

#cf7cstmzr_frontend_togler {
    line-height: 20px;
    position: absolute;
    bottom: 20px;
    width: 110px;
    left: 0;
    transform: translateX(-115px);
    border: 1px solid #1e73be;
    padding: 5px;
    background-color: rgba(255,255,255,0.6);
    cursor: pointer;
    font-size: 14px;
}
#cf7cstmzr_form_frontend_togler, .cf7cstmzr_form_frontend_link {
    display: inline-block;
    line-height: 20px;
    border: 1px solid #1e73be;
    padding: 5px;
    background-color: rgba(255,255,255,1);
    cursor: pointer;
    font-size: 14px;
    margin-bottom: 10px;
    text-decoration: none!important;
    color: #333;
}
#cf7cstmzr_form_frontend_togler:hover,
.cf7cstmzr_form_frontend_link:hover,
#cf7cstmzr_frontend_togler:hover {
    color: #1e73be;
    background-color: rgba(255,255,255,0.9);
}

.cf7cstmzr-button {
    outline: transparent !important;
    display: inline-block;
    width: 100%;
    background-color: #007bff !important;
    padding: 10px 15px !important;
    color: #fff !important;
    line-height: 1.2;
    border: none!important;
}
.cf7cstmzr-button:hover {
    background-color: #0067cd !important;
    color: #fff !important;
    border: none!important;
}

.cf7cstmzr-link {
    outline: transparent !important;
    font-weight: 400!important;
    display: inline-block;
    width: 100%;
    background-color: transparent !important;
    padding: 5px 5px 0 5px !important;
    color: #999 !important;
    line-height: 1.2;
    font-size: 13px;
    border: none!important;
}
.cf7cstmzr-link:hover {
    background-color: transparent !important;
    color: #007bff !important;
    border: none!important;
}
/* 1.9.0: Fokus, Meldungen, Spalten und Schritte.
   Die Farben kommen als Variablen aus dem Stil (--cf7s-*). */
#cf7cstmzr-form .wpcf7-form input:focus,
#cf7cstmzr-form .wpcf7-form textarea:focus,
#cf7cstmzr-form .wpcf7-form select:focus {
	border-color: var(--cf7s-primary, #1e73be) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cf7s-primary, #1e73be) 22%, transparent) !important;
	outline: none !important;
}

#cf7cstmzr-form .wpcf7-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: .875em;
	line-height: 1.4;
	color: var(--cf7s-error, #d63638) !important;
}

#cf7cstmzr-form .wpcf7-form [aria-invalid="true"],
#cf7cstmzr-form .wpcf7-form .wpcf7-not-valid {
	border-color: var(--cf7s-error, #d63638) !important;
}

#cf7cstmzr-form .wpcf7-form .wpcf7-response-output {
	margin: 18px 0 0 !important;
	padding: 12px 16px !important;
	border: 1px solid var(--cf7s-success, #00a32a) !important;
	border-radius: 10px !important;
	background: color-mix(in srgb, var(--cf7s-success, #00a32a) 8%, #fff) !important;
	color: #1d2327 !important;
	font-size: .95em;
}

#cf7cstmzr-form .wpcf7-form.invalid .wpcf7-response-output,
#cf7cstmzr-form .wpcf7-form.unaccepted .wpcf7-response-output,
#cf7cstmzr-form .wpcf7-form.failed .wpcf7-response-output,
#cf7cstmzr-form .wpcf7-form.aborted .wpcf7-response-output,
#cf7cstmzr-form .wpcf7-form.spam .wpcf7-response-output {
	border-color: var(--cf7s-error, #d63638) !important;
	background: color-mix(in srgb, var(--cf7s-error, #d63638) 8%, #fff) !important;
}

#cf7cstmzr-form .wpcf7-form .wpcf7-spinner {
	background-color: var(--cf7s-primary, #1e73be);
}

/* Zwei Spalten: wird im Backend eingeschaltet, kein Code im Formular noetig. */
#cf7cstmzr-form.cf7s-cols-2 .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 18px;
	align-items: start;
}

#cf7cstmzr-form.cf7s-cols-2 .wpcf7-form > .cf7s-cell {
	grid-column: span 1;
	min-width: 0;
}

#cf7cstmzr-form.cf7s-cols-2 .wpcf7-form > .cf7s-cell.cf7s-wide {
	grid-column: 1 / -1;
}

#cf7cstmzr-form.cf7s-cols-2 .wpcf7-form > .cf7s-cell > p {
	margin-top: 0;
}

@media (max-width: 560px) {
	#cf7cstmzr-form.cf7s-cols-2 .wpcf7-form {
		grid-template-columns: 1fr;
	}
}

/* Schritte (Typeform-like). Die Navigation baut cf7-steps.js. */
#cf7cstmzr-form .cf7s-steps .cf7s-step {
	display: none;
}

#cf7cstmzr-form .cf7s-steps .cf7s-step.cf7s-active {
	display: block;
	animation: cf7s-step-in .24s ease-out;
}

@keyframes cf7s-step-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	#cf7cstmzr-form .cf7s-steps .cf7s-step.cf7s-active {
		animation: none;
	}
}

#cf7cstmzr-form .cf7s-progress {
	height: 6px;
	border-radius: 999px;
	overflow: hidden;
	margin: 0 0 18px;
	background: color-mix(in srgb, var(--cf7s-primary, #1e73be) 14%, #fff);
}

#cf7cstmzr-form .cf7s-progress > span {
	display: block;
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: var(--cf7s-primary, #1e73be);
	transition: width .25s ease;
}

#cf7cstmzr-form .cf7s-counter {
	margin: 0 0 8px;
	font-size: .8em;
	letter-spacing: .04em;
	text-transform: uppercase;
	opacity: .7;
}

#cf7cstmzr-form .cf7s-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 20px;
	flex-wrap: wrap;
}

#cf7cstmzr-form .cf7s-nav > p {
	margin: 0;
}

#cf7cstmzr-form .cf7s-next {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	border: 0;
	border-radius: var(--cf7s-radius, 8px);
	background: var(--cf7s-primary, #1e73be);
	color: #fff;
	font-size: 1em;
	line-height: 1.4;
	cursor: pointer;
}

#cf7cstmzr-form .cf7s-next:hover {
	background: var(--cf7s-secondary, #1e73be);
}

#cf7cstmzr-form .cf7s-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 4px;
	border: 0;
	background: none;
	color: inherit;
	opacity: .72;
	font-size: .95em;
	cursor: pointer;
}

#cf7cstmzr-form .cf7s-back:hover {
	opacity: 1;
}

#cf7cstmzr-form .cf7s-nav svg {
	width: 16px;
	height: 16px;
	flex: none;
}

#cf7cstmzr-form .cf7s-step .wpcf7-submit {
	margin-top: 4px;
}

#cf7cstmzr-form .cf7s-hidden {
	display: none !important;
}

/* Formulare duerfen nie breiter werden als ihr Container. */
#cf7cstmzr-form,
#cf7cstmzr-form .wpcf7-form,
#cf7cstmzr-form .cf7s-step {
	max-width: 100%;
	box-sizing: border-box;
}

#cf7cstmzr-form .wpcf7-form input,
#cf7cstmzr-form .wpcf7-form textarea,
#cf7cstmzr-form .wpcf7-form select,
#cf7cstmzr-form .wpcf7-form .wpcf7-submit {
	max-width: 100%;
	box-sizing: border-box;
}
