/* Experienced Results — booking widget. Prefix: erbk-. Matches ER DESIGN.md
   (dark #0a0e1a, cyan #00d4ff -> green #9DFF00, DM Sans inherited, spring easing,
   glassmorphism, pill CTAs). Self-contained, no external icon/font fetches. */

#er-booking{
  --erbk-cyan:#00d4ff; --erbk-green:#9DFF00; --erbk-orange:#F58300;
  --erbk-bg:#0d1117; --erbk-panel:#0f1626; --erbk-line:rgba(255,255,255,.09);
  --erbk-line-strong:rgba(255,255,255,.16);
  --erbk-text:#ffffff; --erbk-muted:#aab4c4; --erbk-dim:#6b7689;
  --erbk-spring:cubic-bezier(.22,1,.36,1);
  max-width:780px; margin:0 auto; color:var(--erbk-text);
  font-size:1rem; line-height:1.5; text-align:left; box-sizing:border-box;
}
#er-booking *,#er-booking *::before,#er-booking *::after{box-sizing:border-box;}

#er-booking .erbk-card{
  background:var(--erbk-bg);
  border:1px solid var(--erbk-line);
  border-radius:1rem;
  padding:clamp(1.1rem,3.5vw,2rem);
  box-shadow:0 24px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(0,212,255,.04);
  position:relative; overflow:hidden;
}
#er-booking .erbk-card::before{ /* subtle top edge glow */
  content:""; position:absolute; inset:0 0 auto 0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.5),rgba(157,255,0,.4),transparent);
  opacity:.6;
}

/* progress / steps */
#er-booking .erbk-steps{display:flex; gap:.5rem; align-items:center; margin-bottom:1.25rem; flex-wrap:wrap;}
#er-booking .erbk-step{display:flex; align-items:center; gap:.5rem; font-size:.8rem; color:var(--erbk-dim);}
#er-booking .erbk-step .erbk-dot{width:1.55rem; height:1.55rem; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--erbk-line-strong); font-weight:700; font-size:.8rem; color:var(--erbk-muted);
  transition:all .4s var(--erbk-spring);}
#er-booking .erbk-step.is-active .erbk-dot{background:linear-gradient(135deg,var(--erbk-cyan),var(--erbk-green)); color:#0a0e1a; border-color:transparent;}
#er-booking .erbk-step.is-done .erbk-dot{border-color:var(--erbk-green); color:var(--erbk-green);}
#er-booking .erbk-step.is-active{color:var(--erbk-text);}
#er-booking .erbk-step-sep{flex:1 1 12px; min-width:12px; height:1px; background:var(--erbk-line);}

#er-booking .erbk-eyebrow{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--erbk-cyan); font-weight:700;}
#er-booking .erbk-h{font-size:clamp(1.25rem,4.5vw,1.6rem); font-weight:700; margin:.35rem 0 .15rem; line-height:1.15;}
#er-booking .erbk-sub{color:var(--erbk-muted); font-size:.95rem; margin:0 0 1.1rem;}

/* calendar */
#er-booking .erbk-cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:.75rem;}
#er-booking .erbk-cal-title{font-weight:700; font-size:1.05rem;}
#er-booking .erbk-nav{display:flex; gap:.4rem;}
#er-booking .erbk-iconbtn{width:2.4rem; height:2.4rem; border-radius:.6rem; background:var(--erbk-panel);
  border:1px solid var(--erbk-line); color:var(--erbk-text); cursor:pointer; display:grid; place-items:center;
  transition:all .3s var(--erbk-spring);}
#er-booking .erbk-iconbtn:hover:not(:disabled){border-color:var(--erbk-green); color:var(--erbk-green); transform:translateY(-1px);}
#er-booking .erbk-iconbtn:disabled{opacity:.3; cursor:not-allowed;}
#er-booking .erbk-iconbtn svg{width:1.1rem; height:1.1rem;}

#er-booking .erbk-dow{display:grid; grid-template-columns:repeat(7,1fr); gap:.4rem; margin-bottom:.4rem;}
#er-booking .erbk-dow span{text-align:center; font-size:.72rem; color:var(--erbk-dim); text-transform:uppercase; letter-spacing:.05em;}
#er-booking .erbk-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:.4rem;}
#er-booking .erbk-day{aspect-ratio:1/1; border-radius:.6rem; background:var(--erbk-panel); border:1px solid var(--erbk-line);
  color:var(--erbk-text); font-size:.95rem; font-weight:600; cursor:pointer; position:relative;
  display:grid; place-items:center; transition:all .3s var(--erbk-spring);}
#er-booking .erbk-day.is-empty{background:transparent; border:none; cursor:default;}
#er-booking .erbk-day.is-open:hover{border-color:var(--erbk-cyan); transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,212,255,.18);}
#er-booking .erbk-day.is-disabled{color:var(--erbk-dim); background:transparent; border-color:transparent; cursor:not-allowed; opacity:.45;}
#er-booking .erbk-day.is-selected{background:linear-gradient(135deg,var(--erbk-cyan),var(--erbk-green)); color:#0a0e1a; border-color:transparent;}
#er-booking .erbk-day .erbk-pip{position:absolute; bottom:.32rem; left:50%; transform:translateX(-50%); width:4px; height:4px; border-radius:50%; background:var(--erbk-green);}
#er-booking .erbk-day.is-selected .erbk-pip{display:none;}

/* slots */
#er-booking .erbk-slots{display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:.5rem;}
#er-booking .erbk-slot{padding:.7rem .5rem; border-radius:.55rem; background:var(--erbk-panel); border:1px solid var(--erbk-line);
  color:var(--erbk-text); font-size:.92rem; font-weight:600; cursor:pointer; text-align:center; transition:all .3s var(--erbk-spring);}
