/*
 * Content Base – Gravity Forms styles. The plugin's own CSS is disabled in inc/forms.php;
 * everything here uses the theme.json tokens so forms follow the Site Settings colours.
 */

/* ---------- Hidden helpers (normally hidden by Gravity Forms' own CSS) ---------- */
.gform_wrapper .gform_validation_container,
.gform_wrapper .gform_hidden,
.gform_wrapper .gfield_visibility_hidden,
.gform_wrapper input[type="hidden"],
iframe[id^="gform_ajax_frame_"] { display: none !important; }

.gform_wrapper .screen-reader-text,
.gform_wrapper .hidden_label > .gfield_label {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Layout ---------- */
.gform_wrapper { margin-block: 32px; }
.gform_wrapper .gform_heading { margin-bottom: 16px; }
.gform_wrapper .gform_required_legend { margin: 0; font-size: 13px; color: var(--wp--preset--color--muted); }
.gform_wrapper .gform_fields { display: grid; gap: 22px; }
.gform_wrapper .gfield { margin: 0; padding: 0; border: 0; min-width: 0; }

/* ---------- Labels & descriptions ---------- */
.gform_wrapper .gfield_label {
	display: block; margin: 0 0 6px; padding: 0;
	font-size: 15px; font-weight: 800; letter-spacing: -.01em; color: var(--wp--preset--color--contrast);
}
.gform_wrapper .gfield_required_asterisk { margin-left: 2px; color: var(--wp--preset--color--primary); }
.gform_wrapper .gfield_description { margin-top: 6px; font-size: 13px; color: var(--wp--preset--color--muted); }

/* ---------- Inputs ---------- */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper select,
.gform_wrapper textarea {
	width: 100%; box-sizing: border-box; padding: 13px 16px;
	font: inherit; font-size: 16px; line-height: 1.5; color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--border); border-radius: 12px;
	transition: border-color .15s, box-shadow .15s;
}
.gform_wrapper textarea { min-height: 160px; resize: vertical; }
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
	outline: none; border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--primary) 18%, transparent);
}

/* ---------- Consent / checkboxes ---------- */
.gform_wrapper .ginput_container_consent { display: flex; gap: 10px; align-items: flex-start; }
.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] {
	flex: none; width: 20px; height: 20px; margin: 2px 0 0;
	accent-color: var(--wp--preset--color--primary); cursor: pointer;
}
.gform_wrapper .gfield_consent_label { font-size: 15px; line-height: 1.5; cursor: pointer; }

/* ---------- Submit ---------- */
.gform_wrapper .gform_footer { display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.gform_wrapper .gform_button {
	display: inline-block; padding: 14px 28px; border: 0; border-radius: 999px; cursor: pointer;
	font: inherit; font-size: 15px; font-weight: 800;
	color: var(--wp--preset--color--base); background: var(--wp--preset--color--primary);
	transition: filter .15s;
}
.gform_wrapper .gform_button:hover { filter: brightness(1.1); }
.gform_wrapper .gform_button:focus-visible { outline: 3px solid var(--wp--preset--color--contrast); outline-offset: 3px; }
.gform_wrapper .gform_button:disabled { opacity: .6; cursor: wait; }

/* Loading spinner while the AJAX submission runs. */
.gform_wrapper .gform_ajax_spinner,
.gform_wrapper .gform-loader {
	width: 22px; height: 22px; border-radius: 50%;
	border: 3px solid var(--wp--preset--color--border); border-top-color: var(--wp--preset--color--primary);
	animation: mbn-spin .8s linear infinite;
}
.gform_wrapper img.gform_ajax_spinner { object-position: -9999px 0; } /* hide the GIF, keep the ring */
@keyframes mbn-spin { to { transform: rotate(360deg); } }

/* ---------- Validation errors ---------- */
.gform_wrapper .gform_validation_errors {
	margin-bottom: 24px; padding: 16px 20px; border-radius: 16px;
	background: #fef2f2; border: 2px solid #fecaca; color: #991b1b;
}
.gform_wrapper .gform_validation_errors h2,
.gform_wrapper .gform_submission_error { margin: 0; font-size: 16px; font-weight: 800; letter-spacing: 0; color: inherit; }
.gform_wrapper .gform_validation_errors ol { margin: 8px 0 0; padding-left: 18px; font-size: 14px; }
.gform_wrapper .gform_validation_errors a { color: inherit; }
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select { border-color: #dc2626; }
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message { margin: 0 0 6px; font-size: 14px; font-weight: 600; color: #b91c1c; }

/* ---------- Confirmation after submit ---------- */
.gform_confirmation_message {
	display: grid; grid-template-columns: 44px 1fr; gap: 4px 18px; align-items: start;
	margin-block: 32px; padding: 28px;
	border-radius: 20px; background: var(--wp--preset--color--dark); color: var(--wp--preset--color--base);
	font-size: 16px; line-height: 1.6;
	animation: mbn-confirm-in .35s ease-out;
}
.gform_confirmation_message::before {
	content: "✓"; grid-row: 1 / span 2; display: grid; place-items: center;
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--dark);
	font-size: 22px; font-weight: 800;
}
.gform_confirmation_message p { grid-column: 2; margin: 0; }
.gform_confirmation_message .mbn-form-success__title { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
@keyframes mbn-confirm-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.gform_confirmation_message, .gform_wrapper .gform_ajax_spinner, .gform_wrapper .gform-loader { animation: none; }
}
