/* The website's own quote form, [alba_quote_form], inside the theme's form card. Uses the theme's colours and buttons. */
.alba-sf { text-align: left; }
.alba-sf__label, .alba-sf legend { display: block; margin: 0 0 6px; padding: 0; font-weight: 700; color: var(--pg-heading, #0F2A4A); }
.alba-sf input[type=text], .alba-sf input[type=tel], .alba-sf input[type=email] {
	display: block; width: 100%; min-height: 50px; margin: 0 0 14px; padding: 10px 14px;
	border: 1.5px solid var(--pg-line, #dde3e8); border-radius: var(--pg-radius-btn, 10px);
	background: #fff; color: var(--pg-ink, #2b3640); font: inherit; font-size: 17px; box-sizing: border-box;
}
.alba-sf input:focus { outline: none; border-color: var(--pg-primary, #2266B2); box-shadow: 0 0 0 3px rgba(34, 102, 178, .2); }
.alba-sf__btn { width: 100%; margin-top: 4px; }
.alba-sf fieldset { border: 0; margin: 0 0 14px; padding: 0; min-width: 0; }
.alba-sf__pills { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.alba-sf__pills--wide .alba-sf__pill:last-child { grid-column: 1 / -1; }
.alba-sf__pill { position: relative; display: block; cursor: pointer; }
.alba-sf__pill input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.alba-sf__pill span { display: flex; align-items: center; justify-content: center; min-height: 46px; padding: 8px 10px; border: 1.5px solid var(--pg-line, #dde3e8); border-radius: var(--pg-radius-btn, 10px); background: #fff; font-size: 15px; font-weight: 600; line-height: 1.25; text-align: center; color: var(--pg-ink, #2b3640); }
.alba-sf__pill input:checked + span { border-color: var(--pg-primary, #2266B2); background: var(--pg-surface-alt, #f4f6f8); box-shadow: inset 0 0 0 1px var(--pg-primary, #2266B2); }
.alba-sf__pill input:focus-visible + span { outline: 3px solid #8DB6E6; outline-offset: 2px; }
.alba-sf__got { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border-radius: var(--pg-radius-btn, 10px); background: #E8F5EC; color: #14532D; font-weight: 700; }
.alba-sf__tick { flex: 0 0 26px; height: 26px; border-radius: 50%; background: #1E8E4E; color: #fff; font-size: 15px; line-height: 26px; text-align: center; }
.alba-sf__step-label { margin: 0 0 12px; font-weight: 700; color: var(--pg-heading, #0F2A4A); }
.alba-sf__skip { display: block; margin: 10px auto 0; padding: 6px; border: 0; background: none; color: var(--pg-ink-muted, #5a6672); font: inherit; font-size: 15px; text-decoration: underline; cursor: pointer; }
.alba-sf__error { margin: 12px 0 0; padding: 10px 12px; border-radius: var(--pg-radius-btn, 10px); background: #FDECEC; color: #8A1C1C; font-weight: 600; }
.alba-sf__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alba-sf__thanks:focus { outline: none; }
.alba-sf__thanks h3 { margin: 0 0 8px; }
/* Step 2 shows only after step 1 is saved (JavaScript). Without JavaScript, step 1 alone is sent: still a full lead. */
.alba-sf__form:not(.is-step-2) .alba-sf__step-2 { display: none; }
.alba-sf__form.is-step-2 .alba-sf__step-1 { display: none; }
.alba-sf__form.is-step-2 .alba-sf__step-2 { display: block; }
/* reCAPTCHA's floating badge is hidden: the form card shows Google's notice text instead (allowed by Google). */
.grecaptcha-badge { visibility: hidden; }
/* Labels stay left-aligned on every screen (Justin, 13 Nov: "labels should be left aligned"; an allowed exception
   to the centring rule, listed in the site gate's allow.layout). The calculator link and the thank-you are centred. */
.alba-sf__or { position: relative; margin: 14px 0 10px; text-align: center; font-size: 14px; color: var(--pg-ink-muted, #5a6672); }
.alba-sf__or::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--pg-line, #dde3e8); }
.alba-sf__or span { position: relative; padding: 0 10px; background: #fff; }
.alba-sf__guide { display: flex; justify-content: center; }
.alba-sf__guide-note { margin: 6px 0 0; text-align: center; font-size: 14px; color: var(--pg-ink-muted, #5a6672); }
.alba-sf__thanks { text-align: center; }
@media (max-width: 900px) {
	.alba-sf, .alba-sf__label, .alba-sf legend { text-align: left; }
}
