/* Booking popup — scoped to avoid clashes with site styles */
.ffb-root{
  --ffb-navy:#2E3192; --ffb-navy-soft:#4A4EBF; --ffb-pink:#E5187E; --ffb-blue:#2196F3;
  --ffb-panel:#E4F1FC; --ffb-panel-deep:#CFE6F9; --ffb-ink:#1B1D2A; --ffb-muted:#6C7086;
  --ffb-line:#E2E6F0; --ffb-ok:#12A150;
  --ffb-font:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  display:none; position:fixed; inset:0; z-index:999999;
  align-items:center; justify-content:center; padding:12px 16px;
  font-family:var(--ffb-font); color:var(--ffb-ink); box-sizing:border-box;
}
.ffb-root *,.ffb-root *::before,.ffb-root *::after{box-sizing:border-box}
.ffb-root.ffb-open{display:flex}
html.ffb-lock, body.ffb-lock{overflow:hidden}
.ffb-backdrop{position:absolute; inset:0; background:rgba(20,22,60,.55)}
.ffb-modal{position:relative; width:100%; max-width:980px; height:calc(100vh - 48px); max-height:calc(100vh - 24px); min-height:0;
  background:#fff; border-radius:20px; overflow:hidden; display:flex; flex-direction:row; align-items:stretch;
  box-shadow:0 30px 80px rgba(20,22,60,.4); animation:ffb-pop .35s cubic-bezier(.2,.8,.3,1); z-index:1}
