.bff-wrap{--bff-color:#2563eb;--bff-on:#fff;--bff-bg:#fff;--bff-ink:#111827;--bff-radius:12px;max-width:760px;margin:0 auto;color:var(--bff-ink);box-sizing:border-box}
.bff-wrap:not(.bff-tpl-imported) *,.bff-wrap:not(.bff-tpl-imported) *::before,.bff-wrap:not(.bff-tpl-imported) *::after{box-sizing:border-box}
.bff-wrap.bff-tpl-imported{max-width:none;margin:0;color:inherit}
/* The wrapper must not take part in the theme layout: the imported form stays a direct child of its container, as the original was. */
.bff-wrap.bff-tpl-imported,.bff-wrap.bff-tpl-imported>.bff-imported{display:contents}
.bff-tpl-imported .bff-imp-msg:not(.frm_message):not(.frm_error_style){margin:0 0 12px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.05)}
.bff-card{position:relative}
.bff-card>.bff-card{padding:0}
.bff-wrap.bff-card .bff-app>.bff-card,.bff-wrap.bff-card .bff-card.bff-done{background:var(--bff-bg);border:1px solid rgba(0,0,0,.07);box-shadow:0 10px 30px rgba(0,0,0,.07);border-radius:calc(var(--bff-radius) + 6px);padding:30px}
.bff-plain .bff-card{background:transparent}
.bff-title{margin:0 0 6px;font-size:1.5em;line-height:1.2;color:inherit}
.bff-sub{margin:0 0 18px;opacity:.72}
.bff-steps{display:flex;gap:6px;list-style:none;margin:14px 0 8px;padding:0;overflow-x:auto;scrollbar-width:none}
.bff-steps li{display:flex;align-items:center;gap:6px;font-size:.8em;white-space:nowrap;opacity:.5}
.bff-steps li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.08);font-weight:700;font-size:.9em}
.bff-steps li em{font-style:normal;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.bff-steps li.is-on,.bff-steps li.is-done{opacity:1}
.bff-steps li.is-on span,.bff-steps li.is-done span{background:var(--bff-color);color:var(--bff-on)}
@media (max-width:640px){.bff-steps li:not(.is-on) em{display:none}}
.bff-bar{height:4px;background:rgba(0,0,0,.07);border-radius:4px;margin-bottom:20px;overflow:hidden}
.bff-bar i{display:block;height:100%;background:var(--bff-color);transition:width .3s}
.bff-q{margin:0 0 4px;font-size:1.15em}
.bff-hint{margin:0 0 14px;opacity:.7;font-size:.92em}
.bff-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.bff-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:14px;border:1.5px solid rgba(0,0,0,.12);border-radius:var(--bff-radius);background:var(--bff-bg);color:inherit;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}
.bff-opt:hover{border-color:var(--bff-color)}
.bff-opt:active{transform:scale(.99)}
.bff-opt i{font-style:normal;font-size:1.6em;line-height:1}
.bff-opt b{font-weight:650}
.bff-opt span{font-size:.85em;opacity:.7}
.bff-opt.is-on{border-color:var(--bff-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--bff-color) 18%,transparent);background:color-mix(in srgb,var(--bff-color) 6%,var(--bff-bg))}
.bff-multi.is-on b::before{content:"✓ ";color:var(--bff-color)}
.bff-num{display:grid;gap:14px;max-width:460px}
.bff-num-in{display:flex;align-items:center;gap:8px}
.bff-num-in input{width:140px;font-size:1.6em;font-weight:700;padding:8px 12px;border:1.5px solid rgba(0,0,0,.15);border-radius:var(--bff-radius);color:inherit;background:var(--bff-bg)}
.bff-num-in span{font-size:1.2em;opacity:.7}
.bff-num input[type=range]{width:100%;accent-color:var(--bff-color)}
.bff-presets{display:flex;flex-wrap:wrap;gap:8px}
.bff-presets button{padding:7px 12px;border:1px solid rgba(0,0,0,.15);border-radius:999px;background:var(--bff-bg);color:inherit;font:inherit;font-size:.9em;cursor:pointer}
.bff-presets button:hover{border-color:var(--bff-color);color:var(--bff-color)}
.bff-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
@media (max-width:600px){.bff-fields{grid-template-columns:1fr}.bff-wrap.bff-card .bff-app>.bff-card{padding:20px}}
.bff-field{display:flex;flex-direction:column;gap:5px;font-size:.92em;margin:0 0 12px}
.bff-fields .bff-field{margin:0}
.bff-field span{font-weight:600}
.bff-field em,.bff-check em{color:#dc2626;font-style:normal}
.bff-field input,.bff-field textarea{width:100%;padding:11px 13px;border:1.5px solid rgba(0,0,0,.14);border-radius:var(--bff-radius);background:var(--bff-bg);color:inherit;font:inherit}
.bff-field input:focus,.bff-field textarea:focus,.bff-num-in input:focus{outline:none;border-color:var(--bff-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--bff-color) 18%,transparent)}
.bff-check{display:flex;gap:8px;align-items:flex-start;font-size:.88em;margin:4px 0 4px}
.bff-check input{margin-top:3px;accent-color:var(--bff-color)}
.bff-check a{color:var(--bff-color)}
.bff-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.bff-nav .bff-btn:only-child{margin-left:auto}
.bff-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:0;border-radius:var(--bff-radius);background:var(--bff-color);color:var(--bff-on);font:inherit;font-weight:700;cursor:pointer;text-decoration:none;transition:filter .15s}
.bff-btn:hover{filter:brightness(1.07);color:var(--bff-on)}
.bff-btn[disabled]{opacity:.7;cursor:wait}
.bff-ghost{background:transparent;color:inherit;border:1.5px solid rgba(0,0,0,.15)}
.bff-ghost:hover{color:inherit}
.bff-tpl-basic .bff-nav .bff-btn{width:100%}
.bff-btn.is-loading::after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:bffspin .7s linear infinite}
@keyframes bffspin{to{transform:rotate(360deg)}}
.bff-err{color:#b91c1c;font-size:.9em;min-height:1.2em;margin-top:10px}
.bff-result{padding:20px;border-radius:var(--bff-radius);background:color-mix(in srgb,var(--bff-color) 8%,var(--bff-bg));border:1px solid color-mix(in srgb,var(--bff-color) 25%,transparent);text-align:center}
.bff-result small{letter-spacing:.08em;font-weight:700;opacity:.65;font-size:.75em}
.bff-big{font-size:1.9em;font-weight:800;margin:6px 0;color:var(--bff-color)}
.bff-note{font-size:.82em;opacity:.7;margin:6px 0 0}
.bff-kpis{display:flex;justify-content:center;gap:28px;margin-bottom:8px}
.bff-kpis b{display:block;font-size:2em;color:var(--bff-color);line-height:1.1}
.bff-kpis span{font-size:.85em;opacity:.7}
.bff-eq,.bff-price{margin:6px 0}
.bff-sum{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 16px}
.bff-sum dt{font-weight:600;opacity:.7}
.bff-sum dd{margin:0}
.bff-done{text-align:center}
.bff-check-ico{width:56px;height:56px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:var(--bff-color);color:var(--bff-on)}
.bff-wa{background:#25d366;color:#fff;margin-top:8px}
.bff-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.bff-from{margin-top:4px;font-size:.8em;font-weight:700;color:var(--bff-color)}
/* booking */
.bff-book-meta{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 14px;font-size:.92em;opacity:.8}
.bff-book-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
.bff-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.bff-cal-head b{font-size:1.05em}
.bff-cal-head button{width:34px;height:34px;border-radius:50%;border:0;background:rgba(0,0,0,.05);color:inherit;font-size:1.3em;line-height:1;cursor:pointer}
.bff-cal-head button:disabled{opacity:.3;cursor:default}
.bff-cal-body{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;min-height:230px}
.bff-cal-body.is-loading{opacity:.4}
.bff-cal-w{text-align:center;font-size:.72em;font-weight:700;opacity:.55;padding:4px 0}
.bff-day{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;font-size:.92em;opacity:.35;cursor:default;padding:0}
.bff-day.is-free{opacity:1;cursor:pointer;font-weight:700;color:var(--bff-color);background:color-mix(in srgb,var(--bff-color) 10%,transparent)}
.bff-day.is-free:hover{background:color-mix(in srgb,var(--bff-color) 20%,transparent)}
.bff-day.is-on,.bff-day.is-on:hover{background:var(--bff-color);color:var(--bff-on)}
.bff-day.is-today{box-shadow:inset 0 0 0 1.5px currentColor}
.bff-cal-none{grid-column:1/-1;text-align:center;font-size:.9em;opacity:.7;margin:8px 0}
.bff-times-day{margin:6px 0 10px;font-weight:600}
.bff-times-empty{opacity:.65;font-size:.92em;margin-top:44px}
.bff-slots{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:4px}
.bff-slot{padding:11px;border:1.5px solid color-mix(in srgb,var(--bff-color) 45%,transparent);border-radius:var(--bff-radius);background:var(--bff-bg);color:var(--bff-color);font:inherit;font-weight:700;cursor:pointer}
.bff-slot:hover{border-color:var(--bff-color)}
.bff-slot.is-on{background:var(--bff-color);color:var(--bff-on);border-color:var(--bff-color)}
.bff-bk-card{margin:10px auto 16px;padding:14px 18px;border-radius:var(--bff-radius);background:rgba(0,0,0,.035);max-width:420px}
.bff-bk-card p{margin:6px 0}
.bff-link{color:var(--bff-color)}
@media (max-width:640px){.bff-book-grid{grid-template-columns:1fr}.bff-slots{flex-direction:row;flex-wrap:wrap;max-height:none}.bff-slot{flex:1 1 30%}}
/* Imported forms: send notice as an overlay (does not move the page) */
.bff-popup{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.5);animation:bff-pop-in .18s ease-out;font-family:inherit}
.bff-popup.is-out{opacity:0;transition:opacity .2s}
.bff-popup-card{background:#fff;color:#1f2937;max-width:440px;width:100%;border-radius:16px;padding:26px 24px 22px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.35);font-size:16px;line-height:1.5}
.bff-popup-card p{margin:10px 0 18px;color:inherit;padding:0}
.bff-popup-icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;font-size:24px;font-weight:700;color:#fff;background:#16a34a}
.bff-popup-fail .bff-popup-icon{background:#dc2626}
.bff-popup-close{appearance:none;border:1px solid #d1d5db;background:#f9fafb;color:#111827;border-radius:999px;padding:9px 22px;font:inherit;font-size:14px;cursor:pointer}
.bff-popup-close:hover{background:#f3f4f6}
@keyframes bff-pop-in{from{opacity:0}to{opacity:1}}

/* ---------- Formulario libre (builder.js) ---------- */
.bff-builder .bff-bgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.bff-builder .bff-bf { grid-column: 1 / -1; min-width: 0; }
.bff-builder .bff-bf.bff-bhalf { grid-column: auto; }
.bff-builder .bff-bf[hidden] { display: none !important; }
.bff-builder .bff-bsec { grid-column: 1 / -1; border: 1px solid rgba(127, 127, 127, .25); border-radius: var(--bff-radius, 12px); padding: 12px 14px; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.bff-builder .bff-bsec legend { font-weight: 600; padding: 0 6px; }
.bff-builder .bff-bgroup { border: 0; margin: 0; padding: 0; min-width: 0; }
.bff-builder .bff-bgroup legend { font-size: .9em; font-weight: 600; margin-bottom: 6px; padding: 0; }
.bff-builder .bff-bopt { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; cursor: pointer; }
.bff-builder .bff-bopt input { margin-top: .25em; accent-color: var(--bff-color, #2563eb); }
.bff-builder .bff-bhelp { display: block; font-size: .8em; opacity: .7; margin-top: 4px; }
.bff-builder .bff-bhtml { font-size: .92em; opacity: .9; }
.bff-builder .bff-brating { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.bff-builder .bff-brating legend { width: 100%; }
.bff-builder .bff-bstar input { position: absolute; opacity: 0; pointer-events: none; }
.bff-builder .bff-bstar span { font-size: 28px; line-height: 1; color: rgba(127, 127, 127, .45); cursor: pointer; padding: 0 2px; }
.bff-builder .bff-bstar input:checked ~ span, .bff-builder .bff-bstar:hover span { color: #f59e0b; }
.bff-builder .bff-bnote { min-height: 1em; margin: 6px 0 0; font-size: .85em; opacity: .8; }
.bff-builder .bff-bsave { text-align: center; margin: 12px 0 0; }
.bff-builder .bff-bsavebox { margin-top: 10px; padding: 12px; border: 1px dashed rgba(127, 127, 127, .4); border-radius: var(--bff-radius, 12px); }
.bff-builder .bff-bsavebox .bff-btn { margin-top: 8px; }
@media (max-width: 560px) { .bff-builder .bff-bgrid, .bff-builder .bff-bsec { grid-template-columns: 1fr; } .bff-builder .bff-bf.bff-bhalf { grid-column: 1 / -1; } }
