/* .ve-form-enhanced .elementor-field-type-upload {
	display: flex;
	flex-direction: column;
} */

.ve-upload-native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.ve-upload {
	--ve-u-blue: #1836a7;
	--ve-u-navy: #091057;
	--ve-u-orange: #ffaa65;
	--ve-u-line: #dfe5ef;
	--ve-u-muted: #5d6678;
	--ve-u-error: #b42318;
	width: 100%;
	font-family: var(--ve-font-primary, "Poppins", sans-serif);
}

.ve-upload__drop {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: center;
	min-height: 96px;
	padding: 16px;
	border: 1.5px dashed #b8c3d7;
	border-radius: 14px;
	background: #fff;
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.ve-upload__drop:hover,
.ve-upload__drop.is-dragging {
	border-color: var(--ve-u-blue);
	background: #f8faff;
}

.ve-upload__drop.is-dragging {
	box-shadow: 0 0 0 3px rgba(255, 170, 101, .2);
}

.ve-upload__icon,
.ve-upload__file-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ve-u-blue);
	background: #eef2ff;
}

.ve-upload__icon {
	width: 46px;
	height: 46px;
	border-radius: 12px;
}

.ve-upload svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ve-upload__copy {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.ve-upload__copy strong,
.ve-upload__file-copy strong {
	color: var(--ve-u-navy);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}

.ve-upload__copy span,
.ve-upload__rules,
.ve-upload__count,
.ve-upload__file-meta,
.ve-upload__file-state {
	color: var(--ve-u-muted);
	font-size: 12px;
	line-height: 1.45;
}


.ve-upload__browse,
.ve-upload__remove {
	font: 600 13px/1.2 var(--ve-font-primary, "Poppins", sans-serif) !important;
	cursor: pointer;
}

.ve-upload__browse {
	min-height: 42px;
	padding: 9px 15px !important;
	border: 1px solid var(--ve-u-blue) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--ve-u-blue) !important;
}

.ve-upload__browse:hover:not(:disabled),
.ve-upload__browse:focus-visible {
	background: var(--ve-u-blue) !important;
	color: #fff !important;
}

.ve-upload__browse:disabled {
	cursor: default;
	opacity: .5;
}

.ve-upload__rules,
.ve-upload__count {
	margin: 8px 2px 0;
}

.ve-upload__list {
	display: grid;
	gap: 7px;
	margin: 10px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ve-upload__file {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) auto 38px;
	gap: 10px;
	align-items: center;
	min-width: 0;
	padding: 9px 10px;
	border: 1px solid var(--ve-u-line);
	border-radius: 10px;
	background: #fff;
}

.ve-upload__file-icon {
	width: 36px;
	height: 36px;
	border-radius: 9px;
}

.ve-upload__file-icon svg {
	width: 18px;
	height: 18px;
}

.ve-upload__file-copy {
	display: grid;
	gap: 1px;
	min-width: 0;
}

.ve-upload__file-copy strong {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ve-upload__file-state {
	color: var(--ve-u-blue);
	font-weight: 500;
	white-space: nowrap;
}

.ve-upload__file.is-uploading .ve-upload__file-state::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 6px;
	vertical-align: -2px;
	border: 2px solid rgba(24, 54, 167, .22);
	border-top-color: var(--ve-u-blue);
	border-radius: 50%;
	animation: ve-upload-spin .7s linear infinite;
}

.ve-upload__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: 9px !important;
	background: transparent !important;
	color: #7b8494 !important;
}

.ve-upload__remove:hover:not(:disabled),
.ve-upload__remove:focus-visible {
	border-color: #f1c8c5 !important;
	background: #fff5f4 !important;
	color: #b42318 !important;
}

.ve-upload__remove svg {
	width: 18px;
	height: 18px;
}

.ve-upload__browse:focus-visible,
.ve-upload__remove:focus-visible,
.ve-submit-dialog__action:focus-visible {
	outline: 3px solid rgba(24, 54, 167, .25);
	outline-offset: 2px;
}