#er-booking .erbk-slot:hover{border-color:var(--erbk-cyan); transform:translateY(-2px); color:var(--erbk-cyan);}
#er-booking .erbk-slot.is-selected{background:linear-gradient(135deg,var(--erbk-cyan),var(--erbk-green)); color:#0a0e1a; border-color:transparent;}

/* form */
#er-booking .erbk-form{display:grid; gap:.85rem;}
#er-booking .erbk-row{display:grid; gap:.85rem;}
@media(min-width:560px){ #er-booking .erbk-row.two{grid-template-columns:1fr 1fr;} }
#er-booking .erbk-field{display:flex; flex-direction:column; gap:.35rem;}
#er-booking .erbk-label{font-size:.82rem; color:var(--erbk-muted); font-weight:600;}
#er-booking .erbk-label .erbk-req{color:var(--erbk-green);}
#er-booking .erbk-input,#er-booking .erbk-textarea{
  width:100%; background:var(--erbk-panel); border:1px solid var(--erbk-line); border-radius:.55rem;
  padding:.75rem .85rem; color:var(--erbk-text); font-size:1rem; font-family:inherit;
  transition:border-color .3s var(--erbk-spring), box-shadow .3s var(--erbk-spring);}
#er-booking .erbk-input::placeholder,#er-booking .erbk-textarea::placeholder{color:var(--erbk-dim);}
#er-booking .erbk-input:focus,#er-booking .erbk-textarea:focus{outline:none; border-color:var(--erbk-cyan); box-shadow:0 0 0 3px rgba(0,212,255,.18);}
#er-booking .erbk-textarea{min-height:84px; resize:vertical;}
#er-booking .erbk-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
#er-booking .erbk-when-recap{display:flex; align-items:center; gap:.55rem; background:var(--erbk-panel); border:1px solid var(--erbk-line);
  border-radius:.6rem; padding:.7rem .85rem; font-size:.92rem; margin-bottom:.25rem;}
#er-booking .erbk-when-recap svg{width:1.1rem; height:1.1rem; color:var(--erbk-green); flex:none;}
#er-booking .erbk-when-recap b{color:#fff;}

/* buttons */
#er-booking .erbk-actions{display:flex; gap:.65rem; align-items:center; margin-top:1.1rem; flex-wrap:wrap;}
#er-booking .erbk-btn{appearance:none; border:none; cursor:pointer; font-family:inherit; font-weight:700; font-size:.98rem;
  border-radius:9999px; padding:.85rem 1.6rem; transition:transform .3s var(--erbk-spring), box-shadow .3s var(--erbk-spring), opacity .3s;}
#er-booking .erbk-btn-primary{position:relative; color:#0a0e1a; background:linear-gradient(90deg,#00d4ff,#9DFF00,#00d4ff); background-size:200% auto;}
#er-booking .erbk-btn-primary:hover:not(:disabled){transform:translateY(-2px); box-shadow:0 10px 28px rgba(0,212,255,.25),0 4px 14px rgba(157,255,0,.18);}
#er-booking .erbk-btn-primary:disabled{opacity:.5; cursor:not-allowed;}
#er-booking .erbk-btn-ghost{background:transparent; color:var(--erbk-text); border:1px solid var(--erbk-line-strong);}
#er-booking .erbk-btn-ghost:hover{border-color:var(--erbk-green); color:var(--erbk-green); transform:translateY(-1px);}
#er-booking .erbk-btn-block{width:100%; text-align:center;}

/* states */
#er-booking .erbk-msg{font-size:.9rem; padding:.7rem .85rem; border-radius:.55rem; margin-top:.6rem;}
#er-booking .erbk-msg.err{background:rgba(248,113,113,.1); border:1px solid rgba(248,113,113,.35); color:#fca5a5;}
#er-booking .erbk-empty{color:var(--erbk-muted); font-size:.95rem; padding:1rem 0;}
#er-booking .erbk-trust{display:flex; gap:1.2rem; flex-wrap:wrap; margin-top:1rem; font-size:.82rem; color:var(--erbk-muted);}
#er-booking .erbk-trust span{display:flex; align-items:center; gap:.4rem;}
#er-booking .erbk-trust svg{width:1rem; height:1rem; color:var(--erbk-green);}
#er-booking .erbk-spin{display:inline-block; width:1.1rem; height:1.1rem; border:2px solid rgba(10,14,26,.35); border-top-color:#0a0e1a; border-radius:50%; animation:erbkSpin .7s linear infinite; vertical-align:-2px; margin-right:.5rem;}
@keyframes erbkSpin{to{transform:rotate(360deg);}}

/* success */
#er-booking .erbk-success{text-align:center; padding:1rem .5rem;}
#er-booking .erbk-check{width:4rem; height:4rem; margin:0 auto 1rem; border-radius:50%;
  background:linear-gradient(135deg,rgba(0,212,255,.18),rgba(157,255,0,.18)); display:grid; place-items:center;}
#er-booking .erbk-check svg{width:2rem; height:2rem; color:var(--erbk-green);}
#er-booking .erbk-success .erbk-when-big{font-size:clamp(1.2rem,4.5vw,1.5rem); font-weight:700; color:#fff; margin:.25rem 0 .35rem;}
#er-booking .erbk-success p{color:var(--erbk-muted); max-width:30rem; margin:0 auto .4rem;}
#er-booking .erbk-success .erbk-actions{justify-content:center;}

/* entrance */
#er-booking .erbk-pane{animation:erbkFade .45s var(--erbk-spring) both;}
@keyframes erbkFade{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}

@media (prefers-reduced-motion: reduce){
  #er-booking *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}
