.ths-cta-rail {
    position: fixed;
    z-index: 9999;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    line-height: 1;
}

.ths-cta-rail--right {
    right: 14px;
    left: auto;
}

.ths-cta-rail--left {
    left: 14px;
    right: auto;
}

.ths-cta-rail__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: auto;
    pointer-events: auto;
    margin: 0;
    padding: 0;
}

.ths-cta-rail__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 52px;
    min-width: 52px;
    max-width: 52px;
    height: 52px;
    min-height: 52px;
    max-height: 52px;
    padding: 0;
    margin: 0;
    text-decoration: none;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden;
    box-sizing: border-box;
    line-height: 1;
}

.ths-cta-rail__item:hover,
.ths-cta-rail__item:focus {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
    text-decoration: none;
}

.ths-cta-rail__icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
    width: 26px;
    min-width: 26px;
    max-width: 26px;
    height: 26px;
    min-height: 26px;
    max-height: 26px;
    padding: 0;
    margin: 0;
    line-height: 1;
    overflow: hidden;
}

.ths-cta-rail__icon {
    display: block;
    flex: 0 0 26px;
    width: 26px !important;
    min-width: 26px !important;
    max-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    object-fit: contain;
    object-position: center;
    background: transparent !important;
}

.ths-cta-rail--sm .ths-cta-rail__item {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    border-radius: 14px;
}

.ths-cta-rail--sm .ths-cta-rail__icon-wrap {
    flex-basis: 22px;
    width: 22px;
    min-width: 22px;
    max-width: 22px;
    height: 22px;
    min-height: 22px;
    max-height: 22px;
}

.ths-cta-rail--sm .ths-cta-rail__icon {
    flex-basis: 22px;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
}

.ths-cta-rail--md .ths-cta-rail__item {
    width: 52px;
    min-width: 52px;
    max-width: 52px;
    height: 52px;
    min-height: 52px;
    max-height: 52px;
    border-radius: 16px;
}

.ths-cta-rail--lg .ths-cta-rail__item {
    width: 58px;
    min-width: 58px;
    max-width: 58px;
    height: 58px;
    min-height: 58px;
    max-height: 58px;
    border-radius: 18px;
}

.ths-cta-rail--lg .ths-cta-rail__icon-wrap {
    flex-basis: 28px;
    width: 28px;
    min-width: 28px;
    max-width: 28px;
    height: 28px;
    min-height: 28px;
    max-height: 28px;
}

.ths-cta-rail--lg .ths-cta-rail__icon {
    flex-basis: 28px;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
}

.ths-cta-rail--shortcode-test {
    z-index: 10040;
}

@media (max-width: 849px) {
    .ths-cta-rail {
        top: auto;
        bottom: 88px;
        transform: none;
    }

    .ths-cta-rail--right {
        right: 10px;
        left: auto;
    }

    .ths-cta-rail--left {
        left: 10px;
        right: auto;
    }

    .ths-cta-rail__inner {
        gap: 8px;
    }

    .ths-cta-rail__item {
        width: 48px;
        min-width: 48px;
        max-width: 48px;
        height: 48px;
        min-height: 48px;
        max-height: 48px;
        border-radius: 14px;
    }

    .ths-cta-rail__icon-wrap {
        flex-basis: 24px;
        width: 24px;
        min-width: 24px;
        max-width: 24px;
        height: 24px;
        min-height: 24px;
        max-height: 24px;
    }

    .ths-cta-rail__icon {
        flex-basis: 24px;
        width: 24px !important;
        min-width: 24px !important;
        max-width: 24px !important;
        height: 24px !important;
        min-height: 24px !important;
        max-height: 24px !important;
    }
}


