/* (2.99.206 – order 407) book-2.css – part 2 of 2 of the customer pages' styles (book.css, book-2.css – loaded in this order). */
.cf-who{background:#F4F6FA;border:1.5px solid var(--line)}
.cf-who p{font-size:18px}
.chg2{flex:none;min-height:44px;padding:0 14px;border-radius:12px;border:2px solid var(--blue);background:#fff;color:var(--blue);font-size:17px;font-weight:800}
@media (min-width:700px){.cf-when p{font-size:32px}.cf-p p{font-size:22px}}
/* (2.75) the 20% off pop-up */
.modal-bg.gp-bg{z-index:57}
.gp-box{position:relative;max-width:400px;text-align:center;padding:24px 18px 16px}
.gp-box h3{font-size:26px;line-height:1.25;margin:4px 26px 8px}
.gp-sub{font-size:18px;line-height:1.35;margin:0 0 14px;color:#2B3445}
.gp-x{position:absolute;top:8px;right:8px;width:44px;height:44px;border-radius:50%;border:0;background:#F1F3F7;color:#5B6475;font-size:20px}
.gp-b{display:flex;flex-direction:column;gap:10px}
.gp-b button{min-height:60px;border-radius:14px;font-size:20px;font-weight:800}
.gp-yes{background:#1E8E3E;color:#fff;border:0}
.gp-no{background:#fff;color:#2B3445;border:2px solid #C8D0DD}
.gp-fine{margin:12px 0 0;font-size:12px}
.gp-m{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 12px}
.gp-m button{min-height:52px;font-size:19px;font-weight:800;border-radius:12px;border:2px solid #C8D0DD;background:#fff;color:#0B1F3A}
.gp-d{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:6px 0 12px}
.gp-d button{min-height:46px;font-size:19px;font-weight:800;border-radius:10px;border:2px solid #C8D0DD;background:#fff;color:#0B1F3A;padding:0}
.gp-skip{min-height:48px;padding:0 16px;border-radius:12px;border:2px solid #C8D0DD;background:#fff;color:#2B3445;font-size:17px;font-weight:700}
.gp-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
/* (2.75) the birthday card */
.bd-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#FFF1F4;border:1.5px solid #F7C6D3;border-radius:16px;padding:12px 14px;margin:10px 0}
.bd-card p{margin:0}
.bd-card .bd-t{font-size:16px;font-weight:800;color:#8A2846}
.bd-card .bd-v{font-size:26px;font-weight:900;color:#0B1F3A;line-height:1.2}
.bd-card .bd-gift{margin-top:4px;font-size:16px;font-weight:700;color:#1E7A3C}
@media (min-width:700px){.bd-card .bd-v{font-size:32px}}
.fine-sms{font-size:12px;line-height:1.35;color:var(--muted)}.fine-sms a{color:var(--blue)}

.hero a,.wov-call a{display:inline-block;min-height:24px;padding:3px 2px;line-height:18px}.wov-call a{color:#245A9A}
/* (2.99.43) "Invite a friend" on the booked page */
.ref-box{background:#FFF7E8;border:2px solid #F5B66B;border-radius:16px;padding:14px;margin:14px 0;text-align:center}
.ref-t{margin:0;font-size:19px;font-weight:800;color:#5A2D00;line-height:1.3}
.ref-l{margin:8px 0 0;font-size:16px;word-break:break-all;background:#fff;border-radius:10px;padding:8px;font-weight:600}
.ref-b{display:flex;gap:10px;margin-top:10px}.ref-b .btn{flex:1;min-height:52px;font-size:18px}
.ref-ok{margin:8px 0 0;color:#14632F;font-weight:700}
.ph-fine{margin:6px 2px 0}
/* (2.99.48) Refer a friend: the friend's welcome box, the credit line, "will be applied at your visit" */
.ref-hello{margin:10px 12px 0;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#FFF6D8,#FFE6B8);border:2px solid #F2B23A;color:#5A3A00;font-size:18px;font-weight:800;line-height:1.3;text-align:center}
.wov-in .ref-hello{margin:0 0 10px;width:100%;max-width:440px}
.ref-cr-line{margin:6px 0 0;padding:8px 12px;border-radius:12px;background:#E9F7EE;color:#14632F;font-weight:800;font-size:16px}
.ref-applied{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#FFF6D8;border:1.5px solid #F2B23A;color:#5A3A00;font-weight:800;font-size:17px;text-align:center}
.ref-hello.ref-no{background:#F2F4F7;border-color:#98A2B3;color:#344054}

/* ================= (2.99.69) iOS look for the customer pages (booking, gift, privacy, terms, my appointment) =================
   Only the look: the gray grouped background, white rounded groups without a gray border, 17 px text, 44 px+ buttons,
   boxes that never zoom on the iPhone, a frosted bottom bar. The salon's blue stays the main color. */
:root{--bg:#F2F2F7;--line:#D1D1D6;--ios-sep:rgba(60,60,67,.16);--ios-l2:#6C6C70;--ios-fill:rgba(118,118,128,.12)}
html,body{background:var(--bg);-webkit-font-smoothing:antialiased}
body{font-size:17px;line-height:1.4}
.hero p{font-size:15px}
.step{border:0;border-radius:12px}
.step h2{font-size:20px;font-weight:700}
.legal{font-size:16px}
.legal h2{font-size:19px}
.field label{font-size:15px;font-weight:600;color:var(--ios-l2)}
.field input,.field textarea,.field select{font-size:17px;border:1px solid var(--line);min-height:48px}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px rgba(52,114,185,.18)}
input,textarea,select{font-size:17px}
.btn{min-height:50px;font-weight:600;font-size:17px;border-radius:12px}
.btn.ghost{background:var(--ios-fill);border:0;color:var(--blue)}
.svc button{min-height:52px;font-size:17px}.svc button:not(.on){border-color:transparent}
.back{display:inline-flex;align-items:center;min-height:44px;font-size:17px}
.foot{font-size:15px}
.foot a{display:inline-block;padding:10px 4px}

/* ================= (2.99.72) Services: a big tile for each type of service (2 a row, an icon), a sheet from the bottom with that type's
   services (name, price · minutes, ✓), Done / ✕ / swipe down. The picks over the tiles, ✕ takes one off. No guide hand any more. ================= */
.ct-hint{margin:2px 2px 10px;font-size:17px;font-weight:600;color:var(--ios-l2,#6C6C70)}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.ct{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;min-height:108px;padding:14px 12px 12px;text-align:left;
  background:#fff;border:2px solid transparent;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.06);-webkit-tap-highlight-color:transparent;transition:transform .12s ease}
.ct:active{transform:scale(.97)}
.ct-i{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--gl,#ECEFF1);font-size:26px;line-height:1}
.ct-n{font-size:18px;font-weight:800;line-height:1.2;color:#1C1C1E;overflow-wrap:anywhere}
.ct-s{font-size:14px;font-weight:600;line-height:1.25;color:var(--gc,#3472B9);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ct.on{border-color:var(--gc,#3472B9);background:var(--gl,#EAF1FB)}
.ct.on .ct-i{background:#fff}
.ct-ok{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:var(--gc,#3472B9);color:#fff;font-style:normal;font-weight:900;font-size:16px;display:flex;align-items:center;justify-content:center}
.sv-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.sv-chip{display:inline-flex;align-items:center;gap:2px;max-width:100%;min-height:44px;padding:0 0 0 14px;border-radius:99px;background:#1E8E3E;color:#fff;font-size:16px;font-weight:700}
.sv-chip button{flex:none;width:44px;height:44px;border:0;background:none;color:#fff;font-size:18px;font-weight:800;border-radius:99px}
.svs{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}
.svs-bg{position:absolute;inset:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s ease}
.svs-p{position:relative;display:flex;flex-direction:column;max-height:88vh;max-height:88dvh;background:#F2F2F7;border-radius:16px 16px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.18);
  transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);width:100%;max-width:640px;margin:0 auto}
.svs.in .svs-bg{opacity:1}.svs.in .svs-p{transform:none}
.svs-top{position:relative;display:flex;align-items:center;justify-content:center;min-height:60px;padding:16px 60px 8px;touch-action:none}
.svs-grab{position:absolute;top:6px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:#C7C7CC}
.svs-top h3{margin:0;font-size:20px;font-weight:800;text-align:center;line-height:1.2}
.svs-x{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(118,118,128,.16);color:#3C3C43;font-size:18px;font-weight:800}
.svs-l{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 12px 8px;display:flex;flex-direction:column;gap:8px}
.svs-r{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;padding:12px 12px 12px 14px;text-align:left;background:#fff;border:2px solid transparent;border-radius:14px}
.svs-r.on{border-color:var(--blue);background:#EAF1FB}
.svs-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.svs-t b{font-size:18px;font-weight:700;line-height:1.25;color:#1C1C1E}
.svs-t small{font-size:14px;line-height:1.3;color:#6C6C70;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svs-pm{flex:none;font-size:16px;font-weight:700;color:#1C1C1E;white-space:nowrap;text-align:right}
.svs-c{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid #C7C7CC;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900;font-size:17px;color:#fff}
.svs-r.on .svs-c{background:var(--blue);border-color:var(--blue)}
.svs-n{margin:2px 4px;font-size:15px;color:#6C6C70}
.svs-f{padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));background:#F2F2F7;border-top:1px solid rgba(60,60,67,.12)}
.svs-done{width:100%;min-height:56px;border:0;border-radius:14px;background:var(--blue);color:#fff;font-size:20px;font-weight:800}
body.sv-on{overflow:hidden}
@media (max-width:360px){.svs-pm{font-size:15px}.ct-n{font-size:17px}}
@media (prefers-reduced-motion:reduce){.svs-p,.svs-bg,.ct{transition:none}}
/* (2.99.74) the service window: bigger and clearer (title 24, rows 72, name 20–21, price bolder than minutes, circle 32) */
.svs-top h3{font-size:24px}
.svs-r{min-height:72px;padding:12px 14px}
.svs-t b{font-size:20.5px}
.svs-t small{font-size:16px}
.svs-pm{font-size:17.5px;color:#3A3A3C}
.svs-pm .svs-pr{font-weight:800;color:#1C1C1E}
.svs-pm .svs-mn{font-weight:400;color:#6C6C70}
.svs-pm .svs-dot{font-style:normal;color:#8E8E93}
.svs-c{width:32px;height:32px;font-size:18px}
.svs-r *{pointer-events:none}
.svs-l{flex:1;min-height:0}
.svs-f{flex:none}
@media (max-width:360px){.svs-pm{font-size:17px}}
/* (2.99.81) Google / accessibility: text links and gray text a little darker so they are easy to read on the gray background (contrast ≥ 4.5) */
.foot,.links{color:#555E6C}
.foot a,.links a,a.back,.btn.ghost,.note a,.legal a{color:#245A97}
/* (2.99.82) Rewards on the "You're booked!" screen */
.rw-line{margin:12px 0;padding:12px 14px;border-radius:12px;background:#FFF7E0;border:1px solid #F1D48A;color:#5B4300;font-weight:700;font-size:17px;line-height:1.35}
.closed-soon{display:inline-block;margin:8px auto 0;background:#fff;color:#B42318;font-weight:800;border-radius:999px;padding:6px 14px;font-size:15px} /* (2.99.102) */
.b-lang{display:inline-flex;gap:6px;align-items:center;margin:4px auto 6px;font-size:15px}.b-lang button{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:6px 14px;font-weight:700;font-size:15px;min-height:36px}.b-lang button.on{background:#fff;color:var(--blue)} /* (2.99.103) */
.price-call{text-align:center;color:#3F4756;font-size:15px;margin:12px 0 0}.price-call a{color:var(--blue);font-weight:700} /* (2.99.103) */

/* (2.99.108) tap size ≥ 44 px */
.g-snd{min-height:44px}
.linkbtn{min-height:44px!important}
.b-lang button{min-height:44px}
.stop-line{margin:18px auto 24px;padding:0 16px;max-width:520px;text-align:center;font-size:13px;color:#626C80} /* (2.99.125) */
.stop-line button{background:none;border:0;padding:6px 4px;min-height:32px;font:inherit;color:#626C80;text-decoration:underline;cursor:pointer}.stop-line .stop-l-yes{color:#B42318;font-weight:700}
/* (2.99.132) touch areas ≥ 44 px – same look */
.dz-arr{position:relative;flex-basis:24px;min-width:24px}.dz-arr::after{content:"";position:absolute;inset:0 -10px}
#bSumT{min-height:44px}
.sv-sum .linkbtn{min-height:44px;min-width:44px;padding:0 8px}
.stop-line button{min-height:44px}

/* (2.99.169 – order 358) the logo / salon name at the top = back to booking; "🏠 Book another appointment" at the end of You're booked */
a.brand{color:inherit;text-decoration:none;-webkit-tap-highlight-color:rgba(255,255,255,.15);border-radius:12px}a.brand:focus-visible{outline:3px solid #fff;outline-offset:3px}
.cal-btn.bk-again{margin:18px 0 8px}
/* (2.99.173 – order 362) "Choose tech": each tech a card with the round photo (~96 px) and the name under it; no photo → the first letter on the tech's color */
.tbox .tv{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:12px 8px 10px}
.tbox .tvp{position:relative;display:flex;align-items:center;justify-content:center;width:96px;height:96px;flex:none;border-radius:50%;overflow:hidden;background:#4B5563;color:#fff;font-size:44px;font-weight:800;line-height:1;box-shadow:0 0 0 3px #fff,0 2px 8px rgba(0,0,0,.14)}
.tbox .tvp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tbox .tvp-any{background:#E8F0FB;color:#14325A;font-size:46px}
.tbox .tv.on .tvp{box-shadow:0 0 0 3px #fff,0 0 0 6px #F5C451}
@media (max-width:360px){.tbox .tvp{width:80px;height:80px;font-size:36px}}
/* (2.99.180 – order 372) the times in a popup (bottom sheet, almost full screen): a day tapped → "Pick a time – Sunday, October 11";
   a time tapped → it closes and "📅 Sun Oct 11 · 11:15 AM ✓" shows (tap = change). Back (phone / browser) closes it. Same look as the service sheet. */
.tss{position:fixed;inset:0;z-index:62;display:flex;flex-direction:column;justify-content:flex-end}
.tss-bg{position:absolute;inset:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s ease}
.tss-p{position:relative;display:flex;flex-direction:column;height:92vh;height:92dvh;background:#F2F2F7;color:#1C1C1E;border-radius:16px 16px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.18);
  transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);width:100%;max-width:760px;margin:0 auto}
.tss.in .tss-bg{opacity:1}.tss.in .tss-p{transform:none}
.tss-top{position:relative;flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 8px;padding:14px 10px 10px;border-bottom:1px solid rgba(60,60,67,.12)}
.tss-top h3{order:3;width:100%;margin:2px 0 0;font-size:21px;font-weight:800;line-height:1.25;text-align:center;color:#1C1C1E}
.tss-back{min-height:44px;padding:0 10px;border:0;border-radius:10px;background:none;color:#1F4E8C;font-size:17px;font-weight:700}
.tss-x{position:static;flex:none}
.tss-l{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 14px calc(24px + env(safe-area-inset-bottom,0px))}
.tss-l .slot-group{background:#F2F2F7}
.tss-l .nextav{margin-top:0}
body.ts-on{overflow:hidden}
.ts-open{display:block;width:100%;min-height:64px;margin:16px 0 6px;padding:10px 14px;border:2px solid #1F4E8C;border-radius:14px;background:#fff;color:#1F4E8C;font-size:19px;font-weight:800;line-height:1.3}
.ts-hint{text-align:center;margin:4px 0 0}
.ts-picked{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin:16px 0 6px;padding:12px 14px;border:2px solid #1E8E3E;border-radius:14px;background:#E9F7EE;color:#14532D;font-size:21px;font-weight:800;line-height:1.3}
.ts-picked .tp-ok{color:#1E8E3E}
.ts-picked small{font-size:16px;font-weight:700;color:#1F4E8C;text-decoration:underline}
@media (min-width:700px){.tss{justify-content:center;padding:24px}.tss-p{height:auto;max-height:86vh;border-radius:18px}}
@media (prefers-reduced-motion:reduce){.tss-p,.tss-bg{transition:none}}
/* (2.99.181 – order 373) right above "📲 Book & text to confirm" (and on "You're booked!" above "Send us a text to confirm"): tap the blue Send arrow */
.go-sms-w{max-width:640px;margin:0 auto 8px;box-sizing:border-box;padding:10px 12px;border:2px solid #E4A93A;border-radius:14px;background:#FFF6DA;color:#2B1D00;font-size:19px;font-weight:800;line-height:1.35;text-align:left}
.go-sms-w[hidden]{display:none}
.snd-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin:0 2px;border-radius:50%;background:#0A84FF;color:#fff;font-size:18px;font-weight:900;line-height:1;vertical-align:-6px}
.go-sms-w .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sms-cf-w{margin:12px 0 8px}
@media (max-width:380px){.go-sms-w{font-size:18px;padding:9px 10px}}
.pick-line.pk5{font-size:16px;font-weight:700;margin-bottom:6px} /* (2.99.181 – order 373b) step 5: the day & time line small (the date card above has it) */
/* (2.99.182 – order 375b) in the times popup with a tech chosen: "Don't see a time that works? 👥 See more times with anyone available"; then "Showing: Anyone available · ‹ Back to …" */
.ts-any{margin:12px 0 14px;padding:12px;border:2px dashed #9DB4D3;border-radius:14px;background:#fff;text-align:center}
.ts-any p{margin:0 0 8px;font-size:17px;font-weight:700;color:#1C1C1E}
.ts-any .any-t{width:100%;min-height:52px;font-size:18px}
.ts-any-end{margin-top:18px}
.ts-showing{margin:0 0 12px;padding:8px 10px;border-radius:12px;background:#E8F0FB;color:#1C1C1E;font-size:16px;font-weight:700;text-align:center}
.ts-showing .linkbtn{display:inline;min-height:0;padding:4px 2px;font-size:16px;font-weight:800;color:#1F4E8C}
/* (2.99.183 – order 376) every time of the day in the popup: taken = gray "Busy" (not tappable); "Busy · 👥 anyone?" = free with any tech (asks first) */
.slots button.busy{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#E9EAEE;border-color:#DADCE2;color:#8A8F99;font-size:19px;cursor:default;line-height:1.1}
.slots button.busy small{font-size:12.5px;font-weight:700;color:#6B7280;line-height:1.15}
.slots button.busy.b-any{background:#F4F7FC;border:2px dashed #8DA6C9;color:#4B5563;cursor:pointer}
.slots button.busy.b-any small{color:#1F4E8C}
@media (max-width:380px){.slots button.busy{font-size:17px}.slots button.busy small{font-size:11.5px}}
.modal-bg.ts-ask{z-index:70}
.ts-ask .modal h3{font-size:21px;line-height:1.3;margin:0 0 6px}
.ta-row{display:flex;gap:10px;margin-top:14px}.ta-row .btn{flex:1;min-height:52px;font-size:18px;font-weight:800}
/* (2.99.184 – order 377) a full day in the times popup: the notice small, ABOVE the whole grid (all Busy / "Busy · 👥 anyone?") */
.tss-l .nomore-box{margin:0 0 12px;padding:10px 12px}
.tss-l .nomore-box .nb-t{font-size:17px;margin:0 0 8px}
.tss-l .nomore-box .any-t{min-height:50px;font-size:17px}
.tss-l .nomore-box .nx button{min-height:48px;font-size:16px}

.days button.full:not(.on){background:#F1F2F5;border-color:#DADCE2} /* (2.99.184) a Full day can be tapped (its Busy times + Next available), still looks full */
/* (2.99.185 – order 378) "Busy" in RED (#d32f2f), the button's border light red; "· 👥 anyone?" stays blue (tappable). The booking page has no dark look (it stays light on a dark phone). */
.slots button.busy{border-color:#F3B4B4}
.slots button.busy small .bz{color:#D32F2F;font-weight:800}
.slots button.busy.b-any small .ba{color:#1F4E8C;font-weight:700}
.slots button.busy.b-any{border-color:#E9A3A3}
/* (2.99.185 – order 378) in the popup the Morning / Afternoon / Evening titles do not stick: stuck 12 px under the top, the times scrolled ABOVE them ("11:45 AM" over "☀️ Morning") */
.tss-l .slot-group{position:static}

/* (2.99.191 – order 387) Step 5: no title, no day line above the box; the date card has a drawn calendar square with the real month + day;
   the "tap Send" box stands out: dark blue (#1a5fb4), white words, "STEP 2 of 2" big, a small Messages bar with a BIG pulsing blue Send arrow. */
.cf-h.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
.cf-when{justify-content:flex-start}.cf-when .cf-wt{flex:1;min-width:0}.cf-when .chg2{margin-left:auto}
.cal-sq{flex:none;display:flex;flex-direction:column;width:58px;border-radius:12px;overflow:hidden;background:#fff;border:1.5px solid #E2C46A;box-shadow:0 1px 2px rgba(0,0,0,.12);text-align:center;line-height:1}
.cal-sq b{display:block;background:#E5383B;color:#fff;font-size:13px;font-weight:900;letter-spacing:.06em;padding:4px 0 3px}
.cal-sq i{display:block;font-style:normal;font-size:28px;font-weight:900;color:#111;padding:5px 0 6px}
.cf-when p{font-size:24px}
@media (max-width:380px){.cf-when{padding:12px 10px;gap:8px}.cf-when p{font-size:21px}.cal-sq{width:52px}.cal-sq i{font-size:25px}}
.go-sms-w{background:#1a5fb4;border:0;color:#fff;text-align:center;padding:10px 12px 11px;box-shadow:0 2px 10px rgba(26,95,180,.35)}
.go-sms-w p{margin:0}
.go-sms-w .sw-1{font-size:22px;font-weight:900;letter-spacing:.04em;line-height:1.15}
.go-sms-w .sw-2{font-size:19px;font-weight:800;line-height:1.3;margin-top:3px}
.go-sms-w .sw-3{font-size:17px;font-weight:700;line-height:1.25;opacity:.95}
.sw-ill{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0 5px}
.sw-bar{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:3px 3px 3px 14px;box-shadow:inset 0 0 0 1px #C7CBD1}
.sw-tx{font-size:15px;font-weight:600;color:#1C1C1E;white-space:nowrap}
.snd-ic.big{width:40px;height:40px;font-size:26px;margin:0;vertical-align:middle;animation:swPulse 1s ease-in-out 3;box-shadow:0 0 0 0 rgba(10,132,255,.6)}
.sw-fg{font-size:28px;line-height:1}
@keyframes swPulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,.75)}50%{transform:scale(1.18);box-shadow:0 0 0 10px rgba(255,255,255,0)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@media (prefers-reduced-motion:reduce){.snd-ic.big{animation:none}}
@media (max-width:380px){.go-sms-w{font-size:inherit;padding:8px 10px 9px}.go-sms-w .sw-3{font-size:16px}}

/* (2.99.244 – order 444) "ⓘ More" on a service row + its box */
.svs-r .svs-mo{pointer-events:auto;flex:none;display:inline-flex;align-items:center;gap:3px;padding:7px 11px;border-radius:999px;border:1.5px solid #B9CCE8;background:#F2F7FE;color:var(--blue);font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
.svs-r .svs-mo:active{background:#DCE8F8}
.svmo{position:fixed;inset:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center}
.svmo-bg{position:absolute;inset:0;background:rgba(15,20,32,.48);opacity:0;transition:opacity .2s}.svmo.in .svmo-bg{opacity:1}
.svmo-p{position:relative;width:100%;max-width:560px;max-height:86vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:22px 20px calc(18px + env(safe-area-inset-bottom));transform:translateY(30px);opacity:0;transition:transform .22s,opacity .22s}
.svmo.in .svmo-p{transform:none;opacity:1}
.svmo h3{margin:0 0 10px;font-size:22px;line-height:1.25}
.svmo-t{white-space:pre-wrap;font-size:16.5px;line-height:1.5;color:#2B2F38}
.svmo-fit{margin-top:14px;padding:12px 14px;border-radius:14px;background:#FFF6E0;border:1px solid #F1D48A}.svmo-fit b{display:block;font-size:15px;color:#7A5300;margin-bottom:4px}.svmo-fit p{margin:0;font-size:16px;line-height:1.45}
.svmo-b{display:flex;gap:10px;margin-top:18px}.svmo-b button{flex:1;min-height:52px;border-radius:14px;font-size:17px;font-weight:700;border:0}
.svmo-go{background:var(--blue);color:#fff}.svmo-x{background:#EEF1F5;color:#2B2F38}
@media (min-width:700px){.svmo{align-items:center}.svmo-p{border-radius:22px}}
.svs-r{flex-shrink:0} /* (2.99.244) a row never squeezes shorter than its words (long names wrap) */
@media (max-width:420px){.svs-r{gap:8px;padding:12px 10px 12px 12px}.svs-r .svs-mo{padding:6px 8px;font-size:13px}.svs-t b{font-size:19px}}
/* (2.99.366 – anh Logan 22/10 21:48) PHONE: big and clear.
   1 "How many people?" – the 6 big buttons fill the screen (no "Been here before?" any more). */
.home-q{margin-top:2vh}
.home-q h2{font-size:clamp(28px,7.6vw,38px);margin-bottom:22px}
.people.pick{gap:14px}
.people.pick button{height:clamp(104px,17vh,160px);font-size:clamp(40px,11vw,56px);border-width:2.5px;border-radius:20px}
.people.pick button small{font-size:clamp(17px,4.6vw,22px)}
/* 3 "Add another service?" – the whole screen under the Back / Sound bar, big buttons */
.act .addbar:not([hidden]){position:fixed;left:0;right:0;top:var(--abTop,120px);bottom:0;z-index:60;max-width:none;margin:0;border-radius:0;border-width:3px 0 0;
  display:flex;flex-direction:column;justify-content:center;gap:16px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto}
.act .addbar .ab-h{font-size:clamp(30px,8.4vw,40px);text-align:center;margin:0}
.act .addbar .ab-t{font-size:clamp(22px,6vw,28px);text-align:center;margin:0}
.act .addbar .ab-q{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.act .addbar .ab-q .ab-qs{display:contents}
.act .addbar button{min-height:84px;font-size:clamp(21px,5.8vw,27px);border-radius:18px}
.act .addbar .ab-q button{min-height:84px;font-size:clamp(21px,5.8vw,27px)}
.act .addbar button.ab-no{min-height:92px;font-size:clamp(24px,6.6vw,30px)}
/* (2.99.549 – anh Logan 30/10 19:58) + Add more: one row, as big as No, that's all; white with a navy border (like ‹ Back) on the cream box – No, that's all stays the filled navy one */
.act .addbar .ab-q{grid-template-columns:1fr}
.act .addbar .ab-q .ab-qs{display:none}
.act .addbar button.ab-more{min-height:92px;font-size:clamp(24px,6.6vw,30px);background:#fff;color:#1F4E8C;border:3px solid #1F4E8C}
.act .addbar button.ab-more:active{transform:scale(.97);background:#EEF4FC;border-color:#1F4E8C}
/* 4 the tech screen (one person): only the techs, big cards */
.tbox.tb-solo{margin-top:4px}
.tbox.tb-solo .tb-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tbox.tb-solo .tv{min-height:clamp(170px,26vh,230px);padding:14px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:20px}
.tbox.tb-solo .tvp{width:clamp(96px,28vw,132px);height:clamp(96px,28vw,132px);font-size:clamp(44px,12vw,60px)}
.tbox.tb-solo .tv .tn{font-size:clamp(22px,6.2vw,28px)}
.tbox.tb-solo .tv small{font-size:clamp(15px,4.2vw,18px)}
.act .addbar .ab-q button{width:100%}
.pp.solo .pp-tech{border-top:0;margin-top:0;padding-top:0}

/* (2.99.368 – lệnh 613, anh Logan 22/10 22:41–22:47) phone: less on screen, the important things clear */
.tss-back{min-height:46px;padding:0 16px;border:2px solid #1F4E8C;border-radius:12px;background:#EEF4FC;color:#1F4E8C;font-size:20px;font-weight:800}
.ts-any.ts-any2{margin:4px 0 16px;padding:0;border:0;background:none}
.ts-any.ts-any2 .any-t{min-height:60px;font-size:20px;font-weight:800;background:#1F4E8C;border:2px solid #1F4E8C;color:#fff;border-radius:16px;box-shadow:0 6px 16px rgba(20,50,90,.28)}
.cf-when .cf-wt p{font-size:22px;line-height:1.2}
.cf-when{padding:10px 10px}
.cf-when .cal-sq{width:48px}
.cf-when .cal-sq i{font-size:23px;padding:4px 0 5px}
.cf-when .cal-sq b{font-size:12px}
@media(max-width:420px){.cf-when .cf-wt p{font-size:20px}}
.policy.cf-policy{margin:14px 0;font-size:18px;line-height:1.45;font-weight:700;color:#1C1C1E;background:#FFF4D6;border:2px solid #F2C94C;border-left:8px solid #E0A800;border-radius:12px;padding:12px 14px}
.perks.egg{margin-top:6px}
.pp.open .pp-tech{border-top:0;margin-top:0;padding-top:4px}

/* (2.99.370 – anh Logan 22/10 23:16) number pad: the number typed shows BIG right above "Use (515) …" / the keys; the boxes above smaller while the pad is open */
.kp-show{max-width:620px;margin:0 auto 8px;min-height:62px;display:flex;align-items:center;justify-content:center;background:#fff;border:3px solid #1F4E8C;border-radius:14px;font-size:34px;font-weight:900;letter-spacing:.02em;color:#0B1F3A;padding:4px 12px}
.kp-show.ph{font-size:22px;font-weight:700;color:#6B7280;letter-spacing:0}
body.kp-on .ph-remind{font-size:15px;padding:7px 10px;margin:6px 0 8px;border-width:1.5px}
body.kp-on .fine-sms{font-size:11px;line-height:1.3}
body.kp-on .field input[type=tel],body.kp-on #bPhone{font-size:20px;min-height:46px;padding-top:6px;padding-bottom:6px}
body.kp-on .kp-lbl{font-size:16px}

/* (2.99.371) "Welcome back" + the customer's offers */
.wb-offers{margin:6px 0 10px;padding:10px 12px;background:#FFF0F6;border:2px solid #F3A6C8;border-radius:14px}
.wb-offers p{margin:3px 0;font-size:18px;line-height:1.4;color:#5A1238}
/* (2.99.371 – anh Logan 22/10 23:22) every Back on the booking page: a red frame, easy to see */
#bBack,.tss-back{border:2.5px solid #D32F2F!important;color:#C62828!important;background:#fff!important;border-radius:12px!important;padding:0 14px!important;min-height:44px;font-weight:800!important}
#bBack:disabled,#bBack[hidden]{border-color:transparent!important}
.nav .back#bBack{flex:0 0 auto;white-space:nowrap;font-size:16px}
body.kp-on .kp-hid{display:none!important}
/* (2.99.373 – anh Logan 22/10 23:58) the number box on the pad: BIG – it takes the empty space above the pad (tall phones) */
.kp-show{min-height:110px;font-size:46px;border-width:3.5px;border-radius:18px;margin-bottom:10px}
.kp-show.ph{font-size:30px}
@media(max-height:760px){.kp-show{min-height:78px;font-size:38px}.kp-show.ph{font-size:24px}}
@media(max-height:640px){.kp-show{min-height:62px;font-size:32px}.kp-show.ph{font-size:20px}}
/* (2.99.373 - anh Logan 23/10 00:03) step 4: no "Your details" / "Mobile phone" / "Use iPhone keyboard" line (still read by screen readers); the number box: big and clear */
h2.vh,.ph-field>label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0;padding:0}
.ph-field .kp-sw-r{display:none!important}
.ph-field{margin-top:6px}
#bPhone{min-height:88px;font-size:34px;font-weight:800;border:3.5px solid #1F4E8C;border-radius:16px}
#bPhone::placeholder{font-size:min(28px,6.4vw);font-weight:800;color:#0B1F3A;opacity:1}
html[lang^=es] #bPhone::placeholder{font-size:min(26px,5.4vw)}
@media(max-width:380px){#bPhone{font-size:30px}}
/* (2.99.373 - anh Logan 00:05) group: no "✓ Person 1: ... Change" line above the next person (Back opens that person again) */
.pp.gw-line{display:none!important}
/* (2.99.373 - anh Logan 00:08) step 5 + booked: no top band (salon name, English/Espanol, address) */
body.no-hero header.hero{display:none!important}
/* (2.99.375 - anh Logan 23/10 00:20) after "Start booking": no top band (salon name, English/Espanol, address) on any step - the welcome screen keeps it */
body.flow-on header.hero{display:none!important}
/* (2.99.375) welcome screen: the salon's info easy to read – address bigger, the phone on its own line, big */
body.wov-on .hero p{font-size:16px!important;line-height:1.45;margin-top:8px;font-weight:600}
body.wov-on .hero p a{display:block;font-size:21px;font-weight:800;margin-top:4px}
body.wov-on .b-lang button{font-size:18px;min-height:44px;padding:6px 18px}
/* (2.99.375) the steps: bigger, clearer words */
#pg .ct .ct-n{font-size:clamp(17px,4.6vw,23px);font-weight:800;line-height:1.2} /* (2.99.376) fits one line on 390-430 px phones (Acrylic & Gel X, Polish Change) */
#pg .ct .ct-i{font-size:34px}
#pg .price-call{font-size:17px}
#pg .days button .w,#pg .days button .m{font-size:16px}
#pg .days button .w.rel{font-size:14.5px}
#pg .screen h2{font-size:26px}
/* (2.99.377 – anh Logan 00:35) the number pad like the iPhone's: gray tray, white keys without a frame, letters under the digits, ⌫ bottom right */
.kp{background:#D1D4DB;border-top:1px solid #B8BCC4}
.kp-g{gap:8px}
.kp-k{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;min-height:60px;font-size:30px;font-weight:500;color:#000;background:#fff;border:0;border-radius:9px;box-shadow:0 1px 0 #8A8E96}
.kp-k small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;margin-top:3px;color:#000}
.kp-k:active{background:#AEB3BC;transform:none}
.kp-del{background:transparent;box-shadow:none;font-size:30px;font-weight:400}
.kp-del:active{background:#AEB3BC}
.kp-done{background:#1E8E3E;color:#fff;font-size:21px;font-weight:800;box-shadow:0 1px 0 #11602A}
.kp-done:disabled{opacity:.4}
.kp-show{border-width:3px}
/* (2.99.377) while the pad is open: the words above it big and clear (they use the empty space) */
body.kp-on .ph-remind{font-size:20px;line-height:1.35;padding:12px 14px;margin:4px 0 12px;border-width:2px}
body.kp-on .fine-sms{font-size:15px;line-height:1.45}
@media(max-height:700px){body.kp-on .ph-remind{font-size:17px;padding:9px 12px}body.kp-on .fine-sms{font-size:13px}}
/* (2.99.378 – anh Logan 00:41) Done on its own row at the very bottom (full width); ⌫ as wide as 2 keys next to 0 */
.kp-g .kp-done{order:1;grid-column:1/-1;min-height:58px;font-size:24px}
.kp-g .kp-del{grid-column:span 2;background:#fff;box-shadow:0 1px 0 #8A8E96;font-size:34px}
.kp-g .kp-del:active{background:#AEB3BC}
@media(max-height:700px){.kp-k{min-height:52px}.kp-g .kp-done{min-height:50px}}
/* (2.99.385 – anh Logan 23/10 09:17) the service popup: every row in its own colour, bigger words */
#svsL .svs-r{--sc:#2F6FE0;background:color-mix(in srgb,var(--sc) 11%,#fff);border:2px solid color-mix(in srgb,var(--sc) 38%,#fff);min-height:84px;padding:14px 14px 14px 16px;margin-bottom:10px}
#svsL .svs-r:nth-child(8n+1){--sc:#E0457B}#svsL .svs-r:nth-child(8n+2){--sc:#2F6FE0}#svsL .svs-r:nth-child(8n+3){--sc:#1E9E6A}#svsL .svs-r:nth-child(8n+4){--sc:#C2410C}
#svsL .svs-r:nth-child(8n+5){--sc:#7C3AED}#svsL .svs-r:nth-child(8n+6){--sc:#0E8FA8}#svsL .svs-r:nth-child(8n+7){--sc:#B7791F}#svsL .svs-r:nth-child(8n+8){--sc:#DB2777}
#svsL .svs-t b{font-size:24px;font-weight:800;color:color-mix(in srgb,var(--sc) 72%,#000)}
#svsL .svs-t small{font-size:18px;line-height:1.35;color:#3F4652;-webkit-line-clamp:3}
#svsL .svs-r.on{border-color:var(--sc);background:color-mix(in srgb,var(--sc) 24%,#fff)}
#svsL .svs-r.on .svs-c{background:var(--sc);border-color:var(--sc)}
#svsL .svs-r .svs-mo{font-size:17px;border-color:color-mix(in srgb,var(--sc) 45%,#fff);background:#fff;color:color-mix(in srgb,var(--sc) 75%,#000)}
@media(max-width:380px){#svsL .svs-t b{font-size:21px}#svsL .svs-t small{font-size:16px}}
/* (2.99.412) "📲 Save <salon> to your home screen" on "You're booked!" */
.bs-box{margin:16px 0 6px;padding:16px;border-radius:16px;background:#EEF4FF;border:2px solid #C9DAF8;color:#1B2A44;text-align:left}
.bs-t{margin:0;font-size:19px;font-weight:700;line-height:1.3}
.bs-s{margin:4px 0 8px;font-size:16px;color:#3A4A66}
.bs-steps{margin:8px 0 4px;padding-left:24px;font-size:17px;line-height:1.55}
.bs-steps li{margin:4px 0}
.bs-ic{width:22px;height:22px;vertical-align:-5px;color:#1F6FEB;display:inline-block}
.bs-btn{margin:10px 0 4px}
.bs-alt{margin:8px 0 0;font-size:16px}
.bs-copy{margin-top:6px}
.bs-ok{margin-left:8px;color:#1E8E4E;font-weight:600}
.bs-later{display:block;margin:10px auto 0;background:none;border:0;color:#5A6B88;font-size:16px;text-decoration:underline;padding:6px 10px}
/* (2.99.438) the card stands out (like "Start booking"), big steps with the button's picture, an arrow at the button on the screen's edge */
.bs-box.bs-hot{background:linear-gradient(135deg,#FFF1DE 0%,#FFE0EC 100%);border:2px solid #FFB547;color:#3A2400;box-shadow:0 6px 18px rgba(255,138,30,.18)}
.bs-hot .bs-t{font-size:22px;font-weight:800}
.bs-hot .bs-s{color:#5A3A12}
.bs-go{display:block;width:100%;min-height:58px;margin:10px 0 4px;border:0;border-radius:16px;background:linear-gradient(135deg,#FFB547 0%,#FF8A1E 100%);color:#3A2400;font-size:20px;font-weight:800;cursor:pointer;box-shadow:0 3px 0 rgba(160,80,0,.25)}
.bs-go:focus-visible{outline:3px solid #1F6FEB;outline-offset:2px}
.bs-how .bs-steps{list-style:none;padding:0;margin:10px 0 4px}
.bs-how .bs-steps li{display:flex;align-items:center;gap:10px;margin:8px 0;padding:10px 12px;background:#fff;border-radius:14px;font-size:18px;line-height:1.35;color:#1B2A44}
.bs-n{flex:none;width:28px;height:28px;border-radius:50%;background:#FF8A1E;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:16px}
.bs-ib{flex:none;width:40px;height:40px;border-radius:10px;background:#EEF4FF;display:flex;align-items:center;justify-content:center;font-size:22px;color:#1F6FEB}
.bs-ib .bs-ic{width:28px;height:28px;vertical-align:0}
.bs-x{flex:1;min-width:0}
.bs-arrow{position:fixed;z-index:60;font-size:46px;line-height:1;color:#FF6A00;text-shadow:0 2px 6px rgba(0,0,0,.25);animation:bsBob 1s ease-in-out infinite;pointer-events:auto}
.bs-a-br{right:14px;bottom:calc(6px + env(safe-area-inset-bottom))}
.bs-a-bc{left:50%;margin-left:-18px;bottom:calc(6px + env(safe-area-inset-bottom))}
.bs-a-tr{right:14px;top:calc(6px + env(safe-area-inset-top));animation-name:bsBobUp}
@keyframes bsBob{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@keyframes bsBobUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media (prefers-reduced-motion:reduce){.bs-arrow{animation:none}}
.bs-hot .bs-one{margin:2px 0 4px;font-size:17px}.bs-hot .bs-go{min-height:64px;font-size:21px}
.bs-hint{margin:8px 0 0;padding:10px 12px;border-radius:12px;background:#fff;font-size:18px;line-height:1.35;color:#1B2A44}
/* (2.99.439) iPhone: the big overlay (older customers) – a big blinking arrow at Safari's button + a drawing of Apple's "Add to Home Screen ⊞" row */
.bs-ov{position:fixed;inset:0;z-index:70;background:rgba(10,14,24,.78);display:flex;align-items:center;justify-content:center;padding:20px}
.bs-ov-box{width:100%;max-width:420px;background:#fff;border-radius:22px;padding:22px 20px 18px;text-align:center;color:#111;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.bs-ov-big{margin:0 0 16px;font-size:28px;font-weight:800;line-height:1.3}
.bs-ov-ic{display:inline-flex;vertical-align:-8px;color:#1F6FEB}.bs-ov-ic .bs-ic{width:36px;height:36px}
.bs-ov-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 auto;max-width:330px;padding:14px 16px;border-radius:14px;background:#F2F2F7;font-size:24px;font-weight:700;box-shadow:inset 0 0 0 2px #FF8A1E}
.bs-ov-row .bs-ov-ic{color:#111}.bs-ov-row .bs-ic{width:30px;height:30px}
.bs-ov-then{margin:12px 0 4px;font-size:22px}
.bs-ov-close,.bs-ov-copy{display:block;width:100%;min-height:58px;margin-top:14px;border:0;border-radius:16px;font-size:21px;font-weight:800;cursor:pointer}
.bs-ov-close{background:#E9EDF5;color:#1B2A44}.bs-ov-copy{background:linear-gradient(135deg,#FFB547 0%,#FF8A1E 100%);color:#3A2400}
.bs-ov-ok{margin:10px 0 0;font-size:20px;color:#1E8E4E;font-weight:700}
.bs-ov-arrow{position:fixed;z-index:71;font-size:84px;line-height:1;color:#FFB547;text-shadow:0 2px 10px rgba(0,0,0,.5);animation:bsOvB .9s ease-in-out infinite;pointer-events:none}
.bs-ov-bc{left:50%;margin-left:-38px;bottom:calc(2px + env(safe-area-inset-bottom))}
.bs-ov-br{right:10px;bottom:calc(2px + env(safe-area-inset-bottom))}
.bs-ov-tr{right:14px;top:calc(4px + env(safe-area-inset-top));animation-name:bsOvU}
@keyframes bsOvB{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(14px);opacity:.45}}
@keyframes bsOvU{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-14px);opacity:.45}}
@media (prefers-reduced-motion:reduce){.bs-ov-arrow{animation:none}}
/* (2.99.494 – LỆNH 488 d, anh Logan 30/10) ONE colour per job, the layout unchanged: the main button (Next / Book / Book again / Yes, book this) = solid navy;
   go back / change (‹ Back, ‹ Change day, Change / Edit) = navy outline on white; red is kept for cancelling only. */
.act button#bGo{background:#1F4E8C!important;background-image:none!important;color:#fff!important;box-shadow:0 6px 16px rgba(31,78,140,.32)}
.act button#bGo:disabled,.act button#bGo.soft-dis{opacity:.4;box-shadow:none}
.bk-again1,.qr-yes{background:#1F4E8C!important;color:#fff!important}
#bBack,.tss-back{border:2px solid #1F4E8C!important;color:#1F4E8C!important;background:#fff!important}
#bBack:disabled,#bBack[hidden]{border-color:transparent!important}
[data-schg],[data-bfor],.sv-sum .linkbtn{color:#1F4E8C!important}
/* (2.99.496) the booking page stays light on a phone in dark mode (color-scheme:light) – the 494 dark-mode colours (light blue Back on white) removed */
#bGo.lit{animation-name:litpN}@keyframes litpN{50%{box-shadow:0 0 0 6px rgba(31,78,140,.28)}}

/* (2.99.496 – LỆNH 488 e) the voice button = a small speaker icon 🔈 / 🔇 (tap = on / off), no words – takes no room in the header; still 44px to tap */
.nav .g-snd{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;background:#E8F0FB;border:1.5px solid #1F4E8C;color:#1F4E8C}
.nav .g-snd.off{background:#fff;border-color:#B8C0CC;color:#5b6472}
/* (2.99.497 – LỆNH 488 f) the number pad ~20% lower (same keys, same order, still ≥44px to tap): the reminder above + the number box + Done all on a small iPhone, no scrolling */
.kp{padding-top:6px}
.kp-g{gap:6px}
.kp-k{min-height:48px;font-size:28px}
.kp-k small{font-size:10px;margin-top:2px}
.kp-g .kp-done{min-height:48px;font-size:22px}
.kp-show{min-height:86px;font-size:40px;margin-bottom:6px}.kp-show.ph{font-size:26px}
@media(max-height:760px){.kp-show{min-height:62px;font-size:34px}.kp-show.ph{font-size:22px}}
@media(max-height:700px){.kp-k{min-height:44px;font-size:26px}.kp-g .kp-done{min-height:44px;font-size:21px}}
@media(max-height:640px){.kp-show{min-height:50px;font-size:28px}.kp-show.ph{font-size:19px}}

/* (2.99.610 - LENH 611 B) step 4 easier to read: the yellow reminder higher + smaller, the consent 13px dark gray, the color button big, bigger digits on the pad */
.ph-remind{margin:4px 0 10px;padding:8px 12px;font-size:19px;line-height:1.3}
@media (min-width:700px){.ph-remind{font-size:19px}}
body.kp-on .ph-remind{font-size:19px;line-height:1.3;padding:8px 12px;margin:0 0 8px;border-width:2px}
body.kp-on .reenter{display:none}
.fine-sms,body.kp-on .fine-sms{font-size:13px;line-height:1.35;color:#4B5563}
@media(max-height:700px){body.kp-on .ph-remind{font-size:16px;padding:5px 10px;margin:0 0 4px}body.kp-on .fine-sms{font-size:13px;line-height:1.3}body.kp-on #bColorWrap .bc-wrap{margin:4px 0 8px}}
#bColorWrap .bc-wrap{margin:8px 0 10px}
#bColorWrap .bc-open{min-height:52px;font-size:18px;font-weight:800;color:var(--blue);background:#fff;border:2px solid var(--blue);border-radius:14px}
#bColorWrap .bc-opt{font-weight:500;font-size:15px;color:#4B5563}
.kp-k{font-size:34px;font-weight:600}
.kp-k small{line-height:1}
@media(max-height:700px){.kp-k{font-size:30px}}
/* (2.99.610 - LENH 611 C) the order on step 4: number, color, consent, "Yes, that's my number", Fix it; the number in a green box (no pop-up) */
.s4{display:flex;flex-direction:column}
.s4>*{order:3}
.s4>.ph-field,.s4>.pc-num,.s4>.ph-remind,.s4>#bWho{order:0}
.s4>#bColorWrap{order:1}
.s4>.ph-fine,.s4>.pc-act,.s4>.err{order:2}
.s4:not(.pcy)>.pc-num,.s4:not(.pcy)>.pc-act,.s4.pcy>.ph-field,.s4.pcy>.ph-remind{display:none}
.pc-num{margin:8px 5px 2px}
.pc-nb{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:3px solid #3F8F48;border-radius:18px;padding:12px 16px;box-shadow:0 0 0 5px #E3F3E5}
.pc-nb b{font-size:34px;font-weight:800;letter-spacing:.01em;color:#131722;white-space:nowrap}
.pc-ok{flex:none;width:34px;height:34px;border-radius:50%;background:#3F8F48;color:#fff;display:grid;place-items:center;font-size:20px;font-weight:900}
.pc-q{font-size:17px;font-weight:700;margin:12px 2px 0;color:#131722}
.pc-act{margin:14px 0 4px}
.pc-yes2{display:block;width:100%;min-height:60px;border:0;border-radius:16px;background:#2E7D32;color:#fff;font-size:21px;font-weight:800;padding:14px 12px;cursor:pointer}
.pc-yes2:active{background:#1F5E23}
.pc-fix2{display:block;margin:8px auto 0;min-height:44px;font-size:16px;font-weight:700}
body.pcy-on #bGo{display:none!important}
@media(max-width:360px){.pc-nb b{font-size:28px}}
.pc-num{scroll-margin-top:8px}
@media(max-height:700px){.pc-nb{padding:8px 14px}.pc-nb b{font-size:30px}.pc-q{font-size:15px;margin-top:8px}.pc-act{margin-top:10px}.pc-yes2{min-height:56px;padding:12px}}
/* (2.99.620 - LENH 620, anh Logan 01/11 23:13) step 5 "✅ Book now" / "✅ Reservar" only: bigger, bolder, one line (colors, shadow, disabled, Booking… unchanged) */
.act button#bGo.go-book{font-size:29px;font-weight:800;min-height:64px;white-space:nowrap;letter-spacing:0}
@media(max-height:700px){.act button#bGo.go-book{font-size:26px}}
