/* Book-Visit popup — THE one stylesheet (v177: the verbatim copy inside mompa-home.css is gone; the popup partial
   loads this file itself). Brand variables are scoped to #bookPop so a page's own tokens stay intact. */
#bookPop{--plum-900:#1C1029;--plum-800:#241235;--plum-700:#3A1D56;--saffron:#F59E0B;--saffron-deep:#E07B00;
  --cream:#FAF6EF;--cream-2:#F2EADD;--ink:#241B2E;--muted:#6B6275;--line:rgba(58,29,86,.12);--wa:#25D366;--wa-deep:#1AA851;
  --r-lg:26px;--sh:0 22px 48px -22px rgba(36,18,53,.34);--font-head:'Fraunces',Georgia,serif;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;line-height:normal;color:var(--ink)}
@keyframes waPopIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

#bookPop .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;border:0;
  font-family:var(--font-body);font-weight:var(--fw-700,700);font-size:15.5px;padding:15px 27px;border-radius:999px;
  transition:transform .18s ease,box-shadow .18s ease,background .2s ease;white-space:nowrap;line-height:1}
#bookPop .btn svg{width:19px;height:19px;flex:none}
#bookPop .btn-wa{background:linear-gradient(135deg,#2ee06d,var(--wa-deep));color:#fff;box-shadow:0 12px 26px -12px rgba(26,168,81,.6)}
#bookPop .btn-wa:hover{transform:translateY(-2px)}
#bookPop .btn-block{width:100%}
#bookPop .wf-err{color:#c0392b;font-size:12.5px;margin:0 0 10px}
/* ===========================================================
   31. BOOK VISIT POPUP
   =========================================================== */
.bkpop{position:fixed;inset:0;z-index:210;display:none}
.bkpop.open{display:flex;align-items:center;justify-content:center;padding:18px}
.bkpop-overlay{position:absolute;inset:0;background:rgba(28,16,41,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.bkpop-card{position:relative;z-index:1;width:100%;max-width:560px;
  max-height:92vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:#fff;border-radius:var(--r-lg);box-shadow:0 40px 90px -30px rgba(0,0,0,.65);animation:waPopIn .25s ease}
.bkpop-x{position:absolute;top:12px;right:15px;z-index:3;border:0;background:transparent;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:4px}
.bkpop-x:hover{color:var(--plum-700)}
.bkpop-head{display:flex;align-items:center;gap:12px;padding:20px 24px 14px;padding-right:42px}

.bkpop-ic{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--saffron),var(--saffron-deep));color:#fff}
.bkpop-ic svg{width:24px;height:24px}

.bkpop-head b{display:block;font-family:var(--font-head);font-size:19px;font-weight:600;color:var(--plum-800);line-height:1.15}
.bkpop-head span{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:3px;display:block}
.bkpop-body{padding:18px 24px 22px}
.bk-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:620px){.bk-grid{grid-template-columns:1fr 1fr}.bk-grid .span2{grid-column:1/-1}}

/* segmented pills */
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{flex:1 1 auto;min-width:fit-content}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;font-size:13.5px;font-weight:600;color:var(--plum-700);
  padding:10px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--cream);cursor:pointer;transition:.15s;white-space:nowrap}
