#content form input,
#content form textarea,
#content form select,
#content form option,
#content form label {
	font-size: var(--fs-1);
	text-align: left;
	line-height: 1.4em;
	color: var(--clr-accent-2);
	font-weight: 400;
	box-shadow: none;
}

#content form input,
#content form textarea,
#content form select {
	margin: 0;
	padding: .9em 0;
	min-height: 3.2em; /* lineHeight + paddingTop + paddingBottom --- define min-height to ensure all the fields have the same height in different browsers */
	border-color: var(--clr-accent-2);
	border-width: 0 0 2px;
	border-style: solid;
	border-radius: 0;
	transition: color .35s ease, border-color .35s ease, background-color .35s ease, opacity .35s ease;
}

#content form textarea {
	border-width: 2px;
	padding: .9em;
}

#content form select,
#content form input[type="date"],
#content form input.elementor-date-field {
	cursor: pointer;
}

/* ===========================================
   Hover and Focus State 
=========================================== */

#content form input:hover,
#content form textarea:hover,
#content form select:hover,
#content form input:focus,
#content form textarea:focus,
#content form select:focus {
	border-color: var(--clr-accent-1);
}

/* ===========================================
   Placeholders 
=========================================== */

#content form ::-webkit-input-placeholder {
    color: var(--clr-black);
}
#content form ::-moz-placeholder {
    color: var(--clr-black);
}
#content form :-ms-input-placeholder {
    color: var(--clr-black);
}
#content form :-moz-placeholder {
    color: var(--clr-black);
}

/* ===========================================
   Checkbox and Radio
=========================================== */

#content input[type="checkbox"],
#content input[type="radio"] {
	opacity: 0;
	position: absolute;
}

#content input[type="checkbox"] + label,
#content input[type="radio"] + label,
#content ._brlbs-content-blocker input[type="checkbox"] + small {
	display: block;
	font-size: var(--fs-1);
	color: var(--clr-accent-2);
	line-height: 1.4em;
	position: relative;
	padding: .5em 0 .5em 1.65em;
	margin: 0 1.5em 0 0;
	max-width: 50rem;
	cursor: pointer;
}

#content input[type="radio"] + label::before,
#content input[type="radio"] + label::after {
	border-radius: 50%;
	margin-left: 1px;
}

#content input[type="checkbox"] + label::before,
#content input[type="checkbox"] + label::after,
#content input[type="radio"] + label::before,
#content input[type="radio"] + label::after,
#content ._brlbs-content-blocker input[type="checkbox"] + small::before,
#content ._brlbs-content-blocker input[type="checkbox"] + small::after {
    content: "";
    position: absolute;
    top: .65em; /* ( paddingTop + (lineHeight/2) - (checkboxHeight/2) ) */
	top: .625em;
    left: 0;
    width: 1.1em;
    height: 1.1em;
    transition: color .35s ease, border-color .35s ease, background-color .35s ease, opacity .35s ease;
}

#content input[type="checkbox"] + label::before,
#content input[type="radio"] + label::before,
#content ._brlbs-content-blocker input[type="checkbox"] + small::before {
	border: 2px solid var(--clr-accent-2);
}

#content input[type="checkbox"] + label::after,
#content input[type="radio"] + label::after,
#content ._brlbs-content-blocker input[type="checkbox"] + small::after {
    background-color: var(--clr-accent-1);
    background-image: var(--svg-close-white-2);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 50% auto;
	opacity: 0;
}

/* Hover State */
#content input[type="checkbox"] + label:hover::before,
#content input[type="radio"] + label:hover::before,
#content ._brlbs-content-blocker label:hover input[type="checkbox"] + small::before {
	border-color: var(--clr-accent-1);
}

/* Checked State */
#content input[type="checkbox"]:checked + label::before,
#content input[type="radio"]:checked + label::before,
#content ._brlbs-content-blocker input[type="checkbox"]:checked + small::before {
	opacity: 0;
}

#content input[type="checkbox"]:checked + label::after,
#content input[type="radio"]:checked + label::after,
#content ._brlbs-content-blocker input[type="checkbox"]:checked + small::after {
	opacity: 1;
}

