/* ============================================
   FLIPBOOK LIGHTBOX STYLES (PageFlip)
   ============================================ */

/* --- Book Container & Pages --- */
#book-container {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Contenedor principal del flipbook */
#my-flipbook {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Estilos para pantallas anchas en modo landscape */
@media screen and (min-width: 1024px) and (orientation: landscape) {
    #book-container {
        height: 90vh;
        max-height: 90vh;
        padding: 2vh 0;
    }
    
    #my-flipbook {
        /* Proporción de dos páginas juntas (2:1.3 basado en Letter) */
        width: calc(90vh * 1.54); /* 2 * (11/8.5) */
        max-width: 90vw;
        height: 90vh;
        max-height: 90vh;
    }
    
    .page {
        /* Cada página individual tendrá la mitad del ancho total */
        width: 50%;
        height: 100%;
        position: relative;
        background: transparent !important;
        box-shadow: none !important;
    }
    
    .page img {
        width: 100%;
        height: 100%;
        object-fit: fill;
    }
    
    /* Asegurar que las páginas de la izquierda tengan la imagen alineada a la derecha */
    .page.page-cover,
    .page.page-1,
    .page.page-3,
    .page.page-5,
    .page.page-7,
    .page.page-9,
    .page.page-11,
    .page.page-13,
    .page.page-15,
    .page.page-17,
    .page.page-19 {
        padding-right: 0;
    }
    
    .page.page-cover img,
    .page.page-1 img,
    .page.page-3 img,
    .page.page-5 img,
    .page.page-7 img,
    .page.page-9 img,
    .page.page-11 img,
    .page.page-13 img,
    .page.page-15 img,
    .page.page-17 img,
    .page.page-19 img {
        object-position: right;
    }
    
    /* Asegurar que las páginas de la derecha tengan la imagen alineada a la izquierda */
    .page.page-2,
    .page.page-4,
    .page.page-6,
    .page.page-8,
    .page.page-10,
    .page.page-12,
    .page.page-14,
    .page.page-16,
    .page.page-18,
    .page.page-20 {
        padding-left: 0;
    }
    
    .page.page-2 img,
    .page.page-4 img,
    .page.page-6 img,
    .page.page-8 img,
    .page.page-10 img,
    .page.page-12 img,
    .page.page-14 img,
    .page.page-16 img,
    .page.page-18 img,
    .page.page-20 img {
        object-position: left;
    }
    
    /* Asegurar que el contenedor del flipbook mantenga la relación de aspecto */
    .flipbook-stage {
        width: 100%;
        height: 100%;
        display: flex;
        perspective: 2000px;
    }
    
    .flipbook-book {
        width: 100%;
        height: 100%;
        position: relative;
        transform-style: preserve-3d;
        transition: transform 0.6s ease;
    }
    
    .flipbook-left-page,
    .flipbook-right-page {
        position: absolute;
        width: 50%;
        height: 100%;
        backface-visibility: hidden;
        overflow: hidden;
        box-shadow: none;
        background: transparent;
    }
    
    .flipbook-left-page {
        left: 0;
        transform-origin: right center;
    }
    
    .flipbook-right-page {
        right: 0;
        transform-origin: left center;
    }
    
    /* Ajustes para las imágenes dentro de las páginas */
    .flipbook-left-page img,
    .flipbook-right-page img {
        width: 100%;
        height: 100%;
        object-fit: fill;
        object-position: center;
    }
}