.seg label:hover span{border-color:var(--saffron)}
.seg input:checked+span{background:linear-gradient(135deg,var(--plum-700),var(--plum-800));color:#fff;border-color:transparent}
.wf.bad .seg span{border-color:#c0392b}

/* combobox */
.combo{position:relative}
.combo input{width:100%;font:inherit;font-size:16px;padding:13px 14px;border:1.6px solid #6f4a9e;
  border-radius:12px;background:#fff;color:var(--ink);outline:none;transition:border-color .15s}
.combo input::placeholder{color:#9b94a6}
.combo input:focus{border-color:var(--plum-800)}
.wf.bad .combo input{border-color:#c0392b;background:#fff5f5}
.combo-list{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:5;max-height:210px;overflow-y:auto;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh);padding:5px}
.combo-list div{padding:10px 12px;font-size:14px;border-radius:8px;cursor:pointer;color:var(--ink)}
.combo-list div:hover,.combo-list div.hi{background:var(--cream-2)}
.combo-list .combo-add{color:var(--saffron-deep);font-weight:var(--fw-700,700)}
.combo-list .combo-empty{color:var(--muted);cursor:default}

.bkpop-foot{padding:16px 24px 22px;border-top:1px solid var(--line);background:#fff}
.bkpop-note{text-align:center;font-size:12px;color:var(--muted);margin:0 0 12px}
.bkpop .wf-err{margin:14px 0 0}

/* mobile: bottom sheet */
@media(max-width:560px){
  .bkpop.open{padding:0;align-items:flex-end}
  .bkpop-card{max-width:100%;max-height:94vh;border-radius:22px 22px 0 0;animation:bkSheet .3s ease}
  @keyframes bkSheet{from{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}
}

/* ===========================================================
   31b. BOOK VISIT — compact placeholder-only, purple + sunlight
   =========================================================== */
#bookPop .bkpop-card{background:#fff}
#bookPop .bkpop-head{background:#fff}
#bookPop .bkpop-body{background:linear-gradient(180deg,#FFF6E6,#FFFDF8)}
#bookPop .bkpop-foot{background:#FFFDF8}
#bookPop .bk-grid{gap:11px}
/* unified field look */
.bkf,.combo input{width:100%;font:inherit;font-size:16px;padding:13px 14px;min-height:50px;
  border:1.6px solid #6f4a9e;border-radius:12px;background:#fff;color:var(--ink);outline:none;
  transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.bkf::placeholder,.combo input::placeholder{color:#9b94a6}
.bkf:focus,.combo input:focus{border-color:var(--plum-800);box-shadow:0 0 0 3px rgba(111,74,158,.12)}
select.bkf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236f4a9e' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px;color:var(--ink)}
/* show placeholder option in gray until a real value is chosen */
select.bkf:has(option[value=""]:checked){color:#9b94a6}
.bkf.bad,.combo.bad input,.combo input.bad{border-color:#c0392b;background:#fff5f5}
/* date field placeholder */
.bkf-date{position:relative;color:var(--ink)}
.bkf-date:not(.has-val)::-webkit-datetime-edit{color:transparent}
.bkf-date:not(.has-val)::before{content:attr(data-ph);position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9b94a6;pointer-events:none}
#bookPop .combo .combo-list{border-color:#6f4a9e33}


/* WhatsApp popup -> match Book Visit (placeholder-only, purple, sunlight) */
#waPop .wapop-body{background:linear-gradient(180deg,#FFF6E6,#FFFDF8);border-radius:0 0 var(--r-lg) var(--r-lg)}
.wa-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:4px}
.wa-grid .span2{grid-column:1/-1}


/* Book Visit: CTA inside scroll body (matches WhatsApp popup) */
#bookPop #bkSubmit{margin-top:6px}
#bookPop .bkpop-note{margin:12px 0 0}
.bkf-date{min-height:50px}

/* ===========================================================
   31c. MULTI-SELECT (checkbox dropdown) — Area / Property
   =========================================================== */
.msel{position:relative}
.msel-field{cursor:pointer;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236f4a9e' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.msel-field.msel-empty{color:#9b94a6}
.msel.bad .msel-field{border-color:#c0392b;background-color:#fff5f5}
.msel-list{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:6;max-height:240px;overflow-y:auto;
  background:#fff;border:1.5px solid #6f4a9e;border-radius:12px;box-shadow:var(--sh);padding:5px}
.msel-list label{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--ink)}
.msel-list label:hover{background:var(--cream-2)}
.msel-list input[type=checkbox]{width:18px;height:18px;accent-color:var(--plum-700);flex:none;margin:0}



/* ===========================================================
   31d. BOOK VISIT — recognised visitor + saved state (2026-09-30)
   =========================================================== */
.bk-known{display:flex;align-items:center;gap:12px;background:#fff;border:1.6px solid #6f4a9e33;border-radius:14px;padding:11px 12px;margin:0 0 11px;
  box-shadow:0 10px 24px -18px rgba(36,18,53,.45)}
.bk-known[hidden]{display:none}
.bk-known-ava{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;color:#fff;font-weight:var(--fw-800,800);font-size:16px;
  background:linear-gradient(135deg,#8b4fc4,#5b2a86 60%,#3d1c5c)}
.bk-known-id{flex:1;min-width:0}
.bk-known-id b{display:block;font-size:15px;font-weight:var(--fw-800,800);color:var(--plum-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-known-id small{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.bk-known-alt{flex:none;border:0;background:none;font:inherit;font-size:12.5px;font-weight:var(--fw-700,700);color:#6f4a9e;cursor:pointer;padding:6px 4px;text-decoration:underline}
#bookPop .bkf[hidden]{display:none}
.bk-done{padding:30px 24px 26px;text-align:center;background:linear-gradient(180deg,#FFF6E6,#FFFDF8)}
.bk-done[hidden]{display:none}
.bk-done-tick{width:58px;height:58px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:var(--fw-800,800);color:#177245;background:#e7f6ee}
.bk-done b{display:block;font-family:var(--font-head);font-size:21px;font-weight:600;color:var(--plum-800)}
.bk-done p{margin:6px 0 18px;font-size:13.5px;color:var(--muted)}
.bk-done p strong{color:var(--plum-800)}
.bk-done-dash{background:linear-gradient(135deg,#8b4fc4,#5b2a86);color:#fff;text-decoration:none;padding:14px;border-radius:14px;font-weight:var(--fw-800,800);box-shadow:0 12px 26px -12px rgba(91,42,134,.6)}
.bk-done-close{display:block;margin:10px auto 0;border:0;background:none;font:inherit;font-size:13px;font-weight:var(--fw-700,700);color:var(--muted);cursor:pointer;padding:8px}
#bkSubmit[aria-disabled="true"]{opacity:.7;pointer-events:none}
#bookPop .bkpop-card:focus{outline:none}

/* iOS Safari zooms the whole page into any focused field whose font-size is < 16px — that is the
   "popup extends / gets bigger" on iPhone (2026-09-30). iOS-only (touch-callout is WebKit-iOS), so the
   desktop/Android 15px design is unchanged. Also: dvh so the sheet fits above the iOS keyboard/toolbar. */
@supports (-webkit-touch-callout: none) {
  .bkf, .combo input, .wf input, .wf select, .bkpop input, .bkpop select, .wapop input, .wapop select { font-size:16px !important; }
  .bkf-date:not(.has-val)::before { font-size:16px; }
}
@supports (height: 100dvh) {
  .bkpop-card, .wapop-card { max-height: 92dvh; }
  @media (max-width:560px) { .bkpop-card { max-height: 94dvh; } }
}
/* Belt-and-braces for every iOS browser (Chrome/Firefox/Edge on iPhone are all WebKit): also apply the
   16px rule to any touch device, not only when the WebKit feature query matches. */
@media (pointer: coarse) {
  .bkf, .combo input, .wf input, .wf select, .bkpop input, .bkpop select, .wapop input, .wapop select { font-size:16px !important; }
}

/* Book-Visit popup — header always visible (2026-09-30, iPhone report).
   Before: the whole card was the scroll box, so focusing a field (or iOS shrinking the viewport for the
   keyboard) scrolled the title + × out of view. Now the card is a flex column: header fixed at the top,
   only the body (or the saved state) scrolls. --bk-vvh / --bk-vvt are set by book-popup.js from
   window.visualViewport so the sheet sits inside the area the keyboard leaves visible. */
#bookPop.open{top:var(--bk-vvt,0px);bottom:auto;height:var(--bk-vvh,100%)}
#bookPop .bkpop-card{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100% - 36px)}
#bookPop .bkpop-head{flex:none;position:relative;z-index:2;border-bottom:1px solid rgba(111,74,158,.12)}
#bookPop .bkpop-body,#bookPop .bk-done{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#bookPop .bkpop-body[hidden],#bookPop .bk-done[hidden]{display:none}
@media(max-width:560px){
  #bookPop .bkpop-card{max-height:calc(100% - 10px - env(safe-area-inset-top,0px))}
  #bookPop .bkpop-head{padding:16px 18px 12px;padding-right:48px}
  #bookPop .bkpop-head b{font-size:17.5px}
  #bookPop .bkpop-head span{font-size:12px}
  #bookPop .bkpop-x{top:8px;right:8px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#f4eefa;color:#5b2a86;font-size:24px}
  #bookPop .bkpop-body{padding:14px 16px calc(18px + env(safe-area-inset-bottom,0px))}
}

/* Book-Visit popup — mobile side margins + "already registered" OTP panel (2026-09-30).
   The sheet now floats 12px from both edges and the bottom (safe-area aware). Width/left follow
   window.visualViewport (--bk-vvw/--bk-vvl) so a page with horizontal overflow or a pinch-zoomed
   page can never push the × off-screen. */
#bookPop.open{left:var(--bk-vvl,0px);right:auto;width:var(--bk-vvw,100%)}
@media(max-width:560px){
  #bookPop.open{padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));align-items:flex-end}
  #bookPop .bkpop-card{border-radius:22px;max-height:calc(100% - env(safe-area-inset-top,0px))}
  #bookPop .bkpop-body{padding-bottom:18px}
}
.bk-exist{border:1.5px solid rgba(111,74,158,.28);background:linear-gradient(180deg,#fbf7ff,#fff);border-radius:14px;padding:12px;box-shadow:0 10px 24px -18px rgba(91,42,134,.55);animation:bkExistIn .25s ease}
.bk-exist[hidden]{display:none}
@keyframes bkExistIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.bk-exist-msg{display:flex;gap:10px;align-items:flex-start}
.bk-exist-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#8b4fc4,#5b2a86)}
.bk-exist-ic svg{width:18px;height:18px}
.bk-exist-msg b{display:block;font-size:14px;font-weight:var(--fw-800,800);color:var(--plum-800,#3d1a5c);line-height:1.3}
.bk-exist-msg small{display:block;font-size:12.5px;color:var(--muted,#6b6475);line-height:1.45;margin-top:2px}
.bk-exist-msg small strong{color:var(--plum-800,#3d1a5c);white-space:nowrap}
.bk-otp-row{display:flex;gap:8px;margin-top:10px}
.bk-otp-row .bk-otp{flex:1;min-width:0;letter-spacing:.32em;font-weight:var(--fw-700,700);text-align:center}
.bk-otp-row .bk-otp::placeholder{letter-spacing:normal;font-weight:400}
.bk-otp-btn{flex:none;border:0;border-radius:12px;padding:0 18px;min-height:50px;font:inherit;font-size:14.5px;font-weight:var(--fw-800,800);color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b4fc4,#5b2a86);box-shadow:0 10px 22px -12px rgba(91,42,134,.7)}
.bk-otp-btn[disabled]{opacity:.6;cursor:default}
.bk-otp-err{margin:8px 0 0;font-size:12.5px;font-weight:600;color:#c0392b}
.bk-otp-err[hidden]{display:none}
.bk-otp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap}
.bk-link{border:0;background:none;padding:4px 0;font:inherit;font-size:12.5px;font-weight:var(--fw-700,700);color:#6f4a9e;text-decoration:underline;cursor:pointer}
.bk-link[disabled]{color:#9b94a6;text-decoration:none;cursor:default}
.bk-link-muted{color:var(--muted,#6b6475)}
.bk-otp-dev{font-size:12px;font-weight:var(--fw-700,700);color:#177245;background:#e7f6ee;border-radius:8px;padding:2px 8px}
.bk-otp-dev[hidden]{display:none}
.bk-known-ok{display:inline-block;margin-left:4px;color:#177245;font-weight:var(--fw-800,800)}

/* ===========================================================
   Book-Visit popup — 3 steps in the /book-visit look (2026-09-30)
   progress bar · step title · chips (.bk-opt) · Back + amber Next · WhatsApp on the last step
   =========================================================== */
#bookPop [hidden]{display:none !important}
#bookPop .bkpop-body{background:#faf7ff;color:#241235}
#bookPop .bk-prog{height:6px;background:#ece3fb;border-radius:99px;overflow:hidden;margin:2px 0 8px}
#bookPop .bk-prog i{display:block;height:100%;width:33%;background:#6D3AA3;border-radius:99px;transition:width .25s ease}
#bookPop .bk-stepno{margin:0 0 12px;font-size:11px;font-weight:var(--fw-800,800);letter-spacing:.12em;text-transform:uppercase;color:#9a8cb3}
#bookPop .bk-scr{display:none}
#bookPop .bk-scr.on{display:block;animation:bkStepIn .2s ease}
@keyframes bkStepIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#bookPop .bk-h{font-family:inherit;font-size:19px;font-weight:var(--fw-800,800);color:#241235;margin:0 0 3px;letter-spacing:-.2px}
#bookPop .bk-sub{font-size:13.5px;color:#7a6e8e;margin:0 0 14px}
#bookPop .bk-fields{display:grid;gap:11px}
#bookPop .bk-lbl{display:block;font-weight:var(--fw-700,700);font-size:13.5px;color:#241235;margin:14px 0 7px}
#bookPop .bk-lbl em{font-style:normal;font-weight:500;color:#9a90ab}
#bookPop .bk-scr > .bk-lbl:first-of-type{margin-top:4px}
/* inputs → /book-visit style */
#bookPop .bkf,#bookPop .combo input{border:1.5px solid #e0d5f5;border-radius:12px;background:#fff;color:#241235;min-height:50px;padding:13px}
#bookPop .bkf:focus,#bookPop .combo input:focus{border-color:#6D3AA3;box-shadow:0 0 0 3px rgba(109,58,163,.12)}
#bookPop .bkf.bad,#bookPop .combo input.bad{border-color:#d23b3b;background:#fff5f5}
/* chips */
#bookPop .bk-opts{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#bookPop .bk-opts.three{grid-template-columns:1fr 1fr 1fr}
#bookPop .bk-opt{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:11px 8px;border:1.5px solid #e0d5f5;border-radius:12px;background:#fff;
  font:inherit;font-weight:var(--fw-700,700);font-size:14px;color:#241235;text-align:center;line-height:1.2;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:border-color .12s,background .12s,color .12s}
#bookPop .bk-opt:hover{border-color:#cdb8ec}
#bookPop .bk-opt.sel{border-color:#6D3AA3;background:#f0e9fb;color:#6D3AA3}
#bookPop .bk-opt input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
#bookPop .bk-opt:focus-visible,#bookPop .bk-opt:has(input:focus-visible){outline:2px solid #6D3AA3;outline-offset:2px}
#bookPop .bk-opts.bad .bk-opt{border-color:#e7a1a1}
#bookPop .bk-slots .bk-opt{font-size:13.5px}
#bookPop .bk-date{margin-top:9px}
#bookPop .bk-more{margin-top:14px}
#bookPop .bk-more summary{cursor:pointer;font-weight:var(--fw-700,700);font-size:13.5px;color:#6D3AA3;list-style:none;padding:4px 0}
#bookPop .bk-more summary::-webkit-details-marker{display:none}
#bookPop .bk-more summary::before{content:'+';display:inline-block;width:18px;font-weight:var(--fw-800,800)}
#bookPop .bk-more[open] summary::before{content:'–'}
#bookPop .bk-more summary em{font-style:normal;font-weight:500;color:#9a90ab}
#bookPop .bk-more .bk-opts{margin-top:9px}
#bookPop .bk-more .bk-opt{font-size:13px;min-height:44px}
/* known card sits above the steps */
#bookPop .bk-known{margin:0 0 14px}
/* nav */
#bookPop .bk-nav{display:flex;gap:10px;margin-top:22px;align-items:stretch}
#bookPop .bk-back{flex:0 0 92px;border:0;border-radius:12px;padding:14px;background:#ece3fb;color:#3a1d56;font:inherit;font-weight:var(--fw-800,800);font-size:15px;cursor:pointer}
#bookPop .bk-next{flex:1;border:0;border-radius:12px;padding:14px;background:#F59E0B;color:#241235;font:inherit;font-weight:var(--fw-800,800);font-size:15px;cursor:pointer;box-shadow:0 12px 24px -14px rgba(245,158,11,.9)}
#bookPop .bk-next:active,#bookPop .bk-back:active{transform:scale(.985)}
#bookPop .bk-send{flex:1;margin:0 !important;border-radius:12px}
#bookPop .wf-err{margin:14px 0 0}
#bookPop .bkpop-note{margin:12px 0 0}
@media (max-width:374px){ #bookPop .bk-opts.three .bk-opt{font-size:13px;padding:0 4px} #bookPop .bk-back{flex-basis:78px} }
@media (max-width:319px){ #bookPop .bk-opts.three{grid-template-columns:1fr 1fr} }
/* Back / Next / WhatsApp always reachable: sticky at the bottom of the scrolling step */
#bookPop .bk-nav{position:sticky;bottom:-18px;z-index:2;margin:18px -2px 0;padding:12px 2px 14px;background:linear-gradient(180deg,rgba(250,247,255,0),#faf7ff 26%)}
#bookPop .bk-send{width:auto;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px}

/* Book-Visit popup — identical sizing on Android and iOS (2026-09-30).
   Android Chrome grew chips/fields (font boosting + Roboto metrics + min-height only), iOS did not.
   Heights are now FIXED, line-height pinned and text-size-adjust off, so both render the same. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#bookPop .bk-opt{height:46px;min-height:0;padding:0 8px;line-height:1.15;font-size:14px}
#bookPop .bk-slots .bk-opt{font-size:13.5px}
#bookPop .bk-more .bk-opt{height:42px;font-size:13px}
#bookPop .bkf,#bookPop .combo input{height:48px;min-height:0;padding:0 14px;line-height:1.2;font-size:16px}
#bookPop .bkf-date{line-height:48px}
#bookPop .bk-otp-btn{height:48px;min-height:0}
#bookPop .bk-next,#bookPop .bk-back{height:48px;padding:0 14px;line-height:1}
#bookPop .bk-lbl,#bookPop .bk-sub,#bookPop .bk-h{line-height:1.3}
/* Submit (replaces "Chat on WhatsApp" — WhatsApp now lives on each inquiry in the dashboard) */
#bookPop .bk-send{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8b4fc4,#5b2a86);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 12px 24px -14px rgba(91,42,134,.9)}
#bookPop .bk-send[aria-disabled="true"]{opacity:.75;pointer-events:none}
#bookPop .bk-err-wa{color:#177245;font-weight:var(--fw-800,800);text-decoration:underline}

/* Popup step 1 — live mobile/email validation + 4-digit OTP with on-screen code (2026-09-30) */
#bookPop .bk-fld{display:block}
#bookPop .bk-hint{margin:6px 2px 0;font-size:12px;font-weight:600;line-height:1.35;color:#8a7fa0}
#bookPop .bk-hint.ok{color:#177245}
#bookPop .bk-hint.bad{color:#d23b3b}
#bookPop .bkf.ok{border-color:#3fae72}
#bookPop .bk-otp-code{display:flex;align-items:center;gap:10px;width:100%;margin:12px 0 0;padding:10px 14px;border:1.5px dashed #b99be0;border-radius:12px;
  background:#fff;cursor:pointer;font:inherit;color:#241235;text-align:left;-webkit-tap-highlight-color:transparent}
#bookPop .bk-otp-code small{font-size:11px;font-weight:var(--fw-800,800);letter-spacing:.08em;text-transform:uppercase;color:#8a7fa0}
#bookPop .bk-otp-code b{font-size:22px;font-weight:var(--fw-800,800);letter-spacing:.32em;color:#5b2a86;font-variant-numeric:tabular-nums}
#bookPop .bk-otp-code span{margin-left:auto;font-size:12px;font-weight:var(--fw-800,800);color:#6D3AA3}
#bookPop .bk-otp-code:active{transform:scale(.99)}
#bookPop .bk-otp-row .bk-otp{letter-spacing:.5em;font-size:20px !important}
#bookPop .bk-otp-row .bk-otp::placeholder{letter-spacing:normal;font-size:15px}

/* ===== v99 cross-device (2026-10-04) — Book-Visit popup with the keyboard open =====
   #bookPop.open already follows window.visualViewport (--bk-vvh). A size container lets the card react to that
   visible height: when the keyboard leaves little room, the header drops its description line so the field and
   Next stay on screen. */
#bookPop.open{container-type:size;container-name:bkpop}
@container bkpop (max-height:560px){
  #bookPop .bkpop-head{padding-top:10px;padding-bottom:8px}
  #bookPop .bkpop-head span{display:none}
  #bookPop .bkpop-ic{width:34px;height:34px}
  #bookPop .bk-stepno{margin-bottom:6px}
  #bookPop .bk-sub{margin-bottom:8px}
}
@media(max-width:560px){#bookPop .bkpop-x{width:44px;height:44px;top:6px;right:6px}}
@media (max-width:389px){
  #bookPop .bkpop-head{gap:clamp(8px,3.1vw,12px)}
  #bookPop .bkpop-head b{font-size:clamp(15.5px,4.5vw,17.5px)}
  #bookPop .bkpop-body{padding-left:clamp(12px,4.1vw,16px);padding-right:clamp(12px,4.1vw,16px)}
  #bookPop .bk-h{font-size:clamp(16.5px,4.9vw,19px)}
}
@container bkpop (max-height:320px){
  #bookPop .bk-nav{position:static;margin-top:12px;padding:6px 2px 4px;background:none}   /* landscape + keyboard: a sticky Next would sit on the focused field */
  #bookPop .bkpop-ic{display:none}
}
