/* Clean Flow DPF booking calendar */
.cfb-wrap{--cfb-green:#50b543;--cfb-ink:#1d2320;--cfb-mute:#6b7671;--cfb-line:#dfe5e1;--cfb-bg:#fff;--cfb-soft:#f2f8f0;
 font-family:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--cfb-ink);
 max-width:760px;margin:0 auto 28px;padding:20px;border:1px solid var(--cfb-line);border-radius:14px;background:var(--cfb-bg);box-sizing:border-box}
.cfb-wrap *{box-sizing:border-box}
.cfb-h{font-size:24px;line-height:1.25;font-weight:700;margin:0 0 16px}
.cfb-step{margin:0 0 22px}
.cfb-step-label{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cfb-mute);margin:0 0 10px}

.cfb-services{display:flex;flex-wrap:wrap;gap:8px}
.cfb-svc{font:inherit;font-size:15px;padding:10px 16px;min-height:44px;border:1px solid var(--cfb-line);background:#fff;border-radius:999px;cursor:pointer}
.cfb-svc.is-on{border-color:var(--cfb-green);background:var(--cfb-soft);font-weight:700}

.cfb-calhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.cfb-month{font-size:18px;font-weight:700}
.cfb-nav{font:inherit;font-size:22px;line-height:1;width:44px;height:44px;border:1px solid var(--cfb-line);background:#fff;border-radius:10px;cursor:pointer;color:var(--cfb-ink)}
.cfb-nav:hover{background:var(--cfb-soft)}

.cfb-dow,.cfb-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cfb-dow{margin-bottom:6px}
.cfb-dow span{text-align:center;font-size:12px;font-weight:700;color:var(--cfb-mute);padding:4px 0}

.cfb-cell{position:relative;font:inherit;aspect-ratio:1/1;min-height:44px;border:2px solid transparent;border-radius:10px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:0;
 font-weight:700;transition:transform .08s ease}
.cfb-cell--pad{border:0;background:none;cursor:default}
.cfb-n{font-size:16px;font-weight:800;line-height:1}
.cfb-dot{display:none}
.cfb-tag{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1;opacity:.95}

/* AVAILABLE — strong green */
.cfb-cell--available{background:#128a3a;border-color:#0e7030;color:#fff}
.cfb-cell--available:hover{background:#0e7030;transform:translateY(-1px)}

/* LIMITED — strong amber */
.cfb-cell--limited{background:#f0900a;border-color:#c56f00;color:#231400}
.cfb-cell--limited:hover{background:#d97f05;transform:translateY(-1px)}

/* UNAVAILABLE / CLOSED — muted grey */
.cfb-cell--full,.cfb-cell--closed{background:#eceff0;border-color:#e0e4e6;color:#9aa3a8;cursor:not-allowed;font-weight:600}
.cfb-cell--full .cfb-tag,.cfb-cell--closed .cfb-tag{opacity:.85}

/* SELECTED — keeps its status colour, adds a dark ring and a tick */
.cfb-cell.is-sel{border-color:#12202e;box-shadow:0 0 0 3px #12202e inset,0 3px 10px rgba(18,32,46,.35);transform:translateY(-1px)}
.cfb-cell.is-sel::after{content:"\2713";position:absolute;top:3px;right:5px;font-size:12px;font-weight:900;line-height:1}
.cfb-cell--available.is-sel::after{color:#fff}
.cfb-cell--limited.is-sel::after{color:#231400}
.cfb-cell:focus-visible,.cfb-time:focus-visible,.cfb-svc:focus-visible,.cfb-nav:focus-visible{outline:3px solid #12202e;outline-offset:2px}

.cfb-key{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;font-size:13px;font-weight:700;color:var(--cfb-ink)}
.cfb-key span{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;border:1px solid var(--cfb-line);background:#fff}
.cfb-key .k{display:inline-block;width:16px;height:16px;border-radius:4px;border:2px solid transparent}
.k-a{background:#128a3a;border-color:#0e7030}
.k-l{background:#f0900a;border-color:#c56f00}
.k-f{background:#eceff0;border-color:#e0e4e6}

.cfb-daytitle{font-size:16px;font-weight:700;margin-bottom:10px}
.cfb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.cfb-time{font:inherit;font-size:16px;font-weight:600;min-height:48px;border:1px solid var(--cfb-line);background:#fff;border-radius:10px;cursor:pointer;color:var(--cfb-ink)}
.cfb-time:hover{border-color:var(--cfb-green);background:var(--cfb-soft)}
.cfb-none,.cfb-loading{font-size:15px;color:var(--cfb-mute);padding:10px 0}

.cfb-note{font-size:13px;color:var(--cfb-mute);margin:10px 0 0;line-height:1.5}
.cfb-chosen{border:1px solid var(--cfb-green);background:var(--cfb-soft);border-radius:12px;padding:16px;margin-bottom:22px}
.cfb-chosen-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.cfb-chosen-in strong{font-size:13px;text-transform:uppercase;letter-spacing:.04em;width:100%}
.cfb-chosen-txt{font-size:18px;font-weight:700;flex:1 1 auto}
.cfb-change{font:inherit;font-size:14px;min-height:40px;padding:0 14px;border:1px solid var(--cfb-line);background:#fff;border-radius:8px;cursor:pointer}
.cfb-req{margin-top:8px}

.cfb-degraded{border:1px solid #e0c37a;background:#fdf6e6;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.5;margin-bottom:18px}
.cfb-err{border:1px solid #d98080;background:#fdeeee;border-radius:10px;padding:12px 14px;font-size:15px;font-weight:600;margin-bottom:18px}

/* Fields the calendar drives — kept in the DOM and submitted, hidden from view. */
.ff-el-group.cfb-driven{display:none!important}

@media (max-width:520px){
 .cfb-wrap{padding:14px;border-radius:12px}
 .cfb-h{font-size:20px}
 .cfb-dow,.cfb-grid{gap:4px}
 .cfb-dow span{font-size:11px}
 .cfb-n{font-size:14px}
 .cfb-times{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
 .cfb-chosen-txt{font-size:16px}
}

/* v1.5.0 I'm flexible */
.cfb-flex{margin-top:16px;padding-top:14px;border-top:1px dashed var(--cfb-line)}
.cfb-flex-q{font-size:14px;color:var(--cfb-mute);margin:0 0 8px}
.cfb-flex-btn{font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:8px 14px;border:1px solid var(--cfb-green);background:#fff;color:var(--cfb-ink);border-radius:10px;cursor:pointer;width:100%;text-align:center}
.cfb-flex-btn:hover{background:var(--cfb-soft)}
.cfb-flex.is-open>.cfb-flex-q,.cfb-flex.is-open>.cfb-flex-btn{display:none}
.cfb-next-h{font-size:15px;font-weight:700;margin:0 0 8px;color:var(--cfb-ink)}
.cfb-next-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.cfb-linkbtn{font:inherit;font-size:14px;background:none;border:0;padding:12px 0 0;color:var(--cfb-ink);text-decoration:underline;cursor:pointer;text-align:left;display:block}
.cfb-flex-btn:focus-visible,.cfb-linkbtn:focus-visible{outline:3px solid #12202e;outline-offset:2px}
@media (min-width:600px){.cfb-flex-btn{width:auto}}
@media (max-width:480px){.cfb-next-list{grid-template-columns:1fr}}

/* v1.6.0 submission states */
.ff-btn-submit.cfb-sending{opacity:.8;cursor:wait}
.cfb-submit-err{margin:0 0 12px;padding:12px 14px;border:2px solid #c62828;background:#fdecea;color:#7f1d1d;border-radius:10px;font-size:15px;line-height:1.45}
.cfb-success{max-width:640px;margin:8px auto 36px;padding:32px 22px;border:2px solid #127a2e;background:#e6f6ea;border-radius:16px;text-align:center;color:#12311b;scroll-margin-top:90px}
.cfb-success:focus{outline:none}
.cfb-success-icon{width:76px;height:76px;margin:0 auto 16px;border-radius:50%;background:#127a2e;color:#fff;font-size:46px;line-height:76px;font-weight:700}
.cfb-success-h{font-size:28px;line-height:1.25;margin:0 0 14px;color:#0b3d1a}
.cfb-success p{font-size:17px;line-height:1.5;margin:0 0 10px}
.cfb-sent-note{margin:0 0 14px;padding:10px 12px;border:1px solid #127a2e;background:#e6f6ea;border-radius:10px;font-size:14px;color:#12311b}
@media (max-width:600px){.cfb-success{padding:26px 16px;margin:0 0 28px}.cfb-success-h{font-size:23px}.cfb-success p{font-size:16px}}

/* v1.7.0 visual hierarchy */
.cfb-nextcard{display:block;width:100%;margin:14px 0 0;padding:14px 16px;text-align:left;font:inherit;background:#fff;border:2px solid var(--cfb-green);border-radius:12px;cursor:pointer;color:var(--cfb-ink);box-sizing:border-box}
.cfb-nextcard:hover{background:var(--cfb-soft)}
.cfb-nextcard:focus-visible{outline:3px solid #12202e;outline-offset:2px}
.cfb-nextcard-q{display:block;font-size:13px;color:var(--cfb-mute);margin-bottom:2px}
.cfb-nextcard-a{display:block;font-size:17px;font-weight:700;line-height:1.3}
.cfb-nextcard-s{display:block;font-size:13px;color:var(--cfb-mute);margin-top:3px}
.cfb-chosen.is-flex{border:2px solid #127a2e;background:#e6f6ea}
.cfb-chosen.is-flex .cfb-chosen-in strong{font-size:18px;text-transform:none;letter-spacing:0;color:#0b3d1a}
.cfb-chosen.is-flex .cfb-chosen-txt{font-size:16px;font-weight:600}
.cfb-success{padding:40px 24px;border-width:3px}
.cfb-success-icon{width:96px;height:96px;line-height:96px;font-size:58px}
.cfb-success-h{font-size:32px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.cfb-success-lead{font-size:19px!important;font-weight:600}
.cfb-success-foot{margin-top:16px!important;padding-top:14px;border-top:1px solid #b9dcc2}
@media (max-width:600px){.cfb-success{padding:30px 16px}.cfb-success-icon{width:80px;height:80px;line-height:80px;font-size:48px}.cfb-success-h{font-size:25px}.cfb-nextcard-a{font-size:16px}}
#cfbook .cfb-chosen.is-flex,.cfb-chosen.is-flex{border:2px solid #127a2e;border-left:6px solid #127a2e;border-radius:10px;background:#e6f6ea;padding:16px 18px}
#cfbook .cfb-chosen.is-flex .cfb-chosen-in strong{font-size:19px;font-weight:800}

/* v1.8.0 */
.cfb-tag-s{display:none}
@media (max-width:440px){.cfb-tag-l{display:none}.cfb-tag-s{display:inline}}
.cfb-nextcard{display:flex;align-items:center;gap:14px}
.cfb-nextcard-ic{flex:0 0 auto;display:inline-flex;color:#128a3a}
.cfb-nextcard-txt{display:block;flex:1 1 auto;min-width:0}
.cfb-success-help{margin-top:6px!important;font-size:15px!important;color:#3d4a55}
.cfb-success-help a{color:#0b3d1a;font-weight:700;white-space:nowrap}