/* Móviles en orientación horizontal */
@media screen and (max-width: 1023px) and (orientation: landscape) and (max-height: 600px) {
    #book-container {
        height: 70vh !important;
        max-height: 70vh !important;
        width: 100%;
        padding: 0;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: visible;
    }
    
    #my-flipbook {
        /* 
         * Cálculo para dos páginas Letter juntas:
         * - Altura: 70vh
         * - Ancho por página: (altura * (8.5/11)) = 70vh * 0.7727
         * - Ancho total para dos páginas: 70vh * 1.545
         */
        height: 70vh !important;
        max-height: 70vh !important;
        width: calc(70vh * 1.545); /* 70vh * (8.5/11) * 2 */
        max-width: 90%;
        margin: 0 auto;
        display: flex;
        transition: transform 0.3s ease;
    }
    
    .page {
        width: 50%; /* Cada página ocupa la mitad del contenedor */
        height: 100%; /* Altura completa del contenedor */
        position: relative;
        background: transparent !important;
        box-shadow: none !important;
        overflow: hidden;
        flex-shrink: 0; /* Evita que se encoja */
    }
    
    .page img {
        width: 100%;
        height: 100%;
        object-fit: fill;
    }
    
    /* Asegurar que las páginas de la izquierda tengan la imagen alineada a la derecha */
    .page.page-cover,
    .page.page-1,
    .page.page-3,
    .page.page-5,
    .page.page-7,
    .page.page-9,
    .page.page-11,
    .page.page-13,
    .page.page-15,
    .page.page-17,
    .page.page-19 {
        padding-right: 0;
    }
    
    .page.page-cover img,
    .page.page-1 img,
    .page.page-3 img,
    .page.page-5 img,
    .page.page-7 img,
    .page.page-9 img,
    .page.page-11 img,
    .page.page-13 img,
    .page.page-15 img,
    .page.page-17 img,
    .page.page-19 img {
        object-position: right;
    }
    
    /* Asegurar que las páginas de la derecha tengan la imagen alineada a la izquierda */
    .page.page-2,
    .page.page-4,
    .page.page-6,
    .page.page-8,
    .page.page-10,
    .page.page-12,
    .page.page-14,
    .page.page-16,
    .page.page-18,
    .page.page-20 {
        padding-left: 0;
    }
    
    .page.page-2 img,
    .page.page-4 img,
    .page.page-6 img,
    .page.page-8 img,
    .page.page-10 img,
    .page.page-12 img,
    .page.page-14 img,
    .page.page-16 img,
    .page.page-18 img,
    .page.page-20 img {
        object-position: left;
    }
    
    /* Ajustar el modal para móviles en landscape */
    .reader-modal-content {
        display: flex;
        align-items: center;
        justify-content: center;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0 15px;
    }
    
    /* Asegurar que el contenedor del libro mantenga la relación de aspecto */
    .flipbook-stage {
        width: 100%;
        height: 70vh;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    
    /* Asegurar que el contenedor del libro ocupe el espacio necesario */
    .flipbook-book {
        display: flex;
        height: 100%;
    }
    
    /* Estilo para el scroll suave entre páginas */
    .page {
        scroll-snap-align: start;
    }
}

/* Estilos de Páginas */
.page {
    background: transparent !important;
    overflow: hidden;
    box-shadow: none !important;
}

.page-cover {
    z-index: 100;
}

.page-image {
    width: 100%;
    height: 100%;
    object-fit: fill;
    display: block;
    user-select: none;
    -webkit-user-drag: none;
}

/* --- Modal Base Overrides --- */
.reader-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reader-modal.active {
    visibility: visible;
    opacity: 1;
}

.reader-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(10, 10, 10, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.reader-modal-content {
    position: relative;
    z-index: 10001;
    width: 95vw;
    height: 90vh;
    max-width: 1600px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* --- Botón Cerrar (Solo X) --- */
.reader-close {
    position: absolute;
    top: -10px;
    right: 0;
    z-index: 10002;
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    font-size: 2rem;
    cursor: pointer;
    padding: 10px;
    transition: color 0.2s ease, transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.reader-close:hover {
    color: #fff;
    transform: scale(1.1) rotate(90deg);
}

/* En móvil */
@media (max-width: 768px) {
    .reader-modal-content {
        width: 100vw;
        height: 100vh;
    }

    .reader-close {
        top: 10px;
        right: 15px;
        background: rgba(0, 0, 0, 0.3);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        font-size: 1.5rem;
    }
}

/* --- Loading --- */
.reader-loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    color: white;
    font-family: var(--font-body, sans-serif);
    z-index: 10005;
}

.loading-spinner {
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top: 3px solid #fff;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    margin-bottom: 15px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}