/* ===========================================================
   Voyamore Core — Signup form (Mailchimp backed)
   Renders just the form + legal + status slot. The surrounding
   section, background, eyebrow and heading are built in Oxygen.
   Mockup ref: Voyamore Homepage.html · #signup .email-form
   =========================================================== */

.vym-signup {
	font-family: var(--vym-font-ui);
	color: var(--vym-text);
}

/* ---------- Form ---------- */
.vym-signup__form {
	display: grid;
	grid-template-columns: 1fr 1.4fr 1fr auto;
	gap: 10px;
	max-width: 880px;
	margin: 0 auto 16px;
	text-align: left;
}

.vym-signup__form input,
.vym-signup__form select {
	width: 100%;
	padding: 14px 22px;
	background: var(--vym-glass);
	border: 1px solid var(--vym-border);
	border-radius: 999px;
	color: var(--vym-text);
	font-family: inherit;
	font-size: 14px;
	transition: border-color 0.25s var(--vym-ease), background 0.25s var(--vym-ease);
}
.vym-signup__form input::placeholder { color: var(--vym-muted); }
.vym-signup__form input:focus,
.vym-signup__form select:focus {
	outline: none;
	border-color: var(--vym-accent);
	background: color-mix(in srgb, var(--vym-accent) 5%, var(--vym-glass));
}

.vym-signup__form select {
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%238892A4' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 22px center;
	padding-right: 44px;
	cursor: pointer;
}

/* Honeypot — completely hidden from real users + screen readers. */
.vym-signup__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* ---------- Submit button ---------- */
.vym-signup__submit {
	padding: 14px 26px;
	border-radius: 999px;
	background: var(--vym-accent);
	color: var(--vym-pill-fg);
	font-family: inherit;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.04em;
	border: 0;
	cursor: pointer;
	transition: transform 0.25s var(--vym-ease), box-shadow 0.25s var(--vym-ease), opacity 0.2s;
	white-space: nowrap;
}
.vym-signup__submit:hover:not(:disabled) {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -10px color-mix(in srgb, var(--vym-accent) 60%, transparent);
}
.vym-signup__submit:disabled {
	opacity: 0.6;
	cursor: progress;
}
.vym-signup__submit-text { display: inline-block; }
.vym-signup__submit.is-loading .vym-signup__submit-text { opacity: 0.7; }

/* ---------- Legal / status ---------- */
.vym-signup__legal {
	font-size: 12px;
	color: var(--vym-muted);
	margin: 0;
	text-align: center;
}

.vym-signup__status {
	margin-top: 18px;
	font-size: 14px;
	min-height: 1.5em;
	text-align: center;
	transition: opacity 0.3s var(--vym-ease);
}
.vym-signup__status:empty { min-height: 0; }
.vym-signup__status .vym-signup__status-msg {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 12px;
	font-weight: 500;
}
.vym-signup__status .vym-signup__status-msg--success {
	background: color-mix(in srgb, var(--vym-accent) 12%, transparent);
	color: var(--vym-accent);
	border: 1px solid color-mix(in srgb, var(--vym-accent) 35%, transparent);
}
.vym-signup__status .vym-signup__status-msg--error {
	background: color-mix(in srgb, #d63638 12%, transparent);
	color: #d63638;
	border: 1px solid color-mix(in srgb, #d63638 35%, transparent);
}

/* When the form has succeeded, hide it and just show the message. */
.vym-signup.is-done .vym-signup__form,
.vym-signup.is-done .vym-signup__legal { display: none; }
.vym-signup.is-done .vym-signup__status { margin-top: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 880px) {
	.vym-signup__form { grid-template-columns: 1fr 1fr; }
	.vym-signup__form .vym-signup__submit { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
	.vym-signup__form { grid-template-columns: 1fr; }
}

/* ---------- Compact layout (sidebar, deal-detail aside) ----------
   Email + button only; stacked vertically. Sized for ~280px wide
   columns. Works fine inside any container — the host controls the
   surrounding card chrome (background, padding, border, heading). */
.vym-signup--compact .vym-signup__form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.vym-signup--compact .vym-signup__form > input[type="email"],
.vym-signup--compact .vym-signup__form > .vym-signup__submit {
	width: 100%;
}
.vym-signup--compact .vym-signup__legal {
	margin-top: 12px;
	font-size: 12px;
}
