/*
 * Blue Fox — Maintenance Plans page template
 * Everything is scoped to .bfmp so it can't leak into the theme.
 */

.bfmp {
	--bfmp-blue: #1d7fe0;
	--bfmp-blue-dark: #1766bf;
	--bfmp-blue-darker: #0f4f99;
	--bfmp-blue-light: #5aa9f2;
	--bfmp-tint: #e8f2fd;
	--bfmp-hl: #f1f7fe;
	--bfmp-ink: #26282c;
	--bfmp-text: #33363b;
	--bfmp-muted: #5a5f66;
	--bfmp-line: #e1e8f0;
	--bfmp-shadow: 0 8px 26px rgba(20, 40, 70, .09);
	/* Raise this if the theme has a sticky header that covers the table header row. */
	--bfmp-sticky-top: 0px;

	font-family: Montserrat, Helvetica, Arial, sans-serif;
	color: var(--bfmp-text);
	background: #f3f3f3 url(../images/texture-bg.jpg) repeat-y top center / 100% auto;
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
	overflow-x: clip;
}

@media (prefers-reduced-motion: no-preference) {
	html:has(.bfmp) { scroll-behavior: smooth; }
}

/* Hide any leftover Beaver Builder layout saved on the page. This template
 * renders its own markup instead of the_content(), so the BB output is unused.
 * (This stylesheet only loads on the Maintenance Plans template.) */
.fl-builder-content.fl-builder-content-11640 { display: none !important; }

/* ---- Reset theme defaults inside the page ---- */

.bfmp *,
.bfmp *::before,
.bfmp *::after { box-sizing: border-box; }

.bfmp h1, .bfmp h2, .bfmp h3,
.bfmp p, .bfmp ul, .bfmp li,
.bfmp figure, .bfmp blockquote, .bfmp figcaption {
	margin: 0;
	padding: 0;
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
}

.bfmp h1, .bfmp h2, .bfmp h3 { font-weight: 800; }
.bfmp p, .bfmp li { font-size: inherit; line-height: inherit; color: inherit; }
.bfmp ul { list-style: none; }
.bfmp li::before, .bfmp li::marker { content: none; }
.bfmp img { max-width: 100%; border: 0; box-shadow: none; }
.bfmp a { color: var(--bfmp-blue-dark); }
.bfmp a:hover { color: var(--bfmp-blue-darker); }

.bfmp .bfmp-toggle__btn,
.bfmp .bfmp-compare__tab,
.bfmp .bfmp-acc__btn {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	box-shadow: none;
	text-shadow: none;
	text-transform: none;
	font-family: Montserrat, sans-serif;
	line-height: 1.3;
	cursor: pointer;
}

.bfmp-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---- Layout helpers ---- */

.bfmp-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}

.bfmp-wrap--narrow { max-width: 880px; }

.bfmp-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-bottom: 36px;
	text-align: center;
}

.bfmp .bfmp-head p { font-size: 16px; }

.bfmp .bfmp-h2 {
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1.2;
	color: var(--bfmp-blue);
	text-transform: uppercase;
	letter-spacing: .02em;
	text-wrap: balance;
}

.bfmp .bfmp-h2--lg { font-size: clamp(26px, 3.6vw, 36px); }

.bfmp-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}

.bfmp-card-grid--tight { gap: 20px; }

.bfmp .bfmp-list { display: flex; flex-direction: column; gap: 10px; }

.bfmp .bfmp-list li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.45;
}

.bfmp .bfmp-paw { flex: none; width: 15px; height: 19px; margin-top: 1px; }

.bfmp-only-mobile { display: none; }

/* ---- Buttons ---- */

.bfmp-btn-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.bfmp .bfmp-btn {
	display: inline-block;
	border: 2px solid var(--bfmp-blue);
	border-radius: 999px;
	padding: 14px 28px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .05em;
	text-align: center;
	text-decoration: none;
	transition: background-color .15s, border-color .15s, color .15s;
}