.ths-cta-rail-wrap{display:contents}
.ths-cta-rail__wechatModal[hidden]{display:none!important}
.ths-cta-rail__wechatModal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px}
.ths-cta-rail__wechatBackdrop{position:absolute;inset:0;background:rgba(34,20,10,.42);backdrop-filter:blur(8px)}
.ths-cta-rail__wechatDialog{position:relative;width:min(92vw,680px);max-height:min(90vh,960px);overflow:auto;border-radius:32px;background:linear-gradient(180deg,#fffdfa 0%,#fffaf5 100%);border:1px solid rgba(106,74,47,.10);box-shadow:0 24px 70px rgba(47,31,18,.18)}
.ths-cta-rail__wechatClose{position:absolute;top:16px;right:16px;width:42px;height:42px;border:0;border-radius:999px;background:#f5eee6;color:#6d594b;font-size:28px;line-height:1;cursor:pointer;z-index:2}
.ths-cta-rail__wechatHead{padding:26px 30px 10px;text-align:center}
.ths-cta-rail__wechatEyebrow{display:block;margin:0 0 8px;color:#b78645;font-size:12px;font-weight:800;letter-spacing:.20em;text-transform:uppercase}
.ths-cta-rail__wechatTitle{margin:0;color:#17324d;font-size:clamp(30px,3vw,46px);line-height:1.06;font-weight:900;letter-spacing:-.03em}
.ths-cta-rail__wechatDesc{max-width:520px;margin:12px auto 0;color:#7a6b5f;font-size:15px;line-height:1.75;font-weight:700}
.ths-cta-rail__wechatBody{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,240px);gap:18px;align-items:start;padding:14px 30px 0}
.ths-cta-rail__wechatModal:not(.has-qr) .ths-cta-rail__wechatBody{grid-template-columns:minmax(0,1fr)}
.ths-cta-rail__wechatInfo{min-height:160px;padding:22px 24px;border-radius:24px;background:linear-gradient(180deg,#f4eee7 0%,#f0e8de 100%);border:1px solid rgba(106,74,47,.08)}
.ths-cta-rail__wechatInfoLabel,.ths-cta-rail__wechatQrLabel{display:block;margin:0 0 10px;color:#8b7b6f;font-size:13px;line-height:1.4;font-weight:800}
.ths-cta-rail__wechatInfoValue{display:block;color:#17324d;font-size:clamp(26px,2.6vw,34px);line-height:1.15;font-weight:900;letter-spacing:-.02em;word-break:break-word}
.ths-cta-rail__wechatQrWrap{padding:18px;border-radius:24px;background:#fff;border:1px solid rgba(106,74,47,.08);box-shadow:0 12px 26px rgba(58,36,18,.06);text-align:center}
.ths-cta-rail__wechatImage{display:block;width:min(100%,180px);aspect-ratio:1 / 1;height:auto;margin:0 auto;border-radius:18px;background:#fff;object-fit:contain}
.ths-cta-rail__wechatActions{display:flex;align-items:center;justify-content:center;gap:12px;padding:22px 30px 30px;flex-wrap:wrap}
.ths-cta-rail__wechatBtn{display:inline-flex;align-items:center;justify-content:center;min-width:170px;min-height:52px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-size:15px;line-height:1;font-weight:900;letter-spacing:.01em;text-decoration:none!important;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease}
.ths-cta-rail__wechatBtn:hover{transform:translateY(-2px)}
.ths-cta-rail__wechatBtn--primary{color:#fff!important;background:linear-gradient(180deg,#f85b4c 0%, #ef4739 100%)!important;box-shadow:0 14px 28px rgba(228,68,50,.18)}
.ths-cta-rail__wechatBtn--ghost{color:#17324d!important;background:#fff!important;border-color:rgba(106,74,47,.12)!important;box-shadow:0 10px 22px rgba(58,36,18,.05)}
.ths-cta-rail__wechatToast{margin:0 auto 24px;width:max-content;max-width:calc(100% - 40px);text-align:center;color:#11845b;font-size:13px;font-weight:800;opacity:0;transform:translateY(4px);transition:all .18s ease}
.ths-cta-rail__wechatToast.is-visible{opacity:1;transform:translateY(0)}
html.ths-cta-wechat-open,html.ths-cta-wechat-open body{overflow:hidden}
@media (max-width: 900px){.ths-cta-rail__wechatModal{padding:16px}.ths-cta-rail__wechatDialog{width:min(92vw,560px);border-radius:28px}.ths-cta-rail__wechatHead{padding:22px 18px 10px}.ths-cta-rail__wechatBody{grid-template-columns:1fr;padding:14px 18px 0}.ths-cta-rail__wechatQrWrap{max-width:220px;margin:0 auto}.ths-cta-rail__wechatActions{padding:22px 18px 24px;display:grid;grid-template-columns:1fr}.ths-cta-rail__wechatBtn{width:100%;min-width:0}}

/* PHASE 1 MOBILE PATCH */
@media(max-width:768px){
  .booking-layout{display:flex!important;flex-direction:column!important;}
  .booking-right{position:relative!important;top:auto!important;}
  .summary-footer{position:fixed;bottom:0;left:0;right:0;background:#fff;z-index:999;padding:12px;}
  .service-chip{font-size:16px!important;padding:10px 14px!important;margin:4px;}
}
