
/* Form Styles */
fieldset {		
	min-inline-size: auto;
	border: none;
	padding: 0;
	margin: 0;
	
	legend {
		padding: 0;
	}
	
	ul {
	    flex-wrap: wrap;
	}
}

label {
	display: block;
	text-align: left;
	transition: color var(--g-trn-sp) var(--g-trn-tf) 0s;
}


/* Form Input Styles */
input, textarea, select {
	border: 0;
	width: 100%;
	outline: none;
	color: inherit;
	font-size: inherit;
	font-weight: normal;
	font-family: inherit;
	line-height: inherit;
	text-transform: none;
	background-color: transparent;
	line-height: var(--fnt-frm-lh);
}

select,
input[type='search'] {
	appearance: none;
}

textarea {
	resize: none;
	overflow: auto;
	min-height: 4.5rem;
}

:invalid {
	box-shadow: none;
}

.inp-mrk,
.input-text {
	position: relative;
}

.input-text #Consent + small {
    text-wrap: balance;
}

[class*="ta_"] {
	.input-text #Consent + small {
		text-align: center;
	}

	@media screen and (min-width:1280px) {
		&[class*="l-1280"] {
			.input-text #Consent + small {
				text-align: left;
			}
		}

		&[class*="r-1280"] {
			.input-text #Consent + small {
				text-align: right;
			}
		}
	}
	
}

.input-text  {
	text-align: left;
	font-size: 1rem;
	background-clip: padding-box !important;
	
	:is(input, select, textarea) {
		border-width: var(--frm-bdr-w);
		border-style: var(--frm-bdr-stl);
		border-radius: var(--frm-bdr-rds);
		transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
		padding: 1em;
	}
	
	&:has( > svg ) :is(input, select, textarea) {
		padding-right: 3em;
	}

	select {
		 option {
			background-color: var(--main-bg);
			color: var(--text);
		}
	}

	:is(input, select, textarea)::placeholder,
	select:has(option[value=""]:checked) {
		font-size: 0.875rem;
		font-weight: 500;
		letter-spacing: 0.175rem;
		text-transform: uppercase;
		opacity: 1;
	}

	label {

		&.abs {
			top: 1em;
			left: 1em;
			opacity: 0;
			pointer-events: none;
			transform: scale(1);
			transform-origin: 0 50%;
			transition: transform var(--g-trn-sp) var(--g-trn-tf) 0s, top var(--g-trn-sp) var(--g-trn-tf) 0s, opacity var(--g-trn-sp) var(--g-trn-tf) 0s;
		}

	}
	
	> svg {
		bottom: calc(50% - .5em);
		right: 1em;
		position: absolute;
		pointer-events: none;
		color: var(--link-color);
	}
}

/* Form Checkbox Styles */

.inp-mrk {
	
	.input-text {
		border: 0;
		padding: 0;
	}
	
	input {
		position: absolute;
		opacity: 0;
		top: 0;
		left: 0;
		margin: 0;
		padding: 0;
		cursor: pointer;
		-webkit-appearance: none;
		z-index: 3;
		
		&:checked + label.replace:before {
			opacity: 1;
			transform: none;
		}
		
		&[type=radio] + label.replace {
			border-radius: 50%;
		}
		
	}
	
	label {
		user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		
		&.toggle,
		&.replace {
			flex: 0 0 auto;
			cursor: pointer;
			
			+ label {
				margin: 0;
				line-height: 1.55;
				position: relative;
				padding-left: .625em;	
			}
		}
		
		&.replace {
			margin: 0;
			width: 1.5em;
			height: 1.5em;
			border-width: 1px;
			position: relative;
			border-style: solid;
			transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
			
			&::before {
				content: '';
				top: 4px;
				left: 4px;
				right: 4px;
				bottom: 4px;
				opacity: 0;
				position: absolute;
				transform: scale(.7);
				border-radius: inherit;
				transition: background-color var(--g-trn-sp) var(--g-trn-tf) 0s, transform var(--g-trn-sp) var(--g-trn-tf) 0s, opacity var(--g-trn-sp) var(--g-trn-tf) 0s;
			}
		}
	}
}

/* Ui-Condidional */
html:not(.cms-content) .ui-conditional-panel:not(.active) {
	display: none;
	visibility: hidden;
}


/* Form Colors */
@scope (form) to (.inp-mrk) {
	
	.input-text {
		--text-color: var(--text);
		--background: var(--white);

		:is(input, select, textarea) {
			color: var(--text-color);
			border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
			background: var(--background);
		}
		
		label.abs {
			color: var(--text-color);
		}
		
	}

	.focused .input-text :is(input, select, textarea) {
		border-color: var(--highlight-color) !important;
	}
	
	.invalid .input-text :is(input, select, textarea) {
		border-color: var(--invalid-color) !important;
	}
	
	.valid .input-text :is(input, select, textarea) {
		border-color: var(--valid-color);
	}
	
}

.inp-mrk label.replace {
	border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace {
	border-color: var(--link-color);
}

.inp-mrk label.replace.disabled,
.inp-mrk input:disabled + label.replace {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace.disabled::before,
.inp-mrk input:disabled + label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace::before {
	background-color: var(--link-color);
}

.inp-mrk label.replace + label,
.inp-mrk label.toggle + label {
	color: var(--text-color);
}

.inp-mrk label.replace.disabled + label,
.inp-mrk input:disabled + label.replace + label {
	color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}