.bfmp .bfmp-btn--solid { background: var(--bfmp-blue); color: #fff; }
.bfmp .bfmp-btn--solid:hover { background: var(--bfmp-blue-dark); border-color: var(--bfmp-blue-dark); color: #fff; }

.bfmp .bfmp-btn--outline { background: #fff; color: var(--bfmp-blue-dark); }
.bfmp .bfmp-btn--outline:hover { background: #eef5fd; color: var(--bfmp-blue-dark); }

.bfmp .bfmp-btn--on-dark { border: 0; padding: 14px 28px; }
.bfmp .bfmp-btn--on-dark:hover { background: #3a93ea; color: #fff; }

.bfmp .bfmp-btn--white { background: #fff; color: var(--bfmp-blue-dark); border: 0; padding: 15px 32px; font-weight: 800; letter-spacing: .06em; }
.bfmp .bfmp-btn--white:hover { background: #eef5fd; color: var(--bfmp-blue-darker); }

.bfmp .bfmp-btn--ghost { background: transparent; color: #fff; border-color: #fff; padding: 13px 28px; }
.bfmp .bfmp-btn--ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; }

/* ---- 01 Hero ---- */

.bfmp-hero { position: relative; overflow: hidden; }

.bfmp-hero__media {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 520px;
}

.bfmp .bfmp-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center 30%;
}

.bfmp-hero__media::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 200px;
	background: linear-gradient(to bottom, rgba(243, 243, 243, 0), #f3f3f3);
	pointer-events: none;
}

.bfmp-hero__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 300px 24px 40px;
	display: flex;
	justify-content: center;
}

.bfmp-hero__card {
	max-width: 760px;
	padding: 40px clamp(24px, 5vw, 56px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
	background: rgba(255, 255, 255, .96);
	border: 1px solid #e4ebf3;
	border-radius: 28px;
	box-shadow: 0 14px 40px rgba(20, 40, 70, .16);
}

.bfmp .bfmp-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
	color: var(--bfmp-blue-dark);
}

.bfmp .bfmp-hero__title {
	font-size: clamp(28px, 4.4vw, 44px);
	line-height: 1.12;
	color: var(--bfmp-blue);
	text-wrap: balance;
}

.bfmp .bfmp-hero__lede {
	max-width: 580px;
	font-size: 17px;
	line-height: 1.6;
	text-wrap: pretty;
}

.bfmp-hero__card .bfmp-btn-row { margin-top: 4px; }

.bfmp-hero__note { font-size: 14px; color: var(--bfmp-muted); }
.bfmp-hero__note strong { color: var(--bfmp-text); }

/* ---- 02 Plans ---- */

.bfmp-plans {
	padding-top: 24px;
	padding-bottom: 80px;
	scroll-margin-top: calc(16px + var(--bfmp-sticky-top));
}

.bfmp-plans .bfmp-head { gap: 12px; margin-bottom: 28px; }
.bfmp .bfmp-plans .bfmp-head p { font-size: 17px; }

.bfmp-toggle {
	display: flex;
	gap: 4px;
	margin-top: 8px;
	padding: 4px;
	background: #fff;
	border: 1px solid #d5e2f0;
	border-radius: 999px;
}

.bfmp .bfmp-toggle__btn {
	border: 0;
	border-radius: 999px;
	padding: 10px 22px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	background: transparent;
	color: var(--bfmp-blue-dark);
}

.bfmp .bfmp-toggle__btn:hover { background: #eef5fd; color: var(--bfmp-blue-dark); }
.bfmp .bfmp-toggle__btn.is-active,
.bfmp .bfmp-toggle__btn.is-active:hover { background: var(--bfmp-blue); color: #fff; }

.bfmp-plan-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
	align-items: stretch;
}

.bfmp-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 36px 28px 28px;
	background: #fff;
	border: 1px solid var(--bfmp-line);
	border-radius: 26px;
	box-shadow: var(--bfmp-shadow);
}

.bfmp-plan.is-featured {
	border: 3px solid var(--bfmp-blue);
	box-shadow: 0 18px 44px rgba(29, 127, 224, .22);
}

.bfmp-plan__badge {
	position: absolute;
	top: -15px;
	left: 50%;
	transform: translateX(-50%);
	padding: 7px 16px;
	border-radius: 999px;
	background: var(--bfmp-blue);
	color: #fff;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .12em;
	white-space: nowrap;
}

.bfmp-plan__title,
.bfmp-plan__pricing { display: flex; flex-direction: column; gap: 4px; }

.bfmp-plan__focus {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	color: var(--bfmp-blue-dark);
	text-transform: uppercase;
}

.bfmp .bfmp-plan h3 { font-size: 26px; line-height: 1.2; color: var(--bfmp-ink); }

.bfmp-plan__price-row { display: flex; align-items: baseline; gap: 4px; }
.bfmp-plan__price { font-size: 46px; font-weight: 800; line-height: 1; color: var(--bfmp-blue); }
.bfmp-plan__per { font-size: 16px; font-weight: 600; color: var(--bfmp-muted); }
.bfmp-plan__alt { font-size: 14px; color: var(--bfmp-muted); }

.bfmp-plan__savings {
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--bfmp-tint);
	color: var(--bfmp-blue-darker);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}

.bfmp .bfmp-plan__bullets { flex: 1; }

.bfmp .bfmp-plan__cta { padding: 14px 20px; }

/* ---- Compare table ---- */

.bfmp-compare {
	margin-top: 56px;
	background: #fff;
	border: 1px solid #e6ecf2;
	border-radius: 26px;
	box-shadow: var(--bfmp-shadow);
	overflow: hidden;
	overflow: clip; /* clips corners without breaking the sticky header row */
}

.bfmp-compare__intro { display: flex; flex-direction: column; gap: 6px; padding: 28px 28px 8px; }
.bfmp .bfmp-compare__intro h3 { font-size: 22px; line-height: 1.25; color: var(--bfmp-ink); }
.bfmp .bfmp-compare__intro p { font-size: 15px; color: var(--bfmp-muted); }

.bfmp-compare__tabs { gap: 6px; padding: 12px 20px 4px; overflow-x: auto; }

.bfmp .bfmp-compare__tab {
	flex: 1 0 auto;
	border: 2px solid var(--bfmp-blue);
	border-radius: 999px;
	padding: 9px 14px;
	font-size: 12.5px;
	font-weight: 700;
	background: #fff;
	color: var(--bfmp-blue-dark);
}

.bfmp .bfmp-compare__tab:hover { background: #eef5fd; color: var(--bfmp-blue-dark); }
.bfmp .bfmp-compare__tab.is-active,
.bfmp .bfmp-compare__tab.is-active:hover { background: var(--bfmp-blue); color: #fff; }

.bfmp-table { padding: 8px 12px 20px; }

.bfmp-row {
	display: grid;
	grid-template-columns: minmax(0, 2.3fr) repeat(4, minmax(0, 1fr));
	border-top: 1px solid #edf0f3;
}

.bfmp-row--head {
	position: sticky;
	top: var(--bfmp-sticky-top);
	z-index: 1;
	background: #fff;
	border-top: 0;
	border-bottom: 2px solid #e6ecf2;
}

.bfmp-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	padding: 14px 8px;
	text-align: center;
}

.bfmp-cell.is-hl { background: var(--bfmp-hl); }
.bfmp-cell--head.is-hl { border-radius: 14px 14px 0 0; }

.bfmp-cell--label { align-items: flex-start; justify-content: center; gap: 3px; padding: 14px 12px; text-align: left; }

.bfmp-cell__name { font-size: 14px; font-weight: 800; color: var(--bfmp-ink); }
.bfmp-cell__focus { font-size: 11.5px; font-weight: 600; color: var(--bfmp-muted); }

.bfmp-row__label { font-size: 14.5px; font-weight: 600; line-height: 1.4; color: var(--bfmp-ink); }
.bfmp-row__note { font-size: 12.5px; line-height: 1.45; color: var(--bfmp-muted); }

.bfmp-group-title {
	padding: 22px 12px 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	color: var(--bfmp-blue-dark);
}

.bfmp-check {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--bfmp-blue);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
}

.bfmp-cell__no { font-size: 12.5px; color: #7a7f86; }
.bfmp-cell__text { font-size: 14px; font-weight: 500; color: var(--bfmp-muted); }
.bfmp-cell.is-member .bfmp-cell__text { font-weight: 700; color: var(--bfmp-blue-dark); }
.bfmp-cell__sub { font-size: 12px; color: var(--bfmp-muted); }

/* ---- 03 Why maintenance matters ---- */

.bfmp-why { padding-top: 56px; padding-bottom: 72px; }

.bfmp-reason {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 32px 28px;
	background: #fff;
	border: 1px solid #e6ecf2;
	border-radius: 22px;
	box-shadow: var(--bfmp-shadow);
}

.bfmp-reason__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--bfmp-tint);
	color: var(--bfmp-blue);
	font-size: 18px;
	font-weight: 800;
}

.bfmp .bfmp-reason h3 { font-size: 20px; line-height: 1.25; color: var(--bfmp-ink); }
.bfmp .bfmp-reason p { font-size: 15.5px; line-height: 1.65; text-wrap: pretty; }

/* ---- 04 Membership value ---- */

.bfmp-value {
	background: #26282c url(../images/grey-paw.svg) no-repeat center / auto 90%;
	color: #fff;
}

.bfmp-value__inner { padding-top: 80px; padding-bottom: 80px; }

.bfmp-value__head {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 720px;
	margin: 0 auto 44px;
	text-align: center;
}

.bfmp .bfmp-value__head h2 {
	font-size: clamp(26px, 3.8vw, 38px);
	line-height: 1.2;
	color: #fff;
	text-wrap: balance;
}

.bfmp .bfmp-value__head h2 span { color: var(--bfmp-blue-light); }
.bfmp .bfmp-value__head p { font-size: 16.5px; line-height: 1.6; color: #d7dade; }

.bfmp-benefit {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px;
	background: #303338;
	border: 1px solid #3d4046;
	border-radius: 22px;
}

.bfmp .bfmp-benefit h3 { font-size: 20px; line-height: 1.25; letter-spacing: .02em; color: var(--bfmp-blue-light); }

.bfmp .bfmp-benefit .bfmp-list { gap: 14px; }

.bfmp .bfmp-benefit .bfmp-list li {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
}

.bfmp-benefit__check {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--bfmp-blue);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
}

.bfmp-benefit__stat { font-size: 18px; font-weight: 800; line-height: 1.2; color: #fff; }
.bfmp-benefit__text { font-size: 15px; line-height: 1.45; color: #e3e5e8; }

.bfmp-value .bfmp-btn-row { margin-top: 40px; }

/* ---- 05 Visit details (accordion) ---- */

.bfmp-details { padding-top: 80px; padding-bottom: 56px; }
.bfmp-details .bfmp-head { margin-bottom: 28px; }

.bfmp-acc { display: flex; flex-direction: column; gap: 14px; }

.bfmp-acc__item {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--bfmp-line);
	border-radius: 18px;
	box-shadow: 0 4px 16px rgba(20, 40, 70, .06);
}

.bfmp .bfmp-acc__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 20px 24px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
	text-align: left;
}

.bfmp .bfmp-acc__btn:hover,
.bfmp .bfmp-acc__btn:focus,
.bfmp .bfmp-acc__btn:active,
.bfmp .bfmp-acc__btn[aria-expanded="true"] {
	background: transparent;
	color: inherit;
	border: 0;
	box-shadow: none;
	outline: none;
}

/* Keep a visible ring for keyboard users only. */
.bfmp .bfmp-acc__btn:focus-visible { outline: 2px solid var(--bfmp-blue); outline-offset: -2px; }

.bfmp .bfmp-acc__btn img { flex: none; width: 44px; height: 44px; object-fit: contain; }

.bfmp-acc__label { display: flex; flex: 1; flex-direction: column; gap: 3px; }
.bfmp-acc__title { font-size: 17px; font-weight: 700; color: var(--bfmp-ink); }
.bfmp-acc__who { font-size: 13px; font-weight: 400; color: var(--bfmp-muted); }

.bfmp-acc__sign {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 2px solid var(--bfmp-blue);
	border-radius: 50%;
	color: var(--bfmp-blue);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}

.bfmp-acc__panel { padding: 0 24px 22px; }
.bfmp-acc__panel[hidden] { display: none; }

.bfmp .bfmp-acc__panel .bfmp-list li { line-height: 1.5; }
.bfmp .bfmp-acc__panel .bfmp-paw { width: 13px; height: 16px; margin-top: 3px; }

/* ---- 06 Testimonial ---- */

.bfmp-testimonial { padding-top: 150px; padding-bottom: 72px; }

.bfmp .bfmp-testimonial figure {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	padding: 44px clamp(24px, 5vw, 56px);
	text-align: center;
	background: #fff;
	border: 1px solid var(--bfmp-line);
	border-radius: 28px;
	box-shadow: 0 10px 30px rgba(20, 40, 70, .09);
}

.bfmp .bfmp-testimonial__fox {
	position: absolute;
	bottom: calc(100% - 22px);
	right: clamp(16px, 6vw, 56px);
	width: auto;
	height: 150px;
	pointer-events: none;
}

.bfmp-stars { font-size: 22px; letter-spacing: 4px; color: var(--bfmp-blue); }

.bfmp .bfmp-testimonial blockquote {
	border: 0;
	background: none;
	font-size: clamp(18px, 2.4vw, 22px);
	font-style: normal;
	font-weight: 500;
	line-height: 1.55;
	color: var(--bfmp-ink);
	text-wrap: pretty;
}

.bfmp .bfmp-testimonial blockquote::before,
.bfmp .bfmp-testimonial blockquote::after { content: none; }

.bfmp .bfmp-testimonial figcaption {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--bfmp-blue-dark);
}

/* ---- 07 Final CTA ---- */

.bfmp-cta { padding-bottom: 96px; }

.bfmp-cta__box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	padding: clamp(40px, 6vw, 72px) clamp(24px, 6vw, 80px);
	text-align: center;
	color: #fff;
	background: var(--bfmp-blue) url(../images/fox-mark.svg) no-repeat center / auto 100%;
	border-radius: 36px 36px 36px 120px;
	box-shadow: 0 16px 40px rgba(29, 127, 224, .28);
}

.bfmp .bfmp-cta__box h2 {
	font-size: clamp(26px, 3.8vw, 40px);
	line-height: 1.15;
	color: #fff;
	text-wrap: balance;
}

.bfmp .bfmp-cta__box p { max-width: 620px; font-size: 17px; line-height: 1.6; text-wrap: pretty; }
.bfmp-cta__box .bfmp-btn-row { margin-top: 6px; }
.bfmp-cta__note { font-size: 14px; color: #eaf3fd; }

/* ---- 08 Enroll form (Gravity Forms) ---- */

.bfmp-enroll {
	padding-top: 24px;
	padding-bottom: 96px;
	scroll-margin-top: calc(16px + var(--bfmp-sticky-top));
}

.bfmp-enroll__card {
	padding: clamp(28px, 4vw, 44px);
	background: #fff;
	border: 1px solid var(--bfmp-line);
	border-radius: 26px;
	box-shadow: var(--bfmp-shadow);
}

/* Everything below is scoped under .bfmp so it only restyles this form and
 * inherits the page font. Targets both classic and GF 2.5+ markup. */

.bfmp .gform_wrapper,
.bfmp .gform_wrapper * { box-sizing: border-box; }

.bfmp .gform_wrapper { font-family: inherit; color: var(--bfmp-text); }

.bfmp .gform_wrapper .gform_title,
.bfmp .gform_heading .gform_title {
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 800;
	line-height: 1.2;
	color: var(--bfmp-ink);
	margin: 0 0 6px;
}

.bfmp .gform_wrapper .gform_description {
	display: block;
	font-size: 15px;
	line-height: 1.55;
	color: var(--bfmp-muted);
	margin-bottom: 18px;
}

/* Field spacing */
.bfmp .gform_wrapper .gform_fields { gap: 18px; }
.bfmp .gform_wrapper .gfield:not(:last-child) { margin-bottom: 18px; }

.bfmp .gform_wrapper .gfield_label,
.bfmp .gform_wrapper legend.gfield_label {
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--bfmp-ink);
	margin-bottom: 6px;
}

.bfmp .gform_wrapper .gfield_required { color: var(--bfmp-blue-dark); }

/* Inputs */
.bfmp .gform_wrapper input[type="text"],
.bfmp .gform_wrapper input[type="email"],
.bfmp .gform_wrapper input[type="tel"],
.bfmp .gform_wrapper input[type="url"],
.bfmp .gform_wrapper input[type="number"],
.bfmp .gform_wrapper input[type="password"],
.bfmp .gform_wrapper input[type="date"],
.bfmp .gform_wrapper select,
.bfmp .gform_wrapper textarea {
	width: 100%;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	color: var(--bfmp-text);
	background: #fff;
	border: 1px solid #cdd8e4;
	border-radius: 12px;
	box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}

.bfmp .gform_wrapper textarea { min-height: 130px; resize: vertical; }

.bfmp .gform_wrapper input:focus,
.bfmp .gform_wrapper select:focus,
.bfmp .gform_wrapper textarea:focus {
	outline: none;
	border-color: var(--bfmp-blue);
	box-shadow: 0 0 0 3px rgba(29, 127, 224, .18);
}

.bfmp .gform_wrapper ::placeholder { color: #9aa2ac; }

/* Sub-labels (name / address fields) */
.bfmp .gform_wrapper .gfield_label_before_complex,
.bfmp .gform_wrapper .ginput_complex label,
.bfmp .gform_wrapper .gform_fileupload_rules {
	font-size: 12px;
	font-weight: 600;
	color: var(--bfmp-muted);
}

/* Radio / checkbox / consent — box on the left, text flowing beside it */
.bfmp .gform_wrapper .gfield_radio .gchoice,
.bfmp .gform_wrapper .gfield_checkbox .gchoice,
.bfmp .gform_wrapper .ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 8px;
}

.bfmp .gform_wrapper .gfield_radio input[type="radio"],
.bfmp .gform_wrapper .gfield_checkbox input[type="checkbox"],
.bfmp .gform_wrapper .ginput_container_consent input[type="checkbox"] {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--bfmp-blue);
}