/* Elementor adds this class while its own AJAX request is active. */
.ve-form-enhanced.elementor-form-waiting {
	opacity: 1 !important;
}

.ve-form-enhanced.elementor-form-waiting .elementor-button[type="submit"] {
	cursor: progress;
}

/* Elementor remains the validation authority, but visible error copy is centralized in the branded dialog.
   Keep native error nodes available to assistive technology and JS without leaving duplicate messages in the form layout. */
.ve-form-enhanced.ve-errors-in-dialog .elementor-form-help-inline,
.ve-form-enhanced.ve-errors-in-dialog .elementor-message-danger {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Elementor's success message can remain as a post-dialog confirmation in the form. */
.ve-form-enhanced > .elementor-message-success {
	width: 100%;
	margin-top: 14px;
	padding: 13px 15px;
	border: 1px solid #ccd7fb;
	border-left: 4px solid #1836a7;
	border-radius: 10px;
	background: #f4f7ff;
	color: #091057;
	font: 500 13px/1.55 var(--ve-font-primary, "Poppins", sans-serif);
}

@keyframes ve-upload-spin { to { transform: rotate(360deg); } }

@media (max-width: 767px) {
	.ve-upload__drop {
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 11px;
		min-height: 0;
		padding: 14px;
	}

	.ve-upload__icon {
		width: 42px;
		height: 42px;
	}

	.ve-upload__browse {
		grid-column: 1 / -1;
		width: 100%;
	}

	.ve-upload__file {
		grid-template-columns: 34px minmax(0, 1fr) 38px;
	}

	.ve-upload__file-state {
		grid-column: 2;
		grid-row: 2;
	}

	.ve-upload__remove {
		grid-column: 3;
		grid-row: 1 / span 2;
	}
}

/* Fixed dialog masks Elementor's immediate multi-step reset while the real request runs. */
html.ve-submit-dialog-open {
	overflow: hidden;
	scrollbar-gutter: stable;
}

body.ve-submit-dialog-open {
	overflow: hidden;
}

.ve-submit-dialog {
	--ve-submit-progress: 0%;
	position: fixed;
	inset: 0;
	z-index: 1000001;
	display: grid;
	place-items: center;
	padding: 20px;
	font-family: var(--ve-font-primary, "Poppins", sans-serif);
}

.ve-submit-dialog[hidden] {
	display: none !important;
}

/* When the estimate form is inside an Elementor popup, JS mounts this dialog
   inside the same modal tree so Elementor does not treat dialog clicks as
   outside-clicks that should close the parent popup. */
.elementor-popup-modal .ve-submit-dialog {
	isolation: isolate;
}

.ve-submit-dialog,
.ve-submit-dialog * {
	box-sizing: border-box;
}

.ve-submit-dialog__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(5, 10, 47, .58);
	backdrop-filter: blur(3px);
}

.ve-submit-dialog__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 470px);
	max-height: calc(100vh - 40px);
	max-height: calc(100dvh - 40px);
	overflow: auto;
	padding: 24px;
	border: 1px solid rgba(223, 229, 239, .95);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(9, 16, 87, .24);
	outline: none;
}

.ve-submit-dialog__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 14px;
	background: #eef2ff;
	color: #1836a7;
}

.ve-submit-dialog__icon span {
	display: none;
}

.ve-submit-dialog__icon .ve-submit-dialog__spinner {
	display: grid;
}

