site-header {
    display: block;
}

.zoom-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1rem;
    border-radius: 9999px;
    background: #0b5cff;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: none;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(11, 92, 255, 0.35);
    transition: background 0.2s;
}

.zoom-btn:hover {
    background: #0a4fe0;
}

.zoom-btn[hidden] {
    display: none;
}

.zoom-btn__icon {
    width: 1.25em;
    height: 1.25em;
}

.zoom-btn--floating {
    transition: opacity 0.25s, transform 0.25s, background 0.2s;
}

.zoom-btn--floating.zoom-btn--away {
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
}

.zoom-btn--floating {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 40;
    max-width: calc(100vw - 2rem);
    white-space: normal;
    font-size: 13px;
    letter-spacing: 0.02em;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

@media (max-width: 767px) {
    .zoom-btn--floating {
        left: 16px;
        justify-content: center;
    }
}

.zoom-btn--large {
    max-width: calc(100vw - 3rem);
    white-space: normal;
    text-align: center;
    justify-content: center;
    font-size: 1rem;
    padding: 0.8rem 1.6rem;
    letter-spacing: 0.04em;
}

@media (min-width: 768px) {
    .diagonal-pil {
        position: fixed;
        left: 24px;
        top: 48px;
        z-index: 60;
    }
}

@media (max-width: 767px) {
    .diagonal-pil {
        position: absolute;
        left: 16px;
        top: 16px;
        z-index: 60;
    }
}
html, body {
    overflow-x: clip;
    max-width: 100%;
}
#site-mobile-menu.translate-x-full {
    visibility: hidden;
}
#site-mobile-menu {
    transition: transform 0.3s, visibility 0s;
}

