/**
 * TWP Hyper Config — formularios (contacto, reservas, comentarios, búsqueda).
 */

.twp-form {
	display: flex;
	flex-direction: column;
	gap: var(--twp-space-2);
}

.twp-form__row {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.twp-form label {
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--twp-color-dark);
}

.twp-form input[type="text"],
.twp-form input[type="email"],
.twp-form input[type="url"],
.twp-form input[type="tel"],
.twp-form input[type="date"],
.twp-form input[type="number"],
.twp-form textarea,
.twp-form select,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.search-form input[type="search"] {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--twp-color-border);
	border-radius: var(--twp-radius);
	font-family: var(--twp-font-body);
	font-size: 1rem;
	color: var(--twp-color-text);
	background: var(--twp-color-white);
}

.twp-form input:focus,
.twp-form textarea:focus,
.twp-form select:focus {
	border-color: var(--twp-color-primary);
}

.twp-form__honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
}

.twp-form__notice {
	padding: 0.75rem 1rem;
	border-radius: var(--twp-radius);
	font-size: 0.9rem;
}

.twp-form__notice--success {
	background: rgba(34, 197, 94, 0.12);
	color: #15803d;
}

.twp-form__notice--error {
	background: rgba(239, 68, 68, 0.12);
	color: #b91c1c;
}

.twp-form__privacy {
	font-size: 0.8rem;
	color: var(--twp-color-text-muted);
}

.search-form {
	display: flex;
	gap: 0.5rem;
	margin-block: var(--twp-space-2);
}

.search-form .search-submit {
	padding: 0.75rem 1.25rem;
	border-radius: var(--twp-radius);
	background: var(--twp-color-primary);
	color: var(--twp-color-white);
	border: 0;
}

/* Tarjeta de contacto: flotante, con campos de línea inferior y botón en degradado. */
.twp-form-card {
	background: var(--twp-color-white);
	border-radius: calc(var(--twp-radius) + 6px);
	box-shadow: var(--twp-shadow-md);
	padding: var(--twp-space-4);
	position: relative;
}

.twp-form-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, var(--twp-color-primary), var(--twp-color-accent));
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	opacity: 0.5;
}

.twp-form-card__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--twp-color-primary);
	margin: 0 0 0.35rem;
}

.twp-form-card__title {
	margin-bottom: var(--twp-space-3);
}

.twp-form--underline .twp-form__row--underline {
	gap: 0.2rem;
}

.twp-form--underline input:not([type="hidden"]),
.twp-form--underline textarea {
	border: none;
	border-bottom: 2px solid var(--twp-color-border);
	border-radius: 0;
	padding: 0.6rem 0.1rem;
	background: transparent;
}

.twp-form--underline input:not([type="hidden"]):focus,
.twp-form--underline textarea:focus {
	border-bottom-color: var(--twp-color-primary);
	outline: none;
}

.twp-form--underline label {
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--twp-color-text-muted);
}

.twp-form__submit {
	align-self: flex-start;
	margin-top: var(--twp-space-1);
}
