/*
 * MediRoyal — Single Blog Post
 * Loaded on: is_single() && 'post' === get_post_type()
 * Depends on: mr-global.css → design-tokens.css
 */

/* ================================================================
   CONTAINER — constrain & center everything to 900px
   ================================================================ */
body.single-post .content-container {
    max-width: 60% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

body.single-post .content-wrap {
    background: transparent;
    padding: 0;
}

body.single-post .site-main {
    padding-top: 0;
}

/* ================================================================
   FEATURED IMAGE — hero banner above white card
   ================================================================ */
body.single-post .post-thumbnail.article-post-thumbnail {
    position: relative;
    z-index: 1;
    margin: 0 0 -44px;
    border-radius: var(--mr-radius-md) var(--mr-radius-md) 0 0;
    overflow: hidden;
}

body.single-post .article-post-thumbnail .post-thumbnail-inner {
    width: 100%;
    overflow: hidden;
}

body.single-post .article-post-thumbnail .post-top-featured.wp-post-image {
    width: 100%;
    height: auto;
    display: block;
}

/* ================================================================
   WHITE CARD — article wraps content
   ================================================================ */
body.single-post article.single-entry {
    position: relative;
    z-index: 2;
    background: var(--mr-white) !important;
    border-radius: 0 0 var(--mr-radius-md) var(--mr-radius-md);
    box-shadow: var(--mr-shadow-md);
    margin-bottom: 24px;
}

body.single-post .entry-content-wrap {
    padding: 44px 52px !important;
}

/* ================================================================
   POST HEADER (PHP-injected .log-post-header)
   ================================================================ */
.log-post-header {
    margin-bottom: 30px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--mr-line);
}

.log-post-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.log-post-cat-link {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--mr-crimson);
    background: rgba(155, 27, 48, .08);
    padding: 4px 12px;
    border-radius: var(--mr-radius-pill);
    text-decoration: none;
    transition: all .2s;
}

.log-post-cat-link:hover {
    background: var(--mr-crimson);
    color: #fff;
}

h1.log-post-title {
    font-family: var(--mr-display);
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.22;
    color: var(--mr-ink-900);
    margin: 0 0 14px;
}

.log-post-meta {
    font-size: 13px;
    color: var(--mr-gray-600);
    display: flex;
    align-items: center;
    gap: 12px;
}

.log-post-meta time {
    color: var(--mr-gray-600);
}

.log-post-meta-dot {
    color: var(--mr-gold-600);
    font-size: 10px;
}

.log-post-author {
    font-weight: 500;
    color: var(--mr-ink-700);
}

/* ================================================================
   CONTENT TYPOGRAPHY
   ================================================================ */
body.single-post .single-content h2 {
    font-family: var(--mr-display);
    font-size: clamp(19px, 2.4vw, 27px);
    font-weight: 700;
    color: var(--mr-crimson);
    margin: 2em 0 .7em;
    line-height: 1.3;
}

body.single-post .single-content h3 {
    font-family: var(--mr-display);
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 600;
    color: var(--mr-ink-900);
    margin: 1.75em 0 .6em;
    line-height: 1.35;
}

body.single-post .single-content h4 {
    font-size: 17px;
    font-weight: 600;
    color: var(--mr-ink-700);
    margin: 1.5em 0 .5em;
}

body.single-post .single-content p {
    font-size: 16px;
    line-height: 1.85;
    color: var(--mr-ink-700);
    margin: 0 0 1.25em;
}

body.single-post .single-content a {
    color: var(--mr-crimson);
    text-decoration: underline;
    text-underline-offset: 3px;
}

body.single-post .single-content a:hover {
    color: var(--mr-crimson-deep);
}

body.single-post .single-content ul,
body.single-post .single-content ol {
    margin: 0 0 1.25em 1.6em;
    font-size: 16px;
    line-height: 1.85;
    color: var(--mr-ink-700);
}

body.single-post .single-content li {
    margin-bottom: .4em;
}

body.single-post .single-content strong {
    color: var(--mr-ink-900);
}

body.single-post .single-content blockquote {
    border-left: 4px solid var(--mr-crimson);
    margin: 2em 0;
    padding: 16px 24px;
    background: rgba(155, 27, 48, .04);
    border-radius: 0 8px 8px 0;
    font-style: italic;
    color: var(--mr-ink-700);
}

body.single-post .single-content img {
    border-radius: 8px;
    margin: .5em 0;
}

/* ================================================================
   ENTRY FOOTER — tags
   ================================================================ */
body.single-post .entry-footer {
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px solid var(--mr-line);
    font-size: 13px;
    color: var(--mr-gray-600);
}

body.single-post .entry-footer .tags-links a {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .07em;
    color: var(--mr-ink-700);
    background: var(--mr-cream-dark);
    padding: 4px 12px;
    border-radius: var(--mr-radius-pill);
    text-decoration: none;
    display: inline-block;
    margin: 3px 2px;
    transition: all .2s;
}

body.single-post .entry-footer .tags-links a:hover {
    background: var(--mr-gold-pale);
    color: var(--mr-ink-900);
}

/* ================================================================
   POST NAVIGATION — prev / next
   ================================================================ */
body.single-post .post-navigation {
    background: var(--mr-white);
    border-radius: var(--mr-radius-md);
    box-shadow: var(--mr-shadow-sm);
    margin-bottom: 24px;
    overflow: hidden;
    padding: 0;
}

body.single-post .post-navigation .nav-links {
    display: flex;
    gap: 0px !important;
}

