/**
 * Mailchimp Capture — front-end form.
 *
 * Editorial default: hairline box, spaced-out eyebrow, italic serif headline,
 * and a single joined field + button block with square corners.
 * Low specificity throughout so a theme can override anything it needs to.
 */

.mcap-form {
	--mcap-accent: #111111;
	--mcap-ink: #111111;
	--mcap-line: #111111;
	--mcap-hairline: rgba( 0, 0, 0, 0.16 );
	--mcap-surface: transparent;
	--mcap-field-bg: #ffffff;
	--mcap-muted: #8a8a8a;
	--mcap-serif: Georgia, "Iowan Old Style", "Times New Roman", Times, serif;

	margin: 2.5em 0;
	clear: both;
	font-size: 1rem;
	line-height: 1.5;
	color: var( --mcap-ink );
}

.mcap-form * {
	box-sizing: border-box;
}

/* ---------- Layout variants ---------- */

.mcap-style-card .mcap-form__inner {
	background: var( --mcap-surface );
	border: 1px solid var( --mcap-line );
	border-radius: 0;
	padding: clamp( 1.6rem, 4.5vw, 2.75rem );
}

.mcap-style-minimal .mcap-form__inner {
	border-top: 1px solid var( --mcap-line );
	padding: 1.6rem 0 0;
}

.mcap-style-inline .mcap-form__inner {
	padding: 0;
}

/* ---------- Copy ---------- */

.mcap-form__eyebrow {
	margin: 0 0 0.7em;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var( --mcap-muted );
}

.mcap-form__headline {
	margin: 0 0 0.7em;
	font-size: clamp( 1.45rem, 3.4vw, 2.05rem );
	font-weight: 400;
	line-height: 1.18;
	letter-spacing: -0.01em;
	color: var( --mcap-ink );
}

.mcap-headline-editorial .mcap-form__headline {
	font-family: var( --mcap-serif );
	font-style: italic;
}

.mcap-headline-theme .mcap-form__headline {
	font-weight: 700;
	font-size: clamp( 1.2rem, 2.6vw, 1.5rem );
}

.mcap-form__description {
	margin: 0 0 1.1em;
	max-width: 46em;
	color: var( --mcap-muted );
	font-size: 0.95em;
}

.mcap-form__footnote {
	margin: 0.85em 0 0;
	color: var( --mcap-muted );
	font-size: 0.9em;
	line-height: 1.45;
}

/* ---------- Field block ----------
 * Input and button share one hairline box with no gap between them.
 */

.mcap-form__fields {
	display: flex;
	align-items: stretch;
	gap: 0;
	border: 1px solid var( --mcap-line );
	background: var( --mcap-field-bg );
}

.mcap-form__fields:focus-within {
	outline: 2px solid var( --mcap-accent );
	outline-offset: 2px;
}

.mcap-form__input {
	flex: 1 1 12em;
	min-width: 0;
	padding: 1.05em 1.15em;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var( --mcap-ink );
	font: inherit;
	font-size: 1.02em;
	line-height: 1.25;
	appearance: none;
}

.mcap-form__input:focus {
	outline: none;
}

.mcap-form__input::placeholder {
	color: var( --mcap-muted );
	opacity: 1;
}

.mcap-form__input--name {
	flex: 0 1 10em;
	border-right: 1px solid var( --mcap-hairline );
}

.mcap-form__button {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	padding: 1em clamp( 1.25rem, 3.5vw, 2.25rem );
	border: 0;
	border-radius: 0;
	background: var( --mcap-accent );
	color: #ffffff;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.mcap-form__button:hover {
	opacity: 0.85;
}

.mcap-form__button:disabled {
	cursor: default;
	opacity: 0.55;
}

.mcap-form__consent {
	display: flex;
	gap: 0.55em;
	align-items: flex-start;
	margin-top: 0.9em;
	color: var( --mcap-muted );
	font-size: 0.85em;
}

.mcap-form__consent input {
	margin-top: 0.25em;
}

.mcap-form__turnstile {
	margin-top: 0.9em;
}

/* ---------- Spinner ---------- */

.mcap-form__spinner {
	display: none;
	width: 0.85em;
	height: 0.85em;
	border: 2px solid rgba( 255, 255, 255, 0.4 );
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: mcap-spin 0.7s linear infinite;
}

.mcap-form.is-loading .mcap-form__spinner {
	display: inline-block;
}

@keyframes mcap-spin {
	to { transform: rotate( 360deg ); }
}

@media ( prefers-reduced-motion: reduce ) {
	.mcap-form__spinner { animation: none; }
}

/* ---------- Messages ---------- */

.mcap-form__message:empty {
	display: none;
}

.mcap-form__message {
	margin-top: 0.9em;
	padding: 0.7em 0.9em;
	border-left: 2px solid currentColor;
	font-size: 0.92em;
}

.mcap-form__message.is-success {
	background: rgba( 22, 143, 78, 0.08 );
	color: #10693a;
}

.mcap-form__message.is-error {
	background: rgba( 200, 40, 40, 0.07 );
	color: #a52020;
}

.mcap-form__message.is-info {
	background: rgba( 0, 0, 0, 0.04 );
	color: var( --mcap-muted );
}

.mcap-form.is-done .mcap-form__eyebrow,
.mcap-form.is-done .mcap-form__headline,
.mcap-form.is-done .mcap-form__description,
.mcap-form.is-done .mcap-form__footnote {
	opacity: 0.6;
}

/* ---------- Hidden bits ---------- */

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

.mcap-form__hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* ---------- Admin notice for logged-in editors ---------- */

.mcap-notice {
	margin: 1.5em 0;
	padding: 0.8em 1em;
	border-left: 4px solid #d63638;
	background: rgba( 214, 54, 56, 0.07 );
	font-size: 0.9em;
}

/* ---------- Dark colour schemes ---------- */

@media ( prefers-color-scheme: dark ) {
	.mcap-form {
		--mcap-ink: #f2f2f2;
		--mcap-line: rgba( 255, 255, 255, 0.32 );
		--mcap-hairline: rgba( 255, 255, 255, 0.2 );
		--mcap-field-bg: rgba( 255, 255, 255, 0.04 );
		--mcap-muted: rgba( 255, 255, 255, 0.6 );
	}

	.mcap-form__message.is-success {
		background: rgba( 60, 200, 120, 0.14 );
		color: #7ee2a8;
	}

	.mcap-form__message.is-error {
		background: rgba( 255, 90, 90, 0.14 );
		color: #ff9d9d;
	}
}

/* ---------- Small screens ---------- */

@media ( max-width: 540px ) {
	.mcap-form__fields {
		flex-direction: column;
	}

	.mcap-form__input {
		padding: 0.95em 1em;
	}

	.mcap-form__input--name,
	.mcap-form__input--email {
		border-right: 0;
		border-bottom: 1px solid var( --mcap-hairline );
	}

	.mcap-form__button {
		width: 100%;
		padding: 1.05em 1em;
	}
}
