/* Project-owned TOP shortcut. Keep below navigation, drawers and popups. */
.site-top-button {
    --site-top-size: min(var(--site-top-desktop-size, 56px), calc(100vw - 16px), calc(100dvh - 16px));
    --site-top-offset-x: var(--site-top-desktop-offset-x, 24px);
    --site-top-offset-bottom: var(--site-top-desktop-offset-bottom, 56px);
    --site-top-avoidance: 0px;
    position: fixed;
    z-index: 38;
    right: max(env(safe-area-inset-right, 0px), min(var(--site-top-offset-x), calc(100vw - var(--site-top-size) - env(safe-area-inset-left, 0px))));
    bottom: max(
        env(safe-area-inset-bottom, 0px),
        min(
            calc(max(env(safe-area-inset-bottom, 0px), var(--site-top-offset-bottom)) + var(--site-top-avoidance)),
            calc(100dvh - var(--site-top-size) - env(safe-area-inset-top, 0px))
        )
    );
    left: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    box-sizing: border-box;
    width: var(--site-top-size);
    height: var(--site-top-size);
    margin: 0;
    /* Keep the compact 32px button readable; 44px and larger retain 5px padding. */
    padding: clamp(2px, calc((var(--site-top-size) - 32px) / 4 + 2px), 5px);
    overflow: hidden;
    border: var(--site-top-border-width, 1px) solid var(--site-top-border-color, #315e4a);
    border-radius: 50%;
    background: var(--site-top-background, #315e4a);
    box-shadow: 0 3px 14px #0000001a;
    color: var(--site-top-color, #fff);
    font-family: inherit;
    font-size: clamp(10px, calc(var(--site-top-size) * .22), 18px);
    font-weight: 600;
    line-height: 1.15;
    text-align: center;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: filter .15s ease, box-shadow .15s ease;
}
.site-top-button[hidden] { display: none !important; }
.site-top-button[data-top-desktop-enabled="false"] { display: none; }
.site-top-button[data-top-desktop-side="left"] {
    right: auto;
    left: max(env(safe-area-inset-left, 0px), min(var(--site-top-offset-x), calc(100vw - var(--site-top-size) - env(safe-area-inset-right, 0px))));
}
.site-top-button[data-top-shape="rounded"] { border-radius: 22%; }
.site-top-button[data-top-shape="square"] { border-radius: 0; }
.site-top-button[data-top-shape="text"],
.site-top-button[data-top-mode="image"] {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.site-top-button-label { display: block; max-width: 100%; overflow-wrap: anywhere; }
.site-top-button-arrow { display: block; flex: 0 0 auto; width: 35%; height: 30%; }
.site-top-button img { display: block; width: 100%; height: 100%; object-fit: contain; }
.site-top-button:focus-visible { outline: 3px solid var(--site-top-color, #fff); outline-offset: 3px; box-shadow: 0 0 0 6px var(--site-top-background, #315e4a); }
body.room-rate-drawer-open .site-top-button { visibility: hidden; }

@media (hover: hover) {
    .site-top-button:hover { filter: brightness(1.08); }
}
@media (max-width: 600px) {
    .site-top-button {
        --site-top-size: min(var(--site-top-mobile-size, 32px), calc(100vw - 16px), calc(100dvh - 16px));
        --site-top-offset-x: var(--site-top-mobile-offset-x, 15px);
        --site-top-offset-bottom: var(--site-top-mobile-offset-bottom, 30px);
    }
    .site-top-button[data-top-desktop-enabled="false"] { display: flex; }
    .site-top-button[data-top-mobile-enabled="false"] { display: none; }
    .site-top-button[data-top-mobile-side="right"] {
        left: auto;
        right: max(env(safe-area-inset-right, 0px), min(var(--site-top-offset-x), calc(100vw - var(--site-top-size) - env(safe-area-inset-left, 0px))));
    }
    .site-top-button[data-top-mobile-side="left"] {
        right: auto;
        left: max(env(safe-area-inset-left, 0px), min(var(--site-top-offset-x), calc(100vw - var(--site-top-size) - env(safe-area-inset-right, 0px))));
    }
}
@media (prefers-reduced-motion: reduce) {
    .site-top-button { transition: none; }
}