.ve-submit-dialog__icon svg {
	width: 25px;
	height: 25px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ve-submit-dialog__spinner svg {
	animation: ve-dialog-spin .85s linear infinite;
}

.ve-submit-dialog__spinner circle {
	opacity: .2;
}

.ve-submit-dialog__content {
	display: grid;
	gap: 6px;
}

.ve-submit-dialog__content strong {
	color: #091057;
	font-size: 18px;
	font-weight: 650;
	line-height: 1.35;
}

.ve-submit-dialog__content span,
.ve-submit-dialog__note {
	color: #5d6678;
	font-size: 13px;
	line-height: 1.55;
}

.ve-submit-dialog__errors {
	display: grid;
	gap: 8px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}

.ve-submit-dialog__errors[hidden] {
	display: none !important;
}

.ve-submit-dialog__errors li {
	position: relative;
	margin: 0;
	padding: 9px 10px 9px 28px;
	border: 1px solid #f2c9c5;
	border-radius: 9px;
	background: #fff5f4;
	color: #8a1c13;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
}

.ve-submit-dialog__errors li::before {
	content: "!";
	position: absolute;
	left: 10px;
	top: 9px;
	font-weight: 700;
}

.ve-submit-dialog__progress {
	height: 8px;
	margin-top: 18px;
	overflow: hidden;
	border-radius: 999px;
	background: #e7ebf5;
}

.ve-submit-dialog__progress > span {
	display: block;
	width: var(--ve-submit-progress);
	height: 100%;
	border-radius: inherit;
	background: #1836a7;
	transition: width .15s linear;
}

.ve-submit-dialog__note {
	margin: 10px 0 0;
}

.ve-submit-dialog.is-processing .ve-submit-dialog__progress > span {
	width: 36%;
	animation: ve-submit-processing 1.1s ease-in-out infinite alternate;
}

.ve-submit-dialog.is-success .ve-submit-dialog__icon {
	background: #edf8f2;
	color: #1d6f42;
}

.ve-submit-dialog.is-error .ve-submit-dialog__icon {
	background: #fff1f0;
	color: #b42318;
}

.ve-submit-dialog.is-success .ve-submit-dialog__spinner,
.ve-submit-dialog.is-error .ve-submit-dialog__spinner {
	display: none;
}

.ve-submit-dialog.is-success .ve-submit-dialog__success,
.ve-submit-dialog.is-error .ve-submit-dialog__error {
	display: grid;
}

.ve-submit-dialog.is-success .ve-submit-dialog__progress > span {
	width: 100%;
	background: #1d6f42;
	animation: none;
}

.ve-submit-dialog.is-error .ve-submit-dialog__progress > span {
	background: #b42318;
	animation: none;
}

.ve-submit-dialog__action {
	width: 100%;
	min-height: 44px;
	margin-top: 18px;
	padding: 10px 18px !important;
	border: 1px solid #1836a7 !important;
	border-radius: 999px !important;
	background: #1836a7 !important;
	color: #fff !important;
	font: 600 13px/1.2 var(--ve-font-primary, "Poppins", sans-serif) !important;
	cursor: pointer;
}

.ve-submit-dialog__action:hover {
	background: #10298d !important;
}

@keyframes ve-dialog-spin { to { transform: rotate(360deg); } }
@keyframes ve-submit-processing {
	from { transform: translateX(-15%); }
	to { transform: translateX(190%); }
}

@media (max-width: 767px) {
	.ve-submit-dialog {
		place-items: end center;
		padding: 12px;
	}

	.ve-submit-dialog__panel {
		width: 100%;
		max-height: calc(100vh - 24px);
		max-height: calc(100dvh - 24px);
		padding: 20px;
		border-radius: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ve-upload__drop,
	.ve-submit-dialog__progress > span { transition: none; }
	.ve-upload__file.is-uploading .ve-upload__file-state::before,
	.ve-submit-dialog__spinner svg { animation-duration: 1.4s; }
	.ve-submit-dialog.is-processing .ve-submit-dialog__progress > span { animation: none; width: 100%; opacity: .55; }
}
/* Hide Default error elementor strip from estimate form */
.ve_estimate_form .elementor-message {
	display: none;
}

/* =========================================================
   Vantage Estimating — Field Info Tooltips
   Does not alter native Elementor label spacing/layout
   ========================================================= */

/* Original Elementor HTML help source */
.ve-field-help {
	display: none !important;
}

.ve-help-source {
	display: none !important;
}

/*
 * Label remains Elementor's original direct child.
 * We only allow its own contents to align inline.
 */
.elementor-form .elementor-field-label.ve-help-label {
	position: relative;
	display: flex;
	align-items: center;
}

/* Keep Elementor required asterisk before the info icon */
.elementor-form .elementor-field-label.ve-help-label::after {
	order: 2;
}

/* Branded info icon */
.ve-help-trigger {
	order: 3;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 14px;

	width: 14px;
	height: 14px;

	margin-left: 5px;
	padding: 0;

	border: 1px solid var(--e-global-color-primary, #2438b5);
	border-radius: 50%;

	background: transparent;
	color: var(--e-global-color-primary, #2438b5);

	font-family: Arial, sans-serif;
	font-size: 9px;
	font-weight: 600;
	line-height: 1;

	cursor: help;
	user-select: none;
}

/* Keyboard accessibility */
.ve-help-trigger:focus-visible {
	outline: 2px solid var(--e-global-color-primary, #2438b5);
	outline-offset: 2px;
}

/* Tooltip */
.ve-help-popover {
	position: absolute;

	top: calc(100% + 7px);
	left: 0;

	z-index: 1000;

	width: 310px;
	max-width: calc(100vw - 40px);

	padding: 10px 12px;

	border: 1px solid #d9def0;
	border-radius: 8px;

	background: #ffffff;
	box-shadow: 0 8px 24px rgba(20, 35, 90, 0.12);

	color: #454545;

	font-size: 11.5px;
	font-weight: 400;
	line-height: 1.55;

	text-align: left;

	opacity: 0;
	visibility: hidden;
	transform: translateY(-3px);

	pointer-events: none;

	transition:
		opacity 0.15s ease,
		transform 0.15s ease,
		visibility 0.15s ease;
}

.ve-help-popover__title {
	display: block;

	margin: 0 0 4px;

	color: #111111;

	font-size: 12px;
	font-weight: 600;
	line-height: 1.45;
}

/* Desktop hover + keyboard + mobile click */
.ve-help-label:hover > .ve-help-popover,
.ve-help-label:focus-within > .ve-help-popover,
.ve-help-label.is-help-open > .ve-help-popover {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);

	pointer-events: auto;
}

@media (max-width: 767px) {
	.ve-help-popover {
		width: 280px;
		max-width: calc(100vw - 32px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ve-help-popover {
		transition: none;
	}
}
/* =========================================================
   Vantage Estimating — Important Information
   Elementor labels/groups remain untouched
   ========================================================= */

.ve-help-source {
	display: none !important;
}


/* Small branded info icon */
.ve-help-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 17px;
	height: 17px;
	margin-inline-start: 5px;
	box-sizing: border-box;
	vertical-align: 2px;
	border: 1px solid var(--e-global-color-primary, #2638b8);
	border-radius: 50%;
	background: transparent;
	color: var(--e-global-color-primary, #2638b8);
	font-family: Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	cursor: help;
}

.ve-help-icon:hover,
.ve-help-icon[aria-expanded="true"] {
	background: var(--e-global-color-primary, #2638b8);
	color: #fff;
}

.ve-help-icon:focus-visible {
	outline: 2px solid var(--e-global-color-accent, #fdbd4f);
	outline-offset: 2px;
}


/* One shared tooltip for all fields */
.ve-help-tooltip {
	position: fixed;
	z-index: 1000002;

	width: min(320px, calc(100vw - 24px));
	padding: 12px 14px 13px;

	box-sizing: border-box;

	border: 1px solid #dfe4f2;
	border-top: 3px solid var(--e-global-color-accent, #fdbd4f);
	border-radius: 10px;

	background: #fff;
	box-shadow: 0 12px 30px rgba(18, 32, 79, 0.16);

	color: #343947;

	font-family: inherit;
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.5;
	text-align: left;

	pointer-events: none;
}

.ve-help-tooltip[hidden] {
	display: none !important;
}

.ve-help-tooltip__title {
	display: block;
	margin: 0 0 4px;

	color: #111827;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.ve-help-tooltip__body {
	display: block;
}

.elementor-field-type-acceptance label {
	display: none;
}

/* Captcha Badge Hide */
.elementor-field-type-recaptcha_v3 {
	display: none;
}