/* Campaign Core blocks. Uses theme.json tokens; the fallbacks only matter if the theme is swapped. */

.campaign-placeholder {
	padding: var(--wp--preset--spacing--30, 1.5rem);
	border: 2px dashed var(--wp--preset--color--border, #c9ced6);
	border-radius: var(--wp--custom--radius--medium, 8px);
	background: var(--wp--preset--color--paper, #fff);
	color: var(--wp--preset--color--muted, #555b63);
	font-weight: 700;
	text-align: center;
}

/* Donate */
.campaign-donate { margin-inline: auto; max-width: 40rem; }
.campaign-donate--link { display: flex; justify-content: center; }
.campaign-donate--embed iframe { width: 100%; border: 0; }

/* Sign-up form */
.campaign-signup { max-width: 40rem; margin-inline: auto; }
.campaign-signup__grid {
	display: grid;
	gap: var(--wp--preset--spacing--20, 1rem);
	grid-template-columns: 1fr;
}
@media (min-width: 600px) {
	.campaign-signup__grid { grid-template-columns: 1fr 1fr; }
	.campaign-signup__field--email,
	.campaign-signup__field--phone { grid-column: span 2; }
	.campaign-signup__field--phone { grid-column: auto; }
}
.campaign-signup__field label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.3rem;
}
.campaign-signup input[type="text"],
.campaign-signup input[type="email"],
.campaign-signup input[type="tel"] {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--wp--custom--form--field-height, 3rem);
	padding: 0.5rem 0.75rem;
	border: var(--wp--custom--form--field-border, 1px solid #c9ced6);
	border-radius: var(--wp--custom--radius--small, 4px);
	background: var(--wp--preset--color--paper, #fff);
	color: var(--wp--preset--color--ink, #1a1a1a);
	font: inherit;
}
.campaign-signup [aria-invalid="true"] {
	border-color: var(--wp--preset--color--accent, #b3261e);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent, #b3261e);
}
.campaign-signup__error {
	margin: 0.25rem 0 0;
	min-height: 0;
	color: var(--wp--preset--color--accent, #b3261e);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 700;
}
.campaign-signup__error:empty { display: none; }
.campaign-signup__required-note,
.campaign-signup__check span {
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--muted, #555b63);
}
.campaign-signup__checks { display: grid; gap: var(--wp--preset--spacing--10, 0.5rem); margin-block: var(--wp--preset--spacing--30, 1.5rem); }
.campaign-signup__check { display: flex; gap: 0.6rem; align-items: flex-start; }
.campaign-signup__check input { margin-top: 0.25rem; width: 1.15rem; height: 1.15rem; flex: none; }
.campaign-signup .cf-turnstile { margin-bottom: var(--wp--preset--spacing--20, 1rem); }
.campaign-signup button[disabled] { opacity: 0.6; cursor: progress; }
.campaign-signup__status:empty { display: none; }
.campaign-signup__status p {
	padding: var(--wp--preset--spacing--20, 1rem);
	border-radius: var(--wp--custom--radius--small, 4px);
	border-left: 4px solid currentColor;
	background: var(--wp--preset--color--surface, #f4f5f7);
	font-weight: 700;
}
.campaign-signup__status .is-error { color: var(--wp--preset--color--accent, #b3261e); }

/* RSVP */
.campaign-rsvp { max-width: 40rem; margin-inline: auto; }
.campaign-rsvp__details {
	display: grid;
	gap: var(--wp--preset--spacing--10, 0.5rem);
	margin: 0 0 var(--wp--preset--spacing--30, 1.5rem);
	padding: var(--wp--preset--spacing--30, 1.5rem);
	border-radius: var(--wp--custom--radius--medium, 8px);
	background: var(--wp--preset--color--surface, #f4f5f7);
}
.campaign-rsvp__details div { display: grid; grid-template-columns: 5rem 1fr; gap: 0.5rem; }
.campaign-rsvp__details dt { font-weight: 700; }
.campaign-rsvp__details dd { margin: 0; }
.campaign-rsvp__closed { font-weight: 700; text-align: center; }
.campaign-signup__field--guests,
.campaign-signup__field--accessibility { grid-column: 1 / -1; }
.campaign-signup select,
.campaign-signup textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--wp--custom--form--field-height, 3rem);
	padding: 0.5rem 0.75rem;
	border: var(--wp--custom--form--field-border, 1px solid #c9ced6);
	border-radius: var(--wp--custom--radius--small, 4px);
	background: var(--wp--preset--color--paper, #fff);
	color: var(--wp--preset--color--ink, #1a1a1a);
	font: inherit;
}
.campaign-signup__field--guests select { width: auto; min-width: 10rem; }

/* Honeypot: off-screen, not display:none (some bots skip hidden fields). */
.campaign-signup__hp {
	position: absolute !important;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Footer */
.campaign-legal { font-size: var(--wp--preset--font-size--small, 0.875rem); }
.campaign-legal__disclaimer.is-boxed {
	display: inline-block;
	padding: 0.5rem 0.75rem;
	border: 1px solid currentColor;
}
.campaign-social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20, 1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.campaign-social a {
	display: inline-flex;
	padding: 0.5rem; /* 44px touch target */
	color: inherit;
}

/* ---- v0.2: pledge + RSVP fields ---- */
@media (min-width: 600px) {
	.campaign-signup__field--county,
	.campaign-signup__field--organization { grid-column: 1 / -1; }
	.campaign-signup--pledge .campaign-signup__field--county { grid-column: auto; }
}
.campaign-signup__hint {
	margin: 0.25rem 0 0;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--muted, #555b63);
}
.campaign-signup__field--attending select { width: auto; min-width: 10rem; }
.campaign-signup .wp-block-button { display: block; }
.campaign-signup--pledge .wp-block-button__link,
.campaign-signup--rsvp .wp-block-button__link { width: 100%; }

/* Thank-you state: fields go away, the message (and share links) stay. */
.campaign-signup__share { display: none; }
.campaign-signup.is-complete > :not(.campaign-signup__status):not(.campaign-signup__share):not(input[type="hidden"]) { display: none; }
.campaign-signup.is-complete .campaign-signup__share { display: block; }
.campaign-signup.is-complete .campaign-signup__status p {
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--wp--preset--font-family--heading, serif);
	font-size: var(--wp--preset--font-size--x-large, 2rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--wp--preset--color--primary, #1f2a44);
}
.campaign-signup__share ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0; padding: 0; list-style: none; font-weight: 700; }

/* County type-ahead (signup.js swaps it in for the plain dropdown). */
.campaign-combo { position: relative; }
.campaign-combo__input {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--wp--custom--form--field-height, 3rem);
	padding: 0.5rem 0.75rem;
	border: var(--wp--custom--form--field-border, 1px solid #c9ced6);
	border-radius: var(--wp--custom--radius--small, 4px);
	background: var(--wp--preset--color--paper, #fff);
	color: var(--wp--preset--color--ink, #1a1a1a);
	font: inherit;
}
.campaign-combo__list {
	position: absolute;
	z-index: 20;
	inset: calc(100% + 2px) 0 auto 0;
	max-height: 18rem;
	overflow-y: auto;
	margin: 0;
	padding: 0.25rem 0;
	list-style: none;
	border: var(--wp--custom--form--field-border, 1px solid #c9ced6);
	border-radius: var(--wp--custom--radius--small, 4px);
	background: var(--wp--preset--color--surface, #fff);
	box-shadow: 0 0.75rem 1.5rem rgb(0 0 0 / 0.12);
}
.campaign-combo__list li { padding: 0.6rem 0.75rem; cursor: pointer; }
.campaign-combo__list li[aria-selected="true"] {
	background: var(--wp--preset--color--primary, #1f2a44);
	color: var(--wp--preset--color--primary-contrast, #fff);
}
.campaign-combo__list .campaign-combo__none { cursor: default; color: var(--wp--preset--color--muted, #555b63); }
