.promo-banner{max-width:1440px;margin:20px auto 0;padding:26px 32px;border-radius:24px;background:linear-gradient(115deg,#e9f6ff,#e9faf2);border:1px solid #d6e9f7;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#123953;font-family:Arial,sans-serif}
.promo-banner h1{font-size:clamp(24px,3vw,36px);line-height:1.14;letter-spacing:-.8px;margin:8px 0 10px}
.promo-banner p{font-size:15px;line-height:1.5;margin:6px 0;max-width:760px}
.promo-label{display:inline-block;padding:5px 10px;border-radius:8px;background:#155fe8;color:white;font-size:13px;font-weight:700}
.promo-banner del{color:#687d8c;font-size:.6em;font-weight:400;white-space:nowrap}
.promo-timer{flex:0 0 auto;text-align:center;padding:16px 22px;border-radius:16px;background:#ffffffb8;min-width:190px}
.promo-timer span,.promo-timer small{display:block;font-size:13px;line-height:1.5}
#promo-countdown{display:block;font-size:36px;font-weight:750;letter-spacing:1px;font-variant-numeric:tabular-nums;margin:4px 0;color:#155fe8}
.promo-small{font-size:12px!important;color:#526c7d}
.promo-price{display:flex;flex-direction:column;gap:2px;white-space:nowrap}
.promo-price del{font-size:12px;font-weight:400;color:#728599}
.promo-price strong{font-size:16px;color:#1261e9}
.promo-status{font:16px/1.55 Arial,sans-serif;max-width:800px;margin:36px auto;padding:30px;background:#f4f8ff;border:1px solid #d5e5f8;border-radius:24px;color:#17364c}
.promo-status h2{font-size:28px;line-height:1.2;margin:0 0 14px}
.promo-status [data-summary]{background:white;border-radius:12px;padding:16px;line-height:1.8}
.promo-status [data-order]{display:block;font-size:12px;overflow-wrap:anywhere;color:#526c7d;margin:18px 0}
.promo-status a{color:#155fe8;display:inline-block;margin:8px 20px 8px 0}
.promo-status [data-resume]{background:#111;color:white;text-decoration:none;border-radius:12px;padding:12px 20px}
.promo-show-status #root{display:none}
#promo-last-order{color:#155fe8;display:block;font-size:14px;margin-top:12px}
[hidden]{display:none!important}
.promo-terms{max-width:1380px;margin:20px auto 40px;padding:0 24px;font:13px/1.6 Arial,sans-serif;color:#526c7d}
.promo-banner,.promo-status,.promo-terms{font-family:inherit}
@media(max-width:760px){
 .promo-banner{margin:12px 12px 0;padding:20px;border-radius:20px;display:block}
 .promo-banner h1{font-size:29px}.promo-banner p{font-size:14px}
 .promo-timer{margin-top:16px;padding:12px}
 #promo-countdown{font-size:32px;line-height:1.2}
 .promo-status{margin:18px 12px;padding:22px}.promo-status h2{font-size:24px}
 .promo-price strong{font-size:14px}.promo-price del{font-size:11px}
 .promo-terms{padding:0 20px}
}

/* A persistent offer strip, outside React so every shared app update inherits it. */
:root{--promo-sticky-height:76px}
/* Keep the selected appointment and its online total visually separate. */
body:has(.promo-sticky-offer) .modal-summary + form{margin-top:12px}
.promo-sticky-offer{position:fixed;z-index:100;inset:auto 0 0;box-sizing:border-box;padding:10px 24px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid #cbdff3;background:#fff;box-shadow:0 -5px 22px #23496814;color:#123953;font-family:inherit}
.promo-sticky-inner{max-width:1380px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
.promo-sticky-price,.promo-sticky-clock{display:flex;flex-direction:column;gap:3px;min-width:0}
.promo-sticky-price>span,.promo-sticky-clock>span{font-size:12px;line-height:1.3;color:#526c7d}
.promo-sticky-price strong{font-size:22px;line-height:1.15;white-space:nowrap;color:#175a40}
.promo-sticky-price del{margin-left:5px;font-size:13px;font-weight:400;color:#728599}
.promo-sticky-clock{text-align:right}
.promo-sticky-clock time{font-size:26px;line-height:1.15;letter-spacing:.5px;font-weight:750;font-variant-numeric:tabular-nums;color:#155fe8;white-space:nowrap}
.promo-sticky-clock time.is-fallback{font-size:18px}
body:has(.promo-sticky-offer){padding-bottom:calc(var(--promo-sticky-height) + 16px)}
html:has(.promo-sticky-offer){scroll-padding-bottom:calc(var(--promo-sticky-height) + 16px)}
body:has(.promo-sticky-offer) .modal-backdrop,
body:has(.promo-sticky-offer) .map-dialog-layer,
body:has(.promo-sticky-offer) .doctor-drawer-layer{bottom:var(--promo-sticky-height)}
body:has(.promo-sticky-offer) .modal{max-height:calc(100dvh - var(--promo-sticky-height) - 32px)}
body:has(.promo-sticky-offer) .map-dialog{max-height:calc(100dvh - var(--promo-sticky-height) - 40px)}
body:has(.promo-sticky-offer) .doctor-drawer{height:calc(100dvh - var(--promo-sticky-height))}
@media(min-width:761px){
 body:has(.promo-sticky-offer) .slot-panel{max-height:calc(100dvh - var(--promo-sticky-height) - 24px)}
}
@media(max-width:760px){
 .promo-sticky-offer{padding:9px 14px calc(9px + env(safe-area-inset-bottom,0px))}
 .promo-sticky-inner{gap:10px}
 .promo-sticky-price strong{font-size:20px}
 .promo-sticky-price del{font-size:11px;margin-left:3px}
 .promo-sticky-clock time{font-size:24px}
 .promo-sticky-clock time.is-fallback{font-size:16px}
}
