/* FinPick engine — CTA and lead form.
   Design tokens are declared by the theme; these fall back so the plugin
   still looks right if it is activated with another theme. */

.fp-cta,
.fp-leadform {
	--fp-blue: var(--finpick-blue, #084CA6);
	--fp-orange: var(--finpick-orange, #F99454);
	--fp-grey: var(--finpick-light-grey, #DADCD8);
	--fp-ink: var(--finpick-text, #16202e);
	--fp-muted: var(--finpick-text-muted, #5b6675);
	--fp-border: var(--finpick-border, #e3e6ea);
	--fp-bg: var(--finpick-bg-alt, #f6f8fb);
}

/* --- CTA ------------------------------------------------------------ */

.fp-cta {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	background: var(--fp-bg);
	border: 1px solid var(--fp-border);
	border-left: 4px solid var(--fp-orange);
	border-radius: 10px;
	padding: 18px 22px;
	margin: 30px 0;
}

.fp-cta__heading {
	margin: 0 0 4px;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--fp-ink);
	line-height: 1.35;
}

.fp-cta__sub {
	margin: 0;
	color: var(--fp-muted);
	font-size: .92rem;
	line-height: 1.5;
}

.fp-btn {
	display: inline-block;
	border: 0;
	border-radius: 8px;
	padding: 12px 22px;
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, transform .1s ease;
}

.fp-btn--primary { background: var(--fp-blue); color: #fff; }
.fp-btn--primary:hover,
.fp-btn--primary:focus { background: #063a80; color: #fff; }
.fp-btn--primary:active { transform: translateY(1px); }

.fp-btn:focus-visible { outline: 3px solid var(--fp-orange); outline-offset: 2px; }

/* --- Lead form ------------------------------------------------------ */

.fp-leadform {
	background: var(--fp-bg);
	border: 1px solid var(--fp-border);
	border-radius: 12px;
	padding: 26px 24px;
	margin: 36px 0;
	scroll-margin-top: 90px;
}

.fp-leadform__title {
	margin: 0 0 6px;
	font-size: 1.3rem;
	line-height: 1.3;
	color: var(--fp-ink);
}

.fp-leadform__sub {
	margin: 0 0 20px;
	color: var(--fp-muted);
	font-size: .95rem;
	line-height: 1.55;
}

.fp-leadform__form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.fp-field { display: flex; flex-direction: column; grid-column: 1 / -1; }
.fp-field--half { grid-column: span 1; }

.fp-field label {
	font-size: .82rem;
	font-weight: 600;
	color: var(--fp-ink);
	margin-bottom: 5px;
}

.fp-field input,
.fp-field select,
.fp-field textarea {
	width: 100%;
	border: 1px solid var(--fp-border);
	border-radius: 8px;
	padding: 11px 13px;
	font: inherit;
	font-size: .95rem;
	background: #fff;
	color: var(--fp-ink);
}

.fp-field input:focus,
.fp-field select:focus,
.fp-field textarea:focus {
	outline: none;
	border-color: var(--fp-blue);
	box-shadow: 0 0 0 3px rgba(8, 76, 166, .12);
}

.fp-field--consent label {
	flex-direction: row;
	display: flex;
	gap: 9px;
	align-items: flex-start;
	font-weight: 400;
	font-size: .85rem;
	color: var(--fp-muted);
	line-height: 1.5;
}

.fp-field--consent input { width: auto; margin-top: 2px; flex: 0 0 auto; }

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.fp-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.fp-leadform__submit { grid-column: 1 / -1; justify-self: start; }

.fp-leadform__status {
	grid-column: 1 / -1;
	margin: 0;
	font-size: .88rem;
	min-height: 1.2em;
}

.fp-leadform__status.is-error { color: #b3261e; }
.fp-leadform__status.is-working { color: var(--fp-muted); }

.fp-leadform__thanks {
	margin: 0;
	padding: 18px 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--fp-blue);
}

.fp-leadform__alt {
	grid-column: 1 / -1;
	margin: 0;
	font-size: .85rem;
	color: var(--fp-muted);
}

@media (max-width: 600px) {
	.fp-leadform__form { grid-template-columns: 1fr; }
	.fp-field--half { grid-column: 1 / -1; }
	.fp-cta { flex-direction: column; align-items: flex-start; }
	.fp-leadform__submit { width: 100%; text-align: center; justify-self: stretch; }
}