/* Radio choices (plan, billing) are full-width tappable rows: the label's
 * ::after covers the whole row, so a tap anywhere on it selects the choice. */
.bfmp .gform_wrapper .gfield_radio .gchoice {
	position: relative;
	align-items: center;
	min-height: 52px;
	margin: 0 0 10px;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid #cdd8e4;
	border-radius: 14px;
	transition: border-color .15s, background-color .15s;
}

.bfmp .gform_wrapper .gfield_radio .gchoice:has(input:checked) {
	background: var(--bfmp-hl);
	border-color: var(--bfmp-blue);
}

.bfmp .gform_wrapper .gfield_radio .gchoice:has(input:focus-visible) {
	box-shadow: 0 0 0 3px rgba(29, 127, 224, .18);
}

.bfmp .gform_wrapper .gfield_radio input[type="radio"] { width: 22px; height: 22px; margin: 0; }

.bfmp .gform_wrapper .gfield_radio label { flex: 1; cursor: pointer; }

.bfmp .gform_wrapper .gfield_radio label::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.bfmp .gform_wrapper .gfield_radio label,
.bfmp .gform_wrapper .gfield_checkbox label,
.bfmp .gform_wrapper .gfield_consent_label {
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--bfmp-text);
}

/* Consent paragraph reads as normal body copy (not a big bold heading) */
.bfmp .gform_wrapper .gfield_consent_label,
.bfmp .gform_wrapper .gfield_consent_label .gform-field-label__text {
	font-size: 13.5px;
	font-weight: 400;
	color: var(--bfmp-muted);
}

