/* Best One Insurance - the public quote form ("Get a Quote - all insurance"). Loaded only on pages that show it, by mother-public-quote.php.
   Everything is scoped to .bo-public-quote (the wrapper the plugin puts around the form) so no other form or page is touched. Mobile first,
   touch targets of at least 44 px, brand purple #852883. Gravity Forms' own stylesheets stay on the page (the site's other forms use them), so the
   rules that fight them carry !important. */

:root {
	--bq-purple: #852883;
	--bq-purple-700: #6a1f68;
	--bq-purple-900: #4a1348;
	--bq-purple-50: #f8eff8;
	--bq-purple-100: #efdcee;
	--bq-ink: #1f1b2d;
	--bq-muted: #5b5668;
	--bq-line: #d9d4e0;
	--bq-input: #8b8497;
	--bq-bg: #f6f3f8;
	--bq-danger: #b42318;
	--bq-danger-bg: #fef3f2;
	--bq-radius: 12px;
	--bq-focus: #4a1348;
}

.bo-public-quote { max-width: 780px; margin: 0 auto; padding: 0; color: var(--bq-ink); font-size: 16px; line-height: 1.5; box-sizing: border-box; text-align: left; }
.bo-public-quote *, .bo-public-quote *::before, .bo-public-quote *::after { box-sizing: border-box; }
.bo-public-quote :focus-visible { outline: 3px solid var(--bq-focus); outline-offset: 2px; }
.bo-public-quote a { color: var(--bq-purple-700); }

/* ---------- the card ---------- */
.bo-public-quote .gform_wrapper { background: #fff; border: 1px solid var(--bq-line); border-radius: 16px; padding: 18px 16px 0 !important; margin: 0 !important; max-width: none !important; width: 100%;
	box-shadow: 0 1px 2px rgba(31, 27, 45, .05), 0 8px 28px rgba(74, 19, 72, .07); overflow: visible; }
