/* ============================================================================
 * 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.
 * ========================================================================== */

.bfy-pr__slot {
	display: grid; place-items: center; 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); }
}
.bfy-pr figure { margin: 0; }
.bfy-pr img { display: block; width: 100%; height: 100%; 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); }

/* 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; }
.bfy-pr__cred img { height: 42px; width: 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; }
.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); }
