/* ========================================
   BLOG POST PAGE STYLES
   ======================================== */

/* ----- All styles scoped to blog post page ----- */
.public-blog.blog-post-page {
    /* Article Container */
    .blog-article {
        background: #ffffff;
    }

    .blog-container {
        max-width: var(--container-width, 1200px);
        margin: 0 auto;
        padding: 0 20px;
    }

    /* ----- Article Header ----- */
    .blog-article-header {
        background: radial-gradient(circle at top left, rgba(31, 166, 201, 0.10), transparent 36%),
                    radial-gradient(circle at top right, rgba(214, 40, 40, 0.06), transparent 32%),
                    #ffffff;
        padding: 48px 0 40px;
        text-align: center;
    }

    .blog-article-header-inner {
        max-width: 780px;
        margin: 0 auto;
    }

    .back-to-blog {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 20px;
        color: var(--color-muted, #6b7280);
        font-weight: 600;
        font-size: 0.9rem;
        transition: color var(--transition, 0.3s ease);
    }

    .back-to-blog::before {
        content: "←";
        transition: transform var(--transition, 0.3s ease);
    }

    .back-to-blog:hover {
        color: var(--color-primary-dark, #1a6b82);
    }

    .back-to-blog:hover::before {
        transform: translateX(-4px);
    }

    .blog-article-header .blog-kicker {
        display: inline-flex;
        align-items: center;
        padding: 6px 16px;
        margin-bottom: 16px;
        border-radius: var(--radius-pill, 9999px);
        background: var(--color-primary-soft, rgba(31, 166, 201, 0.12));
        color: var(--color-primary-dark, #1a6b82);
        font-size: 0.85rem;
        font-weight: 800;
        letter-spacing: 0.03em;
        text-transform: uppercase;
    }

    .blog-article-header h1 {
        margin: 0 0 16px;
        font-size: clamp(2rem, 4.5vw, 3.6rem);
        letter-spacing: -0.04em;
        color: var(--color-heading, #1a1a2e);
        line-height: 1.2;
    }

    .blog-article-introduction {
        max-width: 700px;
        margin: 0 auto 20px;
        color: var(--color-muted, #6b7280);
        font-size: 1.12rem;
        line-height: 1.7;
    }

    .blog-article-meta {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px 20px;
        color: var(--color-muted, #6b7280);
        font-size: 0.9rem;
        font-weight: 500;
    }

    .blog-article-meta span {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    .blog-article-meta span:not(:last-child)::after {
        content: "•";
        color: var(--color-border, #e5e7eb);
        font-weight: 300;
    }

    .blog-article-meta time {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    /* ----- Featured Image ----- */
    .blog-featured-image-wrapper {
        max-width: 960px;
        margin: 0 auto 40px;
        padding: 0 20px;
    }

    .blog-featured-image {
        width: 100%;
        height: auto;
        max-height: 520px;
        object-fit: cover;
        border-radius: var(--radius-md, 12px);
        box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.06));
        background: var(--color-bg, #f9fafb);
    }

    /* ----- Article Layout ----- */
    .blog-article-layout {
        max-width: 820px;
        margin: 0 auto;
        padding: 0 20px 60px;
    }

    /* ----- Article Content ----- */
    .blog-article-content {
        font-size: 1.08rem;
        line-height: 1.8;
        color: var(--color-text, #374151);
    }

    .blog-article-content p {
        margin-bottom: 1.5em;
    }

    .blog-article-content h2 {
        margin-top: 2.4em;
        margin-bottom: 0.6em;
        font-size: 1.6rem;
        letter-spacing: -0.03em;
        color: var(--color-heading, #1a1a2e);
        line-height: 1.3;
    }

    .blog-article-content h3 {
        margin-top: 2em;
        margin-bottom: 0.5em;
        font-size: 1.3rem;
        letter-spacing: -0.02em;
        color: var(--color-heading, #1a1a2e);
        line-height: 1.3;
    }

    .blog-article-content h4 {
        margin-top: 1.6em;
        margin-bottom: 0.4em;
        font-size: 1.1rem;
        font-weight: 700;
        color: var(--color-heading, #1a1a2e);
    }

    .blog-article-content ul,
    .blog-article-content ol {
        margin: 0 0 1.5em 1.5em;
    }

    .blog-article-content li {
        margin-bottom: 0.4em;
    }

    .blog-article-content blockquote {
        margin: 1.5em 0;
        padding: 0.8em 1.2em 0.8em 1.8em;
        border-left: 4px solid var(--color-primary, #1fa6c9);
        background: var(--color-bg, #f9fafb);
        border-radius: 0 var(--radius-sm, 8px) var(--radius-sm, 8px) 0;
        font-style: italic;
        color: var(--color-heading, #1a1a2e);
    }

    .blog-article-content blockquote p {
        margin-bottom: 0;
    }

    .blog-article-content img {
        max-width: 100%;
        height: auto;
        margin: 1.5em 0;
        border-radius: var(--radius-sm, 8px);
        box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.06));
    }

    .blog-article-content code {
        padding: 0.2em 0.4em;
        background: var(--color-bg, #f9fafb);
        border-radius: 4px;
        font-size: 0.9em;
        font-family: monospace;
    }

    .blog-article-content pre {
        margin: 1.5em 0;
        padding: 1.2em;
        background: var(--color-heading, #1a1a2e);
        color: #f9fafb;
        border-radius: var(--radius-sm, 8px);
        overflow-x: auto;
        font-size: 0.9rem;
        line-height: 1.6;
    }

    .blog-article-content pre code {
        background: transparent;
        padding: 0;
        color: inherit;
    }

    .blog-article-content table {
        width: 100%;
        margin: 1.5em 0;
        border-collapse: collapse;
    }

    .blog-article-content th,
    .blog-article-content td {
        padding: 0.6em 1em;
        border: 1px solid var(--color-border, #e5e7eb);
        text-align: left;
    }

    .blog-article-content th {
        background: var(--color-bg, #f9fafb);
        font-weight: 700;
    }

    /* ----- Supporting Images ----- */
    .blog-supporting-images {
        margin-top: 48px;
        padding-top: 40px;
        border-top: 1px solid var(--color-border, #e5e7eb);
    }

    .blog-supporting-images h2 {
        font-size: 1.3rem;
        margin-bottom: 24px;
        color: var(--color-heading, #1a1a2e);
    }

    .blog-supporting-image-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        gap: 24px;
    }

    .blog-supporting-image {
        margin: 0;
        padding: 0;
        background: var(--color-bg, #f9fafb);
        border-radius: var(--radius-sm, 8px);
        overflow: hidden;
        border: 1px solid var(--color-border, #e5e7eb);
    }

    .blog-supporting-image img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        object-fit: cover;
    }

    .blog-supporting-image figcaption {
        padding: 10px 14px;
        font-size: 0.85rem;
        color: var(--color-muted, #6b7280);
        background: #ffffff;
        text-align: center;
    }

    /* ----- Article Footer ----- */
    .blog-article-footer {
        margin-top: 56px;
        padding-top: 40px;
        border-top: 1px solid var(--color-border, #e5e7eb);
        text-align: center;
    }

    .blog-article-footer p {
        margin-bottom: 16px;
        font-size: 1.1rem;
        font-weight: 600;
        color: var(--color-heading, #1a1a2e);
    }

    .blog-article-footer a {
        display: inline-flex;
        padding: 14px 40px;
        border-radius: var(--radius-pill, 9999px);
        background: var(--color-accent, #d62828);
        color: #ffffff;
        font-weight: 800;
        font-size: 1rem;
        transition: all var(--transition, 0.3s ease);
    }

    .blog-article-footer a:hover {
        background: var(--color-accent-dark, #b71c1c);
        transform: translateY(-2px);
        box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.12));
    }

    /* ----- Not Found Page ----- */
    .blog-not-found {
        background: radial-gradient(circle at center, rgba(31, 166, 201, 0.08), transparent 50%),
                    #ffffff;
        padding: 80px 0 100px;
        text-align: center;
    }

    .blog-not-found .blog-container {
        max-width: 600px;
        margin: 0 auto;
        padding: 0 20px;
    }

    .blog-not-found .blog-kicker {
        display: inline-flex;
        align-items: center;
        padding: 6px 16px;
        margin-bottom: 16px;
        border-radius: var(--radius-pill, 9999px);
        background: var(--color-primary-soft, rgba(31, 166, 201, 0.12));
        color: var(--color-primary-dark, #1a6b82);
        font-size: 0.85rem;
        font-weight: 800;
        letter-spacing: 0.03em;
        text-transform: uppercase;
    }

    .blog-not-found h1 {
        margin: 0 0 16px;
        font-size: clamp(2.2rem, 4.5vw, 3.2rem);
        letter-spacing: -0.04em;
        color: var(--color-heading, #1a1a2e);
    }

    .blog-not-found p {
        max-width: 500px;
        margin: 0 auto 30px;
        color: var(--color-muted, #6b7280);
        font-size: 1.08rem;
        line-height: 1.7;
    }

    .blog-not-found a {
        display: inline-flex;
        padding: 14px 40px;
        border-radius: var(--radius-pill, 9999px);
        background: var(--color-primary, #1fa6c9);
        color: #ffffff;
        font-weight: 800;
        transition: all var(--transition, 0.3s ease);
    }

    .blog-not-found a:hover {
        background: var(--color-primary-dark, #1a6b82);
        transform: translateY(-2px);
        box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.12));
    }

    /* ========================================
       RESPONSIVE - TABLET
       ======================================== */
    @media (max-width: 992px) {
        .blog-article-header {
            padding: 40px 0 32px;
        }

        .blog-article-header h1 {
            font-size: clamp(1.8rem, 4vw, 2.8rem);
        }

        .blog-article-layout {
            max-width: 700px;
        }

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

    /* ========================================
       RESPONSIVE - MOBILE
       ======================================== */
    @media (max-width: 768px) {
        .blog-article-header {
            padding: 32px 0 28px;
        }

        .blog-article-header h1 {
            font-size: clamp(1.6rem, 7vw, 2.2rem);
        }

        .blog-article-introduction {
            font-size: 1rem;
            line-height: 1.6;
        }

        .blog-article-meta {
            font-size: 0.82rem;
            gap: 8px 14px;
        }

        .blog-featured-image-wrapper {
            margin: 0 auto 28px;
            padding: 0 16px;
        }

        .blog-article-layout {
            padding: 0 16px 40px;
        }

        .blog-article-content {
            font-size: 1rem;
            line-height: 1.7;
        }

        .blog-article-content h2 {
            font-size: 1.4rem;
        }

        .blog-article-content h3 {
            font-size: 1.15rem;
        }

        .blog-article-content blockquote {
            padding: 0.6em 1em 0.6em 1.4em;
        }

        .blog-supporting-images {
            margin-top: 36px;
            padding-top: 28px;
        }

        .blog-supporting-images h2 {
            font-size: 1.15rem;
        }

        .blog-supporting-image-grid {
            grid-template-columns: 1fr 1fr;
            gap: 16px;
        }

        .blog-article-footer {
            margin-top: 40px;
            padding-top: 28px;
        }

        .blog-article-footer p {
            font-size: 1rem;
        }

        .blog-article-footer a {
            padding: 12px 32px;
            font-size: 0.95rem;
            width: 100%;
            justify-content: center;
        }

        .blog-not-found {
            padding: 60px 0 80px;
        }

        .blog-not-found h1 {
            font-size: 1.8rem;
        }
    }

    /* ========================================
       RESPONSIVE - SMALL MOBILE
       ======================================== */
    @media (max-width: 480px) {
        .blog-article-header {
            padding: 24px 0 20px;
        }

        .blog-article-header h1 {
            font-size: 1.4rem;
        }

        .blog-article-introduction {
            font-size: 0.95rem;
        }

        .blog-article-meta {
            flex-direction: column;
            gap: 4px;
            font-size: 0.78rem;
        }

        .blog-article-meta span:not(:last-child)::after {
            display: none;
        }

        .blog-featured-image {
            max-height: 300px;
            border-radius: var(--radius-sm, 8px);
        }

        .blog-article-layout {
            padding: 0 12px 32px;
        }

        .blog-article-content {
            font-size: 0.95rem;
        }

        .blog-article-content h2 {
            font-size: 1.25rem;
        }

        .blog-article-content h3 {
            font-size: 1.05rem;
        }

        .blog-supporting-image-grid {
            grid-template-columns: 1fr;
            gap: 16px;
        }

        .blog-supporting-image img {
            aspect-ratio: 16 / 9;
        }

        .blog-article-footer p {
            font-size: 0.95rem;
        }

        .blog-not-found {
            padding: 40px 0 60px;
        }

        .blog-not-found h1 {
            font-size: 1.5rem;
        }

        .blog-not-found p {
            font-size: 0.95rem;
        }

        .blog-not-found a {
            width: 100%;
            justify-content: center;
        }
    }

    /* ========================================
       REDUCED MOTION
       ======================================== */
    @media (prefers-reduced-motion: reduce) {
        .back-to-blog::before {
            transition: none !important;
        }

        .back-to-blog:hover::before {
            transform: none !important;
        }

        .blog-article-footer a:hover {
            transform: none !important;
        }

        .blog-not-found a:hover {
            transform: none !important;
        }
    }
}

.blog-contributor-note {
    max-width: 620px;
    margin: 14px auto 0;
    padding: 10px 18px;
    border-radius: var(--radius-sm, 8px);
    background: var(--color-bg, #f9fafb);
    color: var(--color-muted, #6b7280);
    font-size: 0.85rem;
    font-style: italic;
    line-height: 1.6;
    text-align: center;
}

@media (max-width: 768px) {
    .blog-contributor-note {
        font-size: 0.8rem;
        padding: 8px 14px;
    }
}