.tn-save-node {
    display: inline-flex;
    margin: 0;
}

.tn-save-node button,
.tn-save-node__login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid #d9e1ef;
    border-radius: 10px;
    background: #fff;
    color: #17213d;
    text-decoration: none;
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(20, 32, 70, .08);
}

.tn-save-node button:hover,
.tn-save-node__login:hover {
    border-color: #315cff;
    color: #315cff;
}

.tn-save-node button.is-saved {
    border-color: #315cff;
    background: #edf2ff;
    color: #315cff;
}

.tn-save-node button.has-error,
.tn-save-card button.has-error,
button.tn-save-card.has-error {
    border-color: #dc2626;
    color: #dc2626;
}

.tn-node-save-notice {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1000;
    border-radius: 11px;
    background: #17213d;
    color: #fff;
    padding: 13px 17px;
    font-weight: 800;
    box-shadow: 0 16px 35px rgba(10, 20, 50, .28);
}

.tn-place-actions .tn-save-node button,
.tn-place-actions .tn-save-node__login {
    height: 46px;
    padding: 0 22px;
    border: 0;
    border-radius: 12px;
}

.tn-place-actions .tn-save-node i,
.tn-place-actions .tn-save-node__login i {
    color: #315cff;
}

.tn-node-detail-actions {
    position: absolute !important;
    top: 24px;
    right: 24px;
    z-index: 4;
}

.tn-node-business-hero .tn-node-status-card {
    margin-top: 54px;
}

.tn-save-card {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 3;
    margin: 0;
}

.tn-save-card button,
.tn-save-card__login,
button.tn-save-card {
    width: 38px;
    height: 38px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .95);
    color: #315cff;
    box-shadow: 0 8px 18px rgba(12, 25, 60, .2);
    cursor: pointer;
    text-decoration: none;
}

.tn-save-card button.is-saved,
button.tn-save-card.is-saved {
    background: #315cff;
    color: #fff;
}

.tn-card-content-link {
    color: inherit;
    text-decoration: none;
}

.tn-section-place-card,
.tn-guides-card,
.tn-guides-feature,
.tn-guides-essential-card,
.tn-directory-business-card,
.tn-directory-recent-card,
.tn-place-collection-card,
.tn-things-category-place-card {
    position: relative;
}

.tn-section-place-card > .tn-card-content-link,
.tn-guides-card > .tn-card-content-link,
.tn-guides-feature > .tn-card-content-link,
.tn-guides-essential-card > .tn-card-content-link,
.tn-directory-business-card > .tn-card-content-link,
.tn-directory-recent-card > .tn-card-content-link,
.tn-place-collection-card > .tn-card-content-link,
.tn-things-category-place-card > .tn-card-content-link {
    display: contents;
}

.tn-category-result-meta .tn-save-card,
.tn-search-best-body > .tn-save-card,
.tn-search-result-card > .tn-save-card {
    position: static;
    align-self: start;
}

@media (max-width: 680px) {
    .tn-node-detail-actions {
        top: 16px;
        right: 16px;
    }

    .tn-node-business-hero {
        padding-top: 82px;
    }

    .tn-node-business-hero .tn-node-status-card {
        margin-top: 0;
    }
}