.elementor-field-type-checkbox .elementor-subgroup-inline .elementor-field-option {
	min-width: 100% !important;
}

@media only screen and (min-width: 1024px) {
	.elementor-field-type-checkbox .elementor-subgroup-inline .elementor-field-option {
		min-width: 50% !important;
	}
}

@media only screen and (max-width: 1023px) {
	#content .elementor-field-type-checkbox .elementor-field-option {
		padding-right: 0 !important;
	}
	#content .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"] + label {
		margin-right: 0 !important;
	}
}

/* ===========================================
   Date and Time
=========================================== */

.elementor-field-type-date:not(.sh-has-value):not(.sh-is-focused) input,
.elementor-field-type-time:not(.sh-has-value):not(.sh-is-focused) input {
	color: transparent !important;
}

/* ===========================================
   Elementor Form - Layout 
=========================================== */

#content .elementor-form .elementor-field-group {
	margin: .75rem 0;
}

#content .elementor-form .elementor-field-type-radio,
#content .elementor-form .elementor-field-type-checkbox,
#content .elementor-form .elementor-field-type-textarea,
#content .elementor-form .elementor-field-type-acceptance {
	margin-top: 1rem;
}

@media only screen and (min-width: 768px) {
	#content .elementor-form {
		margin: -.75rem;
	}
	#content .elementor-form .elementor-field-group {
		padding: 0 .75rem;
	}
}

/* ===========================================
   Elementor Form - Input Icons 
=========================================== */

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	cursor: pointer;
	background-image: none;
	background-position: right center;
	background-repeat: no-repeat;
	background-size: 1em auto;
}

#content .elementor-field-type-select::before,
#content .elementor-field-type-date::before,
#content .elementor-field-type-time::before {
	content: '';
	position: absolute;
	top: 50%;
	left: auto;
	right: 0;
	width: 2rem;
	height: 2rem;
	transform: translateY(-50%);
	transform: translate3d(0, -50%, 0);
	pointer-events: none;
    background-position: center center;
    background-repeat: no-repeat;
	transition: transform .35s ease;
}

/* Select */
#content .elementor-field-type-select .select-caret-down-wrapper {
	display: none;
}

#content .elementor-field-type-select::before {
	transform: translateY(-50%) rotate(90deg);
	transform: translate3d(0,-50%,0) rotate(90deg);
	background-image: var(--svg-arrow-black);
    background-size: auto 1rem;
}

#content .sh-is-focused.elementor-field-type-select::before {
	transform: translateY(-50%) rotate(270deg);
	transform: translate3d(0,-50%,0) rotate(270deg);
}

/* Date */
#content .elementor-field-type-date::before {
	background-image: var(--svg-calendar-black);
    background-size: auto 1.3rem;
}

/* Time */
#content .elementor-field-type-time::before {
	background-image: var(--svg-time-black);
    background-size: auto 1.3rem;
}

/* Media queries */
@media only screen and (min-width: 768px) {
	#content .elementor-field-group > label {
		left: .75rem; /* Use the same settings as elementor-form .elementor-field-group has for horizontal padding */
	}
	#content .elementor-field-type-select::before,
	#content .elementor-field-type-date::before,
	#content .elementor-field-type-time::before {
		right: .75rem; /* Use the same values as elementor-form .elementor-field-group has for horizontal padding */
	}
}

/* ===========================================
   Elementor Form - Animated Labels 
=========================================== */

#content .elementor-field-type-acceptance .elementor-field-label {
	display: none;
}

#content .elementor-field-group > label {
	position: absolute;
	top: .9em; /* Use the same value as input fields have for paddingTop */
	left: 0; /* Use the same values as elementor-form .elementor-field-group has for horizontal padding */
	padding: 0 .5em 0 0; /* Use the same settings as input fields have for paddingLeft and paddingRight plus additional whitespace for the has-value state */
	line-height: 1.4em; /* Use the same settings as input fields have for lineHeight */
	border-width: 0 0 2px; /* Use the same settings as input fields have for borderWidth */
	border-color: transparent;
	border-style: solid;
	font-size: var(--fs-1);
	color: var(--clr-accent-2);
	pointer-events: none;
	z-index: 1;
	transition: transform .35s ease, opacity .35s ease, color .35s ease, background-color .35s ease;
	transform-origin: 0% 50%;
}

