.booking-moment-visual,.booking-moment-slot{position:relative;display:block!important;min-height:0!important;min-width:0;overflow:hidden!important;padding:0!important;border:1px solid #dce6f2!important;border-radius:12px!important;background:#fff!important}
.module-section#module-02 .moment-grid{grid-auto-rows:440px}
.module-section#module-02 .moment-copy{min-height:125px;display:flex;flex-direction:column;align-items:flex-start;margin-bottom:13px}
.module-section#module-02 .moment-demo-link{display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding:8px 0 10px;color:#1355b2;font-size:11px;font-weight:750;line-height:1.2;text-decoration:none}
.module-section#module-02 .moment-demo-link:hover{text-decoration:underline;text-underline-offset:3px}
.module-section#module-02 .moment-demo-link:focus-visible{outline:2px solid #1355b2;outline-offset:3px;border-radius:2px}
.highlights .moment-title{min-height:125px;margin-bottom:13px}
.highlights .moment-card{min-height:440px}
.module-section .booking-moment-visual{width:100%;margin:0;flex:1}
.highlights .booking-moment-slot{width:100%;margin:0;flex:1}
.bm-scene{position:relative;isolation:isolate;width:100%;height:100%;overflow:hidden;background:#fff;color:#17263d;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:9px;line-height:1.3}
.bm-scene *{box-sizing:border-box}.bm-scene b,.bm-scene strong{font-weight:760}.bm-scene i,.bm-scene em{font-style:normal}.bm-scene small{font-size:7px}.bm-stage{position:relative;width:100%;height:100%;overflow:hidden}.bm-cursor{position:absolute;z-index:10;display:block;width:21px;height:21px;pointer-events:none;filter:drop-shadow(0 2px 3px #63334b45)}.bm-cursor svg{display:block;width:100%;height:100%}
/* Real stock imagery appears only where this concept UI has a service or pet photo. */
.bm-icon,.bm-avatar{position:relative;overflow:hidden}
.bm-icon::before,.bm-avatar::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center}
.bm-icon::before{background-image:url("./stock-service-bath-brush.jpg");background-position:center 44%}
.bm-avatar::before{background-image:url("./stock-pet-milo-shiba.jpg");background-size:160%;background-position:62% 23%}
.bm-avatar-two::before{background-image:url("./stock-pet-luna-corgi.jpg")}
.bm-language .bm-service-illustration{background-image:url("./stock-service-bath-brush.jpg");background-size:cover;background-position:center 46%}
.bm-language .bm-service-illustration span,.bm-language .bm-service-illustration i{display:none}
.bm-browser{height:24px;display:flex;align-items:center;gap:9px;padding:0 12px;border-bottom:1px solid #e8ebef;background:#fff;color:#7b8796;font-size:7px}.bm-lights{display:flex;gap:3px}.bm-lights i{width:5px;height:5px;border-radius:50%;background:#d6e0eb}.bm-lights i:first-child{background:#f1b2ca}.bm-browser-more{margin-left:auto;letter-spacing:2px}
.bm-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#42628d;font-size:8px;font-weight:800;letter-spacing:.055em}.bm-topline span:last-child{color:#8190a2;font-size:7px;font-weight:650;letter-spacing:0}.bm-avatar{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:8px;background:#dfeafe;color:#2c62af;font-size:11px;font-weight:850}.bm-avatar-two{background:#fce6ef;color:#ce4d83}

/* 01 / a compact public booking flow, with a cropped result panel */
.bm-flow{background:#fff}.bm-flow-head{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #edf0f3}.bm-flow-head b{font-size:11px}.bm-flow-head span{color:#8392a3;font-size:7px}.bm-flow-content{display:grid;grid-template-columns:58% 42%;height:calc(100% - 54px)}.bm-flow-choices{padding:9px 12px;overflow:hidden}.bm-flow-choices>small{display:block;margin:0 0 4px;color:#4771aa;font-weight:850;letter-spacing:.06em}.bm-flow-choices>small:not(:first-child){margin-top:7px}.bm-choice{height:35px;display:flex;align-items:center;gap:7px;padding:4px 7px;border:1px solid #e6eaf0;border-radius:6px;background:#fff}.bm-choice span:nth-child(2){min-width:0}.bm-choice b,.bm-choice em{display:block;white-space:nowrap}.bm-choice b{font-size:8px}.bm-choice em{color:#8995a3;font-size:6px}.bm-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:5px;background:#fdeaf1;color:#d65088;font-size:15px}.bm-choice .bm-avatar{width:25px;height:25px}.bm-check{margin-left:auto;color:#1355b2;opacity:0}.bm-times{display:flex;gap:4px;white-space:nowrap}.bm-times span{padding:5px 4px;border:1px solid #e5eaf0;border-radius:5px;color:#5a6b80;font-size:6px}.bm-flow-summary{position:relative;padding:13px 10px;border-left:1px solid #e5eaf0;background:#f7faff}.bm-flow-summary>small{color:#1355b2;font-weight:850;letter-spacing:.06em}.bm-flow-summary>b{display:block;margin:8px 0 6px;font-size:12px;letter-spacing:-.04em}.bm-summary-placeholder{max-width:90px;margin:0;color:#8291a4;font-size:7px;line-height:1.4}.bm-summary-details{display:grid;gap:5px;margin:6px 0;color:#496079;font-size:7px;opacity:0}.bm-summary-details strong{color:#17263d;font-size:7px}.bm-summary-action{display:inline-block;margin-top:5px;padding:6px 8px;border-radius:5px;background:#1355b2;color:#fff;font-size:7px;font-weight:800;opacity:.4}.bm-edit{position:absolute;bottom:8px;left:10px;color:#1355b2;font-size:7px;font-weight:750;opacity:0}.bm-flow .bm-service,.bm-flow .bm-pet,.bm-flow .bm-time{animation:bm-flow-select 6s steps(1,end) infinite}.bm-flow .bm-pet{animation-name:bm-flow-pet}.bm-flow .bm-time{animation-name:bm-flow-time}.bm-flow .bm-service .bm-check{animation:bm-flow-check 6s steps(1,end) infinite}.bm-flow .bm-pet .bm-check{animation:bm-flow-check-pet 6s steps(1,end) infinite}.bm-summary-details,.bm-flow-summary>b,.bm-summary-placeholder,.bm-summary-action,.bm-edit{animation-duration:6s;animation-timing-function:steps(1,end);animation-iteration-count:infinite}.bm-summary-details{animation-name:bm-flow-result}.bm-flow-summary>b{animation-name:bm-flow-heading}.bm-summary-placeholder{animation-name:bm-flow-placeholder}.bm-summary-action{animation-name:bm-flow-action}.bm-edit{animation-name:bm-flow-edit}.bm-flow .bm-cursor{animation:bm-cursor-flow 6s linear infinite}

/* 02 / the language changes while service facts remain fixed */
.bm-language{padding:13px 14px 0;background:#fff}.bm-service-overline{display:flex;justify-content:space-between;margin-bottom:8px;color:#6180a5;font-size:7px;font-weight:850;letter-spacing:.08em}.bm-service-overline span{color:#9ba7b3}.bm-language-card{position:relative;display:grid;grid-template-columns:30% 70%;height:calc(100% - 15px);overflow:hidden;border:1px solid #e6e8eb;border-bottom:0;border-radius:9px 9px 0 0;background:#fff;box-shadow:0 9px 22px #293d5810}.bm-language-tabs{position:absolute;top:10px;right:10px;z-index:2;display:flex;gap:2px;padding:2px;border-radius:6px;background:#eef2f6}.bm-language-tabs span{padding:4px 7px;border-radius:4px;color:#78899e;font-size:7px;font-weight:800}.bm-en-tab{animation:bm-tab-en 6s steps(1,end) infinite}.bm-zh-tab{animation:bm-tab-zh 6s steps(1,end) infinite}.bm-service-illustration{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(150deg,#e4edfa,#fce8ef)}.bm-service-illustration span{z-index:1;width:48px;height:48px;display:grid;place-items:center;border:1px solid #fff9;border-radius:15px;background:#fff8;color:#d75289;font-size:30px;transform:rotate(-8deg)}.bm-service-illustration i{position:absolute;right:-22px;bottom:-32px;width:90px;height:90px;border:16px solid #fff6;border-radius:50%}.bm-language-copy{align-self:end;padding:8px 12px 13px}.bm-language-copy>small{display:block;margin-bottom:5px;color:#d25289;font-weight:800;letter-spacing:.08em}.bm-copy-en,.bm-copy-zh{height:66px}.bm-copy-en strong,.bm-copy-zh strong{display:block;font-size:13px;letter-spacing:-.035em}.bm-copy-en p,.bm-copy-zh p{max-width:175px;margin:5px 0 0;color:#728197;font-size:7px;line-height:1.5}.bm-copy-zh{position:absolute;left:calc(30% + 12px);bottom:25px;opacity:0}.bm-copy-en{animation:bm-lang-en 6s steps(1,end) infinite}.bm-copy-zh{animation:bm-lang-zh 6s steps(1,end) infinite}.bm-meta{display:flex;gap:12px;padding-top:8px;border-top:1px solid #edf0f3;color:#405c80;font-size:7px;font-weight:800}.bm-language .bm-cursor{animation:bm-cursor-language 6s linear infinite}

/* 03 / a second service line enters the same booking */
.bm-multiline{padding:13px 13px 0;background:#f7f9fd}.bm-multiline .bm-topline{margin-bottom:9px}.bm-count{position:relative;min-width:48px;height:15px}.bm-count b{position:absolute;right:0;top:0;color:#1355b2;font-size:7px;white-space:nowrap}.bm-count-one{animation:bm-one 6s steps(1,end) infinite}.bm-count-two{opacity:0;animation:bm-two 6s steps(1,end) infinite}.bm-line{position:relative;display:flex;align-items:center;gap:8px;min-height:57px;margin-bottom:7px;padding:7px 8px;border:1px solid #e4eaf2;border-radius:8px;background:#fff;box-shadow:0 4px 10px #263b5708}.bm-line>div{min-width:0}.bm-line small,.bm-line strong,.bm-line em{display:block;white-space:nowrap}.bm-line small{color:#8190a2;font-size:6px;font-weight:800;letter-spacing:.04em}.bm-line strong{margin:3px 0;font-size:9px}.bm-line em{color:#6480a1;font-size:7px}.bm-line>b{margin-left:auto;font-size:9px}.bm-secondary{min-height:0;max-height:0;overflow:hidden;opacity:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0;transform:translateY(5px);animation:bm-line-add 6s ease-in-out infinite}.bm-remove{position:absolute;top:2px;right:4px;color:#d84b86;font-size:12px;font-weight:800;opacity:0;animation:bm-remove-show 6s steps(1,end) infinite}.bm-line-footer{display:flex;justify-content:space-between;gap:7px;color:#8b98a8;font-size:6px}.bm-add{color:#1355b2;font-size:7px;font-weight:850}.bm-multiline .bm-cursor{animation:bm-cursor-multiline 6s linear infinite}

/* 04 / additions are reflected in the receipt */
.bm-pricing{display:grid;grid-template-columns:59% 41%;background:#fff}.bm-pricing-main{padding:13px 11px}.bm-pricing-main .bm-topline{display:block;margin-bottom:13px}.bm-pricing-main .bm-topline span{display:block}.bm-pricing-main .bm-topline span:last-child{margin-top:3px;color:#17263d;font-size:10px;font-weight:800}.bm-price-base,.bm-price-option,.bm-price-muted{display:flex;align-items:center;gap:6px;min-height:39px;border-bottom:1px solid #ecf0f4;font-size:8px}.bm-price-base>span,.bm-price-option>span{flex:1}.bm-price-base small,.bm-price-option small{display:block;margin-top:2px;color:#8794a6;font-size:6px}.bm-price-base b,.bm-price-option b{font-size:8px}.bm-option-check,.bm-price-muted i{width:13px;height:13px;display:grid;place-items:center;flex:none;border:1px solid #bcc9d8;border-radius:3px;color:#fff;font-size:8px}.bm-option-check{animation:bm-option-on 6s steps(1,end) infinite}.bm-price-muted{color:#8c9bad;font-size:7px}.bm-price-muted b{margin-left:auto;font-size:6px}.bm-receipt{padding:16px 9px;background:#edf4fd}.bm-receipt>small{color:#1355b2;font-weight:850;letter-spacing:.06em}.bm-receipt>div,.bm-receipt>strong{display:flex;justify-content:space-between;gap:5px;margin-top:11px;font-size:7px}.bm-receipt>strong{position:relative;padding-top:10px;border-top:1px solid #cfdbec;font-size:10px}.bm-receipt>.bm-added-charge{max-height:0;overflow:hidden;margin-top:0;opacity:0;animation:bm-charge 6s ease-in-out infinite}.bm-total-base,.bm-total-added{position:absolute;right:0}.bm-total-base{animation:bm-total-base 6s steps(1,end) infinite}.bm-total-added{opacity:0;animation:bm-total-added 6s steps(1,end) infinite}.bm-pricing .bm-cursor{animation:bm-cursor-pricing 6s linear infinite}

/* 05 / two clear payment choices and one due-now result */
.bm-payment{padding:13px 14px;background:#fff}.bm-payment .bm-topline{margin-bottom:9px}.bm-payment-intro{margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:-.03em}.bm-pay-choice{display:flex;align-items:center;gap:7px;min-height:42px;margin-bottom:6px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:7px;background:#fff}.bm-pay-choice>i{width:12px;height:12px;flex:none;border:1.5px solid #b7c3d1;border-radius:50%}.bm-pay-choice>span{flex:1}.bm-pay-choice strong,.bm-pay-choice small{display:block}.bm-pay-choice strong{font-size:8px}.bm-pay-choice small{margin-top:2px;color:#8996a5;font-size:6px}.bm-pay-choice>b{font-size:9px}.bm-pay-full{animation:bm-pay-full 6s steps(1,end) infinite}.bm-pay-deposit{animation:bm-pay-deposit 6s steps(1,end) infinite}.bm-pay-full>i{animation:bm-radio-full 6s steps(1,end) infinite}.bm-pay-deposit>i{animation:bm-radio-deposit 6s steps(1,end) infinite}.bm-payment-due{position:relative;display:flex;align-items:center;gap:8px;min-height:30px;margin-top:9px;padding-top:8px;border-top:1px solid #edf0f4}.bm-payment-due>span{color:#637993;font-size:7px;font-weight:850;letter-spacing:.06em}.bm-payment-due strong{position:absolute;top:6px;right:0;color:#1355b2;font-size:14px}.bm-due-full{animation:bm-due-full 6s steps(1,end) infinite}.bm-due-deposit{opacity:0;animation:bm-due-deposit 6s steps(1,end) infinite}.bm-pay-note{display:block;margin-top:5px;color:#a2aab5;font-size:6px}.bm-payment .bm-cursor{animation:bm-cursor-payment 6s linear infinite}

/* 06 / staff availability affects the public time choices */
.bm-availability{padding:13px 12px;background:#f8fafc}.bm-availability .bm-topline{margin-bottom:10px}.bm-availability-body{display:grid;grid-template-columns:56% 44%;gap:8px}.bm-admin-calendar{overflow:hidden;border:1px solid #e4eaf1;border-radius:7px;background:#fff}.bm-day-heading{display:flex;justify-content:space-between;gap:4px;padding:7px;background:#eaf2fc;color:#1355b2;font-size:7px}.bm-day-heading b{font-size:6px}.bm-slot{height:27px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;border-top:1px solid #edf0f4;color:#667b96;font-size:7px}.bm-slot b{color:#387a62;font-size:7px}.bm-target-slot{position:relative;animation:bm-slot-block 6s steps(1,end) infinite}.bm-target-slot .bm-open-label,.bm-target-slot .bm-blocked-label{position:absolute;right:8px;top:8px}.bm-target-slot .bm-open-label{animation:bm-slot-open-label 6s steps(1,end) infinite}.bm-target-slot .bm-blocked-label{opacity:0;animation:bm-slot-block-label 6s steps(1,end) infinite}.bm-availability-side{position:relative;padding:8px;border:1px solid #e8edf3;border-radius:7px;background:#fff}.bm-availability-side small{display:block;color:#d24b83;font-weight:850;letter-spacing:.06em}.bm-availability-side>b{display:block;margin:4px 0 7px;font-size:9px}.bm-availability-side>div{display:flex;flex-wrap:wrap;gap:4px}.bm-availability-side>div span{padding:5px 4px;border:1px solid #dfe7f0;border-radius:4px;color:#526b88;font-size:6px}.bm-public-slot{animation:bm-public-slot 6s steps(1,end) infinite}.bm-availability-side p{position:absolute;left:8px;bottom:7px;margin:0;color:#6c819a;font-size:6px}.bm-available-copy{animation:bm-available-copy 6s steps(1,end) infinite}.bm-blocked-copy{opacity:0;animation:bm-blocked-copy 6s steps(1,end) infinite}.bm-block-action,.bm-unblock-action{position:absolute;left:12px;bottom:8px;display:inline-block;padding:5px 8px;border-radius:5px;background:#1355b2;color:#fff;font-size:7px;font-weight:800}.bm-block-action{animation:bm-block-action 6s steps(1,end) infinite}.bm-unblock-action{opacity:0;animation:bm-unblock-action 6s steps(1,end) infinite}.bm-availability .bm-cursor{animation:bm-cursor-availability 6s linear infinite}

@keyframes bm-flow-select{0%,13%,85%,100%{border-color:#e6eaf0;background:#fff}15%,82%{border-color:#1355b2;background:#f0f6ff}}@keyframes bm-flow-pet{0%,31%,85%,100%{border-color:#e6eaf0;background:#fff}33%,82%{border-color:#1355b2;background:#f0f6ff}}@keyframes bm-flow-time{0%,49%,85%,100%{border-color:#e5eaf0;background:#fff;color:#5a6b80}51%,82%{border-color:#1355b2;background:#e9f2ff;color:#1355b2}}@keyframes bm-flow-check{0%,13%,85%,100%{opacity:0}15%,82%{opacity:1}}@keyframes bm-flow-check-pet{0%,31%,85%,100%{opacity:0}33%,82%{opacity:1}}@keyframes bm-flow-result{0%,51%,85%,100%{opacity:0}53%,82%{opacity:1}}@keyframes bm-flow-heading{0%,51%,85%,100%{opacity:1}53%,82%{opacity:0}}@keyframes bm-flow-placeholder{0%,51%,85%,100%{opacity:1}53%,82%{opacity:0}}@keyframes bm-flow-action{0%,51%,85%,100%{opacity:.4}53%,82%{opacity:1}}@keyframes bm-flow-edit{0%,68%,85%,100%{opacity:0}70%,82%{opacity:1}}
@keyframes bm-tab-en{0%,27%,75%,100%{background:#fff;color:#1355b2;box-shadow:0 1px 3px #17263d22}29%,73%{background:transparent;color:#78899e;box-shadow:none}}@keyframes bm-tab-zh{0%,27%,75%,100%{background:transparent;color:#78899e;box-shadow:none}29%,73%{background:#fff;color:#1355b2;box-shadow:0 1px 3px #17263d22}}@keyframes bm-lang-en{0%,27%,75%,100%{opacity:1}29%,73%{opacity:0}}@keyframes bm-lang-zh{0%,27%,75%,100%{opacity:0}29%,73%{opacity:1}}
@keyframes bm-one{0%,27%,84%,100%{opacity:1}29%,82%{opacity:0}}@keyframes bm-two{0%,27%,84%,100%{opacity:0}29%,82%{opacity:1}}@keyframes bm-line-add{0%,27%,84%,100%{min-height:0;max-height:0;opacity:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0;transform:translateY(5px)}32%,80%{min-height:57px;max-height:57px;opacity:1;margin-bottom:7px;padding-top:7px;padding-bottom:7px;border-width:1px;transform:translateY(0)}}@keyframes bm-remove-show{0%,67%,84%,100%{opacity:0}69%,82%{opacity:1}}
@keyframes bm-option-on{0%,32%,78%,100%{border-color:#bcc9d8;background:#fff;color:transparent}34%,76%{border-color:#1355b2;background:#1355b2;color:#fff}}@keyframes bm-charge{0%,32%,78%,100%{max-height:0;margin-top:0;opacity:0}36%,74%{max-height:20px;margin-top:11px;opacity:1}}@keyframes bm-total-base{0%,32%,78%,100%{opacity:1}34%,76%{opacity:0}}@keyframes bm-total-added{0%,32%,78%,100%{opacity:0}34%,76%{opacity:1}}
@keyframes bm-pay-full{0%,30%,76%,100%{border-color:#1355b2;background:#f1f6ff}32%,74%{border-color:#e2e8f0;background:#fff}}@keyframes bm-pay-deposit{0%,30%,76%,100%{border-color:#e2e8f0;background:#fff}32%,74%{border-color:#1355b2;background:#f1f6ff}}@keyframes bm-radio-full{0%,30%,76%,100%{border:4px solid #1355b2}32%,74%{border:1.5px solid #b7c3d1}}@keyframes bm-radio-deposit{0%,30%,76%,100%{border:1.5px solid #b7c3d1}32%,74%{border:4px solid #1355b2}}@keyframes bm-due-full{0%,30%,76%,100%{opacity:1}32%,74%{opacity:0}}@keyframes bm-due-deposit{0%,30%,76%,100%{opacity:0}32%,74%{opacity:1}}
@keyframes bm-slot-block{0%,30%,78%,100%{background:#fff}32%,76%{background:#f3f4f6}}@keyframes bm-slot-open-label{0%,30%,78%,100%{opacity:1}32%,76%{opacity:0}}@keyframes bm-slot-block-label{0%,30%,78%,100%{opacity:0}32%,76%{opacity:1;color:#9b647b}}@keyframes bm-public-slot{0%,30%,78%,100%{opacity:1}32%,76%{opacity:0}}@keyframes bm-available-copy{0%,30%,78%,100%{opacity:1}32%,76%{opacity:0}}@keyframes bm-blocked-copy{0%,30%,78%,100%{opacity:0}32%,76%{opacity:1}}@keyframes bm-block-action{0%,30%,78%,100%{opacity:1}32%,76%{opacity:0}}@keyframes bm-unblock-action{0%,30%,78%,100%{opacity:0}32%,76%{opacity:1}}

/* Each path stops at a real control. Its final position and visual state match frame one. */
@keyframes bm-cursor-flow{0%,11%,100%{left:28%;top:38%;transform:scale(1)}14.5%{left:28%;top:38%;transform:scale(1)}15%{left:28%;top:38%;transform:scale(.84)}16%,29%{left:28%;top:38%;transform:scale(1)}32.5%{left:25%;top:61%;transform:scale(1)}33%{left:25%;top:61%;transform:scale(.84)}34%,47%{left:25%;top:61%;transform:scale(1)}50.5%{left:31%;top:88%;transform:scale(1)}51%{left:31%;top:88%;transform:scale(.84)}52%,79%{left:31%;top:88%;transform:scale(1)}82.5%{left:66%;top:90%;transform:scale(1)}83%{left:66%;top:90%;transform:scale(.84)}84%,87%{left:66%;top:90%;transform:scale(1)}91%,100%{left:28%;top:38%;transform:scale(1)}}
@keyframes bm-cursor-language{0%,26%,100%{left:81%;top:20%;transform:scale(1)}28.5%{left:89%;top:20%;transform:scale(1)}29%{left:89%;top:20%;transform:scale(.84)}30%,72%{left:89%;top:20%;transform:scale(1)}74.5%{left:81%;top:20%;transform:scale(1)}75%{left:81%;top:20%;transform:scale(.84)}76%{left:81%;top:20%;transform:scale(1)}}
@keyframes bm-cursor-multiline{0%,25%,100%{left:27%;top:69%;transform:scale(1)}28.5%{left:27%;top:69%;transform:scale(1)}29%{left:27%;top:69%;transform:scale(.84)}30%,79%{left:27%;top:69%;transform:scale(1)}82.5%{left:91%;top:50%;transform:scale(1)}83%{left:91%;top:50%;transform:scale(.84)}84%,87%{left:91%;top:50%;transform:scale(1)}91%,100%{left:27%;top:69%;transform:scale(1)}}
@keyframes bm-cursor-pricing{0%,33%,100%{left:19%;top:54%;transform:scale(1)}34%{left:19%;top:54%;transform:scale(.84)}35%,74%{left:19%;top:54%;transform:scale(1)}75%{left:19%;top:54%;transform:scale(.84)}76%{left:19%;top:54%;transform:scale(1)}}
@keyframes bm-cursor-payment{0%,28%,100%{left:var(--bm-payment-cursor-x,18%);top:36%;transform:scale(1)}31.5%{left:var(--bm-payment-cursor-x,18%);top:58%;transform:scale(1)}32%{left:var(--bm-payment-cursor-x,18%);top:58%;transform:scale(.84)}33%,71%{left:var(--bm-payment-cursor-x,18%);top:58%;transform:scale(1)}74.5%{left:var(--bm-payment-cursor-x,18%);top:36%;transform:scale(1)}75%{left:var(--bm-payment-cursor-x,18%);top:36%;transform:scale(.84)}76%{left:var(--bm-payment-cursor-x,18%);top:36%;transform:scale(1)}}
@keyframes bm-cursor-availability{0%,31%,100%{left:20%;top:90%;transform:scale(1)}32%{left:20%;top:90%;transform:scale(.84)}33%,76%{left:20%;top:90%;transform:scale(1)}77%{left:20%;top:90%;transform:scale(.84)}78%,100%{left:20%;top:90%;transform:scale(1)}}

/* Fill each card's visual area; the screenshot review showed too much empty space above a tiny UI. */
.bm-flow-choices{display:flex;flex-direction:column;justify-content:space-between;padding:13px 14px}
.bm-flow-choices>small:not(:first-child){margin-top:3px}
.bm-choice{height:42px}
.bm-times span{padding:7px 6px}
.bm-flow-summary{padding:17px 14px}
.bm-flow-summary>b{font-size:14px}
.bm-summary-placeholder,.bm-summary-details{font-size:8px}
.bm-flow-choices>small{font-size:8px}
.bm-choice b{font-size:10px}
.bm-choice em,.bm-times span{font-size:8px}
.bm-summary-details strong,.bm-summary-action,.bm-edit{font-size:8px}
.bm-summary-action{position:absolute;bottom:32px;left:14px}
.bm-edit{left:14px;bottom:12px}
.bm-language-card{height:calc(100% - 24px)}
.bm-language-copy{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:12px 15px}
.bm-copy-en,.bm-copy-zh{height:75px}
.bm-copy-en strong,.bm-copy-zh strong{font-size:16px}
.bm-copy-en p,.bm-copy-zh p{font-size:8px}
.bm-copy-zh{left:15px;top:calc(50% - 33px);bottom:auto}
.bm-meta{font-size:8px}
.bm-service-overline,.bm-language-copy>small,.bm-language-tabs span{font-size:8px}
.bm-multiline{display:flex;flex-direction:column;padding:16px 15px 12px;background:#fff}
.bm-multiline .bm-topline{margin-bottom:13px}
.bm-primary{min-height:72px;margin-bottom:0}
.bm-primary .bm-avatar,.bm-secondary .bm-avatar{width:34px;height:34px;font-size:13px}
.bm-primary strong,.bm-secondary strong{font-size:11px}
.bm-primary em,.bm-secondary em{font-size:8px}
.bm-service-slot{position:relative;flex:1;min-height:90px;margin-top:10px}
.bm-add-zone,.bm-service-slot .bm-secondary{position:absolute;inset:0;width:100%;height:100%;border-radius:9px}
.bm-add-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #bccde2;background:#f6f9fd;color:#3569a8;animation:bm-add-zone 6s steps(1,end) infinite}
.bm-add-zone>span{width:27px;height:27px;display:grid;place-items:center;margin-bottom:6px;border-radius:50%;background:#e8f1fc;font-size:17px}
.bm-add-zone strong{font-size:10px}.bm-add-zone small{margin-top:3px;color:#8291a4;font-size:7px}
.bm-service-slot .bm-secondary{min-height:0;max-height:none;display:flex;align-items:center;margin:0;padding:11px;border-width:1px;opacity:0;transform:translateY(7px);animation:bm-service-added 6s ease-in-out infinite}
.bm-line-footer{min-height:18px;align-items:end;margin-top:8px;color:#72849b;font-size:7px}
.bm-pricing{background:#fff}
.bm-pricing-main{display:flex;flex-direction:column;justify-content:space-between;padding:18px 14px}
.bm-price-base,.bm-price-option,.bm-price-muted{min-height:52px;font-size:9px}
.bm-price-base b,.bm-price-option b{font-size:9px}
.bm-price-base small,.bm-price-option small,.bm-price-muted{font-size:8px}
.bm-receipt{display:flex;flex-direction:column;padding:19px 13px}
.bm-receipt>div{font-size:8px}
.bm-receipt>strong{margin-top:auto;font-size:12px}
.bm-payment{display:flex;flex-direction:column;padding:14px;background:#fff}
.bm-payment-intro{margin:5px 0 9px;font-size:13px}
.bm-pay-choice{min-height:47px;margin-bottom:6px;padding:7px 11px;background:#fff}
.bm-pay-choice strong,.bm-pay-choice>b{font-size:9px}
.bm-pay-choice small{font-size:8px}
.bm-payment-due{margin-top:auto;min-height:40px}
.bm-payment-due strong{font-size:17px}
.bm-pay-note{margin-top:3px}
.bm-availability{padding:17px 14px 12px;background:#fff}
.bm-availability .bm-topline{margin-bottom:12px}
.bm-availability-body{height:calc(100% - 72px);gap:9px}
.bm-admin-calendar{display:flex;flex-direction:column}
.bm-day-heading{min-height:28px;align-items:center}
.bm-slot{flex:1;min-height:30px}
.bm-availability-side{padding:11px}
.bm-availability-side>b{margin:7px 0 12px;font-size:11px}
.bm-availability-side>div span{padding:7px 5px}
.bm-slot,.bm-slot b,.bm-availability-side>div span,.bm-day-heading,.bm-availability-side p{font-size:8px}
.bm-block-action,.bm-unblock-action{left:14px;bottom:12px;padding:7px 10px}
@keyframes bm-add-zone{0%,27%,86%,100%{opacity:1}32%,83%{opacity:0}}
@keyframes bm-service-added{0%,27%,86%,100%{opacity:0;transform:translateY(7px)}32%,83%{opacity:1;transform:translateY(0)}}

@media(max-width:620px){.module-section#module-02 .moment-grid{grid-auto-rows:410px}.highlights .moment-card{min-height:410px}.bm-scene{font-size:10px}.bm-flow-content{grid-template-columns:59% 41%}.bm-flow-choices{padding:6px 10px}.bm-flow-choices>small:not(:first-child){margin-top:4px}.bm-choice{height:31px}.bm-times span{padding:4px 3px}}
@media(prefers-reduced-motion:reduce){.bm-scene *{animation:none!important}.bm-cursor{display:none}.bm-secondary,.bm-summary-details,.bm-copy-zh,.bm-added-charge,.bm-total-added,.bm-count-two,.bm-remove,.bm-edit{display:none!important}.bm-summary-placeholder,.bm-copy-en,.bm-total-base,.bm-count-one{opacity:1!important}}

/* Give short interactions a shorter loop; the multi-step booking flow has more time. */
.bm-flow{--bm-cycle:5.7s}.bm-language{--bm-cycle:3.7s}.bm-multiline{--bm-cycle:4.8s}
.bm-pricing{--bm-cycle:3.1s}.bm-payment{--bm-cycle:3.8s}.bm-availability{--bm-cycle:4s}
.bm-stage *{animation-duration:var(--bm-cycle)!important}
.bm-cursor{animation-timing-function:cubic-bezier(.35,0,.2,1)!important}