body.single-post .post-navigation .nav-previous,
body.single-post .post-navigation .nav-next {
    flex: 1;
    min-width: 0;
}

body.single-post .post-navigation .nav-previous+.nav-next {
    border-left: 1px solid var(--mr-line);
}

body.single-post .post-navigation .nav-next {
    text-align: right;
}

body.single-post .post-navigation a {
    display: block;
    padding: 22px 28px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--mr-ink-800);
    transition: background .2s, color .2s;
}

body.single-post .post-navigation a:hover {
    background: rgba(155, 27, 48, .04);
    color: var(--mr-crimson);
}

body.single-post .post-navigation .post-navigation-sub small {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--mr-crimson);
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 6px;
}

body.single-post .post-navigation .nav-next .post-navigation-sub small {
    justify-content: flex-end;
}

body.single-post .post-navigation .kadence-svg-iconset {
    display: flex;
    align-items: center;
}

body.single-post .post-navigation .nav-previous::after {
    display: none !important;
}

/* ================================================================
   RELATED POSTS — Blocksy's native .ct-related-posts module.
   Blocksy normally injects --grid-template-columns per-instance via its
   own dynamic-styles output; that variable is arriving unset here, so
   the module's own CSS (grid-template-columns: var(--grid-template-columns))
   resolves to `none` — every card collapses to one full-width column
   (confirmed live: a single ~1425px-wide, ~800px-tall stacked image per
   card). Setting the variable ourselves, responsively, is the fix.
   ================================================================ */
body.single-post .ct-related-posts-container {
    padding: 40px 0 20px;
    width: 80%;
    margin: 0 auto;
}

body.single-post .ct-comments {
    background: #fff;
    padding: 10px;
    border-radius: 10px;
}

body.single-post .ct-related-posts .ct-module-title {
    font-family: var(--display);
    font-size: clamp(20px, 2.4vw, 28px);
    font-weight: 700;
    color: var(--ink-900);
    margin: 0 0 24px;
    padding-bottom: 14px;
    border-bottom: 3px solid var(--plum-700);
    display: inline-block;
}

body.single-post .ct-related-posts [data-layout*="grid"] {
    --grid-template-columns: repeat(3, 1fr);
}

body.single-post .ct-related-posts .hentry {
    background: var(--white);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
    height: 100%;
}

body.single-post .ct-related-posts .hentry:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
}

body.single-post .ct-related-posts .ct-media-container {
    display: block;
    height: 200px;
    overflow: hidden;
}

body.single-post .ct-related-posts .ct-media-container img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center;
    display: block;
}

body.single-post .ct-related-posts .related-entry-title {
    font-family: var(--display);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    margin: 14px 16px 8px;
}

body.single-post .ct-related-posts .related-entry-title a {
    color: var(--ink-900);
    text-decoration: none;
}

body.single-post .ct-related-posts .related-entry-title a:hover {
    color: var(--plum-700);
}

body.single-post .ct-related-posts .entry-meta {
    font-size: 12px;
    color: var(--gray-600);
    margin: 0 16px 16px;
}

@media (max-width: 980px) {
    body.single-post .ct-related-posts [data-layout*="grid"] {
        --grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    body.single-post .ct-related-posts [data-layout*="grid"] {
        --grid-template-columns: 1fr;
    }
}

/* ================================================================
   COMMENTS AREA
   ================================================================ */
body.single-post .comments-area {
    background: var(--mr-white);
    border-radius: var(--mr-radius-md);
    box-shadow: var(--mr-shadow-sm);
    padding: 36px 44px;
    margin-bottom: 32px;
}

body.single-post .comments-title {
    font-family: var(--mr-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--mr-ink-900);
    margin: 0 0 24px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--mr-line);
}

body.single-post #reply-title {
    font-family: var(--mr-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--mr-ink-900);
    margin-bottom: 20px;
}

body.single-post .comment-respond {
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--mr-line);
}

body.single-post .form-submit .submit {
    background: var(--mr-crimson);
    color: #fff;
    border: none;
    padding: 12px 28px;
    border-radius: var(--mr-radius-pill);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s;
}

body.single-post .form-submit .submit:hover {
    background: var(--mr-crimson-deep);
}

/* ================================================================
   RESPONSIVE — tablet (≤ 768px)
   ================================================================ */
@media (max-width: 768px) {
    body.single-post .entry-content-wrap {
        padding: 28px 24px !important;
    }

    body.single-post .post-thumbnail-inner {
        height: auto;
    }

    body.single-post .comments-area {
        padding: 24px 20px;
    }

    body.single-post .post-navigation .nav-links {
        flex-direction: column;
    }

    body.single-post .post-navigation .nav-previous+.nav-next {
        border-left: none;
        border-top: 1px solid var(--mr-line);
    }

    body.single-post .post-navigation .nav-next {
        text-align: left;
    }

    body.single-post .post-navigation .nav-next .post-navigation-sub small {
        justify-content: flex-start;
    }

    body.single-post .post-navigation a {
        padding: 16px 18px;
    }
}

/* ================================================================
   RESPONSIVE — mobile (≤ 480px)
   ================================================================ */
@media (max-width: 480px) {
    body.single-post .content-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.single-post .post-thumbnail-inner {
        height: auto;
    }

    body.single-post .post-thumbnail.article-post-thumbnail {
        margin-bottom: -28px;
    }

    body.single-post .entry-content-wrap {
        padding: 20px 16px !important;
    }

    h1.log-post-title {
        font-size: 22px;
    }

    body.single-post .entry-related-title {
        font-size: 18px;
    }

    body.single-post .comments-area {
        padding: 18px 14px;
    }
}