/* ==========================================================================
   Ninja Forms — Global Form Styles
   Applies the Gate 52 design language to all Ninja Forms across the site.
   Design reference: docs/mock-ups/private-events.html (inquiry form section)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Container
   -------------------------------------------------------------------------- */

.nf-form-cont {
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
}

/* Remove the default NF list-reset that sometimes conflicts */
.nf-form-cont ol,
.nf-form-cont ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --------------------------------------------------------------------------
   "Fields marked with * are required" — hidden (labels still show * via .ninja-forms-req-symbol)
   Ninja Forms may expose this per form in Display Settings depending on version; theme hides globally.
   -------------------------------------------------------------------------- */

.nf-form-fields-required {
	display: none !important;
}

/* --------------------------------------------------------------------------
   Field containers — vertical rhythm
   -------------------------------------------------------------------------- */

.nf-field-container {
	margin-bottom: 1.25rem;
}

/* --------------------------------------------------------------------------
   Labels
   NF renders labels two ways depending on field type:
     (a) <div class="nf-field-label"><label>…</label></div>
     (b) <label class="nf-field-label">…</label>   ← date / special fields
   Both patterns are targeted below.
   -------------------------------------------------------------------------- */

.nf-form-cont .nf-field-label label,
.nf-form-cont label.nf-field-label,
.nf-form-cont .nf-field-label {
	display: block !important;
	font-size: 0.625rem !important;   /* 10px */
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.2em !important;
	color: var(--wp--preset--color--text-label, #9ca3af) !important;
	margin-bottom: 0.5rem !important;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif) !important;
	line-height: 1.4 !important;
}

