/* ============================================= */
/* ====== IMMERSIVE JOURNAL PAGE (FINAL) ======= */
/* ============================================= */

/* --- 1. Immersive Journal Hero --- */
.journal-hero-immersive {
    position: relative;
    padding: 200px 0;
    text-align: center;
    color: var(--color-light);
    background: url('https://images.pexels.com/photos/1629236/pexels-photo-1629236.jpeg') no-repeat center center/cover;
}
.journal-hero-immersive .hero-overlay {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(15, 23, 43, 0.6);
}
.journal-hero-immersive .container { position: relative; z-index: 1; }
.journal-hero-immersive h1 {
    font-family: 'Georgia', serif;
    font-size: 5rem; font-weight: 500;
}
.journal-hero-immersive p {
    font-size: 1.2rem; max-width: 500px;
    margin: 1rem auto 0 auto; opacity: 0.9;
}

/* --- 2. Main Page Layout & Sidebar --- */
.page-content-with-sidebar { padding: 100px 0; }
.page-layout-grid {
    display: grid;
    grid-template-columns: 2.5fr 1fr;
    gap: 60px;
}
.sidebar-area { border-left: 1px solid #eef0f3; padding-left: 60px; }
.widget-title {
    font-family: 'Georgia', serif; font-size: 1.8rem;
    color: var(--color-dark); margin-bottom: 25px;
}
.recent-post-item {
    display: block;
    padding: 15px 0;
    border-bottom: 1px solid #eef0f3;
}
.recent-post-item:last-child { border-bottom: none; }
.recent-post-item:first-child { padding-top: 0; }
.recent-post-item h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.4;
    margin-bottom: 5px;
    transition: color 0.3s ease;
}
.recent-post-item:hover h4 {
    color: var(--color-primary);
}
.recent-post-item .post-date {
    font-size: 0.85rem;
    color: #6c757d;
}

/* --- 3. Unique Featured Post --- */
.featured-post-unique {
    position: relative;
    margin-bottom: 80px;
}
.featured-post-unique a.image-link { display: block; }
.featured-post-unique img {
    width: 100%; height: 400px;
    object-fit: cover; border-radius: 12px;
}
.featured-post-text {
    background-color: var(--color-light);
    box-shadow: 0 15px 40px rgba(100, 110, 140, 0.15);
    border-radius: 12px;
    padding: 30px;
    max-width: 85%;
    margin: -80px auto 0 auto; /* Negative margin pulls it up */
    position: relative;
    z-index: 2;
}
.featured-post-text h2 {
    font-size: 2rem; color: var(--color-dark);
    line-height: 1.3; margin-bottom: 15px;
}
.featured-post-text .summary {
    color: #555; line-height: 1.7;
    margin-bottom: 20px;
}
.meta-info { display: flex; gap: 20px; color: #6c757d; font-size: 0.9rem; }
.meta-info i { margin-right: 5px; }

/* --- 4. Main Article List --- */
.section-heading-alt {
    font-size: 2rem; font-family: 'Georgia', serif;
    margin-bottom: 30px;
}
.article-list-item {
    display: flex;
    gap: 25px;
    padding: 25px 0;
    border-bottom: 1px solid #eef0f3;
}
.article-list-item-image img {
    width: 160px; height: 110px;
    object-fit: cover; border-radius: 8px;
}
.article-list-item-content h3 {
    font-size: 1.2rem; font-weight: 700;
    color: var(--color-dark); line-height: 1.4;
    margin-bottom: 10px; transition: color 0.3s ease;
}
.article-list-item-content a:hover h3 {
    color: var(--color-primary);
}

/* --- 5. Responsive --- */
@media (max-width: 992px) {
    .page-layout-grid { grid-template-columns: 1fr; }
    .sidebar-area { border-left: none; padding-left: 0; margin-top: 60px; border-top: 1px solid #eef0f3; padding-top: 60px; }
}
@media (max-width: 768px) {
    .journal-hero-immersive h1 { font-size: 3rem; }
    .featured-post-text { max-width: 100%; margin-top: -60px; }
    .article-list-item { flex-direction: column; }
    .article-list-item-image img { width: 100%; height: 200px; }
}

/* ============================================= */
/* ========= ON-SCROLL ANIMATION STYLES ======== */
/* ============================================= */

/*
  The initial state of our animated elements.
  They start invisible and slightly moved down.
*/
.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/*
  When the 'is-visible' class is added by our JavaScript,
  the element fades in and moves up to its final position.
*/
.fade-in-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}