@keyframes ffb-pop{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.ffb-close{position:absolute; top:12px; right:14px; z-index:6; width:34px; height:34px; border:0; border-radius:50%;
  background:rgba(255,255,255,.9); color:var(--ffb-ink); font-size:19px; cursor:pointer; line-height:1;
  box-shadow:0 2px 8px rgba(20,22,60,.12); font-family:var(--ffb-font); padding:0}

/* Left rail */
.ffb-rail{background:linear-gradient(160deg,var(--ffb-panel),var(--ffb-panel-deep));
  padding:28px 24px; display:flex; flex-direction:column; overflow-y:auto;
  width:330px; flex:none; min-height:0}
.ffb-brand{margin-bottom:22px}
.ffb-brand img{display:block; width:132px; height:auto}
.ffb-rail h3{font-size:19px; font-weight:600; color:var(--ffb-navy); line-height:1.4; margin:0 0 18px; font-family:var(--ffb-font)}
.ffb-rail h3 em{font-style:normal; color:var(--ffb-pink)}
.ffb-perks{list-style:none; display:flex; flex-direction:column; gap:13px; margin:0 0 auto; padding:0}
.ffb-perks li{display:flex; gap:9px; font-size:13px; line-height:1.5; color:#33385C}
.ffb-perks svg{flex:none; margin-top:3px}
.ffb-coach{margin-top:20px; background:#fff; border-radius:13px; padding:13px; display:none;
  box-shadow:0 6px 18px rgba(46,49,146,.12)}
.ffb-coach.ffb-on{display:block; animation:ffb-pop .35s ease}
.ffb-coach-who{display:flex; gap:10px; align-items:center}
.ffb-coach-av{width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--ffb-navy),var(--ffb-blue));
  color:#fff; display:grid; place-items:center; font-weight:600; font-size:14px; flex:none}
.ffb-coach-nm{font-size:13px; font-weight:600; color:var(--ffb-navy); line-height:1.3}
.ffb-coach-cr{font-size:10.5px; color:var(--ffb-muted)}
.ffb-proof{margin-top:22px; padding-top:16px; border-top:1px solid rgba(46,49,146,.15); display:flex; gap:18px}
.ffb-proof div{font-size:10.5px; color:#4B5079; line-height:1.35}
.ffb-proof b{display:block; font-size:16px; color:var(--ffb-navy)}
.ffb-fineprint{margin-top:9px; font-size:9px; color:#6B7095; line-height:1.45}

/* Right pane */
.ffb-pane{display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; overflow:hidden}
.ffb-pane-scroll{padding:30px 32px 16px; overflow-y:auto; flex:1 1 0; min-height:0; -webkit-overflow-scrolling:touch; overscroll-behavior:contain}
.ffb-steps{display:flex; gap:6px; margin-bottom:20px}
.ffb-steps i{height:3px; flex:1; border-radius:2px; background:var(--ffb-line); transition:background .3s; display:block}
.ffb-steps i.ffb-on{background:var(--ffb-pink)}
.ffb-eyebrow{font-size:10.5px; letter-spacing:1.3px; text-transform:uppercase; color:var(--ffb-muted); font-weight:600; margin-bottom:6px}
.ffb-pane h2{font-size:25px; font-weight:600; color:var(--ffb-navy); letter-spacing:-.5px; line-height:1.25; margin:0; font-family:var(--ffb-font)}
.ffb-pane h2 b{font-weight:700; color:var(--ffb-pink)}
.ffb-sub{font-size:13px; color:var(--ffb-muted); margin-top:7px; line-height:1.5}
.ffb-screen{display:none; flex-direction:column}
.ffb-screen.ffb-on{display:flex}

.ffb-ctxbar{display:flex; align-items:center; gap:8px; margin-top:16px; padding:10px 12px;
  background:rgba(18,161,80,.08); border-radius:11px; font-size:12px; color:#1B5E3A}
.ffb-ctxbar span{flex:1; min-width:0}
.ffb-ctxbar button{font-family:var(--ffb-font); font-size:11px; font-weight:600; color:var(--ffb-navy); background:#fff;
  border:1.5px solid var(--ffb-line); border-radius:8px; padding:5px 10px; cursor:pointer; flex:none}

.ffb-goals{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px}
.ffb-goal{font-family:var(--ffb-font); text-align:center; padding:13px 6px 11px; border:1.5px solid var(--ffb-line);
  border-radius:13px; background:#fff; cursor:pointer; transition:.18s; display:flex; flex-direction:column; gap:3px}
.ffb-goal .ffb-gi{font-size:20px; line-height:1}
.ffb-goal b{font-size:12.5px; font-weight:600; color:var(--ffb-ink)}
.ffb-goal small{font-size:10px; color:var(--ffb-muted); line-height:1.3}
.ffb-goal:hover{border-color:var(--ffb-navy-soft)}
.ffb-goal.ffb-sel{border-color:var(--ffb-pink); background:#FFF5FA; box-shadow:0 0 0 3px rgba(229,24,126,.1)}
.ffb-goal.ffb-sel b{color:var(--ffb-pink)}

.ffb-label{font-size:12px; font-weight:600; color:var(--ffb-ink); margin:20px 0 9px}
.ffb-days{display:flex; gap:8px; overflow-x:auto; padding:2px 2px 6px; scrollbar-width:thin;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch}
.ffb-day{flex:none; width:60px; padding:9px 0; border:1.5px solid var(--ffb-line); border-radius:12px; background:#fff;
  cursor:pointer; text-align:center; transition:.18s; font-family:var(--ffb-font); scroll-snap-align:start}
.ffb-day small{display:block; font-size:10px; color:var(--ffb-muted); text-transform:uppercase; letter-spacing:.4px}
.ffb-day strong{display:block; font-size:17px; font-weight:600; color:var(--ffb-ink); margin:2px 0}
.ffb-day span{display:block; font-size:9.5px; color:var(--ffb-muted)}
.ffb-day.ffb-sel{background:var(--ffb-navy); border-color:var(--ffb-navy)}
.ffb-day.ffb-sel small,.ffb-day.ffb-sel strong,.ffb-day.ffb-sel span{color:#fff}
.ffb-day.ffb-full{opacity:.4; cursor:not-allowed}
.ffb-slotgroup{margin-top:15px}
.ffb-slotgroup h4{font-size:10.5px; font-weight:600; color:var(--ffb-muted); text-transform:uppercase; letter-spacing:1px; margin:0 0 8px}
.ffb-slots{display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:7px}
.ffb-slot{padding:10px 4px; border:1.5px solid var(--ffb-line); border-radius:10px; background:#fff; font-size:12.5px;
  font-weight:500; color:var(--ffb-ink); cursor:pointer; transition:.15s; font-family:var(--ffb-font)}
.ffb-slot.ffb-sel{background:var(--ffb-pink); border-color:var(--ffb-pink); color:#fff}
.ffb-slot.ffb-gone{background:#F6F7FA; color:#B9BCCB; cursor:not-allowed; text-decoration:line-through}

.ffb-grid{display:grid; grid-template-columns:1fr; gap:13px; margin-top:18px}
.ffb-field{display:flex; flex-direction:column}
.ffb-field label{font-size:11.5px; font-weight:500; color:var(--ffb-muted); margin-bottom:5px}
.ffb-root input[type="text"],
.ffb-root input[type="tel"],
.ffb-root input:not([type]){
  font-family:var(--ffb-font); font-size:16px; padding:12px 13px; border:1.5px solid var(--ffb-line);
  border-radius:10px; background:#fff; color:var(--ffb-ink); outline:none; transition:.15s; width:100%; margin:0}
.ffb-root input:focus{border-color:var(--ffb-navy); box-shadow:0 0 0 3px rgba(46,49,146,.1)}
.ffb-root input.ffb-bad{border-color:#E23B3B}
.ffb-err{font-size:11px; color:#E23B3B; margin-top:4px; display:none}
.ffb-err.ffb-on{display:block}
.ffb-phone{display:flex; align-items:stretch; gap:0; width:100%}
.ffb-root .ffb-phone .ffb-cc{
  width:62px; flex:none; margin:0; padding:12px 0;
  border:1.5px solid var(--ffb-line); border-right:0;
  border-radius:10px 0 0 10px; background:#F6F7FA;
  text-align:center; color:var(--ffb-muted); box-shadow:none; cursor:default}
.ffb-root .ffb-phone .ffb-cc:focus{border-color:var(--ffb-line); box-shadow:none}
.ffb-root .ffb-phone input:last-child{
  flex:1; width:auto; min-width:0; margin:0;
  border-radius:0 10px 10px 0}
.ffb-root .ffb-phone:focus-within .ffb-cc{
  border-color:var(--ffb-navy)}
.ffb-root .ffb-phone:focus-within input:last-child{
  border-color:var(--ffb-navy); box-shadow:0 0 0 3px rgba(46,49,146,.1)}
.ffb-root .ffb-phone:focus-within .ffb-cc{box-shadow:none}
.ffb-root .ffb-field:has(input.ffb-bad) .ffb-phone .ffb-cc,
.ffb-root .ffb-field:has(input.ffb-bad) .ffb-phone input:last-child{
  border-color:#E23B3B}
.ffb-root .ffb-field:has(input.ffb-bad) .ffb-phone input:last-child{box-shadow:none}
.ffb-consent{display:flex; gap:10px; margin-top:18px; align-items:flex-start; cursor:pointer}
.ffb-consent input{width:19px; height:19px; flex:none; margin-top:1px; accent-color:var(--ffb-pink)}
.ffb-consent p{font-size:11.5px; color:var(--ffb-muted); line-height:1.5; margin:0}

.ffb-strip{margin-top:16px; background:var(--ffb-panel); border-radius:12px; padding:12px 13px; display:none;
  align-items:center; gap:10px; font-size:12.5px; color:var(--ffb-navy); font-weight:500; line-height:1.4}
.ffb-strip.ffb-on{display:flex}
.ffb-strip-ic{width:29px; height:29px; border-radius:9px; background:#fff; display:grid; place-items:center; flex:none}

.ffb-foot{padding:16px 32px calc(18px + env(safe-area-inset-bottom)); background:#fff;
  border-top:1px solid var(--ffb-line); flex:none}
.ffb-actions{display:flex; gap:10px}
.ffb-btn{font-family:var(--ffb-font); font-size:15px; font-weight:600; padding:14px 24px; border:0; border-radius:12px;
  cursor:pointer; transition:.2s; display:inline-flex; align-items:center; justify-content:center; gap:8px}
.ffb-btn-primary{background:linear-gradient(90deg,var(--ffb-pink),#F04A96); color:#fff; flex:1;
  box-shadow:0 8px 20px rgba(229,24,126,.28)}
.ffb-btn-primary:disabled{background:#D8DAE5; color:#9A9DB0; box-shadow:none; cursor:not-allowed}
.ffb-btn-ghost{background:#fff; border:1.5px solid var(--ffb-line); color:var(--ffb-muted); flex:none; padding:14px 20px}
.ffb-note{font-size:10.5px; color:var(--ffb-muted); text-align:center; margin-top:10px}

.ffb-done{text-align:center; display:flex; flex-direction:column; align-items:center; padding-top:8px}
.ffb-tick{width:62px; height:62px; border-radius:50%; background:rgba(18,161,80,.1); display:grid; place-items:center; margin-bottom:16px}
.ffb-card{margin:18px 0 4px; width:100%; border:1.5px solid var(--ffb-line); border-radius:14px; overflow:hidden; text-align:left}
.ffb-card-top{background:var(--ffb-navy); color:#fff; padding:12px 15px; display:flex; justify-content:space-between;
  align-items:center; gap:10px}
.ffb-card-top b{font-size:13.5px; font-weight:600}
.ffb-card-top span{font-size:10.5px; opacity:.85; font-family:ui-monospace,monospace; flex:none}
.ffb-card-rows{padding:4px 15px 10px}
.ffb-rw{display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--ffb-line); font-size:12.5px}
.ffb-rw:last-child{border:0}
.ffb-rw span{color:var(--ffb-muted); flex:none}
.ffb-rw b{font-weight:500; text-align:right}
.ffb-next{font-size:12px; color:var(--ffb-muted); line-height:1.6; margin-top:10px; text-align:left; width:100%}
.ffb-next b{color:var(--ffb-navy); font-weight:600}

@media(max-width:860px){
  .ffb-root{padding:0; align-items:flex-end}
  .ffb-modal{flex-direction:column; max-width:100%;
    height:94vh; height:94dvh; max-height:none; border-radius:22px 22px 0 0; animation:ffb-slide .35s cubic-bezier(.2,.8,.3,1)}
  .ffb-rail{width:100%; flex:none; min-height:0}
  @keyframes ffb-slide{from{transform:translateY(100%)}to{transform:none}}
  .ffb-rail{padding:18px 20px 16px; overflow:visible}
  .ffb-brand{margin-bottom:12px}
  .ffb-brand img{width:106px}
  .ffb-rail h3{font-size:15px; line-height:1.4; margin-bottom:0}
  .ffb-perks,.ffb-proof,.ffb-coach,.ffb-fineprint{display:none}
  .ffb-pane{flex:1; min-height:0}
  .ffb-pane-scroll{padding:20px 20px 16px}
  .ffb-foot{padding:14px 20px calc(16px + env(safe-area-inset-bottom))}
  .ffb-pane h2{font-size:21px}
  .ffb-sub{font-size:12.5px}
  .ffb-goals{gap:6px}
  .ffb-goal{padding:11px 3px 9px}
  .ffb-goal small{display:none}
  .ffb-slots{grid-template-columns:repeat(auto-fill,minmax(76px,1fr)); gap:6px}
  .ffb-btn{font-size:14.5px; padding:14px 18px}
}
@media(max-width:360px){
  .ffb-goal b{font-size:11.5px}
  .ffb-slots{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .ffb-root *,.ffb-root *::before,.ffb-root *::after{animation:none!important; transition:none!important}
}
