.catalogo-player-body {
    background: #4b4b4b;
    font-family: Arial, Helvetica, sans-serif;
    height: 100vh;
    margin: 0;
    overflow: hidden;
    width: 100vw;
}

.catalogo-player-body *,
.catalogo-player-body *:before,
.catalogo-player-body *:after {
    box-sizing: border-box;
}

.catalogo-player-body .hidden,
.catalogo-viewer .hidden {
    display: none !important;
}

.catalogo-viewer {
    background: #f4f5f7;
    border: 1px solid #dfe3e8;
    min-height: 680px;
}

.catalogo-viewer-iframe {
    border: 0;
    height: 100vh;
    min-height: 0;
    overflow: hidden;
    width: 100vw;
}

.catalogo-toolbar {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid #dfe3e8;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 12px;
}

.catalogo-toolbar-group {
    align-items: center;
    display: flex;
    gap: 8px;
}

.catalogo-tool {
    align-items: center;
    background: #ffffff;
    border: 1px solid #cfd6df;
    color: #1f2933;
    display: inline-flex;
    height: 38px;
    justify-content: center;
    line-height: 1;
    min-width: 38px;
    padding: 0 10px;
}

.catalogo-tool:hover,
.catalogo-tool:focus {
    background: #edf7f4;
    border-color: #00a884;
    color: #007f65;
}

.catalogo-tool:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.catalogo-audio-toggle:not(.is-active) {
    color: #7b8794;
}

.catalogo-counter,
.catalogo-zoom-value {
    color: #323f4b;
    font-size: 14px;
    font-weight: 600;
    min-width: 58px;
    text-align: center;
}

.catalogo-stage {
    min-height: 640px;
    overflow: hidden;
    position: relative;
}

.catalogo-viewer-iframe .catalogo-stage {
    min-height: 0;
}

.catalogo-book-scroll {
    align-items: center;
    display: flex;
    height: calc(100vh - 230px);
    justify-content: center;
    min-height: 640px;
    overflow: hidden;
    padding: 28px;
}

.catalogo-viewer-iframe .catalogo-book-scroll {
    height: calc(100vh - 59px);
    min-height: 0;
    overflow: hidden;
    padding: 18px;
}

.catalogo-viewer.is-zoomed .catalogo-book-scroll {
    overflow: auto;
}

.catalogo-book-scale {
    display: block;
    margin: 0 auto;
    position: relative;
    transform-origin: center center;
    transition: transform 180ms ease;
}

.catalogo-viewer.is-pinching .catalogo-book-scale {
    transition: none;
}

.catalogo-book-scale:after {
    background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.20), rgba(255, 255, 255, 0.34), rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0));
    bottom: 0;
    content: "";
    left: 50%;
    opacity: 0.85;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 22px;
    z-index: 12;
}

.catalogo-viewer.is-cover-view .catalogo-book-scale:after {
    display: none;
}

.catalogo-viewer.is-zoomed .catalogo-book-scale:after {
    display: none;
}

.catalogo-book {
    margin: 0 auto;
    will-change: transform;
}

.catalogo-single-page {
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.22);
    cursor: pointer;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

.catalogo-single-page img {
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.catalogo-single-page:before {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(235, 238, 242, 0.96) 48%, rgba(145, 151, 160, 0.35) 100%);
    bottom: 0;
    box-shadow: -7px -7px 18px rgba(15, 23, 42, 0.18);
    content: "";
    height: 42px;
    position: absolute;
    right: 0;
    transform: skew(-8deg, -8deg);
    transform-origin: bottom right;
    transition: height 160ms ease, width 160ms ease;
    width: 42px;
    z-index: 4;
}

.catalogo-single-page:hover:before {
    height: 62px;
    width: 62px;
}

.catalogo-page {
    background: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 14px 32px rgba(15, 23, 42, 0.16);
    overflow: hidden;
    position: relative;
}

.catalogo-page img {
    backface-visibility: hidden;
    display: block;
    height: 100%;
    object-fit: contain;
    transform: translateZ(0);
    width: 100%;
}

.catalogo-viewer.is-zoomed .catalogo-book {
    pointer-events: none;
}

.catalogo-viewer.is-pinching .catalogo-book {
    pointer-events: none;
}

.catalogo-page.is-loading {
    background: linear-gradient(135deg, #ffffff 0%, #f2f4f7 100%);
}

.catalogo-page.is-loading span {
    color: #7b8794;
    display: block;
    font-size: 13px;
    font-weight: 700;
    left: 50%;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
}

.catalogo-page.is-loading span:before {
    content: "Caricamento pagina";
}

.catalogo-page.is-loading img {
    opacity: 0;
}

.catalogo-page.is-rendered span {
    display: none;
}

.catalogo-page-blank {
    background: #ffffff;
}

.catalogo-loading {
    align-items: center;
    background: rgba(244, 245, 247, 0.96);
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    justify-content: center;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 20;
}

.catalogo-spinner {
    animation: catalogo-spin 800ms linear infinite;
    border: 4px solid #d7dee6;
    border-top-color: #00a884;
    height: 46px;
    width: 46px;
}

.catalogo-loading-text {
    color: #1f2933;
    font-size: 16px;
    font-weight: 700;
}

.catalogo-loading-progress {
    color: #52606d;
    font-size: 14px;
}

.catalogo-error {
    background: #fff5f5;
    border: 1px solid #f4b4b4;
    color: #9b1c1c;
    font-weight: 600;
    left: 50%;
    max-width: 520px;
    padding: 16px;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 30;
}

.catalogo-viewer:fullscreen {
    background: #111827;
    border: 0;
}

.catalogo-viewer:fullscreen .catalogo-stage {
    min-height: calc(100vh - 59px);
}

.catalogo-viewer:fullscreen .catalogo-book-scroll {
    height: calc(100vh - 59px);
}

@keyframes catalogo-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 767px) {
    .catalogo-section {
        padding-bottom: 0 !important;
        padding-top: 0 !important;
    }

    .catalogo-viewer {
        border: 0;
        display: flex;
        flex-direction: column;
        min-height: calc(100vh - 90px);
    }

    .catalogo-viewer-iframe {
        height: 100vh;
        min-height: 0;
    }

    .catalogo-toolbar {
        align-items: center;
        flex-wrap: wrap;
        gap: 6px;
        justify-content: center;
        order: 2;
        padding: 6px;
    }

    .catalogo-toolbar-group {
        gap: 6px;
        justify-content: center;
    }

    .catalogo-tool {
        height: 34px;
        min-width: 34px;
        padding: 0 8px;
    }

    .catalogo-counter,
    .catalogo-zoom-value {
        font-size: 13px;
        min-width: 48px;
    }

    .catalogo-stage {
        min-height: 0;
        order: 1;
    }

    .catalogo-book-scroll {
        height: auto;
        min-height: 0;
        padding: 4px;
    }

    .catalogo-book-scale:after {
        display: none;
    }

    .catalogo-book.stf__parent,
    .catalogo-book .stf__block {
        touch-action: none;
    }

    .catalogo-single-page:before {
        height: 34px;
        width: 34px;
    }

    .catalogo-single-page:hover:before {
        height: 44px;
        width: 44px;
    }
}

@media (max-width: 399px) {
    .catalogo-book-scroll {
        padding: 0;
    }
}
