/**
 * Formularios: contacto, búsqueda y comentarios.
 *
 * @package ElEscorpion\Theme
 */

/* --- Campos ------------------------------------------------------------- */

.esc-field {
	display: grid;
	gap: 0.35rem;
	margin-block-end: var(--esc-space-sm);
}

.esc-field__label {
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.esc-field__required {
	color: var(--esc-primary);
}

.esc-field__input,
.search-field,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	min-height: 46px;
	border: 1px solid var(--esc-border);
	border-radius: var(--esc-radius-sm);
	background: var(--esc-surface);
	color: var(--esc-text);
	font-size: 1rem;
	transition: border-color var(--esc-transition-fast);
}

.esc-field__input:focus,
.search-field:focus,
.comment-form input:focus,
.comment-form textarea:focus {
	border-color: var(--esc-primary);
	outline: none;
}

.esc-field__input::placeholder {
	color: var(--esc-muted);
}

.esc-field__input--textarea {
	min-height: 9rem;
	resize: vertical;
}

.esc-field__note {
	color: var(--esc-muted);
	font-size: 0.8125rem;
}

/* Trampa antispam: invisible para las personas, presente para los robots. */
.esc-field--trap {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* --- Página de contacto -------------------------------------------------- */

.esc-contact__grid {
	display: grid;
	gap: var(--esc-space-lg);
	margin-block-start: var(--esc-space-md);
}

@media (min-width: 48rem) {

	.esc-contact__grid {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	}
}

.esc-contact__info {
	padding: var(--esc-space-sm);
	background: var(--esc-surface);
	border: 1px solid var(--esc-border);
	border-radius: var(--esc-radius);
	align-self: start;
}

.esc-contact__list {
	display: grid;
	gap: 0.75rem;
	margin-block: 0 var(--esc-space-sm);
	padding: 0;
	list-style: none;
}

.esc-contact__list li {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--esc-muted);
}

.esc-contact__list .esc-icon {
	color: var(--esc-primary);
}

.esc-contact__list a {
	color: var(--esc-text);
	text-decoration: none;
}

.esc-contact__list a:hover,
.esc-contact__list a:focus-visible {
	color: var(--esc-primary);
}

/* --- Búsqueda ----------------------------------------------------------- */

.search-form {
	display: flex;
	gap: 0.5rem;
}

.search-form label {
	flex: 1 1 auto;
	min-width: 0;
}

.search-submit {
	flex: 0 0 auto;
	padding: 0.8rem 1.5rem;
	min-height: 46px;
	border: 0;
	border-radius: var(--esc-radius-pill);
	background: var(--esc-primary);
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.search-submit:hover,
.search-submit:focus-visible {
	background: var(--esc-primary-dark);
}

/* --- Newsletter --------------------------------------------------------- */

.esc-newsletter {
	text-align: center;
	border-block-start: 1px solid var(--esc-border);
}

.esc-newsletter__text {
	margin-inline: auto;
	max-width: 52ch;
	color: var(--esc-muted);
}

.esc-newsletter__form {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-block: var(--esc-space-sm);
}

.esc-newsletter__input {
	flex: 1 1 18rem;
	max-width: 24rem;
	padding: 0.8rem 1rem;
	min-height: 46px;
	border: 1px solid var(--esc-border);
	border-radius: var(--esc-radius-pill);
	background: var(--esc-surface);
	color: var(--esc-text);
}

.esc-newsletter__legal,
.esc-newsletter__notice {
	margin: 0;
	color: var(--esc-muted);
	font-size: 0.8125rem;
}

/* --- Comentarios -------------------------------------------------------- */

.esc-comments {
	margin-block-start: var(--esc-space-lg);
	padding-block-start: var(--esc-space-lg);
	border-block-start: 1px solid var(--esc-border);
}

.esc-comments__list {
	display: grid;
	gap: var(--esc-space-sm);
	margin: 0 0 var(--esc-space-lg);
	padding: 0;
	list-style: none;
}

.esc-comments__list .children {
	margin-block-start: var(--esc-space-sm);
	padding-inline-start: var(--esc-space-sm);
	border-inline-start: 1px solid var(--esc-border);
	list-style: none;
}

.esc-comments__list .comment-body {
	padding: var(--esc-space-sm);
	background: var(--esc-surface);
	border: 1px solid var(--esc-border);
	border-radius: var(--esc-radius);
}

.esc-comments__list .comment-author img {
	border-radius: 50%;
}

.esc-comments__list .comment-meta {
	margin-block-end: 0.5rem;
	color: var(--esc-muted);
	font-size: 0.875rem;
}

.esc-comment-form__notes {
	color: var(--esc-muted);
	font-size: 0.875rem;
}

.comment-form .form-submit input[type="submit"] {
	padding: 0.8rem 1.75rem;
	min-height: 46px;
	border: 0;
	border-radius: var(--esc-radius-pill);
	background: var(--esc-primary);
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
