/* Pontiac Inspector Form - standalone styling.
   The Elementor class names on the markup let host theme/Elementor styles
   inherit naturally, but we ship a complete set of styles here so the form
   looks polished even if no other CSS applies. The .pio-form-wrap prefix
   gives our rules enough specificity to win over generic Elementor selectors
   that may be loaded on the page. */

.pio-form-wrap {
	max-width: 920px;
	margin: 0 auto;
	color: #1f2933;
	font-size: 16px;
	line-height: 1.5;
}

.pio-form-wrap *,
.pio-form-wrap *::before,
.pio-form-wrap *::after {
	box-sizing: border-box;
}

/* -------- Notice banners -------- */

.pio-form-wrap .pio-notice {
	padding: 14px 18px;
	margin-bottom: 24px;
	border-radius: 6px;
	font-size: 0.95em;
	border: 1px solid transparent;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	line-height: 1.45;
}

.pio-form-wrap .pio-notice::before {
	font-weight: 700;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	line-height: 1;
}

.pio-form-wrap .pio-notice-success {
	background: #ecfdf5;
	color: #065f46;
	border-color: #a7f3d0;
}

.pio-form-wrap .pio-notice-success::before {
	content: "\2713";
	background: #10b981;
	color: #fff;
}

.pio-form-wrap .pio-notice-error {
	background: #fef2f2;
	color: #991b1b;
	border-color: #fecaca;
}

.pio-form-wrap .pio-notice-error::before {
	content: "!";
	background: #ef4444;
	color: #fff;
}

/* -------- Form layout (CSS grid mirroring elementor-col-* classes) -------- */

.pio-form-wrap .pio-form {
	background: #ffffff;
	padding: 28px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
	margin: 0;
}

.pio-form-wrap .pio-form .elementor-form-fields-wrapper {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 18px 20px;
}

.pio-form-wrap .pio-form .elementor-field-group {
	grid-column: span 12;
	min-width: 0;
	padding: 0;
	margin: 0;
}

.pio-form-wrap .pio-form .elementor-col-50  { grid-column: span 12; }
.pio-form-wrap .pio-form .elementor-col-75  { grid-column: span 12; }
.pio-form-wrap .pio-form .elementor-col-100 { grid-column: span 12; }

@media (min-width: 720px) {
	.pio-form-wrap .pio-form .elementor-col-50  { grid-column: span 6; }
	.pio-form-wrap .pio-form .elementor-col-75  { grid-column: span 9; }
	.pio-form-wrap .pio-form .elementor-col-100 { grid-column: span 12; }
}

/* -------- Labels -------- */

.pio-form-wrap .pio-form .elementor-field-label {
	display: block;
	margin: 0 0 6px;
	padding: 0;
	font-weight: 600;
	font-size: 0.94em;
	color: #1f2933;
	letter-spacing: 0.01em;
}

.pio-form-wrap .pio-form .elementor-field-required.elementor-mark-required .elementor-field-label::after {
	content: " *";
	color: #dc2626;
	font-weight: 700;
}

/* -------- Text inputs / textarea -------- */

.pio-form-wrap .pio-form input[type="text"],
.pio-form-wrap .pio-form input[type="email"],
.pio-form-wrap .pio-form input[type="tel"],
.pio-form-wrap .pio-form input[type="file"],
.pio-form-wrap .pio-form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #fff;
	color: #1f2933;
	font: inherit;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-shadow: none;
}

.pio-form-wrap .pio-form textarea {
	min-height: 110px;
	resize: vertical;
	display: block;
}

.pio-form-wrap .pio-form input[type="text"]:hover,
.pio-form-wrap .pio-form input[type="email"]:hover,
.pio-form-wrap .pio-form input[type="tel"]:hover,
.pio-form-wrap .pio-form textarea:hover {
	border-color: #9ca3af;
}

.pio-form-wrap .pio-form input[type="text"]:focus,
.pio-form-wrap .pio-form input[type="email"]:focus,
.pio-form-wrap .pio-form input[type="tel"]:focus,
.pio-form-wrap .pio-form input[type="file"]:focus,
.pio-form-wrap .pio-form textarea:focus {
	outline: none;
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
	background: #fff;
}

.pio-form-wrap .pio-form input::placeholder,
.pio-form-wrap .pio-form textarea::placeholder {
	color: #9ca3af;
	opacity: 1;
}

/* -------- File upload -------- */

.pio-form-wrap .pio-form input[type="file"] {
	padding: 10px 12px;
	background: #f9fafb;
	cursor: pointer;
	font-size: 0.95em;
}

