/* ── Form elements ── */
.es-form {
	display: grid;
	gap: 1.25rem;
}

.es-form-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 36rem) {
	.es-form-row--2col {
		grid-template-columns: 1fr 1fr;
	}
}

.es-field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.es-label {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--text);
}

.es-label--required::after {
	content: ' *';
	color: #DC2626;
}

.es-input,
.es-textarea,
.es-select {
	width: 100%;
	padding: 0.75rem 1rem;
	font-size: var(--wp--preset--font-size--base);
	color: var(--wp--preset--color--text);
	background-color: var(--wp--preset--color--white);
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--es-btn-radius);
	transition: border-color var(--es-transition), box-shadow var(--es-transition);
	appearance: none;
}

.es-input:focus,
.es-textarea:focus,
.es-select:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 3px var(--wp--preset--color--accent-light);
}

.es-input::placeholder,
.es-textarea::placeholder {
	color: var(--wp--preset--color--text-muted);
}

.es-textarea {
	resize: vertical;
	min-height: 7rem;
}

.es-select {
	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='%2364748B' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	padding-inline-end: 2.5rem;
	cursor: pointer;
}

/* Checkbox / radio */
.es-check {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
}

.es-check__input {
	width: 1.125rem;
	height: 1.125rem;
	margin-block-start: 0.125rem;
	flex-shrink: 0;
	accent-color: var(--wp--preset--color--accent);
	cursor: pointer;
}

.es-check__label {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--text-muted);
	line-height: 1.5;
}

.es-check__label a {
	color: var(--wp--preset--color--primary);
}

/* Error state */
.es-field--error .es-input,
.es-field--error .es-textarea,
.es-field--error .es-select {
	border-color: #DC2626;
}

.es-field__error {
	font-size: var(--wp--preset--font-size--xs);
	color: #DC2626;
}

/* Form status messages */
.es-form__status {
	padding: 1rem 1.25rem;
	border-radius: var(--es-btn-radius);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	display: none;
}

.es-form__status.is-success {
	display: block;
	background-color: #ECFDF5;
	color: #065F46;
	border: 1px solid #A7F3D0;
}

.es-form__status.is-error {
	display: block;
	background-color: #FEF2F2;
	color: #991B1B;
	border: 1px solid #FECACA;
}

/* Submit button state */
.es-form__submit[aria-busy="true"] {
	opacity: 0.7;
	cursor: not-allowed;
	pointer-events: none;
}
