/*
Theme Name: Identity Stories
Theme URI: https://identitystories.com/
Author: Identity Stories
Description: Custom WordPress theme based on the Identity Stories psychological fiction website.
Version: 1.0
Requires at least: 6.0
Text Domain: identity-stories
*/

/* =========================================
           GLOBAL
        ========================================= */

        :root {
            --navy: #101d4d;
            --blue: #3979d8;
            --light-blue: #eaf2ff;
            --purple: #7560c9;
            --pink: #d889bd;
            --cream: #fcfaf7;
            --text: #20243a;
            --muted: #687086;
            --white: #ffffff;
            --border: #e7e9f0;
            --shadow: 0 18px 45px rgba(25, 38, 80, 0.10);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: "Inter", sans-serif;
            color: var(--text);
            background:
                radial-gradient(
                    circle at 90% 0%,
                    rgba(121, 93, 202, 0.09),
                    transparent 28%
                ),
                var(--cream);
            line-height: 1.7;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        .container {
            width: min(1180px, calc(100% - 48px));
            margin: 0 auto;
        }

        h1,
        h2,
        h3 {
            font-family: "Playfair Display", Georgia, serif;
            font-weight: 600;
            line-height: 1.15;
        }


        /* =========================================
           HEADER
        ========================================= */

        header {
            position: sticky;
            top: 0;
            z-index: 1000;

            background: rgba(252, 250, 247, 0.94);
            backdrop-filter: blur(14px);

            border-bottom: 1px solid rgba(20, 30, 70, 0.08);
        }

        .nav {
            min-height: 100px;

            display: flex;
            align-items: center;
            justify-content: space-between;

            gap: 40px;
        }


        /* YOUR LOGO */

        .logo {
            display: flex;
            align-items: center;

            width: 220px;
            height: 80px;
        }

        .logo img {
            display: block;

            max-width: 100%;
            max-height: 80px;

            width: auto;
            height: auto;

            object-fit: contain;
        }


        /* NAVIGATION */

        nav {
            display: flex;
            align-items: center;
            gap: 34px;
        }

        nav a {
            position: relative;

            font-size: 0.92rem;
            font-weight: 500;

            color: #40465b;

            transition: color 0.25s ease;
        }

        nav a:hover {
            color: var(--blue);
        }

        nav a::after {
            content: "";

            position: absolute;
            left: 0;
            bottom: -7px;

            width: 0;
            height: 2px;

            background: var(--blue);

            transition: width 0.25s ease;
        }

        nav a:hover::after {
            width: 100%;
        }


        /* =========================================
           HERO
        ========================================= */

        .hero {
            min-height: 0;

            display: flex;
            align-items: center;

            padding: 70px 0 80px;

            position: relative;
            overflow: hidden;
        }

        .hero::before {
            content: "";

            position: absolute;

            width: 560px;
            height: 560px;

            right: -170px;
            top: 30px;

            border-radius: 50%;

            background:
                radial-gradient(
                    circle,
                    rgba(108, 105, 215, 0.18),
                    rgba(90, 135, 222, 0.05) 55%,
                    transparent 70%
                );

            pointer-events: none;
        }

        .hero-content {
            max-width: 780px;

            position: relative;
            z-index: 2;
        }

        .eyebrow {
            display: inline-block;

            margin-bottom: 20px;

            padding: 7px 14px;

            border-radius: 50px;

            background: rgba(92, 111, 210, 0.10);

            color: var(--purple);

            font-size: 0.78rem;
            font-weight: 600;

            letter-spacing: 0.12em;
            text-transform: uppercase;
        }

        .hero h1 {
            font-size: clamp(3rem, 7vw, 5.7rem);

            color: var(--navy);

            margin-bottom: 28px;
        }

        .hero h1 span {
            display: block;
            color: var(--blue);
        }

        .hero p {
            max-width: 680px;

            font-size: 1.16rem;

            color: var(--muted);

            margin-bottom: 36px;
        }

        .hero-buttons {
            display: flex;
            gap: 14px;
            flex-wrap: wrap;
        }

        .button {
            display: inline-flex;

            align-items: center;
            justify-content: center;

            min-height: 48px;

            padding: 0 24px;

            border-radius: 50px;

            font-size: 0.9rem;
            font-weight: 600;

            transition:
                transform 0.25s ease,
                box-shadow 0.25s ease,
                background 0.25s ease;
        }

        .button:hover {
            transform: translateY(-2px);
        }

        .button-primary {
            color: white;
            background: var(--navy);

            box-shadow: 0 10px 25px rgba(16, 29, 77, 0.20);
        }

        .button-primary:hover {
            box-shadow: 0 15px 30px rgba(16, 29, 77, 0.28);
        }

        .button-secondary {
            color: var(--navy);

            background: white;

            border: 1px solid var(--border);
        }


        /* =========================================
           INTRODUCTION
        ========================================= */

        .intro {
            padding: 100px 0;

            background: white;
        }

        .intro-grid {
            display: grid;

            grid-template-columns: 0.8fr 1.2fr;

            gap: 90px;

            align-items: start;
        }

        .section-label {
            color: var(--purple);

            font-size: 0.75rem;
            font-weight: 600;

            text-transform: uppercase;
            letter-spacing: 0.15em;

            margin-bottom: 15px;
        }

        .intro h2 {
            font-size: clamp(2.2rem, 4vw, 3.5rem);

            color: var(--navy);
        }

        .intro-text {
            color: var(--muted);

            font-size: 1.05rem;
        }

        .intro-text p {
            margin-bottom: 20px;
        }

        .quote {
            margin-top: 30px;

            padding: 25px 30px;

            border-left: 3px solid var(--blue);

            background: #f7f9ff;

            font-family: "Playfair Display", Georgia, serif;

            font-size: 1.2rem;

            color: var(--navy);
        }


        /* =========================================
           BOOK SECTION
        ========================================= */

        .books-section {
            padding: 110px 0;

            background:
                linear-gradient(
                    180deg,
                    #f7f8fc 0%,
                    #eef3ff 100%
                );

            overflow: hidden;
        }

        .books-header {
            display: flex;

            justify-content: space-between;
            align-items: end;

            gap: 30px;

            margin-bottom: 45px;
        }

        .books-header h2 {
            font-size: clamp(2.3rem, 4vw, 3.6rem);

            color: var(--navy);
        }

        .books-header p {
            max-width: 450px;

            color: var(--muted);
        }


        /* SHELF WRAPPER */

        .book-slider-wrapper {
            position: relative;
        }


        /* SLIDER */

        .book-slider {
            display: flex;

            gap: 30px;

            overflow-x: auto;

            padding:
                20px
                25px
                55px;

            scroll-behavior: smooth;

            scrollbar-width: none;
        }

        .book-slider::-webkit-scrollbar {
            display: none;
        }


        /* BOOK */

        .book {
            flex: 0 0 170px;

            height: 300px;

            position: relative;

            cursor: pointer;

            perspective: 900px;

            transition:
                transform 0.3s ease;
        }

        .book:hover {
            transform: translateY(-15px);
        }

        .book-cover {
            width: 170px;
            height: 250px;

            position: relative;

            border-radius: 3px 7px 7px 3px;

            overflow: hidden;

            display: flex;

            align-items: center;
            justify-content: center;

            padding: 25px 18px;

            box-shadow:
                7px 8px 16px rgba(20, 30, 60, 0.22),
                inset 4px 0 rgba(255,255,255,0.12);

            transition:
                box-shadow 0.3s ease;
        }

        .book:hover .book-cover {
            box-shadow:
                12px 16px 28px rgba(20, 30, 60, 0.27),
                inset 4px 0 rgba(255,255,255,0.15);
        }


        /* BOOK COLORS */

        .book:nth-child(1) .book-cover {
            background: linear-gradient(145deg, #15255f, #496dd0);
        }

        .book:nth-child(2) .book-cover {
            background: linear-gradient(145deg, #8d4d9d, #d68ab7);
        }

        .book:nth-child(3) .book-cover {
            background: linear-gradient(145deg, #315e83, #73b3cf);
        }

        .book:nth-child(4) .book-cover {
            background: linear-gradient(145deg, #a56b4b, #e7a477);
        }

        .book:nth-child(5) .book-cover {
            background: linear-gradient(145deg, #414b83, #8378cf);
        }

        .book:nth-child(6) .book-cover {
            background: linear-gradient(145deg, #436c61, #91b99e);
        }


        .book-title {
            color: white;

            text-align: center;

            font-family: "Playfair Display", Georgia, serif;

            font-size: 1.25rem;

            line-height: 1.2;

            text-shadow: 0 2px 5px rgba(0,0,0,0.18);
        }

        .book-author {
            position: absolute;

            left: 0;
            right: 0;
            bottom: 17px;

            text-align: center;

            color: rgba(255,255,255,0.88);

            font-size: 0.68rem;

            letter-spacing: 0.08em;

            text-transform: uppercase;
        }


        /* FAUX BOOK SPINE */

        .book-cover::before {
            content: "";

            position: absolute;

            left: 7px;
            top: 0;
            bottom: 0;

            width: 2px;

            background: rgba(255,255,255,0.20);
        }


        /* SHELF */

        .shelf {
            height: 18px;

            margin:
                -47px
                10px
                0;

            border-radius: 4px;

            background:
                linear-gradient(
                    to bottom,
                    #b4bacb,
                    #7e8597
                );

            box-shadow:
                0 8px 13px rgba(30,40,70,0.20);
        }


        /* BOOK INFO */

        .book-info {
            padding-top: 15px;
        }

        .book-info h3 {
            font-size: 1rem;

            color: var(--navy);

            margin-bottom: 2px;
        }

        .book-info span {
            color: var(--muted);

            font-size: 0.78rem;
        }


        /* SLIDER BUTTONS */

        .slider-button {
            position: absolute;

            top: 105px;

            z-index: 10;

            width: 48px;
            height: 48px;

            border-radius: 50%;

            border: 1px solid var(--border);

            background: white;

            color: var(--navy);

            font-size: 1.3rem;

            cursor: pointer;

            box-shadow: 0 8px 25px rgba(20,30,70,0.12);

            transition:
                transform 0.2s ease,
                box-shadow 0.2s ease;
        }

        .slider-button:hover {
            transform: scale(1.08);

            box-shadow: 0 12px 30px rgba(20,30,70,0.20);
        }

        .slider-left {
            left: -15px;
        }

        .slider-right {
            right: -15px;
        }


        /* =========================================
           THEMES
        ========================================= */

        .themes {
            padding: 110px 0;

            background: white;
        }

        .themes-header {
            max-width: 700px;

            margin-bottom: 50px;
        }

        .themes-header h2 {
            color: var(--navy);

            font-size: clamp(2.2rem, 4vw, 3.4rem);

            margin-bottom: 20px;
        }

        .themes-header p {
            color: var(--muted);
        }

        .theme-grid {
            display: grid;

            grid-template-columns:
                repeat(4, 1fr);

            gap: 20px;
        }

        .theme-card {
            padding: 30px;

            min-height: 210px;

            border: 1px solid var(--border);

            border-radius: 18px;

            background: #fdfdfd;

            transition:
                transform 0.25s ease,
                box-shadow 0.25s ease;
        }

        .theme-card:hover {
            transform: translateY(-6px);

            box-shadow: var(--shadow);
        }

        .theme-number {
            color: var(--blue);

            font-size: 0.75rem;
            font-weight: 600;

            letter-spacing: 0.1em;
        }

        .theme-card h3 {
            margin: 25px 0 12px;

            font-size: 1.35rem;

            color: var(--navy);
        }

        .theme-card p {
            color: var(--muted);

            font-size: 0.88rem;
        }


        /* =========================================
           FEATURED BOOK
        ========================================= */

        .featured {
            padding: 110px 0;

            background: var(--navy);

            color: white;
        }

        .featured-grid {
            display: grid;

            grid-template-columns: 0.7fr 1.3fr;

            gap: 80px;

            align-items: center;
        }

        .featured-book {
            width: 260px;
            height: 390px;

            margin: auto;

            border-radius: 4px 10px 10px 4px;

            background:
                linear-gradient(
                    145deg,
                    #17265d,
                    #456bc9 55%,
                    #b275cc
                );

            display: flex;

            align-items: center;
            justify-content: center;

            padding: 35px;

            text-align: center;

            box-shadow:
                18px 25px 40px rgba(0,0,0,0.35);
        }

        .featured-book h3 {
            color: white;

            font-size: 2rem;
        }

        .featured-copy .section-label {
            color: #9dbcf9;
        }

        .featured-copy h2 {
            font-size: clamp(2.4rem, 5vw, 4rem);

            margin-bottom: 25px;
        }

        .featured-copy p {
            color: #cbd2e8;

            max-width: 650px;

            margin-bottom: 25px;
        }

        .featured-copy .button {
            background: white;

            color: var(--navy);
        }


        /* =========================================
           FOOTER
        ========================================= */

        footer {
            padding: 55px 0;

            background: #080f2c;

            color: #b9c1d8;
        }

        .footer-content {
            display: flex;

            justify-content: space-between;

            gap: 40px;

            align-items: center;
        }

        .footer-logo {
            font-family: "Playfair Display", Georgia, serif;

            color: white;

            font-size: 1.4rem;
        }

        footer p {
            font-size: 0.82rem;
        }


        /* =========================================
           RESPONSIVE
        ========================================= */

        @media (max-width: 900px) {

            .nav {
                min-height: 85px;
            }

            .logo {
                width: 170px;
                height: 65px;
            }

            nav {
                gap: 18px;
            }

            .intro-grid,
            .featured-grid {
                grid-template-columns: 1fr;

                gap: 45px;
            }

            .theme-grid {
                grid-template-columns:
                    repeat(2, 1fr);
            }

        }


        @media (max-width: 650px) {

            .container {
                width: min(100% - 30px, 1180px);
            }

            .nav {
                gap: 10px;
            }

            nav {
                display: none;
            }

            .logo {
                width: 185px;
            }

            .hero {
                min-height: 560px;

                padding:
                    70px 0
                    80px;
            }

            .hero h1 {
                font-size: 3rem;
            }

            .books-header {
                display: block;
            }

            .books-header p {
                margin-top: 20px;
            }

            .theme-grid {
                grid-template-columns: 1fr;
            }

            .slider-button {
                display: none;
            }

            .featured-book {
                width: 220px;
                height: 330px;
            }

            .footer-content {
                flex-direction: column;
                align-items: flex-start;
            }

        }

/* =========================================================
   WORDPRESS BLOG
========================================================= */

.blog-section {
    padding: 80px 0;
    background: #fcfaf7;
}

.blog-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 30px;
    margin-bottom: 45px;
}

.blog-header h2 {
    color: var(--navy);
    font-size: clamp(2.3rem, 4vw, 3.6rem);
}

.blog-header p {
    max-width: 500px;
    color: var(--muted);
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.blog-card {
    background: white;
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}

.blog-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.blog-card-image {
    height: 190px;
    background: linear-gradient(135deg, #eaf2ff, #eee8fb);
    overflow: hidden;
}

.blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blog-card-content {
    padding: 27px;
}

.blog-meta {
    color: var(--purple);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .10em;
    margin-bottom: 10px;
}

.blog-card h3 {
    color: var(--navy);
    font-size: 1.45rem;
    margin-bottom: 12px;
}

.blog-card p {
    color: var(--muted);
    font-size: .9rem;
}

.blog-read-more {
    display: inline-block;
    margin-top: 18px;
    color: var(--blue);
    font-size: .85rem;
    font-weight: 600;
}

.blog-page {
    padding: 100px 0 120px;
    background: var(--cream);
}

.blog-page-header {
    max-width: 780px;
    margin-bottom: 55px;
}

.blog-page-header h1 {
    color: var(--navy);
    font-size: clamp(2.8rem, 6vw, 5rem);
    margin-bottom: 20px;
}

.blog-page-header p {
    color: var(--muted);
    font-size: 1.1rem;
}

.article {
    max-width: 820px;
    margin: 0 auto;
}

.article-header {
    margin-bottom: 45px;
}

.article-header h1 {
    color: var(--navy);
    font-size: clamp(2.5rem, 5vw, 4.4rem);
    margin-bottom: 18px;
}

.article-meta {
    color: var(--muted);
    font-size: .88rem;
}

.article-featured-image {
    margin-bottom: 45px;
    border-radius: 18px;
    overflow: hidden;
}

.article-featured-image img {
    display: block;
    width: 100%;
    height: auto;
}

.article-content {
    color: #30364d;
    font-size: 1.08rem;
}

.article-content p,
.article-content ul,
.article-content ol,
.article-content blockquote {
    margin-bottom: 1.4em;
}

.article-content h2,
.article-content h3,
.article-content h4 {
    color: var(--navy);
    margin: 1.8em 0 .7em;
}

.article-content a {
    color: var(--blue);
    text-decoration: underline;
}

.article-content blockquote {
    padding: 25px 30px;
    border-left: 3px solid var(--blue);
    background: #f7f9ff;
    font-family: "Playfair Display", Georgia, serif;
    color: var(--navy);
}

.blog-pagination {
    margin-top: 55px;
    display: flex;
    justify-content: center;
    gap: 8px;
}

.blog-pagination a,
.blog-pagination span {
    padding: 10px 15px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
}

.category-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.category-nav a {
    padding: 8px 14px;
    border-radius: 30px;
    background: #eef3ff;
    color: var(--navy);
    font-size: .82rem;
}

.search-form {
    display: flex;
    gap: 10px;
    max-width: 520px;
    margin-top: 25px;
}

.search-form input {
    flex: 1;
    min-height: 46px;
    padding: 0 15px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font: inherit;
}

.search-form button {
    border: 0;
    cursor: pointer;
}

@media (max-width: 900px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .blog-header {
        display: block;
    }

    .blog-header p {
        margin-top: 20px;
    }

    .blog-grid {
        grid-template-columns: 1fr;
    }

    .search-form {
        flex-direction: column;
    }
}


/* =========================================================
   FEATURED ARTICLES
========================================================= */

.featured-articles {
    margin-top: 42px;
    max-width: 1050px;
}

.featured-articles-heading {
    color: var(--navy);
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.55rem;
    margin-bottom: 18px;
}

.featured-articles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.featured-article {
    display: block;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(20,30,70,.10);
    border-radius: 14px;
    padding: 20px;
    box-shadow: 0 8px 25px rgba(25,38,80,.07);
    transition: transform .22s ease, box-shadow .22s ease;
}

.featured-article:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(25,38,80,.12);
}

.featured-article .blog-meta {
    margin-bottom: 7px;
}

.featured-article h3 {
    color: var(--navy);
    font-size: 1.15rem;
    margin-bottom: 7px;
}

.featured-article p {
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.55;
}

.sharethis-area {
    margin: 28px 0;
    padding: 18px 0;
}

.blog-page .sharethis-area {
    margin-bottom: 45px;
}

@media (max-width: 900px) {
    .featured-articles-grid {
        grid-template-columns: 1fr;
    }
}


/* Compact header */
.site-header { padding: 12px 0; }


/* Real book cover */
.book-cover-image {
    padding: 0;
}

.book-cover-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.book-single {
    flex: 0 0 auto;
}


/* Featured novel cover */
.featured-book-image {
    padding: 0;
    overflow: hidden;
}

.featured-book-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