.pio-form-wrap .pio-form input[type="file"]::-webkit-file-upload-button {
	background: #1f2933;
	color: #fff;
	border: none;
	padding: 8px 14px;
	margin-right: 12px;
	border-radius: 4px;
	cursor: pointer;
	font: inherit;
	transition: background 0.15s ease;
}

.pio-form-wrap .pio-form input[type="file"]::file-selector-button {
	background: #1f2933;
	color: #fff;
	border: none;
	padding: 8px 14px;
	margin-right: 12px;
	border-radius: 4px;
	cursor: pointer;
	font: inherit;
	transition: background 0.15s ease;
}

.pio-form-wrap .pio-form input[type="file"]::-webkit-file-upload-button:hover { background: #111827; }
.pio-form-wrap .pio-form input[type="file"]::file-selector-button:hover { background: #111827; }

/* -------- Radio / checkbox groups -------- */

.pio-form-wrap .pio-form .elementor-field-subgroup {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-top: 2px;
	padding: 0;
}

.pio-form-wrap .pio-form .elementor-field-subgroup.elementor-subgroup-inline {
	gap: 8px 18px;
}

.pio-form-wrap .pio-form .elementor-field-option {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
	font-size: 0.94em;
	line-height: 1.25;
	user-select: none;
	margin: 0;
}

.pio-form-wrap .pio-form .elementor-field-option:hover {
	border-color: #9ca3af;
	background: #f3f4f6;
}

.pio-form-wrap .pio-form .elementor-field-option:focus-within {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.pio-form-wrap .pio-form .elementor-field-option label {
	cursor: pointer;
	margin: 0;
	padding: 0;
	font-weight: 500;
	font-size: 1em;
	color: #1f2933;
}

.pio-form-wrap .pio-form .elementor-field-option input[type="radio"],
.pio-form-wrap .pio-form .elementor-field-option input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0;
	cursor: pointer;
	accent-color: #2563eb;
	flex-shrink: 0;
}

.pio-form-wrap .pio-form .elementor-field-option:has(input:checked) {
	background: #eff6ff;
	border-color: #2563eb;
	box-shadow: inset 0 0 0 1px #2563eb;
}

/* -------- HTML divider -------- */

.pio-form-wrap .pio-form .elementor-field-type-html hr {
	border: 0;
	border-top: 1px solid #e5e7eb;
	margin: 4px 0;
	background: none;
	height: auto;
}

/* -------- Contractor section show/hide -------- */

.pio-form-wrap .pio-form .pio-contractor-field {
	display: none;
}

.pio-form-wrap .pio-form.pio-contractor-visible .pio-contractor-field {
	display: block;
	animation: pio-fade-in 0.2s ease both;
}

@keyframes pio-fade-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* -------- Submit button -------- */

.pio-form-wrap .pio-form .e-form__buttons {
	margin-top: 8px;
	display: flex;
	justify-content: flex-end;
}

.pio-form-wrap .pio-form button[type="submit"] {
	background: #2563eb;
	color: #ffffff;
	border: 0;
	padding: 13px 28px;
	font-size: 1em;
	font-weight: 600;
	letter-spacing: 0.02em;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
	box-shadow: 0 1px 2px rgba(37, 99, 235, 0.3);
	line-height: 1.2;
}

.pio-form-wrap .pio-form button[type="submit"]:hover {
	background: #1d4ed8;
	box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.pio-form-wrap .pio-form button[type="submit"]:active {
	transform: translateY(1px);
	box-shadow: 0 1px 2px rgba(37, 99, 235, 0.3);
}

.pio-form-wrap .pio-form button[type="submit"]:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.35);
	outline-offset: 2px;
}

.pio-form-wrap .pio-form button[type="submit"] .elementor-button-content-wrapper,
.pio-form-wrap .pio-form button[type="submit"] .elementor-button-text {
	color: inherit;
	font: inherit;
}

/* -------- Honeypot stays hidden -------- */

.pio-form-wrap .pio-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* -------- Small screens -------- */

@media (max-width: 600px) {
	.pio-form-wrap .pio-form {
		padding: 20px 18px;
		border-radius: 8px;
	}

	.pio-form-wrap .pio-form .elementor-form-fields-wrapper {
		gap: 14px;
	}

	.pio-form-wrap .pio-form .e-form__buttons {
		justify-content: stretch;
	}

	.pio-form-wrap .pio-form button[type="submit"] {
		width: 100%;
	}
}
