/* ============================================================================
 * BRIEFLY PRIME — core section styling.
 * Structure only. Every colour, size and radius resolves from the theme skin,
 * so these eleven sections recolour for all five themes without a single
 * per-theme rule. Every var() carries a literal fallback: the page survives a
 * missing scope class, and a bare var() is invisible to the contrast auditor.
 * ========================================================================== */

/* ── IMAGE BOXES ──────────────────────────────────────────────────────────
   v3.8.12 — An unfilled slot and a filled one must occupy THE SAME BOX, or
   the page rearranges itself the moment a real photo is added. Both now take
   the same ratio. --p-media-ratio is a theme token, so a template can have a
   different default shape without touching this file. */
.bfy-pr__slot {
	display: grid; place-items: center; aspect-ratio: var(--p-media-ratio, 4/3);
	min-height: 180px; width: 100%;
	background: color-mix(in srgb, var(--p-brand, #1F4D3D) 8%, transparent);
	border: 1px dashed color-mix(in srgb, var(--p-brand, #1F4D3D) 26%, transparent);
	border-radius: var(--p-radius, 14px);
	font-size: var(--p-t-micro, 0.75rem); letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--p-muted, #55606B);
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.bfy-pr__slot { background: rgba(20,23,26,0.05); border-color: rgba(20,23,26,0.20); }
}
/* v3.8.24 — what a VISITOR sees in an empty slot: a quiet, intentional brand
 * panel. No label, no dashed "unfinished" border (Briefly_Page_Themes::
 * quiet_empty_image_slots swaps the markup for anyone who cannot edit the
 * page). The second rule is a safety net for any path that renders content
 * without the_content: a logged-out visitor never sees the editor's label. */
.bfy-pr__slot--quiet {
	border: 0;
	background:
		radial-gradient(120% 90% at 85% 10%, color-mix(in srgb, var(--p-brand, #1F4D3D) 16%, transparent), transparent 60%),
		linear-gradient(160deg, color-mix(in srgb, var(--p-brand, #1F4D3D) 10%, transparent), color-mix(in srgb, var(--p-brand, #1F4D3D) 3%, transparent));
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.bfy-pr__slot--quiet { background: linear-gradient(160deg, rgba(20,23,26,0.07), rgba(20,23,26,0.02)); }
}
body:not(.logged-in) .bfy-pr__slot > span { display: none; }
body:not(.logged-in) .bfy-pr__slot { border-style: solid; border-color: transparent; }
.bfy-pr figure { margin: 0; }
/* THE IMAGE FILLS ITS CONTAINER — BUT ONLY IF THE CONTAINER HAS A HEIGHT.
 *
 * height:100% against a parent with no declared height resolves to auto, so
 * the photo rendered at its natural size: a tall portrait ran the full depth
 * of the section, and in the few places the parent DID have a height, an
 * unfilled slot collapsed to a thin strip at the top. Two opposite faults,
 * one cause, and both visible on the free template every evaluator sees first.
 *
 * The ratio below is a FALLBACK and is self-limiting: where a wrapper already
 * declares aspect-ratio (story media, portraits, hero plates, gallery tiles),
 * height:100% is definite, so CSS ignores this line entirely and those
 * layouts are untouched. It only bites where nothing gave the image a box. */
.bfy-pr img { display: block; width: 100%; height: 100%; aspect-ratio: var(--p-media-ratio, 4/3); object-fit: cover; }
.bfy-pr ul, .bfy-pr ol { list-style: none; margin: 0; padding: 0; }

/* 1. PROOF — a strip, never cards. */
.bfy-pr__proof { display: grid; grid-template-columns: var(--p-proof-cols, repeat(auto-fit, minmax(min(100%,220px),1fr))); gap: var(--p-gut, 1.5rem); }
.bfy-pr__proof-item { display: flex; gap: 0.75rem; align-items: flex-start; }
.bfy-pr__ico { flex: 0 0 auto; width: 26px; height: 26px; color: var(--p-brand, #1F4D3D); }
.bfy-pr__ico svg { width: 100%; height: 100%; }
.bfy-pr__proof-item strong { display: block; font-size: var(--p-t-body, 1rem); }
.bfy-pr__proof-sub { display: block; margin-top: 0.2rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }

/* 2. STORY */
.bfy-pr__story { display: grid; grid-template-columns: var(--p-story-cols, minmax(0,1fr) minmax(0,0.85fr)); gap: var(--p-story-gap, clamp(1.5rem,4vw,3.5rem)); align-items: center; }
.bfy-pr__story-media { aspect-ratio: var(--p-story-ratio, 4/5); overflow: hidden; border-radius: var(--p-radius, 14px); }
.bfy-pr__sig { margin-top: 1.25rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }
/* v3.26.0 — a story told in more than one paragraph. Each carries the lede's own styling. */
.bfy-pr__story-copy .bfy-pr__story-p { margin-top: 0.9rem; }

/* 3. STATS */
.bfy-pr__stats { display: grid; grid-template-columns: var(--p-stats-cols, repeat(auto-fit, minmax(min(100%,160px),1fr))); gap: var(--p-gut, 1.5rem); text-align: center; }
.bfy-pr__stat-v { display: block; font-family: var(--p-font-display, system-ui, sans-serif); font-size: var(--p-t-display, clamp(2rem,4vw,3rem)); font-weight: 700; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.bfy-pr__stat-l { display: block; margin-top: 0.5rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }

/* 4. CREDENTIALS */
.bfy-pr__creds { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(1.5rem,4vw,3rem); }
.bfy-pr__cred { max-width: 150px; opacity: 0.85; }
/* A logo is sized by its own height and must keep its own proportions. */
.bfy-pr__cred img { height: 42px; width: auto; aspect-ratio: auto; object-fit: contain; }
.bfy-pr__cred-txt { font-size: var(--p-t-sm, 0.9rem); font-weight: 600; }

/* 5. TEAM */
.bfy-pr__team { display: grid; grid-template-columns: var(--p-team-cols, repeat(auto-fit, minmax(min(100%,220px),1fr))); gap: var(--p-gut, 1.5rem); }
.bfy-pr__portrait { aspect-ratio: 1; overflow: hidden; border-radius: var(--p-radius, 14px); margin-bottom: 0.9rem; }
.bfy-pr__member-r { margin-top: 0.15rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-brand, #1F4D3D); font-weight: 600; }
.bfy-pr__member-b { margin-top: 0.5rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }

/* 6. PRICING */
.bfy-pr__plans { display: grid; grid-template-columns: var(--p-plans-cols, repeat(auto-fit, minmax(min(100%,260px),1fr))); gap: var(--p-gut, 1.5rem); align-items: start; }
.bfy-pr__plan { position: relative; padding: clamp(1.25rem,2.4vw,1.9rem); background: var(--p-surface, #FFF); border: 1px solid var(--p-border, rgba(20,23,26,0.12)); border-radius: var(--p-radius, 14px); }
.bfy-pr__plan-tag { position: absolute; top: -0.7rem; left: clamp(1.25rem,2.4vw,1.9rem); padding: 0.25rem 0.6rem; font-size: var(--p-t-micro, 0.75rem); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; background: var(--p-brand, #1F4D3D); color: var(--p-on-brand, #FFF); border-radius: var(--p-radius-pill, 999px); }
.bfy-pr__plan-p { margin-top: 0.6rem; font-family: var(--p-font-display, system-ui, sans-serif); font-size: var(--p-t-h2-sm, 1.75rem); font-weight: 700; }
.bfy-pr__plan-per { margin-left: 0.3rem; font-size: var(--p-t-sm, 0.9rem); font-weight: 400; color: var(--p-muted, #55606B); }
.bfy-pr__plan-b { margin-top: 0.5rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }
.bfy-pr__plan-f { margin-top: 1rem; display: grid; gap: 0.45rem; font-size: var(--p-t-sm, 0.9rem); }
.bfy-pr__plan-f li { padding-left: 1.25rem; position: relative; }
/* v3.17.3 — the card's button. Full width on a phone, where a short button in a wide card is a small target. */
.bfy-pr__plan-a { margin-top: 1.25rem; }
@media (max-width: 600px) { .bfy-pr__plan-a .bfy-btn, .bfy-pr__plan-a .bfy-btn-ghost { display: flex; width: 100%; box-sizing: border-box; } }
.bfy-pr__plan-f li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 7px; height: 7px; border-radius: 50%; background: var(--p-brand, #1F4D3D); }

/* 7. FAQ */
.bfy-pr__faq { display: grid; grid-template-columns: var(--p-faq-cols, minmax(0,0.8fr) minmax(0,1.2fr)); gap: var(--p-story-gap, clamp(1.5rem,4vw,3.5rem)); align-items: start; }
.bfy-pr__qa { border-bottom: 1px solid var(--p-border, rgba(20,23,26,0.12)); }
.bfy-pr__qa summary { cursor: pointer; padding: 1rem 0; font-family: var(--p-font-display, system-ui, sans-serif); font-size: var(--p-t-h3, 1.14rem); font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.bfy-pr__qa summary::-webkit-details-marker { display: none; }
.bfy-pr__qa summary::after { content: "+"; flex: 0 0 auto; color: var(--p-brand, #1F4D3D); font-weight: 400; }
.bfy-pr__qa[open] summary::after { content: "\2013"; }
.bfy-pr__qa-a { padding-bottom: 1.1rem; color: var(--p-muted, #55606B); max-width: 62ch; }

/* 8. CONTACT */
.bfy-pr__contact { display: grid; grid-template-columns: var(--p-contact-cols, minmax(0,0.85fr) minmax(0,1fr)); gap: var(--p-story-gap, clamp(1.5rem,4vw,3.5rem)); align-items: start; }
.bfy-pr__contact-form { padding: clamp(1.25rem,2.6vw,2rem); background: var(--p-surface, #FFF); border: 1px solid var(--p-border, rgba(20,23,26,0.12)); border-radius: var(--p-radius, 14px); }
.bfy-pr__direct { margin-top: 1.25rem; display: grid; gap: 0.4rem; font-size: var(--p-t-lead, 1.06rem); font-weight: 600; }
.bfy-pr__direct a { color: var(--p-brand, #1F4D3D); }
.bfy-pr__note { font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }

/* 9. HOURS */
.bfy-pr__hours { display: grid; grid-template-columns: var(--p-hours-cols, minmax(0,1fr) minmax(0,1fr)); gap: var(--p-story-gap, clamp(1.5rem,4vw,3.5rem)); align-items: start; }
.bfy-pr__addr { margin-top: 1rem; font-style: normal; line-height: 1.7; }
.bfy-pr__hours-list { display: grid; gap: 0; }
.bfy-pr__hour { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--p-border, rgba(20,23,26,0.12)); }
.bfy-pr__hour dt { font-weight: 600; }
.bfy-pr__hour dd { margin: 0; color: var(--p-muted, #55606B); font-variant-numeric: tabular-nums; }

/* 10. MAP */
.bfy-pr__map { overflow: hidden; border-radius: var(--p-radius, 14px); line-height: 0; }
.bfy-pr__map iframe { display: block; width: 100%; }

/* 11. CTA */
.bfy-pr__cta { text-align: center; max-width: var(--p-w-mid, 900px); margin-inline: auto; }
.bfy-pr__cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.85rem; margin-top: 1.75rem; }

/* RESPONSIVE — the two-track sections become one column at the same 760px the
   shape packs and .ewpk-grid use, so a page never reflows at two widths. */
@media (max-width: 760px) {
	.bfy-pr__story, .bfy-pr__faq, .bfy-pr__contact, .bfy-pr__hours { grid-template-columns: 1fr; }
	.bfy-pr__story-media { aspect-ratio: 4/3; order: -1; }
}

@media (forced-colors: active) {
	.bfy-pr__plan, .bfy-pr__qa, .bfy-pr__hour { border-color: CanvasText; }
	.bfy-pr__plan-tag { background: Canvas; color: CanvasText; border: 1px solid CanvasText; }
}

/* Wrappers and headings the renderers emit that the block above missed. Caught
   by the class-coverage gate: every class the PHP writes must have a rule, or a
   section silently renders unstyled and looks broken rather than plain. */
.bfy-pr__story-copy, .bfy-pr__contact-copy, .bfy-pr__faq-head { min-width: 0; }
.bfy-pr__faq-list { min-width: 0; }
.bfy-pr__member-n { font-size: var(--p-t-h3, 1.14rem); }
.bfy-pr__plan-n { font-size: var(--p-t-h3, 1.14rem); }

/* ── COMPARE MATRIX (v3.8.8) ─────────────────────────────────────────────
   A real N-tier feature table. Uses the same token names as every other
   Prime section, so it inherits each theme's radius, rule colour and
   density rather than carrying a look of its own — the whole point of the
   shared core library.

   The wrapper scrolls rather than the table shrinking: four tiers of tick
   marks squeezed into 360px is unreadable, and a horizontal scroll on a
   table is a pattern people already understand. */
.bfy-pr__compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: var(--p-gut, 1.5rem); }
.bfy-pr__compare { width: 100%; border-collapse: collapse; min-width: 34rem; font-size: var(--p-t-sm, 0.94rem); }
.bfy-pr__compare th,
.bfy-pr__compare td { padding: 0.8rem 1rem; text-align: left; border-bottom: 1px solid var(--p-rule, rgba(0,0,0,0.1)); vertical-align: top; }
.bfy-pr__compare thead th { font-weight: 700; border-bottom-width: 2px; white-space: nowrap; }
.bfy-pr__compare thead th.is-featured { color: var(--p-brand, #1F4D3D); }
.bfy-pr__compare tbody th { font-weight: 500; }
.bfy-pr__compare td { text-align: center; }
.bfy-pr__compare thead th + th { text-align: center; }
.bfy-pr__compare tbody tr:last-child th,
.bfy-pr__compare tbody tr:last-child td { border-bottom: 0; }
.bfy-pr__cmp-yes { color: var(--p-brand, #1F4D3D); font-weight: 700; }
/* Not a colour-only distinction: the glyphs differ in shape as well, so the
   table is still readable in greyscale and to anyone who cannot tell the two
   hues apart. */
.bfy-pr__cmp-no { opacity: 0.45; }


/* ============================================================================
 * v3.8.31 — BALANCED GRIDS FOR THE PRIME DESIGNS (Lumen and every Pro design).
 *
 * Owner's report: six services laid out FOUR across and TWO below. "Design
 * should default to 3 wide 2 rows not 4 and 2."
 *
 * Every card grid in the Prime stack was
 *     repeat(auto-fit, minmax(280px, 1fr))
 * so the column count was whatever fitted the container — 4 at full width —
 * and nothing ever looked at how many cards there were. grid-balance.css has
 * fixed exactly this since v2.12.29, but it targets .ewpk-g and the classic
 * themes' -grid-N classes; the Prime shapes emit .ewpk-grid, so the rule never
 * reached Lumen or any Prime design.
 *
 * The column count is now chosen from the number of cards, by the rule a
 * designer would apply:
 *   - cards carrying prose (services, reviews, steps, team, plans): at most
 *     THREE across — a line of body copy in a quarter-width card is too short
 *     to read. 4 -> 2x2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+3+1 with the last card
 *     spanning the row, 8 -> 3+3+2, 9 -> 3x3.
 *   - short items (proof points, figures, the matrix): up to five across.
 *   - tablet: two across (three when the count divides by three), phone: one.
 *   - NEVER one card alone on a last row: where a count makes that
 *     unavoidable the last card spans the full row, which reads as a finish.
 *
 * Done by setting the custom property each shape ALREADY reads for its track
 * list, so no shape rule is rewritten and a browser without :has() keeps the
 * previous auto-fit layout exactly.
 * ========================================================================== */
@supports selector(:has(*)) {
	@media (min-width: 761px) and (max-width: 1023px) {
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(1):last-child) { --bfy-svc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(1):last-child) { --bfy-quotes-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(1):last-child) { --bfy-proc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(1):last-child) { --bfy-proc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(1):last-child) { --p-team-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(1):last-child) { --p-plans-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(2):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(2):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(2):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(2):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(2):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(2):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(3):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(3):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(3):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(3):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(3):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(3):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(4):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(4):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(4):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(4):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(4):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(4):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(5):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(5):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(5):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(5):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(5):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(5):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(5):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(5):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(5):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(5):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(5):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(5):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(6):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(6):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(6):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(6):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(6):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(6):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(7):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(7):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(7):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(7):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(7):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(7):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(7):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(7):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(8):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(8):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(8):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(8):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(8):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(8):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(9):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(9):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(9):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(9):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(9):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(9):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(9):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(9):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(9):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(9):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(9):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(9):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(10):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(10):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(10):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(10):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(10):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(10):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(11):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(11):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(11):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(11):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(11):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(11):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(11):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(11):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(11):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(11):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(11):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(11):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(12):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(12):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(12):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(12):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(12):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(12):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(13)) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(13)) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(13)) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(13)) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(13)) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(13)) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(1):last-child) { --p-proof-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(1):last-child) { --p-stats-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(1):last-child) { --bfy-svc-matrix-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(2):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(2):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(2):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(3):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(3):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(3):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(4):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(4):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(4):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(5):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(5):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(5):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(5):last-child) > :last-child,
		.bfy-pr__stats:has(> :nth-child(5):last-child) > :last-child,
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(5):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-pr__proof:has(> :nth-child(6):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(6):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(6):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(7):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(7):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(7):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(7):last-child) > :last-child,
		.bfy-pr__stats:has(> :nth-child(7):last-child) > :last-child,
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(7):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-pr__proof:has(> :nth-child(8):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(8):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(8):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(9):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(9):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(9):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(10):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(10):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(10):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(11):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(11):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(11):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(11):last-child) > :last-child,
		.bfy-pr__stats:has(> :nth-child(11):last-child) > :last-child,
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(11):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-pr__proof:has(> :nth-child(12):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(12):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(12):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(13)) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(13)) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(13)) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
	}
	@media (min-width: 1024px) {
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(1):last-child) { --bfy-svc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(1):last-child) { --bfy-quotes-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(1):last-child) { --bfy-proc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(1):last-child) { --bfy-proc-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(1):last-child) { --p-team-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(1):last-child) { --p-plans-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(2):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(2):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(2):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(2):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(2):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(2):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(3):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(3):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(3):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(3):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(3):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(3):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(4):last-child) { --bfy-svc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(4):last-child) { --bfy-quotes-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(4):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(4):last-child) { --bfy-proc-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(4):last-child) { --p-team-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(4):last-child) { --p-plans-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(5):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(5):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(5):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(5):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(5):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(5):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(6):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(6):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(6):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(6):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(6):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(6):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(7):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(7):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(7):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(7):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(7):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(7):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(7):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(7):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(7):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(8):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(8):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(8):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(8):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(8):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(8):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(9):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(9):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(9):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(9):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(9):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(9):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(10):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(10):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(10):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(10):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(10):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(10):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(10):last-child) > :last-child,
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(10):last-child) > :last-child,
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(10):last-child) > :last-child,
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(10):last-child) > :last-child,
		.bfy-pr__team:has(> :nth-child(10):last-child) > :last-child,
		.bfy-pr__plans:has(> :nth-child(10):last-child) > :last-child { grid-column: 1 / -1; }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(11):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(11):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(11):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(11):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(11):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(11):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(12):last-child) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(12):last-child) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(12):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(12):last-child) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(12):last-child) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(12):last-child) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--grid .bfy-svc__list:has(> :nth-child(13)) { --bfy-svc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-quotes--grid .bfy-quotes__list:has(> :nth-child(13)) { --bfy-quotes-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--steps .bfy-proc__list:has(> :nth-child(13)) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-proc--pillars .bfy-proc__list:has(> :nth-child(13)) { --bfy-proc-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__team:has(> :nth-child(13)) { --p-team-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__plans:has(> :nth-child(13)) { --p-plans-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(1):last-child) { --p-proof-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(1):last-child) { --p-stats-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(1):last-child) { --bfy-svc-matrix-cols: repeat(1, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(2):last-child) { --p-proof-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(2):last-child) { --p-stats-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(2):last-child) { --bfy-svc-matrix-cols: repeat(2, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(3):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(3):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(3):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(4):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(4):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(4):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(5):last-child) { --p-proof-cols: repeat(5, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(5):last-child) { --p-stats-cols: repeat(5, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(5):last-child) { --bfy-svc-matrix-cols: repeat(5, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(6):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(6):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(6):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(7):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(7):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(7):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(8):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(8):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(8):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(9):last-child) { --p-proof-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(9):last-child) { --p-stats-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(9):last-child) { --bfy-svc-matrix-cols: repeat(3, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(10):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(10):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(10):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(11):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(11):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(11):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(12):last-child) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(12):last-child) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(12):last-child) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__proof:has(> :nth-child(13)) { --p-proof-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-pr__stats:has(> :nth-child(13)) { --p-stats-cols: repeat(4, minmax(0, 1fr)); }
		.bfy-svc--matrix .bfy-svc__grid:has(> :nth-child(13)) { --bfy-svc-matrix-cols: repeat(4, minmax(0, 1fr)); }
	}
	@media (max-width: 760px) {
		.bfy-svc--grid .bfy-svc__list { --bfy-svc-cols: minmax(0, 1fr); }
		.bfy-quotes--grid .bfy-quotes__list { --bfy-quotes-cols: minmax(0, 1fr); }
		.bfy-proc--steps .bfy-proc__list { --bfy-proc-cols: minmax(0, 1fr); }
		.bfy-proc--pillars .bfy-proc__list { --bfy-proc-cols: minmax(0, 1fr); }
		.bfy-pr__team { --p-team-cols: minmax(0, 1fr); }
		.bfy-pr__plans { --p-plans-cols: minmax(0, 1fr); }
		.bfy-svc--grid .bfy-svc__list > :last-child,
		.bfy-quotes--grid .bfy-quotes__list > :last-child,
		.bfy-proc--steps .bfy-proc__list > :last-child,
		.bfy-proc--pillars .bfy-proc__list > :last-child,
		.bfy-pr__team > :last-child,
		.bfy-pr__plans > :last-child { grid-column: auto; }
		/* Figures, proof points and the matrix keep their own phone layout
		   (two small items per row reads better than a single column of
		   numbers); only a spanning last item is reset. */
		.bfy-pr__proof > :last-child,
		.bfy-pr__stats > :last-child,
		.bfy-svc--matrix .bfy-svc__grid > :last-child { grid-column: auto; }
	}
}

/* v3.8.32 — a filled slot hides its placeholder label (see gallery-shapes.css). */
.bfy-pr__slot[style*="background-image"] > span { display: none; }
.bfy-pr__slot[style*="background-image"] { border-color: transparent; }

/* ── 12. REAL JOBS (v3.27.0) ── the brief's jobs, word for word. Same tokens as the plans. */
.bfy-pr__jobs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,300px),1fr)); gap: var(--p-gut, 1.5rem); align-items: stretch; }
.bfy-pr__job { display: flex; flex-direction: column; overflow: hidden; background: var(--p-surface, #FFF); border: 1px solid var(--p-border, rgba(20,23,26,0.12)); border-radius: var(--p-radius, 14px); }
.bfy-pr__job-media { aspect-ratio: 4/3; overflow: hidden; margin: 0; }
.bfy-pr__job-body { display: flex; flex-direction: column; gap: 0.55rem; flex: 1; padding: clamp(1.25rem,2.4vw,1.75rem); }
.bfy-pr__job-meta { font-size: var(--p-t-micro, 0.75rem); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--p-brand, #1F4D3D); }
.bfy-pr__job-n { font-size: var(--p-t-h3, 1.14rem); }
.bfy-pr__job-s { font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }
.bfy-pr__job-r { margin-top: auto; padding-top: 0.75rem; border-top: 1px solid var(--p-border, rgba(20,23,26,0.12)); font-size: var(--p-t-sm, 0.9rem); }

/* ── 13. VIDEO (v3.27.0) ── the facade itself is styled by brief-media.css. */
.bfy-pr__video { max-width: var(--p-w-mid, 900px); margin-inline: auto; }
@media (forced-colors: active) { .bfy-pr__job { border-color: CanvasText; } }

/* ── 14. AREAS COVERED (v3.28.0) ── a wrap of place names; a name with its own page is a link. */
.bfy-pr__areas { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.bfy-pr__areas li { margin: 0; }
.bfy-pr__area { display: inline-block; padding: 0.4rem 0.85rem; border: 1px solid var(--p-border, rgba(20,23,26,0.12)); border-radius: var(--p-radius-pill, 999px); font-size: var(--p-t-sm, 0.9rem); line-height: 1.3; color: inherit; text-decoration: none; }
a.bfy-pr__area:hover, a.bfy-pr__area:focus-visible { border-color: var(--p-brand, #1F4D3D); color: var(--p-brand, #1F4D3D); }
.bfy-pr__area[aria-current="page"] { background: var(--p-brand, #1F4D3D); border-color: var(--p-brand, #1F4D3D); color: var(--p-on-brand, #FFF); }
@media (forced-colors: active) { .bfy-pr__area { border-color: CanvasText; } }

/* ── 15. WHO WE WORK WITH (v3.30.0) ── the brief's customer types, each with what it needs. */
.bfy-pr__who { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,240px),1fr)); gap: var(--p-gut, 1.5rem); list-style: none; margin: 0; padding: 0; }
.bfy-pr__who-i { padding: clamp(1.25rem,2.4vw,1.6rem); background: var(--p-surface, #FFF); border: 1px solid var(--p-border, rgba(20,23,26,0.12)); border-top: 3px solid var(--p-brand, #1F4D3D); border-radius: var(--p-radius, 14px); }
.bfy-pr__who-n { font-size: var(--p-t-h3, 1.14rem); }
.bfy-pr__who-d { margin-top: 0.55rem; font-size: var(--p-t-sm, 0.9rem); color: var(--p-muted, #55606B); }
@media (forced-colors: active) { .bfy-pr__who-i { border-color: CanvasText; } }