@media (min-width: 760px) { .bo-public-quote .gform_wrapper { padding: 28px 32px 0 !important; } }
.bo-public-quote .gform_wrapper form { margin: 0; }
.bo-public-quote .gform_anchor { height: 0; outline: none; }
.bo-public-quote .gform_heading, .bo-public-quote .gform_title { display: none; }
.bo-public-quote .gform_wrapper .gform_validation_container, .bo-public-quote .gform_wrapper li.gform_validation_container { display: none !important; position: absolute !important; left: -9000px !important; width: 1px; height: 1px; overflow: hidden; }
.bo-public-quote .gform_wrapper input[type="hidden"] { display: none !important; }
.bo-public-quote .gform_ajax_spinner { display: none !important; }
.bo-public-quote .gform_wrapper ul, .bo-public-quote .gform_wrapper ol { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.bo-public-quote .gform_wrapper li { margin: 0; }
.bo-public-quote .gf_clear, .bo-public-quote .gf_step_clear { display: none; }
.bo-public-quote .screen-reader-text, .bo-public-quote .hidden_label .gfield_label { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- steps bar (Gravity Forms "steps"; the script hides the steps that do not apply and renumbers the rest) ---------- */
.bo-public-quote .gform_wrapper .gf_page_steps { display: flex; gap: 0; margin: 0 0 22px !important; padding: 0 0 18px !important; border-bottom: 1px solid var(--bq-line); }
.bo-public-quote .gform_wrapper .gf_step { flex: 1 1 0; min-width: 0; display: flex !important; flex-direction: column; align-items: center; gap: 6px; position: relative; text-align: center; color: var(--bq-muted);
	font-size: 0 !important; line-height: 1.25 !important; padding: 0 2px; margin: 0 !important; width: auto !important; height: auto !important; opacity: 1 !important; filter: none !important; }
.bo-public-quote .gform_wrapper .gf_step.bo-step-off { display: none !important; }
.bo-public-quote .gform_wrapper .gf_step::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 3px; background: var(--bq-line); z-index: 0; border-radius: 2px; }
.bo-public-quote .gform_wrapper .gf_step.bo-first::before { display: none; }
.bo-public-quote .gform_wrapper .gf_step_completed::before, .bo-public-quote .gform_wrapper .gf_step_active::before { background: var(--bq-purple); }
.bo-public-quote .gform_wrapper .gf_step span.gf_step_number { position: relative; z-index: 1; width: 32px; height: 32px; border-radius: 50%; display: inline-flex !important; align-items: center; justify-content: center; background: #fff;
	border: 2px solid var(--bq-input); color: var(--bq-muted); font: 700 14px/1 inherit !important; font-family: inherit !important; margin: 0 !important; padding: 0; vertical-align: baseline; }
.bo-public-quote .gform_wrapper .gf_step span.gf_step_label { display: block !important; overflow-wrap: anywhere; font-size: 12.5px; line-height: 1.25; }
.bo-public-quote .gform_wrapper .gf_step_active { color: var(--bq-purple-700); font-weight: 700; }
.bo-public-quote .gform_wrapper .gf_step_active span.gf_step_number { background: var(--bq-purple); border-color: var(--bq-purple); color: #fff; box-shadow: 0 0 0 4px var(--bq-purple-100); }
.bo-public-quote .gform_wrapper .gf_step_completed span.gf_step_number { background: var(--bq-purple-50); border-color: var(--bq-purple); color: transparent; font-size: 0 !important; }
.bo-public-quote .gform_wrapper .gf_step_completed span.gf_step_number::before { content: "\2713"; font-size: 15px; color: var(--bq-purple-700); }
.bo-public-quote .gform_wrapper .gf_step_completed { color: var(--bq-ink); }
.bo-public-quote .bo-stepnote { display: none; margin: 0 0 14px; font-weight: 700; color: var(--bq-purple-700); font-size: 16px; }
.bo-public-quote .bo-stepnote span { font-weight: 400; color: var(--bq-muted); }
@media (max-width: 899px) {
	.bo-public-quote .gform_wrapper .gf_page_steps { gap: 4px; padding-bottom: 0 !important; border-bottom: 0; margin-bottom: 10px !important; }
	.bo-public-quote .gform_wrapper .gf_step { height: 8px !important; padding: 0; border-radius: 6px; background: var(--bq-line); }
	.bo-public-quote .gform_wrapper .gf_step::before { display: none; }
	.bo-public-quote .gform_wrapper .gf_step span.gf_step_number, .bo-public-quote .gform_wrapper .gf_step span.gf_step_label { display: none !important; }
	.bo-public-quote .gform_wrapper .gf_step_completed { background: var(--bq-purple-100); }
	.bo-public-quote .gform_wrapper .gf_step_active { background: var(--bq-purple); }
	.bo-public-quote .bo-stepnote { display: block; }
}
/* ---------- field grid ---------- */
.bo-public-quote .gform_page_fields { margin: 0; }
.bo-public-quote .gform_wrapper ul.gform_fields { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px 16px; margin: 0 !important; padding: 0 !important; align-items: end; }
.bo-public-quote .gform_wrapper ul.gform_fields > li.gfield { grid-column: 1 / -1; min-width: 0; margin: 0 !important; padding: 0 !important; position: relative; width: auto !important; float: none !important; clear: none !important; }
.bo-public-quote .gform_wrapper ul.gform_fields > li.gfield.gfield_visibility_hidden { display: none; }
@media (min-width: 720px) {
	.bo-public-quote .gform_wrapper ul.gform_fields > li.gfield.bo-w-half { grid-column: span 6; }
	.bo-public-quote .gform_wrapper ul.gform_fields > li.gfield.bo-w-third { grid-column: span 4; }
	.bo-public-quote .gform_wrapper ul.gform_fields > li.gfield.bo-w-two-thirds { grid-column: span 8; }
}
.bo-public-quote .gform_wrapper .gfield_label, .bo-public-quote .gform_wrapper .gsection_title, .bo-public-quote .gform_wrapper .ginput_complex label {
	display: block; margin: 0 0 6px !important; padding: 0 !important; font-weight: 600 !important; font-size: 15.5px !important; line-height: 1.35 !important; color: var(--bq-ink);
}
.bo-public-quote .gfield_required { color: var(--bq-danger); margin-left: 3px; font-weight: 700; }
.bo-public-quote .gform_wrapper .gfield_description { color: var(--bq-muted); font-size: 14px; line-height: 1.4; margin: 4px 0 0 !important; padding: 0 !important; max-width: none; }
.bo-public-quote .gform_wrapper .gfield_description a { font-weight: 600; }
.bo-public-quote .gform_wrapper .ginput_container { margin: 0 !important; }

/* text boxes */
.bo-public-quote .gform_wrapper input[type="text"], .bo-public-quote .gform_wrapper input[type="email"], .bo-public-quote .gform_wrapper input[type="tel"], .bo-public-quote .gform_wrapper input[type="number"],
.bo-public-quote .gform_wrapper select, .bo-public-quote .gform_wrapper textarea {
	display: block; width: 100% !important; max-width: 100% !important; min-height: 48px; padding: 11px 14px !important; font: inherit !important; font-size: 16px !important; line-height: 1.3 !important; color: var(--bq-ink) !important;
	background-color: #fff !important; border: 1.5px solid var(--bq-input) !important; border-radius: 10px !important; box-shadow: none !important; margin: 0 !important; height: auto; appearance: none; -webkit-appearance: none;
	transition: border-color .12s, box-shadow .12s;
}
.bo-public-quote .gform_wrapper textarea { height: 120px; min-height: 96px; resize: vertical; line-height: 1.45 !important; overflow-y: auto; }
.bo-public-quote .gform_wrapper select {
	padding-right: 42px !important; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%236a1f68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 8l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 20px !important;
}
.bo-public-quote input::placeholder, .bo-public-quote textarea::placeholder { color: #6b6577; opacity: 1; }
.bo-public-quote .gform_wrapper input:hover, .bo-public-quote .gform_wrapper select:hover, .bo-public-quote .gform_wrapper textarea:hover { border-color: var(--bq-purple) !important; }
.bo-public-quote .gform_wrapper input:focus, .bo-public-quote .gform_wrapper select:focus, .bo-public-quote .gform_wrapper textarea:focus { border-color: var(--bq-purple) !important; box-shadow: 0 0 0 4px var(--bq-purple-100) !important; outline: 3px solid transparent; }
.bo-public-quote .gform_wrapper input[type="text"].datepicker { padding-right: 52px !important; }
.bo-public-quote .bo-money .ginput_container { position: relative; }
.bo-public-quote .bo-money .ginput_container::before { content: "$"; position: absolute; left: 14px; top: 0; height: 48px; display: flex; align-items: center; color: var(--bq-muted); font-weight: 600; pointer-events: none; z-index: 1; }
.bo-public-quote .bo-money input { padding-left: 30px !important; }
.bo-public-quote .instruction { display: none; }
.bo-public-quote .gform_wrapper .ginput_container_date { position: relative; }
.bo-public-quote .ui-datepicker-trigger { position: absolute; right: 2px; top: 2px; width: 44px; height: 44px; padding: 0; margin: 0; cursor: pointer; border: 0; border-radius: 8px; appearance: none; -webkit-appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a1f68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") center / 22px no-repeat; }
.bo-public-quote .ui-datepicker-trigger img { display: none; }
.bo-public-quote .ui-datepicker-trigger:hover { background-color: var(--bq-purple-50); }

/* name and address boxes */
.bo-public-quote .gform_wrapper .ginput_complex { width: 100% !important; max-width: 100% !important; display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0 !important; }
.bo-public-quote .gform_wrapper .ginput_complex > span { display: flex !important; flex-direction: column-reverse; min-width: 0; grid-column: 1 / -1; width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.bo-public-quote .gform_wrapper .ginput_complex > span label { margin: 6px 0 0 !important; font-size: 14px !important; font-weight: 500 !important; color: var(--bq-muted); }
.bo-public-quote .gform_wrapper .ginput_container_name > span { grid-column: span 3; }
@media (max-width: 519px) { .bo-public-quote .gform_wrapper .ginput_container_name > span { grid-column: 1 / -1; } }
@media (min-width: 720px) {
	.bo-public-quote .gform_wrapper .ginput_container_address .address_city { grid-column: span 3; }
	.bo-public-quote .gform_wrapper .ginput_container_address .address_state { grid-column: span 1; }
	.bo-public-quote .gform_wrapper .ginput_container_address .address_zip { grid-column: span 2; }
	.bo-public-quote .gform_wrapper .ginput_container_address .address_line_2 { grid-column: span 3; }
}
@media (min-width: 720px) and (max-width: 1000px) { .bo-public-quote .gform_wrapper .ginput_container_address .address_state { grid-column: span 2; } .bo-public-quote .gform_wrapper .ginput_container_address .address_city { grid-column: span 4; } .bo-public-quote .gform_wrapper .ginput_container_address .address_zip { grid-column: span 3; } }
@media (max-width: 719px) { .bo-public-quote .gform_wrapper .ginput_container_address .address_city { grid-column: 1 / -1; } .bo-public-quote .gform_wrapper .ginput_container_address .address_state { grid-column: span 2; } .bo-public-quote .gform_wrapper .ginput_container_address .address_zip { grid-column: span 4; } .bo-public-quote .gform_wrapper .ginput_container_address .address_line_2 { grid-column: 1 / -1; } }
.bo-public-quote .ginput_container_address .address_line_1 { order: 0; grid-column: 1 / -1; }
.bo-public-quote .ginput_container_address .address_line_2 { order: 1; }
.bo-public-quote .ginput_container_address .address_city { order: 2; }
.bo-public-quote .ginput_container_address .address_state { order: 3; }
.bo-public-quote .ginput_container_address .address_zip { order: 4; }

/* choices: pills (radio) and chips (checkbox) */
.bo-public-quote .gform_wrapper .gfield_radio, .bo-public-quote .gform_wrapper .gfield_checkbox { display: flex !important; flex-wrap: wrap; gap: 10px; margin: 0 !important; padding: 0 !important; }
.bo-public-quote .gform_wrapper .gfield_radio li, .bo-public-quote .gform_wrapper .gfield_checkbox li { position: relative; margin: 0 !important; padding: 0 !important; min-width: 0; width: auto !important; float: none !important; background: none; border: 0; }
.bo-public-quote .gform_wrapper ul.gfield_radio, .bo-public-quote .gform_wrapper ul.gfield_checkbox { width: 100% !important; max-width: 100% !important; }
.bo-public-quote .gform_wrapper .gfield_radio li, .bo-public-quote .gform_wrapper .gfield_checkbox li { overflow: visible !important; }
.bo-public-quote .gform_wrapper .gfield_radio input[type="radio"], .bo-public-quote .gform_wrapper .gfield_checkbox input[type="checkbox"] {
	position: absolute !important; opacity: 0; inset: 0; width: 100% !important; height: 100% !important; min-height: 0 !important; margin: 0 !important; cursor: pointer; z-index: 2; padding: 0 !important;
}
.bo-public-quote .gform_wrapper .gfield_radio label, .bo-public-quote .gform_wrapper .gfield_checkbox label {
	display: inline-flex !important; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px !important; margin: 0 !important; border: 1.5px solid var(--bq-input); border-radius: 999px; background: #fff;
	font-weight: 500 !important; font-size: 15.5px !important; line-height: 1.25 !important; color: var(--bq-ink); cursor: pointer; user-select: none; max-width: none !important; width: auto !important; transition: background .12s, border-color .12s, color .12s;
}
.bo-public-quote .gform_wrapper .gfield_checkbox label::before { content: ""; flex: 0 0 18px; width: 18px; height: 18px; border: 2px solid var(--bq-input); border-radius: 5px; background: #fff; }
.bo-public-quote .gform_wrapper .gfield_radio li:hover label, .bo-public-quote .gform_wrapper .gfield_checkbox li:hover label { border-color: var(--bq-purple); }
.bo-public-quote .gform_wrapper .gfield_radio input:checked + label { background: var(--bq-purple); border-color: var(--bq-purple); color: #fff; }
.bo-public-quote .gform_wrapper .gfield_checkbox input:checked + label { background: var(--bq-purple-50); border-color: var(--bq-purple); color: var(--bq-purple-900); font-weight: 600 !important; }
.bo-public-quote .gform_wrapper .gfield_checkbox input:checked + label::before {
	background: var(--bq-purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center / 14px no-repeat; border-color: var(--bq-purple);
}
.bo-public-quote .gform_wrapper .gfield_radio input:focus-visible + label, .bo-public-quote .gform_wrapper .gfield_checkbox input:focus-visible + label { outline: 3px solid var(--bq-focus); outline-offset: 2px; }
.bo-public-quote .ginput_container_checkbox, .bo-public-quote .ginput_container_radio { margin: 0 !important; }
@media (min-width: 640px) {
	.bo-public-quote .bo-cols .gfield_checkbox { display: grid !important; gap: 8px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bo-public-quote .bo-cols-3 .gfield_checkbox { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bo-public-quote .bo-cols .gfield_checkbox label { display: flex !important; width: 100% !important; border-radius: 12px; }
}

/* the product cards (step 1) */
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 560px) { .bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox label {
	display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 100% !important; min-height: 100px; padding: 14px 8px 12px !important; border: 2px solid var(--bq-line); border-radius: 14px;
	text-align: center; font-weight: 600 !important; font-size: 15px !important; line-height: 1.2 !important; position: relative;
}
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox label::before { display: none; }
.bo-public-quote .bo-ico { display: inline-flex; color: var(--bq-purple); }
.bo-public-quote .bo-ico svg { display: block; width: 30px; height: 30px; }
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox input:checked + label { border-color: var(--bq-purple); background: var(--bq-purple-50); box-shadow: 0 0 0 3px var(--bq-purple-100); font-weight: 700 !important; }
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox input:checked + label::after {
	content: ""; position: absolute; top: 8px; right: 8px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--bq-purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.bo-public-quote .gform_wrapper .bo-cards .gfield_checkbox li:hover label { border-color: var(--bq-purple); }

/* the consent box: one checkbox with a long text */
.bo-public-quote .gform_wrapper .bo-consent .gfield_checkbox label { align-items: flex-start; border-radius: 12px; padding: 12px 14px !important; font-weight: 400 !important; font-size: 14.5px !important; line-height: 1.45 !important; width: 100% !important; }
.bo-public-quote .gform_wrapper .bo-consent .gfield_checkbox label::before { margin-top: 2px; }
.bo-public-quote .gform_wrapper .bo-consent .gfield_checkbox input:checked + label { font-weight: 400 !important; }

/* headings and notes inside the form */
.bo-public-quote .gform_wrapper .gsection { margin: 6px 0 0 !important; padding: 14px 0 0 !important; border: 0; border-top: 1px solid var(--bq-line); }
.bo-public-quote .gform_wrapper .gsection:first-child { border-top: 0; padding-top: 0 !important; margin-top: 0 !important; }
.bo-public-quote .gform_wrapper .gsection_title { font-size: 20px !important; font-weight: 700 !important; color: var(--bq-purple-700) !important; margin: 0 !important; display: flex; align-items: center; gap: 10px; }
.bo-public-quote .gform_wrapper .gsection_title::before { content: ""; width: 6px; height: 22px; border-radius: 3px; background: var(--bq-purple); }
.bo-public-quote .bo-lede { color: var(--bq-muted); }
.bo-public-quote .bo-lede p, .bo-public-quote .bo-note p { margin: 0; }
.bo-public-quote .bo-note { background: var(--bq-purple-50); border: 1.5px solid var(--bq-purple-100); border-left: 6px solid var(--bq-purple); border-radius: 10px; padding: 12px 16px; color: var(--bq-purple-900); }
.bo-public-quote .gfield_html { margin: 0; }

/* ---------- Previous / Next / Send: sticky at the bottom of the screen ---------- */
.bo-public-quote .gform_wrapper .gform_page_footer, .bo-public-quote .gform_wrapper .gform_footer {
	display: flex !important; flex-direction: row; gap: 12px; width: auto !important; max-width: none !important; margin: 26px -16px 0 !important; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)) !important; background: rgba(255, 255, 255, .97); border-top: 1px solid var(--bq-line);
	position: sticky; bottom: 0; z-index: 30; box-shadow: 0 -6px 18px rgba(31, 27, 45, .08); border-radius: 0 0 16px 16px; clear: both;
}
.bo-public-quote .gform_wrapper .gform_page_footer .button, .bo-public-quote .gform_wrapper .gform_footer .button, .bo-public-quote .gform_wrapper .gform_button, .bo-public-quote .gform_wrapper .gform_next_button, .bo-public-quote .gform_wrapper .gform_previous_button {
	flex: 1 1 0; min-height: 52px; padding: 12px 22px !important; border-radius: 12px !important; font: inherit !important; font-size: 17px !important; font-weight: 700 !important; cursor: pointer; border: 2px solid var(--bq-purple) !important; margin: 0 !important; width: auto !important;
	letter-spacing: .01em; transition: background .12s, color .12s, box-shadow .12s; -webkit-appearance: none; appearance: none; text-transform: none !important; line-height: 1.2 !important; box-shadow: none !important;
}
.bo-public-quote .gform_wrapper .gform_next_button, .bo-public-quote .gform_wrapper .gform_button { background: var(--bq-purple) !important; color: #fff !important; border: 2px solid var(--bq-purple) !important; }
.bo-public-quote .gform_wrapper .gform_next_button:hover, .bo-public-quote .gform_wrapper .gform_button:hover { background: var(--bq-purple-700) !important; border-color: var(--bq-purple-700) !important; color: #fff !important; }
.bo-public-quote .gform_wrapper .gform_previous_button { background: #fff !important; color: var(--bq-purple-700) !important; border: 2px solid var(--bq-purple) !important; }
.bo-public-quote .gform_wrapper .gform_previous_button:hover { background: var(--bq-purple-50) !important; color: var(--bq-purple-700) !important; }
.bo-public-quote .gform_wrapper .gform_page_footer input:only-child { flex: 1 1 100%; }
/* the buttons wrap instead of running off the screen (the last step's "Send my quote request" is the longest label) */
.bo-public-quote .gform_wrapper .gform_page_footer, .bo-public-quote .gform_wrapper .gform_footer { flex-wrap: wrap; }
@media (max-width: 479px) {
	.bo-public-quote .gform_wrapper .gform_page_footer .button, .bo-public-quote .gform_wrapper .gform_footer .button, .bo-public-quote .gform_wrapper .gform_button, .bo-public-quote .gform_wrapper .gform_next_button, .bo-public-quote .gform_wrapper .gform_previous_button { font-size: 16px !important; padding: 12px 14px !important; }
}
.bo-public-quote .gform_wrapper input[disabled].gform_button, .bo-public-quote .gform_wrapper input.bo-working { opacity: .7; cursor: progress; }
@media (min-width: 760px) {
	.bo-public-quote .gform_wrapper .gform_page_footer, .bo-public-quote .gform_wrapper .gform_footer { margin: 30px -32px 0 !important; padding: 18px 32px !important; justify-content: space-between; }
	.bo-public-quote .gform_wrapper .gform_page_footer .button, .bo-public-quote .gform_wrapper .gform_next_button, .bo-public-quote .gform_wrapper .gform_previous_button, .bo-public-quote .gform_wrapper .gform_button { flex: 0 0 auto; min-width: 150px; }
	.bo-public-quote .gform_wrapper .gform_page_footer input:only-child { margin-left: auto !important; flex: 0 0 auto; }
	.bo-public-quote .gform_wrapper .gform_page_footer .gform_next_button:last-child, .bo-public-quote .gform_wrapper .gform_page_footer .gform_button:last-of-type { margin-left: auto !important; }
}
@media (hover: none) { .bo-public-quote .gform_wrapper .gform_next_button:hover, .bo-public-quote .gform_wrapper .gform_button:hover { background: var(--bq-purple) !important; border-color: var(--bq-purple) !important; } }

/* the site's floating "Contact us" button (bottom right, above everything at z-index 997) covered the Next button on a phone: it floats above the Previous / Next bar instead */
@media (max-width: 599px) { body.bo-quote-form .chaty-widget { bottom: 104px !important; } }

/* ---------- validation ---------- */
.bo-public-quote .gform_wrapper .validation_error, .bo-public-quote .gform_wrapper .gform_validation_errors { background: var(--bq-danger-bg); border: 1.5px solid #fda29b !important; border-left: 6px solid var(--bq-danger) !important; color: var(--bq-danger) !important; border-radius: 10px; padding: 12px 16px !important; margin: 0 0 18px !important; font-weight: 600; font-size: 15.5px; }
.bo-public-quote .gform_wrapper .gfield_error input, .bo-public-quote .gform_wrapper .gfield_error select, .bo-public-quote .gform_wrapper .gfield_error textarea, .bo-public-quote .gform_wrapper input[aria-invalid="true"], .bo-public-quote .gform_wrapper select[aria-invalid="true"], .bo-public-quote .gform_wrapper textarea[aria-invalid="true"] { border-color: var(--bq-danger) !important; background-color: #fffbfa !important; }
.bo-public-quote .gform_wrapper li.gfield.gfield_error { background: none !important; border: 0 !important; margin: 0 !important; padding: 0 !important; max-width: none !important; }
.bo-public-quote .gform_wrapper .gfield_error .gfield_label { color: var(--bq-danger) !important; }
.bo-public-quote .gform_wrapper .validation_message, .bo-public-quote .bo-err { display: flex; gap: 6px; align-items: flex-start; margin: 6px 0 0 !important; padding: 0 !important; color: var(--bq-danger) !important; font-size: 14px !important; font-weight: 600 !important; max-width: none; }
.bo-public-quote .gform_wrapper .validation_message::before, .bo-public-quote .bo-err::before { content: "!"; flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; background: var(--bq-danger); color: #fff; font-size: 12px; line-height: 18px; text-align: center; font-weight: 700; }
.bo-public-quote .gform_wrapper .gfield_error .gfield_radio label, .bo-public-quote .gform_wrapper .gfield_error .gfield_checkbox label { border-color: var(--bq-danger); }

/* help text sits under the question (the form puts it above the box); the one under the consent box stays below */
.bo-public-quote .gform_wrapper .description_above .gfield_description { margin: 0 0 8px !important; }
.bo-public-quote .gform_wrapper .description_below .gfield_description { margin: 6px 0 0 !important; }
.bo-public-quote .gform_wrapper .gfield_description:empty { display: none; }

/* file boxes */
.bo-public-quote .gform_wrapper input[type="file"] { display: block; width: 100% !important; max-width: 100% !important; min-height: 52px; padding: 7px 10px !important; margin: 0 !important; font: inherit !important; font-size: 15px !important; color: var(--bq-muted) !important;
	background: #fff !important; border: 1.5px dashed var(--bq-input) !important; border-radius: 10px !important; cursor: pointer; }
.bo-public-quote .gform_wrapper input[type="file"]::file-selector-button { margin-right: 12px; padding: 10px 16px; border: 1.5px solid var(--bq-purple); border-radius: 8px; background: var(--bq-purple-50); color: var(--bq-purple-700); font: inherit; font-weight: 600; cursor: pointer; }
.bo-public-quote .gform_wrapper input[type="file"]:hover::file-selector-button { background: var(--bq-purple-100); }
.bo-public-quote .gform_wrapper .ginput_container_fileupload .screen-reader-text { position: static !important; width: auto !important; height: auto !important; margin: 6px 0 0 !important; padding: 0 !important; overflow: visible !important; clip: auto !important; clip-path: none !important; white-space: normal !important; display: block; font-size: 13.5px; color: var(--bq-muted); }
.bo-public-quote .gform_wrapper .validation_message:empty { display: none !important; }
/* ---------- the form at the top of /quotes/ ---------- */
.bo-quote-embed { background: var(--bq-bg); padding: 28px 16px 32px; }
.bo-quote-embed__in { max-width: 820px; margin: 0 auto; }
.bo-quote-embed h2 { margin: 0 0 6px; font-size: 30px; line-height: 1.2; color: var(--bq-purple-900); text-align: center; }
.bo-quote-embed__lede { margin: 0 auto 18px; max-width: 62ch; text-align: center; color: var(--bq-muted); font-size: 17px; }
.bo-quote-embed__more { margin: 18px 0 0; text-align: center; color: var(--bq-muted); font-size: 15px; }
@media (max-width: 759px) { .bo-quote-embed { padding: 20px 12px 24px; } .bo-quote-embed h2 { font-size: 25px; } .bo-quote-embed__lede { font-size: 16px; } }

/* ---------- date picker pop-up (jQuery UI) ---------- */
.ui-datepicker { display: none; position: absolute; z-index: 99999 !important; width: 21rem; max-width: calc(100vw - 24px); padding: 12px; background: #fff; border: 1px solid var(--bq-line); border-radius: 14px; box-shadow: 0 14px 40px rgba(31, 27, 45, .22); font-size: 15px; color: var(--bq-ink); }
.ui-datepicker .ui-datepicker-header { position: relative; display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 6px; padding: 4px 0 10px; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { width: 40px; height: 40px; border-radius: 10px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: var(--bq-purple-700); text-decoration: none; background: var(--bq-purple-50); order: 0; }
.ui-datepicker .ui-datepicker-next { order: 2; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { font-size: 0; }
.ui-datepicker .ui-datepicker-prev::before { content: "\2039"; font-size: 24px; }
.ui-datepicker .ui-datepicker-next::before { content: "\203A"; font-size: 24px; }
.ui-datepicker .ui-datepicker-title { order: 1; flex: 1 1 auto; display: flex; gap: 6px; justify-content: center; font-weight: 700; }
.ui-datepicker .ui-datepicker-title select { min-height: 40px; padding: 4px 24px 4px 8px; font-size: 15px; width: auto; flex: 1 1 0; min-width: 0; background-position: right 4px center; background-size: 16px; border-radius: 8px; }
.ui-datepicker table { width: 100%; border-collapse: collapse; margin: 0; table-layout: fixed; }
.ui-datepicker th { padding: 6px 0; font-size: 12.5px; color: var(--bq-muted); font-weight: 600; text-align: center; }
.ui-datepicker td { padding: 2px; text-align: center; }
.ui-datepicker td a, .ui-datepicker td span { display: flex; align-items: center; justify-content: center; height: 38px; border-radius: 10px; text-decoration: none; color: var(--bq-ink); font-weight: 500; }
.ui-datepicker td a:hover { background: var(--bq-purple-50); }
.ui-datepicker td .ui-state-active { background: var(--bq-purple); color: #fff; }
.ui-datepicker td.ui-state-disabled span { color: #8b8497; }
.ui-datepicker td.ui-datepicker-other-month a, .ui-datepicker td.ui-datepicker-other-month span { color: #6f6a7b; }
.ui-datepicker .ui-datepicker-buttonpane { display: none; }

@media (prefers-reduced-motion: reduce) { .bo-public-quote * { transition: none !important; scroll-behavior: auto !important; } }
@media print { .bo-public-quote .gform_page_footer, .bo-public-quote .gf_page_steps { display: none; } }

/* Space for the form until Gravity Forms shows it. Gravity Forms prints the form hidden and shows it once the page scripts have run; the text below it
   (and the footer) then jumped down by about 1,000 px (a layout shift of 0.38 on desktop). While body.bo-quote-pending is set, the hidden form takes the
   height it will have (public-quote.js removes the class when the form is shown, or after 5 s at the latest). */
body.bo-quote-pending .bo-public-form_wrapper { display: block !important; visibility: hidden; height: 964px; overflow: hidden; }
@media (max-width: 1023px) { body.bo-quote-pending .bo-public-form_wrapper { height: 930px; } }
@media (max-width: 767px) { body.bo-quote-pending .bo-public-form_wrapper { height: 1300px; } }