/* Required asterisk */
.nf-form-cont .ninja-forms-req-symbol {
	color: var(--wp--preset--color--primary, #D90429) !important;
	margin-left: 0.125rem;
}

/* --------------------------------------------------------------------------
   Text, email, tel, number, date, URL inputs
   -------------------------------------------------------------------------- */

.nf-field-element input[type="text"],
.nf-field-element input[type="email"],
.nf-field-element input[type="tel"],
.nf-field-element input[type="number"],
.nf-field-element input[type="date"],
.nf-field-element input[type="url"] {
	width: 100%;
	height: 2.75rem;              /* 44px */
	background-color: var(--wp--preset--color--background, #f8f9fa);
	border: 1px solid var(--wp--preset--color--border, #e5e7eb);
	border-radius: 2px;
	color: var(--wp--preset--color--body-text, #111827);
	padding: 0 1rem;
	font-size: 0.875rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
	letter-spacing: 0.05em;
	transition: border-color 200ms ease, box-shadow 200ms ease;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	outline: none;
}

.nf-field-element input[type="text"]::placeholder,
.nf-field-element input[type="email"]::placeholder,
.nf-field-element input[type="tel"]::placeholder,
.nf-field-element input[type="number"]::placeholder,
.nf-field-element input[type="date"]::placeholder,
.nf-field-element input[type="url"]::placeholder {
	color: var(--wp--preset--color--text-label, #9ca3af);
	letter-spacing: 0.05em;
}

.nf-field-element input[type="text"]:hover,
.nf-field-element input[type="email"]:hover,
.nf-field-element input[type="tel"]:hover,
.nf-field-element input[type="number"]:hover,
.nf-field-element input[type="date"]:hover,
.nf-field-element input[type="url"]:hover {
	border-color: var(--wp--preset--color--text-label, #9ca3af);
}

.nf-field-element input[type="text"]:focus,
.nf-field-element input[type="email"]:focus,
.nf-field-element input[type="tel"]:focus,
.nf-field-element input[type="number"]:focus,
.nf-field-element input[type="date"]:focus,
.nf-field-element input[type="url"]:focus {
	border-color: var(--wp--preset--color--primary, #D90429);
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary, #D90429);
	outline: none;
}

/* --------------------------------------------------------------------------
   Select
   -------------------------------------------------------------------------- */

.nf-field-element select {
	width: 100%;
	height: 2.75rem;
	background-color: var(--wp--preset--color--background, #f8f9fa);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem;
	border: 1px solid var(--wp--preset--color--border, #e5e7eb);
	border-radius: 2px;
	color: var(--wp--preset--color--text-muted, #6b7280);
	padding: 0 2.5rem 0 1rem;
	font-size: 0.875rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition: border-color 200ms ease, box-shadow 200ms ease;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	outline: none;
}

.nf-field-element select:hover {
	border-color: var(--wp--preset--color--text-label, #9ca3af);
}

.nf-field-element select:focus {
	border-color: var(--wp--preset--color--primary, #D90429);
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary, #D90429);
	outline: none;
}

/* --------------------------------------------------------------------------
   Textarea
   -------------------------------------------------------------------------- */

.nf-field-element textarea {
	width: 100%;
	height: 5rem !important;
	min-height: 5rem;
	background-color: var(--wp--preset--color--background, #f8f9fa);
	border: 1px solid var(--wp--preset--color--border, #e5e7eb);
	border-radius: 2px;
	color: var(--wp--preset--color--body-text, #111827);
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
	letter-spacing: 0.05em;
	transition: border-color 200ms ease, box-shadow 200ms ease;
	resize: vertical;
	outline: none;
}

.nf-field-element textarea::placeholder {
	color: var(--wp--preset--color--text-label, #9ca3af);
}

.nf-field-element textarea:hover {
	border-color: var(--wp--preset--color--text-label, #9ca3af);
}

.nf-field-element textarea:focus {
	border-color: var(--wp--preset--color--primary, #D90429);
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary, #D90429);
	outline: none;
}

/* --------------------------------------------------------------------------
   Checkboxes & Radio buttons
   -------------------------------------------------------------------------- */

.nf-field-element input[type="checkbox"],
.nf-field-element input[type="radio"] {
	accent-color: var(--wp--preset--color--primary, #D90429);
	width: 1rem;
	height: 1rem;
	cursor: pointer;
}

.checkbox-container .nf-field-element label,
.radio-container .nf-field-element label,
.listcheckbox-container .nf-field-element label,
.listradio-container .nf-field-element label {
	font-size: 0.875rem;
	color: #374151;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	cursor: pointer;
}

/* --------------------------------------------------------------------------
   Submit button
   -------------------------------------------------------------------------- */

.submit-container .nf-field-element input[type="button"],
.submit-container .nf-field-element input[type="submit"],
.submit-container .nf-field-element button {
	display: block;
	width: 100%;
	background-color: var(--wp--preset--color--primary, #D90429);
	color: var(--wp--preset--color--white, #ffffff);
	border: none;
	border-radius: 2px;
	padding: 1rem 2.5rem;
	font-size: 0.875rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	cursor: pointer;
	transition: background-color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}

.submit-container .nf-field-element input[type="button"]:hover,
.submit-container .nf-field-element input[type="submit"]:hover,
.submit-container .nf-field-element button:hover {
	background-color: var(--wp--preset--color--primary-dark, #b00220);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(217, 4, 41, 0.35);
}

.submit-container .nf-field-element input[type="button"]:active,
.submit-container .nf-field-element input[type="submit"]:active,
.submit-container .nf-field-element button:active {
	transform: translateY(0);
	box-shadow: none;
}

/* --------------------------------------------------------------------------
   Error states — field level
   -------------------------------------------------------------------------- */

.nf-field-container.nf-error .ninja-forms-field,
.nf-field-container.nf-error .nf-field-element input,
.nf-field-container.nf-error .nf-field-element select,
.nf-field-container.nf-error .nf-field-element textarea {
	border-color: var(--wp--preset--color--primary, #D90429) !important;
	box-shadow: none !important;
}

.nf-field-container.nf-error .nf-field-element input:focus,
.nf-field-container.nf-error .nf-field-element select:focus,
.nf-field-container.nf-error .nf-field-element textarea:focus {
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary, #D90429) !important;
}

/* Field-level error message */
.nf-error-msg,
.nf-field-container.nf-error .nf-error-msg {
	display: block;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--primary, #D90429);
	margin-top: 0.375rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
}

/* --------------------------------------------------------------------------
   Error states — form level (shown after failed submit attempt)
   -------------------------------------------------------------------------- */

.nf-form-errors,
.nf-error-field-container,
.ninja-forms-response-output.nf-error {
	font-size: 0.875rem;
	color: var(--wp--preset--color--primary, #D90429);
	margin-top: 0.75rem;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
}

/* --------------------------------------------------------------------------
   Success message
   -------------------------------------------------------------------------- */

.nf-response-msg,
.ninja-forms-response-output.nf-success {
	font-size: 0.875rem;
	color: #16a34a;
	margin-top: 0.75rem;
	padding: 0.75rem 1rem;
	background-color: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--body, 'Inter', sans-serif);
}

/* --------------------------------------------------------------------------
   Loading / processing state
   -------------------------------------------------------------------------- */

.nf-processing input[type="submit"],
.nf-processing input[type="button"],
.nf-processing button[type="submit"] {
	opacity: 0.65;
	cursor: not-allowed;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   Honeypot field — always hidden
   -------------------------------------------------------------------------- */

.nf-field-container.honeypot-container {
	display: none !important;
}