.bfmp .gform_wrapper .gfield_consent_label a { color: var(--bfmp-blue-dark); text-decoration: underline; }

/* Submit button — matches .bfmp-btn--solid. Scoped to .bfmp-enroll and marked
 * !important so it beats the theme's global .button style (which renders a
 * transparent pill with white text, i.e. an invisible "Submit"). */
.bfmp-enroll .gform_footer,
.bfmp-enroll .gform-footer,
.bfmp-enroll .gform_page_footer { margin-top: 24px; padding: 0; }

.bfmp-enroll .gform_button,
.bfmp-enroll button[type="submit"],
.bfmp-enroll input[type="submit"],
.bfmp-enroll .gform_next_button,
.bfmp-enroll .gform_previous_button {
	display: inline-block !important;
	width: auto !important;
	border: 2px solid var(--bfmp-blue) !important;
	border-radius: 999px !important;
	padding: 14px 36px !important;
	font-family: Montserrat, Helvetica, Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .05em !important;
	text-transform: uppercase !important;
	background: var(--bfmp-blue) !important;
	color: #fff !important;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}

.bfmp-enroll .gform_button:hover,
.bfmp-enroll button[type="submit"]:hover,
.bfmp-enroll input[type="submit"]:hover,
.bfmp-enroll .gform_next_button:hover {
	background: var(--bfmp-blue-dark) !important;
	border-color: var(--bfmp-blue-dark) !important;
	color: #fff !important;
}

.bfmp-enroll .gform_previous_button,
.bfmp-enroll .gform_previous_button:hover {
	background: #fff !important;
	color: var(--bfmp-blue-dark) !important;
}
.bfmp-enroll .gform_previous_button:hover { background: #eef5fd !important; }

/* Validation + confirmation */
.bfmp .gform_wrapper .gfield_error input,
.bfmp .gform_wrapper .gfield_error select,
.bfmp .gform_wrapper .gfield_error textarea { border-color: #d64545; }

.bfmp .gform_wrapper .validation_message,
.bfmp .gform_wrapper .gfield_validation_message {
	font-size: 13px;
	color: #d64545;
	margin-top: 6px;
}

.bfmp .gform_wrapper .gform_validation_errors {
	border-radius: 12px;
	border: 1px solid #f0c2c2;
	background: #fdeeee;
}

.bfmp .gform_confirmation_message {
	padding: 20px 22px;
	font-size: 16px;
	line-height: 1.55;
	color: var(--bfmp-ink);
	background: var(--bfmp-tint);
	border-radius: 14px;
}

/* ---- Mobile (matches the 760px breakpoint in the design) ---- */

@media (max-width: 759px) {
	.bfmp-only-desktop { display: none; }
	.bfmp-only-mobile { display: inline; }
	.bfmp-compare__tabs.bfmp-only-mobile { display: flex; }

	/* Hero: shorter photo and a higher card so the headline sits clear of the
	 * chat launcher in the bottom corner. */
	.bfmp-hero__media { height: 300px; }
	.bfmp .bfmp-hero__media img { object-position: 62% 30%; } /* keep the van, not the trailer, in frame */
	.bfmp-hero__inner { padding: 170px 16px 32px; }
	.bfmp-hero__card { padding: 28px 20px; gap: 14px; }
	.bfmp .bfmp-hero__lede { font-size: 16px; }

	/* Comfort Worx (featured) leads the stack on mobile. The top padding
	 * leaves room for its badge. */
	.bfmp-plan.is-featured { order: -1; }
	.bfmp-plan-grid { padding-top: 15px; }

	/* Compare pills share the row evenly and wrap their text instead of
	 * running off the right edge. */
	.bfmp-compare__tabs { overflow-x: visible; padding: 12px 12px 4px; }
	.bfmp .bfmp-compare__tab {
		flex: 1 1 0;
		min-width: 0;
		padding: 9px 6px;
		font-size: 12px;
		white-space: normal;
	}

	.bfmp-row { grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); }

	/* Show the non-member column plus whichever plan tab is selected. */
	.bfmp-compare .bfmp-c1,
	.bfmp-compare .bfmp-c2,
	.bfmp-compare .bfmp-c3 { display: none; }

	.bfmp-compare[data-tab="1"] .bfmp-c1,
	.bfmp-compare[data-tab="2"] .bfmp-c2,
	.bfmp-compare[data-tab="3"] .bfmp-c3 { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
	.bfmp .bfmp-btn { transition: none; }
}
