/* Blufeeld — booking chooser. Loaded on every public page by blufeeld-booking.php.
   Uses the site's --bf-* tokens where a page defines them, with the same values as fallbacks. */
.bfk-dialog,.bfk-options,.bf .wp-block-button.bf-btn.bf-btn-ghost{--bfk-ink:var(--bf-ink,#1f1630);--bfk-ink-2:var(--bf-ink-2,#33283d);--bfk-muted:var(--bf-muted,#6f6680);--bfk-accent:var(--bf-accent,#5b07d7);--bfk-accent-deep:var(--bf-accent-deep,#441388);--bfk-accent-soft:var(--bf-accent-soft,#f1eafd);--bfk-line:var(--bf-line,#e9e4f0);--bfk-line-strong:var(--bf-line-strong,#d5cddf);--bfk-sans:var(--bf-sans,"Manrope","Helvetica Neue",Arial,sans-serif);--bfk-display:var(--bf-display,"Fraunces",Georgia,serif);--bfk-mono:var(--bf-mono,"JetBrains Mono",Menlo,Consolas,monospace)}

/* Secondary "Book a Zoom call" button next to the primary CTA */
.bf .wp-block-buttons.bf-buttons{gap:12px}
.bf .wp-block-button.bf-btn.bf-btn-ghost .wp-block-button__link{background:transparent;color:var(--bfk-ink);border:1.5px solid var(--bfk-line-strong);box-shadow:none;animation:none!important}
.bf .wp-block-button.bf-btn.bf-btn-ghost .wp-block-button__link:hover{background:#fff;color:var(--bfk-accent);border-color:var(--bfk-accent);box-shadow:0 10px 24px -14px rgba(91,7,215,.45)}
.bf-contact-side .wp-block-buttons{margin:4px 0 8px}
.bf-contact-side .bf-btn-ghost .wp-block-button__link{font-size:15px;padding:13px 22px}

/* Option cards */
.bfk-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;font-family:var(--bfk-sans)}
.bfk-options.bfk-stack{grid-template-columns:1fr;gap:10px}
.bfk-opt,.bf .bfk-opt{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 22px;border:1.5px solid var(--bfk-line);border-radius:18px;background:#fff;color:var(--bfk-ink);text-decoration:none!important;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.bfk-opt:hover,.bfk-opt:focus-visible{border-color:var(--bfk-accent);transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(59,31,181,.35);color:var(--bfk-ink)}
.bfk-opt:focus-visible{outline:2px solid var(--bfk-accent);outline-offset:3px}
.bfk-opt.bfk-rec{border-color:var(--bfk-accent)}
.bfk-badge{align-self:flex-start;font-family:var(--bfk-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--bfk-accent-deep);background:var(--bfk-accent-soft);border-radius:999px;padding:4px 10px;margin-bottom:2px}
.bfk-len{font-family:var(--bfk-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--bfk-muted)}
.bfk-title{font-family:var(--bfk-display);font-size:26px;line-height:1.1;letter-spacing:-.015em}
.bfk-body{font-size:15px;line-height:1.5;color:var(--bfk-ink-2)}
.bfk-go{margin-top:8px;font-weight:600;font-size:15px;color:var(--bfk-accent)}
.bfk-go::after{content:" →";transition:margin .15s ease}
.bfk-opt:hover .bfk-go::after{margin-left:3px}
.bfk-stack .bfk-opt{padding:16px 18px}
.bfk-stack .bfk-title{font-size:22px}
.bfk-stack .bfk-body{font-size:14px}

/* Dark variant, for the readout page's ink panel */
.bfk-dark .bfk-opt{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16);color:#fff}
.bfk-dark .bfk-opt:hover,.bfk-dark .bfk-opt:focus-visible{background:rgba(255,255,255,.08);border-color:#e9b1c9;color:#fff;box-shadow:none}
.bfk-dark .bfk-opt.bfk-rec{border-color:#e9b1c9}
.bfk-dark .bfk-badge{background:rgba(233,177,201,.14);color:#f3cadb}
.bfk-dark .bfk-len{color:#a698bb}
.bfk-dark .bfk-body{color:#d9d2e6}
.bfk-dark .bfk-go{color:#f3cadb}

/* Dialog */
.bfk-dialog{width:min(640px,calc(100% - 32px));max-width:none;max-height:calc(100vh - 48px);padding:0;border:0;border-radius:24px;background:#fff;color:var(--bfk-ink);font-family:var(--bfk-sans);box-shadow:0 30px 80px -20px rgba(31,22,48,.45);overflow:hidden}
.bfk-dialog.bfk-wide{width:min(1000px,calc(100% - 32px))}
.bfk-dialog::backdrop{background:rgba(31,22,48,.55);backdrop-filter:blur(3px)}
.bfk-dialog[open]{animation:bfk-in .22s cubic-bezier(.2,.7,.2,1)}
.bfk-panel{position:relative;max-height:calc(100vh - 48px);overflow:auto;padding:32px}
.bfk-dialog .bfk-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:38px;min-width:0;height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--bfk-muted);font-size:26px;line-height:1;cursor:pointer;z-index:2}
.bfk-dialog .bfk-close:hover,.bfk-dialog .bfk-close:focus{background:var(--bfk-accent-soft);color:var(--bfk-ink);box-shadow:none}
.bfk-dialog .bfk-close:focus:not(:focus-visible){background:transparent;color:var(--bfk-muted)}
.bfk-dialog .bfk-close:focus-visible,.bfk-dialog .bfk-back:focus-visible{outline:2px solid var(--bfk-accent);outline-offset:2px}
.bfk-dialog .bfk-back:hover,.bfk-dialog .bfk-back:focus{background:transparent;color:var(--bfk-accent-deep);box-shadow:none}
.bfk-h{outline:none;margin:0 40px 6px 0;font-family:var(--bfk-display);font-weight:400;font-size:32px;line-height:1.1;letter-spacing:-.02em;color:var(--bfk-ink);text-transform:none}
.bfk-sub{margin:0 0 22px;font-size:15px;color:var(--bfk-muted)}
.bfk-foot{margin:18px 0 0;font-size:13.5px;color:var(--bfk-muted)}
.bfk-foot a{color:var(--bfk-accent);font-weight:600}
.bfk-cal-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 40px 16px 0}
.bfk-back{border:0;background:transparent;padding:6px 0;font:600 14px var(--bfk-sans);color:var(--bfk-accent);cursor:pointer}
.bfk-back::before{content:"← "}
.bfk-cal-label{font-family:var(--bfk-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--bfk-muted)}
.bfk-cal{min-height:520px;width:100%}
.bfk-cal[hidden]{display:none}
@keyframes bfk-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* /book/ page */
.bfk-page .bf-lede{margin-bottom:40px}
.bfk-page .bfk-options{max-width:760px}
.bfk-page .bfk-page-foot{margin-top:28px;max-width:60ch;font-size:15px}

/* Phones: the dialog becomes a bottom sheet */
@media(max-width:640px){
  .bfk-dialog,.bfk-dialog.bfk-wide{width:100%;margin:auto 0 0;max-height:92vh;border-radius:22px 22px 0 0}
  .bfk-dialog[open]{animation-name:bfk-up}
  .bfk-panel{max-height:92vh;padding:26px 18px 22px}
  .bfk-h{font-size:26px}
  .bfk-title{font-size:22px}
}
@keyframes bfk-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion: reduce){.bfk-dialog[open]{animation:none}.bfk-opt{transition:none}}

/* Home contact panel: the call option sits above the email line */
.bf-contact-side .bfk-or-email{margin-top:12px;padding-top:20px;border-top:1px solid #e3d8f2}
