@import url('https://fonts.googleapis.com/css?family=Indie+Flower');
@import url('https://fonts.googleapis.com/css?family=Amatic+SC');

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

body {
    display: flex;
    font-family: 'Indie Flower', cursive !important;
    flex-direction: column;
    min-height: 100vh;
}

.main-content {
    flex: 1;
}

.container-lg {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.book-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 20px;
    justify-items: center;
}

@media (max-width: 2300px) {
    .book-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 2250px) {
    .book-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media (max-width: 1850px) {
    .book-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 1480px) {
    .book-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 1100px) {
    .book-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 720px) {
    .book-grid {
        grid-template-columns: repeat(1, 1fr);
    }
}

::selection {
    background: transparent;
}

h4 {
    font-size: 26px;
    font-family: 'Amatic SC', cursive !important;
}

.color1 {
    color: #1BBC9B
}

.color2 {
    color: #C0392B
}

.card {
    margin: 15px;
    width: 330px;
    height: 480px;
    background: #e0e1dc;
    transform-style: preserve-3d;
    display: inline-block;
    vertical-align: top;
}

    .card:hover {
        transform: perspective(2000px) rotate(2deg) scale(1.1);
    }

    .card:before {
        content: '';
        position: absolute;
        top: -5px;
        left: 0;
        width: 100%;
        height: 5px;
        background: #BAC1BA;
        transform-origin: bottom;
        transform: skewX(-5deg);
    }

    .card:after {
        content: '';
        position: absolute;
        top: 0;
        right: -5px;
        width: 5px;
        height: 100%;
        background: #92A29C;
        transform-origin: left;
        transform: skewY(-5deg);
    }

    .card .imgBox {
        width: 100%;
        height: 100%;
        position: relative;
        transform-origin: left;
        transition: .7s;
    }

    .card .bark {
        position: absolute;
        background: #e0e1dc;
        width: 100%;
        height: 100%;
        opacity: 0;
        transition: .7s;
    }

    .card .imgBox img {
        width: 100%;
        height: 100%;
        object-fit: fill; /* key line */
        display: block;
    }

    .card:hover .imgBox {
        transform: rotateY(-110deg);
    }

    .card:hover .bark {
        opacity: 1;
        transition: .6s;
        box-shadow: 300px 200px 100px rgba(0, 0, 0, .4) inset;
    }

    .card .details {
        position: absolute;
        top: 0;
        left: 0;
        box-sizing: border-box;
        z-index: -1;
        margin-top: 50px;
    }

        .card .details p {
            font-size: 15px;
            transform: rotate(-3deg);
            padding: 0 5px 0px 10px;
        }

        .card .details h4 {
            text-align: center;
        }

.text-right {
    text-align: right;
}

/*HEADER*/
.page-header {
    background: linear-gradient(135deg, #325ca7, #4a90e2);
    color: white;
    padding: 10px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

    .page-header h1 {
        margin: 0;
        font-size: 32px;
        font-weight: 700;
        letter-spacing: 0.5px;
    }

    .page-header p {
        margin: 8px 0 0;
        font-size: 18px;
        opacity: 0.9;
    }

    .page-header h1::after {
        content: "";
        display: block;
        width: 80px;
        height: 3px;
        background: white;
        margin: 12px auto 0;
        border-radius: 2px;
    }

/*FOOTER*/
.pagination-container {
    font-size: 16px;
}

.page-footer {
    background: #1f2d3d;
    color: #ffffff;
    padding: 40px 20px;
    margin-top: auto;
    text-align: center;
}

.footer-content h3 {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.footer-content p {
    margin: 8px 0 0;
    font-size: 18px;
    opacity: 0.9;
}

.footer-links {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

    .footer-links a {
        margin: 8px 0 0;
        font-size: 18px;
        opacity: 0.9;
        color: #ffffff;
        text-decoration: none;
        padding: 6px 12px;
        border-radius: 6px;
        transition: 0.3s;
    }

        .footer-links a:hover {
            background: #325ca7;
        }

.page-footer {
    border-top: 4px solid #325ca7;
    box-shadow: 0 -5px 20px rgba(0,0,0,0.15);
}

/*PAGINATIOn*/
.pagination-wrapper {
    width: 100%;
    margin: 40px 0;
}

.pagination-center {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* THIS is the key part for PagedListPager */
.pagination {
    display: flex !important;
    justify-content: center;
    padding-left: 0;
    list-style: none;
    gap: 6px;
    flex-wrap: wrap;
}

.pagination-info {
    margin-top: 10px;
    font-size: 16px;
    font-weight: bold;
    color: #325ca7;
    text-align: center;
}

/*Pice*/
.card {
    position: relative;
}

/* Ribbon */
.price-ribbon {
    position: absolute;
    top: 10px;
    right: -10px;
    background: #4382d1;
    color: #fff;
    padding: 6px 14px;
    font-weight: bold;
    font-size: 16px;
    z-index: 10;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    transform: rotate(10deg);
}

    .price-ribbon::after {
        content: "";
        position: absolute;
        bottom: -8px;
        right: 0;
        border-width: 8px 8px 0 0;
        border-style: solid;
        border-color: #4382d1 transparent transparent transparent;
    }