.topj-contact-fab, .topj-contact-sheet {
    --topj-contact-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    position: fixed;
    right: 16px;
    z-index: 100;
    font-family: inherit;
    line-height: 1.5;
}
.topj-contact-fab {
    bottom: var(--topj-contact-bottom);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #202020;
    border-radius: 999px;
    background: #202020;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: .02em;
    box-shadow: 0 3px 12px #00000014;
    cursor: pointer;
}
.topj-contact-fab:hover, .topj-contact-fab:focus { background: #363636; color: #fff; }
.topj-contact-sheet {
    bottom: calc(var(--topj-contact-bottom) + 52px);
    width: min(300px, calc(100% - 32px));
    max-height: calc(100dvh - var(--topj-contact-bottom) - 68px);
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid #e6e2dc;
    border-radius: 10px;
    background: #fffefa;
    color: #242424;
    box-shadow: 0 8px 30px #00000012;
}
.topj-contact-sheet[hidden], body.drawer-open .topj-contact-fab, body.drawer-open .topj-contact-sheet,
body.mobile-toggled .topj-contact-fab, body.mobile-toggled .topj-contact-sheet { display: none !important; }
.topj-contact-sheet__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 16px 12px 0 16px; }
.topj-contact-sheet .topj-contact-sheet__eyebrow { margin: 0 0 5px; color: #716b63; font-size: 10px; font-weight: 500; letter-spacing: .16em; }
.topj-contact-sheet .topj-contact-sheet__title { margin: 0; color: #242424; font-size: 20px; font-weight: 500; line-height: 1.3; letter-spacing: -.02em; }
.topj-contact-sheet .topj-contact-xbtn { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin: -8px -4px 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #59534b; font: 26px/1 Arial, sans-serif; cursor: pointer; box-shadow: none; }
.topj-contact-sheet .topj-contact-xbtn:hover { background: #efede7; color: #242424; }
.topj-contact-sheet__body { padding: 10px 16px 16px; }
.topj-contact-sheet .topj-contact-intro { margin: 0 0 14px; font-size: 13px; line-height: 1.65; color: #68625b; }
.topj-contact-sheet .topj-contact-btn { box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: 10px 12px; border: 1px solid #242424; border-radius: 6px; background: #242424; color: #fff; font-size: 13px; font-weight: 500; text-decoration: none; }
.topj-contact-sheet .topj-contact-btn:hover { background: #3c3c3c; color: #fff; }
.topj-contact-sheet .topj-contact-address { margin: 10px 0 0; font-size: 12px; color: #59534b; overflow-wrap: anywhere; user-select: text; }
.topj-contact-sheet .topj-contact-note { margin: 6px 0 0; color: #716b63; font-size: 12px; }
.topj-contact-fab:focus-visible, .topj-contact-sheet a:focus-visible, .topj-contact-sheet button:focus-visible { outline: 2px solid #806342; outline-offset: 3px; }
@media (max-width: 768px) {
    .topj-contact-fab, .topj-contact-sheet { --topj-contact-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); right: 10px; }
    .topj-contact-fab { min-height: 36px; padding: 6px 10px; gap: 5px; font-size: 12px; letter-spacing: 0; }
    .topj-contact-fab svg { width: 14px; height: 14px; }
    .topj-contact-sheet { bottom: calc(var(--topj-contact-bottom) + 44px); width: min(260px, calc(100% - 20px)); }
    .topj-contact-sheet__head { padding: 12px 10px 0 14px; }
    .topj-contact-sheet .topj-contact-sheet__title { font-size: 18px; }
    .topj-contact-sheet__body { padding: 8px 14px 14px; }
    .topj-contact-sheet .topj-contact-intro { margin-bottom: 10px; font-size: 12px; }
}


