/* ============ Selah booking sheet — mobile-first ============ */
.bk{position:fixed;inset:0;z-index:120;display:none;}
.bk.open{display:block;}
.bk .bg{position:absolute;inset:0;background:rgba(31,27,29,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .4s var(--ease);}
.bk.open .bg{opacity:1;}
.bk .sheet{position:absolute;inset:auto 0 0 0;height:94svh;background:var(--paper);border-radius:26px 26px 0 0;box-shadow:0 -30px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;transform:translateY(100%);transition:transform .5s var(--ease);}
.bk.open .sheet{transform:none;}
@media (min-width:821px){
  .bk .sheet{inset:4vh auto 4vh 50%;width:min(880px,92vw);height:auto;transform:translate(-50%,16px) scale(.98);opacity:0;border-radius:26px;transition:transform .5s var(--ease),opacity .4s var(--ease);}
  .bk.open .sheet{transform:translate(-50%,0);opacity:1;}
}
.bk .grab{padding:10px 0 2px;flex:none;}
.bk .grab i{display:block;width:44px;height:4px;border-radius:99px;background:var(--clay);margin:0 auto;}
@media (min-width:821px){.bk .grab{display:none;}}
.bk header{display:flex;align-items:center;gap:12px;padding:12px 18px 12px;border-bottom:1px solid var(--line);flex:none;min-height:64px;}
.bk header .back{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:none;}
.bk header .back[hidden]{display:none;}
.bk header .ttl{flex:1;min-width:0;}
.bk header .ttl b{display:block;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bk header .ttl small{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-deep);margin-top:3px;}
.bk header .x{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:none;}
.bk header .x svg,.bk header .back svg{width:16px;height:16px;}
.bk .body{flex:1;min-height:0;position:relative;overflow:hidden;}
.bk .view{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 18px calc(24px + env(safe-area-inset-bottom));transition:transform .45s var(--ease),opacity .35s var(--ease);}
.bk .view[hidden]{display:none;}
.bk .view.out-l{transform:translateX(-8%);opacity:0;pointer-events:none;}
.bk .view.in-r{transform:translateX(8%);opacity:0;}

/* step 1 — who */
.bk .who{display:grid;gap:12px;max-width:520px;margin:0 auto;}
.bk .who h3{font-size:clamp(22px,4vw,28px);text-align:center;margin:6px 0 2px;}
.bk .who p.sub{text-align:center;margin:0 0 12px;color:var(--body);font-size:15px;}
.bk .pick{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:14px 16px;font:inherit;color:var(--body);transition:border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);min-height:76px;}
.bk .pick:hover,.bk .pick:focus-visible{border-color:var(--accent-deep);transform:translateY(-2px);box-shadow:var(--shadow);}
.bk .pick .av{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--brand-accent);color:#6E5563;font-family:var(--display);font-size:21px;}
.bk .pick .tx{flex:1;min-width:0;}
.bk .pick .tx b{display:block;font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink);}
.bk .pick .tx span{display:block;font-size:12.5px;color:var(--muted);letter-spacing:.03em;margin-top:2px;}
.bk .pick .n{flex:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.bk .pick .ar{flex:none;color:var(--accent-deep);}
.bk .pick .ar svg{width:18px;height:18px;}

/* step 2 — service */
.bk .tools{position:sticky;top:-18px;margin:-18px -18px 10px;padding:14px 18px 10px;background:var(--paper);z-index:2;border-bottom:1px solid var(--line);}
.bk .search{position:relative;}
.bk .search input{width:100%;font:inherit;font-size:16px;padding:13px 40px 13px 42px;border-radius:14px;border:1px solid var(--line);background:var(--white);color:var(--ink);}
.bk .search input:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 70%,transparent);}
.bk .search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none;}
.bk .chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:10px -18px 0;padding:0 18px 2px;}
.bk .chips::-webkit-scrollbar{display:none;}
.bk .chip{flex:none;border:1px solid var(--line);background:transparent;color:var(--body);font:inherit;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:9px 14px;border-radius:999px;cursor:pointer;min-height:36px;}
.bk .chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.bk .cat{margin:16px 0 6px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-deep);font-weight:500;}
.bk .svc{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;background:transparent;border:0;border-bottom:1px solid var(--line);padding:14px 2px;font:inherit;color:var(--ink);min-height:60px;transition:background .25s ease;}
.bk .svc:hover,.bk .svc:focus-visible{background:color-mix(in srgb,var(--brand-accent) 28%,transparent);outline:none;border-radius:10px;padding-left:10px;padding-right:8px;}
.bk .svc .nm{flex:1;min-width:0;}
.bk .svc .nm b{display:block;font-family:var(--serif);font-size:18.5px;font-weight:500;line-height:1.2;}
.bk .svc .nm small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;letter-spacing:.03em;}
.bk .svc .pr{flex:none;font-family:var(--serif);font-size:18px;text-align:right;}
.bk .svc .pr small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px;}
.bk .svc .go{flex:none;color:var(--accent-deep);}
.bk .svc .go svg{width:16px;height:16px;}
.bk .empty{padding:40px 10px;text-align:center;color:var(--muted);}
.bk .foot{margin:22px 0 0;font-size:13px;color:var(--muted);text-align:center;line-height:1.6;}
.bk .foot a{color:var(--ink);}

/* step 3 — calendar */
.bk .cal{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--white);}
.bk .cal iframe{flex:1;width:100%;border:0;min-height:0;}
.bk .cal .loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--oat);text-align:center;transition:opacity .4s;}
.bk .cal .loading.hide{opacity:0;pointer-events:none;}
.bk .cal .loading .pulse{width:56px;height:56px;border-radius:50%;background:var(--brand-accent);margin:0 auto;animation:pulse 2.4s var(--ease-soft) infinite;}
.bk .cal .loading p{margin-top:16px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.bk .cal .alt{flex:none;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);}
.bk .cal .alt a{color:var(--ink);font-weight:500;white-space:nowrap;}

/* handoff (Christi → GlossGenius, cannot be framed) */
.bk .hand{max-width:460px;margin:6vh auto 0;text-align:center;}
.bk .hand .av{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:var(--brand-accent);color:#6E5563;font-family:var(--display);font-size:28px;}
.bk .hand h3{font-size:clamp(22px,4vw,28px);margin:0 0 8px;}
.bk .hand p{margin:0 0 20px;color:var(--body);font-size:15.5px;}
.bk .hand .row{display:grid;gap:10px;}
.bk .hand .btn{width:100%;}
.bk .hand .fine{margin-top:14px;font-size:12.5px;color:var(--muted);}
body.locked{overflow:hidden;}

/* photo avatars */
.bk .av{overflow:hidden;}
.bk .av img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block;border-radius:50%;}
.bk .pick .av{width:56px;height:56px;}
.bk .hand .av.big{width:84px;height:84px;}
.bk header .hav{flex:none;}
.bk header .hav .av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--brand-accent);color:#6E5563;font-family:var(--display);font-size:18px;}
.bk header .hav[hidden]{display:none;}
