/*
 * AI-Inquiro front-end form styles.
 *
 * Copyright (c) 2026 AtoZ INFOWAY INC. All rights reserved. Proprietary.
 * Unauthorized copying, modification, distribution or use is strictly prohibited.
 */

/* Custom properties — override these from your theme's CSS to restyle Default-
   mode forms without !important fights. Unstyled/Bootstrap 5 modes never
   enqueue this file at all (see class-forms.php render_form()), so these
   variables only matter in Default mode. */
.aiinq-form-public {
	--aiinq-form-accent: #2271b1;
	--aiinq-form-accent-hover: #135e96;
	--aiinq-form-border: #c3c4c7;
	--aiinq-form-radius: 6px;
	--aiinq-form-danger: #d63638;
	--aiinq-form-danger-bg: #fcebec;
	--aiinq-form-danger-border: #d63638;
	--aiinq-form-danger-text: #8a1f28;
	--aiinq-form-success-bg: #edfaef;
	--aiinq-form-success-border: #00a32a;
	--aiinq-form-success-text: #00450f;
	--aiinq-form-muted: #50575e;
	--aiinq-form-divider: #dcdcde;
	--aiinq-form-track: #f0f0f1;
	max-width: 560px;
}

.aiinq-form-public .aiinq-field {
	margin: 0 0 16px;
}

/* Field width (Full/Half/Third, per-field in the builder): the step is a
   flex-wrap row so consecutive non-full fields sit side by side; Full (the
   default) fills its own row exactly like the old plain block layout. */
.aiinq-form-public .aiinq-step {
	display: flex;
	flex-wrap: wrap;
	column-gap: 16px;
}
.aiinq-form-public .aiinq-field {
	flex: 1 1 100%;
	min-width: 0; /* let a field shrink below its content's intrinsic width in the row */
}
/* Non-field step children (the step title, a Divider, an HTML block) always
   take their own full-width row — otherwise, as flex items, one could end up
   sharing a row with a dangling half-width field. */
.aiinq-form-public .aiinq-step > :not(.aiinq-field) {
	flex-basis: 100%;
}
.aiinq-form-public .aiinq-field--w-half {
	flex-basis: calc(50% - 8px);
}
.aiinq-form-public .aiinq-field--w-third {
	flex-basis: calc(33.333% - 11px);
}
@media (max-width: 480px) {
	.aiinq-form-public .aiinq-field--w-half,
	.aiinq-form-public .aiinq-field--w-third {
		flex-basis: 100%;
	}
}

.aiinq-form-public label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.aiinq-form-public input,
.aiinq-form-public textarea,
.aiinq-form-public select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--aiinq-form-border);
	border-radius: var(--aiinq-form-radius);
	box-sizing: border-box;
	font: inherit;
	background: #fff;
}

.aiinq-form-public input:focus,
.aiinq-form-public textarea:focus,
.aiinq-form-public select:focus {
	outline: none;
	border-color: var(--aiinq-form-accent);
	box-shadow: 0 0 0 1px var(--aiinq-form-accent);
}

.aiinq-form-public .aiinq-req {
	color: var(--aiinq-form-danger);
}

/* Field-level Validation: custom inline error UI (forms.js setupValidation())
   instead of the browser's native validation bubble. */
.aiinq-form-public .aiinq-field.is-invalid input,
.aiinq-form-public .aiinq-field.is-invalid textarea,
.aiinq-form-public .aiinq-field.is-invalid select {
	border-color: var(--aiinq-form-danger);
}
.aiinq-form-public .aiinq-field.is-invalid input:focus,
.aiinq-form-public .aiinq-field.is-invalid textarea:focus,
.aiinq-form-public .aiinq-field.is-invalid select:focus {
	border-color: var(--aiinq-form-danger);
	box-shadow: 0 0 0 1px var(--aiinq-form-danger);
}
.aiinq-form-public .aiinq-field-error {
	display: block;
	margin-top: 4px;
	color: var(--aiinq-form-danger);
	font-size: 0.85em;
}
.aiinq-form-public .aiinq-field-error:empty {
	display: none;
}

/* Address fields: State renders as a select OR a text-fallback input inside
   this wrapper — exactly one is visible at a time (see forms.js
   setupAddressCascade()), so it should look like a single ordinary field. */
.aiinq-form-public .aiinq-addr-cascade {
	display: block;
}

/* reCAPTCHA v2 / Turnstile widget, wherever it renders (Forms and Booking
   both use these classes) — a little breathing room before the submit button. */
.cf-turnstile,
.g-recaptcha {
	margin: 4px 0 16px;
}

.aiinq-form-public .aiinq-submit button {
	display: inline-block;
	padding: 10px 20px;
	border: 0;
	border-radius: var(--aiinq-form-radius);
	background: var(--aiinq-form-accent);
	color: #fff;
	font: inherit;
	cursor: pointer;
}

.aiinq-form-public .aiinq-submit button:hover {
	background: var(--aiinq-form-accent-hover);
}

.aiinq-form-success {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: var(--aiinq-form-radius, 6px);
	background: var(--aiinq-form-success-bg, #edfaef);
	border: 1px solid var(--aiinq-form-success-border, #00a32a);
	color: var(--aiinq-form-success-text, #00450f);
}

.aiinq-form-error {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: var(--aiinq-form-radius, 6px);
	background: var(--aiinq-form-danger-bg, #fcebec);
	border: 1px solid var(--aiinq-form-danger-border, #d63638);
	color: var(--aiinq-form-danger-text, #8a1f28);
}

/* Honeypot — visually hidden, off-screen. */
.aiinq-hp {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	height: 0;
	overflow: hidden;
}

/* Radio / checkbox groups */
.aiinq-choices {
	display: block;
}

.aiinq-choice {
	display: block;
	font-weight: 400;
	margin: 4px 0;
}

.aiinq-choice input {
	width: auto;
	margin-right: 6px;
}

/* Divider + HTML block */
.aiinq-divider {
	border: 0;
	border-top: 1px solid var(--aiinq-form-divider, #dcdcde);
	margin: 20px 0;
}

.aiinq-html {
	margin: 0 0 16px;
}

/* Multi-step navigation */
.aiinq-submit .aiinq-prev,
.aiinq-submit .aiinq-next {
	background: var(--aiinq-form-muted, #50575e);
}

.aiinq-progress {
	height: 8px;
	background: var(--aiinq-form-track, #f0f0f1);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 6px;
}

.aiinq-progress__bar {
	height: 100%;
	background: var(--aiinq-form-accent, #2271b1);
	transition: width 0.2s ease;
}

.aiinq-progress__label {
	font-size: 12px;
	color: var(--aiinq-form-muted, #50575e);
	margin: 0 0 14px;
}

/* Success popup */
.aiinq-popup {
	position: fixed;
	inset: 0;
	background: rgba( 0, 0, 0, 0.5 );
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
}

.aiinq-popup__box {
	position: relative;
	background: #fff;
	padding: 28px 32px;
	border-radius: 10px;
	max-width: 420px;
}

.aiinq-popup__close {
	position: absolute;
	top: 6px;
	right: 10px;
	border: 0;
	background: none;
	font-size: 22px;
	cursor: pointer;
	line-height: 1;
}
