/* Public Figure Forms — base structural styles.
   Per-form colors/variants are injected as a scoped inline <style> block. */

.pff-form { max-width: 560px; margin: 0 auto; }
.pff-form * { box-sizing: border-box; }
.pff-form__el { margin: 0; }

.pff-error {
	border: 1px dashed #b00020;
	color: #b00020;
	padding: 10px 14px;
	font-size: 14px;
}

/* Popup context: form sits inside the modal, so drop the max-width cap. */
.pff-context-popup .pff-form,
.pff-context-popup.pff-form { max-width: none; }

/* Reduced motion */
@media ( prefers-reduced-motion: reduce ) {
	.pff-submit { transition: none !important; }
}

/* ── Content elements (heading / sub-heading / text / paragraph / CTA / image / divider) ──
   Spacing between elements is handled by the form's flex `gap` (one source of
   truth). Inner elements carry no default margin so gaps stay even; per-element
   Space ↑/↓ overrides are applied inline and still win. */
.pff-content { margin: 0; }
.pff-c-heading {
	font-family: var(--ff-head, 'Times New Roman', Times, serif);
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.2;
	margin: 0;
	color: inherit;
}
.pff-c-subheading {
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.5;
	letter-spacing: .02em;
	margin: 0;
	color: inherit;
}
.pff-c-text {
	font-family: inherit;
	font-size: .95rem;
	line-height: 1.6;
	margin: 0;
	color: inherit;
}
.pff-c-paragraph {
	font-family: inherit;
	font-size: .95rem;
	line-height: 1.7;
	margin: 0;
	color: inherit;
}
.pff-c-paragraph p { margin: 0 0 .8em; }
.pff-c-paragraph p:last-child { margin-bottom: 0; }
.pff-c-divider { border: none; border-top: 1px solid currentColor; opacity: .25; margin: 0; }

/* CTA: wrapper controls alignment, anchor is the button */
.pff-cta-wrap { margin: 8px 0 16px; }
.pff-cta-wrap.pff-align-left   { text-align: left; }
.pff-cta-wrap.pff-align-center { text-align: center; }
.pff-cta-wrap.pff-align-right  { text-align: right; }
.pff-cta {
	display: inline-block;
	padding: 12px 26px;
	font-family: var(--ff-body, 'Jost', system-ui, sans-serif);
	letter-spacing: .04em;
	text-decoration: none;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.pff-cta--solid { background: #000; color: #fff; border: 1px solid #000; }
.pff-cta--solid:hover { background: #fff; color: #000; }
.pff-cta--outline { background: transparent; color: #000; border: 1px solid #000; }
.pff-cta--outline:hover { background: #000; color: #fff; }

.pff-c-image { max-width: 100%; height: auto; display: block; margin-bottom: 8px; }
.pff-c-image.pff-align-center { margin-left: auto; margin-right: auto; }
.pff-c-image.pff-align-right { margin-left: auto; }
.pff-c-image.pff-align-left { margin-right: auto; }