#content .elementor-field-type-radio .elementor-field-label,
#content .elementor-field-type-checkbox .elementor-field-label {
	display: block !important;
	position: relative !important;
	font-weight: 700 !important;
	top: unset !important;
	left: unset !important;
	padding: 1rem 0 1rem 0 !important;
}

#content .elementor-field-group.sh-is-focused > label {
	color: var(--clr-accent-1);
}

#content .sh-is-focused.elementor-field-group > label,
#content .sh-has-value.elementor-field-group > label {
	/* Only use transform for a smooth transition - Use the values from above for Top and borderWidth in order to align the label's top edge to the bottom edge of the input field  */
	transform: translate(0, 50%) translateY(.9em) translateY(-1px) scale(.85, .85); 
	transform: translate3d(0, 50%, 0) translateY(.9em) translateY(-1px) scale(.85, .85); 
	opacity: 1;
	background-color: var(--clr-white);
	transition-delay: 0s;
}

/* Select */
#content .sh-is-focused.elementor-field-type-select > label {
	opacity: 0;
}

#content .elementor-field-type-select:not(.sh-has-value) select {
	color: transparent;
}

/* Date */
#content .elementor-field-type-date:not(.sh-has-value):not(.sh-is-focused) > label {
	transition-delay: .15s; /* we need a delay in case a date picker library is in use and needs some time to populate the input value */
}

#content .elementor-field-type-date:not(.sh-has-value):not(.sh-is-focused) input.flatpickr-mobile::-webkit-datetime-edit {
    color: transparent;
}

/* Textarea */
#content .elementor-field-type-textarea.elementor-field-group > label {
	padding-left: .9em;
}

#content .sh-has-value.elementor-field-type-textarea.elementor-field-group > label {
	/* Only use transform for a smooth transition - Use the values from above for Top and borderWidth in order to align the label's top edge to the bottom edge of the input field  */
	transform: translate(-.9em, -50%) translateY(-.9em) translateY(1px) scale(.85, .85); 
	transform: translate3d(-.9em, -50%, 0) translateY(-.9em) translateY(1px) scale(.85, .85); 
}

/* Hide Placeholders */
#content .elementor-form ::-webkit-input-placeholder {
    opacity: 0;
}
#content .elementor-form ::-moz-placeholder {
    opacity: 0;
}
#content .elementor-form :-ms-input-placeholder {
    opacity: 0;
}
#content .elementor-form :-moz-placeholder {
    opacity: 0;
}

/* Media queries */
@media only screen and (min-width: 768px) {
	#content .elementor-field-group > label {
		left: .75rem; /* Use the same settings as elementor-form .elementor-field-group has for horizontal padding */
	}
}

/* ===========================================
   Elementor Acceptance
=========================================== */

#content .elementor-field-type-acceptance label {
	margin-right: 0 !important;
}

#content .elementor-field-type-acceptance a {
	color: var(--clr-accent-2) !important;
	background-image: linear-gradient(var(--clr-accent-2), var(--clr-accent-2)), linear-gradient(var(--clr-accent-1), var(--clr-accent-1)) !important;
}

#content .elementor-field-type-acceptance a:hover {
	color: var(--clr-accent-1) !important;
}

/* ===========================================
   Elementor Message
=========================================== */

.elementor-message {
	background-color: var(--clr-accent-1);
	color: var(--clr-white);
	padding: 1.5rem;
	font-size: var(--fs-2) !important;
	line-height: var(--lh-3) !important;
	font-weight: 400 !important;
	text-wrap: pretty;
}

.elementor-message:before {
	display: none !important;
}

@media only screen and (min-width: 768px) {
	.elementor-message {
		margin-left: .75rem !important;
		margin-right: .75rem !important;
		width: calc(100% - 1.5rem) !important;
	}
}