/* =========================================
   yForms – Core Logic (embed-safe, unstyled)
   Contains ONLY the CSS that the form's own
   JS (y-validate / yforms.js / yselect.js)
   depends on to work: positioning, show/hide
   state toggles, RTL direction switching and
   a neutral native-control reset.
   No colors, spacing, sizes, radius, shadows
   or fonts here — that is demo.css's job.
   All selectors are scoped to .wpcf7-form so
   nothing leaks onto the rest of the site.
   ========================================= */
:root {
	--y-select-wrap-display: flex;
}

/* Native control reset – required so the JS-built custom
   controls (y-select, custom checkbox) aren't fighting the
   browser's own control chrome. */
.wpcf7-form select,
.wpcf7-form textarea,
.wpcf7-form input[type="url"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="text"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="time"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="search"],
.wpcf7-form input[type="submit"],
.wpcf7-form input[type="password"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	-webkit-box-shadow: none;
	box-shadow: none;
	direction: inherit;
}
/* RTL/LTR switching – the JS keeps the "value" attribute in sync
   with the live value, so this can tell an empty field (RTL
   placeholder) from a filled one (LTR phone/email/url/date/time) */
.wpcf7-form input[type="url"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="time"],
.wpcf7-form input[type="email"] {
	direction: ltr;
}
.wpcf7-form input[type="url"][value=""],
.wpcf7-form input[type="tel"][value=""],
.wpcf7-form input[type="date"][value=""],
.wpcf7-form input[type="time"][value=""],
.wpcf7-form input[type="email"][value=""] {
	direction: rtl;
}
/* Neutral reset so <button>/input[submit] can be skinned cleanly –
   every fallback is "none"/"inherit"/0, no color or size is imposed */
.wpcf7-form input[type="submit"],
.wpcf7-form input[type="button"],
.wpcf7-form button {
	background: var(--wpcf7-submit-bg, none);
	border: var(--wpcf7-submit-border, none);
	border-radius: var(--inputs-border-radius, 0);
	padding: var(--wpcf7-submit-padding, 0);
	margin: var(--wpcf7-submit-margin, 0);
	line-height: var(--wpcf7-submit-line-height, inherit);
	font-family: var(--wpcf7-submit-family, inherit);
	font-size: var(--wpcf7-submit-size, inherit);
	color: var(--wpcf7-submit-color, inherit);
}
.wpcf7-form a,
.wpcf7-form [role="tab"],
.wpcf7-form [role="button"],
.wpcf7-form button:not(:disabled),
.wpcf7-form input[type="button"]:not(:disabled),
.wpcf7-form input[type="submit"]:not(:disabled),
.wpcf7-form input[type="image"]:not(:disabled),
.wpcf7-form input[type="reset"]:not(:disabled),
.wpcf7-form select:not(:disabled) {
	cursor: pointer;
}
.wpcf7-form input[type="checkbox"],
.wpcf7-form input[type="radio"] {
	cursor: pointer;
}
.wpcf7-form br {
	display: none;
}
/* y-select layout – the widget JS builds its markup expecting
   a flex column wrapper with the error message ordered last */
.y-select-wrap {
	flex-direction: column;
}
.y-select-wrap .label-error {
	order: 2;
}
/* Anchors the absolutely-positioned floating label / error message */
.wpcf7-form-control-wrap {
	position: relative;
	display: block;
}
/* Floating label – full styling ships here since the label IS the
   form's own validation/state feedback, not a site-theme choice */
.inputs-label,
.wpcf7-form input[type="date"] ~ .inputs-label,
.wpcf7-form input[type="time"] ~ .inputs-label,
.val-is-empty:focus ~ .inputs-label {
	cursor: text;
	position: absolute;
	right: 12px;
	top: -8px;
	padding: 0 5px;
	transition: all 0.3s ease;
	color: #fff;
	font-size: 13px;
	line-height: 13px;
	opacity: 1;
	visibility: visible;
}
.upload-btn-wrap:not(.active) .inputs-label,
.val-is-empty ~ .inputs-label {
	overflow: hidden;
	color: #64748b;
	font-size: 15px;
	top: 15px;
	right: 15px;
	opacity: 0;
	visibility: hidden;
}
.inputs-label span {
	position: relative;
	z-index: 1;
}
.inputs-label::before {
	content: "";
	background: #0F1F57;
	width: 100%;
	height: 4px;
	position: absolute;
	right: 0;
	top: 5px;
	z-index: 0;
}
.val-is-empty ~ .inputs-label::before { background: none; }
.val-is-empty:focus ~ .inputs-label::before { background: #0F1F57; }
.hide-inputs-label { display: none; }
.checkbox-wrap { margin-bottom: 25px; }
.wpcf7-list-item { margin: 0; }
.wpcf7-acceptance, .wpcf7-checkbox { position: relative; }
.wpcf7-acceptance label, .wpcf7-checkbox label { cursor: pointer; display: flex; align-items: center; }
.wpcf7-acceptance input[type="checkbox"],
.wpcf7-checkbox input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	cursor: pointer;
}
.wpcf7-acceptance .wpcf7-list-item-label,
.wpcf7-checkbox .wpcf7-list-item-label {
	display: block;
	padding: 0 30px 0 0;
	position: relative;
	color: #cbd5e1;
	font-size: 14px;
}
.wpcf7-acceptance .wpcf7-list-item-label::before,
.wpcf7-checkbox .wpcf7-list-item-label::before {
	content: "";
	background: #fff;
	width: 18px;
	height: 18px;
	border: 1px solid #98A0BC;
	border-radius: 4px;
	position: absolute;
	right: 0;
	top: -2px;
	transition: all 0.2s ease;
}
input[type="checkbox"].error ~ .wpcf7-list-item-label::before {
	border-color: red;
	background-color: rgba(239, 68, 68, 0.08);
}
.wpcf7-acceptance .wpcf7-list-item-label::after,
.wpcf7-checkbox .wpcf7-list-item-label::after {
	content: "✔";
	color: #0F1F57;
	line-height: 8px;
	position: absolute;
	right: 5px;
	top: 6px;
	opacity: 0;
	transition: all 0.2s ease;
}
.wpcf7-acceptance input[type="checkbox"]:checked ~ .wpcf7-list-item-label::after,
.wpcf7-checkbox input[type="checkbox"]:checked ~ .wpcf7-list-item-label::after {
	opacity: 1;
}
.submit-btn-wrap {
	display: block;
	position: relative;
	z-index: 0;
}
.submit-btn-wrap::after {
	content: "";
	display: block;
	clear: both;
}
.submit-btn-wrap:has(.wpcf7-spinner)::before {
	content: "";
	display: none;
	width: 100%;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 50000;
	align-items: center;
	justify-content: center;
}
.submit-btn-wrap .wpcf7-spinner {
	display: none;
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 50001;
	margin: 0;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}
form.submitting .submit-btn-wrap .wpcf7-spinner,
form.submitting .submit-btn-wrap:has(.wpcf7-spinner)::before {
	display: block;
}