/* Beep Plan Finder. Colours follow the theme (block themes' and Elementor's primary colour) unless an accent is set in
 * Settings › Beep Plan Finder. Copyright (C) 2026 Beep Africa Technologies Limited. Beep's own website only; not for distribution to clients. */
.bpf, .bpf-print-page {
  --bpf-a: var(--bpf-accent, var(--wp--preset--color--primary, var(--e-global-color-primary, #1d4ed8)));
  --bpf-ink: #1c2633; --bpf-muted: #5b6779; --bpf-line: #d9e0ea; --bpf-bg: #fff; --bpf-soft: #f4f6fa;
  color: var(--bpf-ink); font-size: 16px; line-height: 1.5;
}
.bpf { background: var(--bpf-bg); border: 1px solid var(--bpf-line); border-radius: 16px; padding: 20px 16px; max-width: 860px; margin: 0 auto; box-sizing: border-box; }
.bpf *, .bpf *::before, .bpf *::after { box-sizing: border-box; }
.bpf-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.bpf-title { font-size: 22px; margin: 0; line-height: 1.25; }
.bpf-lang { display: flex; gap: 4px; }
.bpf-lang-b { border: 1px solid var(--bpf-line); background: var(--bpf-bg); color: var(--bpf-ink); border-radius: 999px; padding: 4px 12px; font-size: 14px; cursor: pointer; min-height: 32px; }
.bpf-lang-b[aria-pressed="true"] { background: var(--bpf-a); border-color: var(--bpf-a); color: #fff; }
.bpf-step, .bpf-hint { color: var(--bpf-muted); font-size: 14px; margin: 6px 0; }
.bpf-intro { margin: 8px 0 0; }
.bpf fieldset { border: 0; padding: 0; margin: 16px 0 0; min-width: 0; }
.bpf legend { font-weight: 700; font-size: 18px; padding: 0; margin-bottom: 10px; }
.bpf legend:focus, .bpf h3:focus, .bpf-done:focus { outline: none; }
.bpf-cards { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 600px) { .bpf-cards { grid-template-columns: 1fr 1fr; } .bpf { padding: 28px; } }
.bpf-card, .bpf-check, .bpf-pill { display: flex; align-items: flex-start; gap: 10px; border: 1px solid var(--bpf-line); border-radius: 12px; padding: 12px; cursor: pointer; background: var(--bpf-bg); min-height: 48px; }
.bpf-card:has(input:checked), .bpf-check:has(input:checked), .bpf-pill:has(input:checked) { border-color: var(--bpf-a); box-shadow: 0 0 0 1px var(--bpf-a); }
.bpf-card input, .bpf-check input, .bpf-pill input { margin-top: 4px; accent-color: var(--bpf-a); width: 18px; height: 18px; flex: 0 0 18px; }
.bpf-checks { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 600px) { .bpf-checks { grid-template-columns: 1fr 1fr; } }
.bpf-inline { display: flex; flex-wrap: wrap; gap: 8px; }
.bpf-inline legend { width: 100%; font-size: 16px; }
.bpf-field { margin: 12px 0 0; }
.bpf-field label { display: block; font-weight: 600; margin-bottom: 4px; }
.bpf-field input, .bpf-field select, .bpf-field textarea { width: 100%; max-width: 100%; font: inherit; padding: 10px 12px; border: 1px solid #b8c3d3; border-radius: 10px; background: #fff; color: var(--bpf-ink); min-height: 44px; }
.bpf-field input:focus, .bpf-field select:focus, .bpf-field textarea:focus, .bpf-btn:focus-visible, .bpf-lang-b:focus-visible { outline: 3px solid var(--bpf-a); outline-offset: 2px; }
.bpf-mail .bpf-check { margin-top: 12px; border: 0; padding: 4px 0; min-height: 0; }
.bpf-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 20px; }
.bpf-btn { background: var(--bpf-a); color: #fff; border: 1px solid var(--bpf-a); border-radius: 999px; padding: 12px 22px; font: inherit; font-weight: 700; cursor: pointer; min-height: 48px; margin-left: auto; }
.bpf-btn-ghost { background: transparent; color: var(--bpf-ink); border-color: var(--bpf-line); margin-left: 0; }
.bpf-btn[disabled] { opacity: .6; cursor: progress; }
.bpf-err { color: #a3261c; font-weight: 600; margin: 12px 0 0; min-height: 1px; }
.bpf-err:empty { margin: 0; }
.bpf-trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.bpf-cap { margin-top: 12px; font-size: 14px; color: var(--bpf-muted); }
.bpf-cap progress { width: 100%; max-width: 240px; height: 6px; }
.bpf-cap p { margin: 4px 0; }
.bpf-qtitle { font-size: 20px; margin: 16px 0 10px; }
.bpf-banner { border: 1px solid #f0c36d; background: #fff8e6; color: #5c4400; border-radius: 10px; padding: 12px 14px; margin: 0 0 12px; }
.bpf-summary { margin: 0 0 12px; }
.bpf-quote { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--bpf-line); border-radius: 12px; padding: 4px; }
.bpf-quote td, .bpf-quote th { word-break: normal; overflow-wrap: break-word; }
.bpf-quote td:first-child { min-width: 12em; }
/* phones: each line is a card (item, then its monthly and one-off price), the totals as label + amount rows */
@media (max-width: 600px) {
  .bpf-quote { overflow: visible; padding: 0; border: 0; }
  .bpf-quote table, .bpf-quote tbody, .bpf-quote tfoot, .bpf-quote tr, .bpf-quote td { display: block; width: 100% !important; }
  .bpf-quote thead { display: none; }
  .bpf-quote tbody tr { border: 1px solid var(--bpf-line); border-radius: 12px; padding: 4px 4px 8px; margin: 0 0 10px; }
  .bpf-quote tbody td { border: 0 !important; text-align: left !important; padding: 4px 8px !important; min-width: 0; white-space: normal !important; }
  .bpf-quote tbody td:empty { display: none; }
  .bpf-quote tbody td:nth-child(2):not(:empty), .bpf-quote tbody td:nth-child(3):not(:empty) { font-weight: 700; font-size: 16px; }
  .bpf-quote tfoot tr { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--bpf-line); }
  .bpf-quote tfoot td { width: auto !important; padding: 6px 8px !important; }
  .bpf-quote tfoot td:first-child { text-align: left !important; flex: 1; min-width: 0; }
  .bpf-quote tfoot td:empty { display: none; }
}
.bpf-mail { margin-top: 24px; border-top: 1px solid var(--bpf-line); padding-top: 8px; }
.bpf-mail h3 { font-size: 20px; margin: 12px 0 0; }
.bpf-done { margin-top: 20px; background: #ecfdf3; border: 1px solid #a6e4bf; color: #10532c; border-radius: 12px; padding: 12px 16px; }
.bpf-done a { color: inherit; font-weight: 700; }
.bpf-contact { margin: 16px 0 0; }
.bpf-contact a, .bpf-quote a { color: var(--bpf-a); }
.bpf-off { color: #a3261c; }
/* the printable page */
.bpf-print-page { margin: 0; background: #f4f6fa; font-family: Arial, Helvetica, sans-serif; }
.bpf-print { max-width: 820px; margin: 24px auto; background: #fff; padding: 24px 16px; border-radius: 10px; }
.bpf-print h1 { font-size: 22px; margin: 0 0 4px; }
.bpf-print-meta { color: #5b6779; margin: 0 0 16px; }
.bpf-print-btn { background: var(--bpf-a); color: #fff; border: 0; border-radius: 999px; padding: 12px 22px; font: inherit; font-weight: 700; cursor: pointer; }
@media print { .bpf-noprint { display: none; } .bpf-print-page { background: #fff; } .bpf-print { margin: 0; padding: 0; } }
.bpf-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 6px; }
.bpf-actions .bpf-btn { margin-left: 0; text-decoration: none; display: inline-flex; align-items: center; }
.bpf-cycle { margin-top: 14px; }
