/* Booking modal: the Calendly booking page (shared/core.js → CALENDLY_URL) in the site's own window. */

#bd { position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:16px;
      background:rgba(14,20,53,.5); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
#bd.open { display:flex; animation:bdFade .2s ease both; }
@keyframes bdFade { from{opacity:0} to{opacity:1} }
.bdBox { position:relative; width:min(1000px,100%); height:min(760px, calc(100dvh - 32px)); background:#fff;
         border-radius:22px; display:flex; flex-direction:column; overflow:hidden; color:#0E1435;
         box-shadow:0 40px 90px -30px rgba(14,20,53,.6); animation:panelIn .24s cubic-bezier(.2,.8,.3,1) both; }
.bdHead { display:flex; align-items:center; gap:14px; padding:24px 70px 16px 28px; }
.bdAv { width:54px; height:54px; border-radius:50%; flex:none; display:grid; place-items:center; color:#fff;
        background:linear-gradient(145deg,#2F8BEE,#0D70DA); font-family:'Plus Jakarta Sans'; font-weight:700;
        font-size:1.1rem; letter-spacing:-.02em; overflow:hidden; }
.bdAv img { width:100%; height:100%; object-fit:cover; display:block; }
.bdTitle { font-family:'Plus Jakarta Sans'; font-weight:700; font-size:1.6rem; line-height:1.15; letter-spacing:-.025em; }
.bdSub { font-size:.9rem; line-height:1.3; color:#474B64; margin-top:3px; }
.bdX { position:absolute; top:18px; right:18px; width:38px; height:38px; border-radius:50%; border:none;
       background:#ECEFF7; color:#0E1435; cursor:pointer; display:grid; place-items:center; transition:background .15s; }
.bdX:hover { background:#DFE5F2; }
.bdBody { position:relative; flex:1; min-height:0; display:flex; flex-direction:column; }

.bdLoad { flex:1; display:grid; place-items:center; color:#7A819C; font-size:.9rem; }
.bdSpin { width:28px; height:28px; border-radius:50%; border:3px solid #DCE4F3; border-top-color:#0D70DA;
          animation:bdRot .8s linear infinite; margin:0 auto 12px; }
@keyframes bdRot { to { transform:rotate(360deg); } }

.bdFrame { flex:1; min-height:0; width:100%; border:0; display:block; }
.bdBody .bdLoad + .bdFrame { position:absolute; inset:0; height:100%; opacity:0; }
.bdAlt { padding:8px 28px 12px; border-top:1px solid #474B641C; font-size:.8rem; color:#7A819C; text-align:center; }
.bdAlt a { color:#0D70DA; }

@media (max-width:720px) {
  #bd { padding:0; align-items:flex-end; }
  .bdBox { height:calc(100dvh - 24px); border-radius:22px 22px 0 0; }
  .bdHead { padding:20px 64px 10px 20px; }
  .bdTitle { font-size:1.35rem; }
}
