/* ============ Boulevard-reference palette: crisp, high contrast ============ */
.nf-bk{--bk-ink:#1A1A1A;          /* near-black text            */
       --bk-sub:#3D6B7D;          /* blue-gray subtitles         */
       --bk-mut:#8C8C8C;          /* muted gray                  */
       --bk-line:#E6E6E6;         /* hairline dividers           */
       --bk-blue:#CDE9F2;         /* light-blue banner           */
       --bk-bluetx:#1B5568;       /* banner text                 */
       --bk-btn:#0D0D0D;          /* black pill CTA              */
       font-size:16px;line-height:1.5;color:var(--bk-ink);
       -webkit-font-smoothing:antialiased}
.nf-bk *{box-sizing:border-box;margin:0}
.nf-bn-btn{background:var(--bk-btn,#0D0D0D);color:#fff;border:0;border-radius:999px;padding:14px 34px;
font:inherit;font-size:16px;font-weight:600;cursor:pointer;letter-spacing:.01em}
.nf-bn-btn:hover{opacity:.85;background:var(--bk-btn,#0D0D0D);color:#fff}
/* -------- overlay shell -------- */
.nf-bk[hidden]{display:none!important}
.nf-bk-overlay{position:fixed;inset:0;z-index:999999;background:rgba(15,15,15,.55);
display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:26px 14px}
.nf-bk-overlay .nf-bk-frame{width:100%;max-width:720px;margin:auto 0}
.nf-bk-inline .nf-bk-frame{max-width:720px;margin:0 auto}
.nf-bk-frame{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);
display:flex;flex-direction:column;min-height:560px}
/* -------- hero + logo card -------- */
.nf-bk-hero{height:200px;flex:none;background:#0D0D0D url() center/cover no-repeat;
background-image:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.25)),radial-gradient(120% 140% at 70% 20%,#3A3A3A,#101010);
display:flex;align-items:center;justify-content:center}
.nf-bk-hero[style]{background-blend-mode:multiply}
.nf-bk-logo{background:#fff;padding:16px 30px;box-shadow:0 6px 26px rgba(0,0,0,.35)}
.nf-bk-logo img{max-height:76px;max-width:230px;display:block}
.nf-bk-logo-tx{font-size:19px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#1A1A1A}
/* -------- light blue banner (the Boulevard returning-clients strip) -------- */
.nf-bk-banner{background:var(--bk-blue);color:var(--bk-bluetx);font-weight:600;font-size:15.5px;
padding:16px 24px;flex:none}
/* -------- nav bar -------- */
.nf-bk-bar{display:flex;align-items:center;padding:16px 22px 0;flex:none;min-height:34px}
.nf-bk-back{background:none;border:0;padding:0;font:inherit;font-size:15.5px;color:var(--bk-ink);cursor:pointer}
.nf-bk-back span{text-decoration:underline;text-underline-offset:3px}
.nf-bk-spacer{flex:1}
.nf-bk-x{background:none;border:0;font-size:19px;line-height:1;color:var(--bk-ink);cursor:pointer;padding:4px}
/* -------- body + rows -------- */
.nf-bk-body{padding:4px 22px 18px;flex:1}
.nf-bk-h{font-size:17px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:16px 0 4px;color:#111}
.nf-bk-title{font-size:27px;font-weight:600;line-height:1.25;padding:12px 0 6px}
.nf-bk-desc{color:#333;padding:6px 0 16px;white-space:pre-line}
.nf-bk-meta{color:var(--bk-mut);font-size:14.5px;padding:2px 0 10px}
.nf-bk-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;
background:#fff;border:0;color:var(--bk-ink);border-bottom:1px solid var(--bk-line);padding:18px 2px;font:inherit;color:inherit;cursor:pointer}
.nf-bk-row:hover{background:var(--bk-hov,#F5F5F5)!important;color:var(--bk-hovtx,#1A1A1A)!important}
.nf-bk-row:hover .t,.nf-bk-row:hover .s,.nf-bk-row:hover .chev,.nf-bk-row:hover .price{color:var(--bk-hovtx,#1A1A1A)!important}
.nf-bk-prov:hover{background:var(--bk-hov,#F5F5F5)!important;color:var(--bk-hovtx,#1A1A1A)!important}
.nf-bk-prov:hover .nm,.nf-bk-prov:hover .tt,.nf-bk-prov:hover .rate{color:var(--bk-hovtx,#1A1A1A)!important}
.nf-bk-row:hover .t{text-decoration:underline;text-underline-offset:3px}
.nf-bk-row:focus-visible{outline:2px solid var(--bk-accent,#29A8DF);outline-offset:-2px}
.nf-bk-row .t{font-size:17.5px;font-weight:500;color:#1A1A1A}
.nf-bk-row .s{font-size:15px;color:var(--bk-sub);margin-top:4px}
.nf-bk-row .chev{color:#1A1A1A;font-size:20px;flex:none}
.nf-bk-row .price{font-weight:600;flex:none;color:#1A1A1A}
/* -------- professional picker -------- */
.nf-bk-prov{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:#fff;border:0;color:var(--bk-ink);
border-bottom:1px solid var(--bk-line);padding:14px 2px;font:inherit;cursor:pointer}
.nf-bk-prov .radio{width:21px;height:21px;border-radius:50%;border:2px solid #BDBDBD;flex:none;position:relative;background:#fff}
.nf-bk-prov.sel .radio{border-color:var(--bk-accent,#29A8DF);background:var(--bk-accent,#29A8DF)}
.nf-bk-prov.sel .radio:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#fff}
.nf-bk-prov img,.nf-bk-prov .ph{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:none;background:#F1F1F1;
display:flex;align-items:center;justify-content:center;color:#8C8C8C;font-size:18px}
.nf-bk-prov .nm{font-size:17.5px;font-weight:500}.nf-bk-prov .tt{font-size:14px;color:var(--bk-sub)}
.nf-bk-prov .rate{margin-left:auto;font-weight:600}
/* -------- cart -------- */
.nf-bk-ci{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--bk-line);padding:16px 2px}
.nf-bk-ci .w{font-size:15px;color:var(--bk-mut);margin-top:4px}
.nf-bk-ci .w b{color:#1A1A1A;font-weight:600}
.nf-bk-ci .rm{background:none;border:0;color:#B3261E;font-size:13.5px;cursor:pointer;padding:0;margin-top:6px;text-decoration:underline}
.nf-bk-more{display:block;margin:22px auto 4px;background:#fff;border:1.5px solid #1A1A1A;border-radius:999px;
padding:13px 44px;font:inherit;font-size:16.5px;cursor:pointer;color:#1A1A1A}
.nf-bk-more:hover{background:var(--bk-hov,#F5F5F5);color:var(--bk-hovtx,#1A1A1A)}
/* -------- slots / inputs -------- */
.nf-bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;padding:12px 0}
.nf-bk-slot{border:1.5px solid var(--bk-line);border-radius:8px;background:#fff;padding:12px 4px;font:inherit;font-size:15px;cursor:pointer;color:#1A1A1A}
.nf-bk-slot:hover{border-color:#1A1A1A;background:#fff;color:var(--bk-ink)}
.nf-bk-slot.sel:hover{background:var(--bk-btn,#0D0D0D);border-color:var(--bk-btn,#0D0D0D);color:#fff}
.nf-bk-slot.sel{border-color:var(--bk-btn,#0D0D0D);background:var(--bk-btn,#0D0D0D);color:#fff;font-weight:600}
.nf-bk-date,.nf-bk-in{width:100%;border:1.5px solid #CFCFCF;border-radius:8px;padding:13px 14px;font:inherit;font-size:16px;background:#fff;color:#1A1A1A}
.nf-bk-date{margin-top:8px}.nf-bk-in{margin:7px 0}
.nf-bk-date:focus,.nf-bk-in:focus{outline:none;border-color:#1A1A1A}
.nf-bk-lab{font-size:14px;font-weight:600;display:block;margin-top:12px;color:#1A1A1A}
.nf-bk-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#555;margin:14px 0}
/* -------- CTA -------- */
.nf-bk-ctaw{padding:10px 22px 6px;position:sticky;bottom:0;background:linear-gradient(to top,#fff 78%,rgba(255,255,255,0));flex:none}
.nf-bk-cta{display:block;width:100%;background:var(--bk-btn);color:#fff;border:0;border-radius:999px;padding:18px;
font:inherit;font-size:17.5px;font-weight:600;cursor:pointer}
.nf-bk-cta:hover{opacity:.87;background:var(--bk-btn,#0D0D0D);color:#fff}.nf-bk-cta:disabled{opacity:.4;cursor:default}
.nf-bk-foot{text-align:center;font-size:12.5px;color:#9A9A9A;letter-spacing:.08em;padding:12px 0 16px;flex:none}
.nf-bk-foot b{color:#6B6B6B;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.nf-bk-err{background:#FDECEA;color:#8C1D18;border-radius:8px;padding:12px 14px;font-size:14.5px;margin:12px 0;white-space:pre-line}
.nf-bk-ok{max-width:440px;margin:26px auto;text-align:center}
.nf-bk-ok .big{width:64px;height:64px;border-radius:50%;background:var(--bk-btn,#0D0D0D);color:#fff;font-size:30px;
display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.nf-bk-empty{color:var(--bk-mut);text-align:center;padding:44px 0}
.nf-bk-spin{margin:48px auto;width:30px;height:30px;border:3px solid var(--bk-line);border-top-color:#1A1A1A;border-radius:50%;animation:nfbk-r .8s linear infinite}
@keyframes nfbk-r{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.nf-bk *{animation-duration:1.5s!important}}
@media (max-width:560px){
.nf-bk-overlay{padding:0}
.nf-bk-overlay .nf-bk-frame{min-height:100dvh;border-radius:0;max-width:none}
.nf-bk-body{padding:4px 16px 16px}.nf-bk-bar{padding:14px 16px 0}
.nf-bk-ctaw{padding:10px 16px 8px}.nf-bk-hero{height:160px}.nf-bk-banner{padding:14px 16px}}
#nf-bk-pay-el{margin:14px 0}
body.nf-bk-lock{overflow:hidden}
.nf-bk-back:hover,.nf-bk-x:hover{background:transparent;color:var(--bk-ink)}
.nf-bk-ci .rm:hover{background:transparent;color:#B3261E}
