/* Single Post v3.8.1 — modular, no inline hardcode.
 * Blok legacy .irhyt-post-single* dihapus (Fase 3): tak dipakai template mana pun. */
.irhyt-single-inner{margin:0 auto;}
.irhyt-single-badge{margin-bottom:var(--space-30);}
.irhyt-single-title{font-size:var(--text-4xl);line-height:var(--leading-tight);margin-bottom:var(--space-20);letter-spacing:var(--tracking-tight);}
.irhyt-single-meta--v2{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-40);}
.irhyt-meta-item{display:inline-flex;align-items:center;gap:6px;}
.irhyt-single-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-40);}
.irhyt-tag-pill{text-transform:none;letter-spacing:0;}
.irhyt-single-nav{display:flex;justify-content:space-between;gap:16px;margin-top:var(--space-60);padding-top:var(--space-40);border-top:1px solid var(--color-border);}
.irhyt-nav-link{font-size:var(--text-sm);}
@media(max-width:640px){.irhyt-single-title{font-size:var(--text-3xl);} .irhyt-single-nav{flex-direction:column;}}

/* Polish editorial — lede, ikon meta, dropcap (token-only) */
.irhyt-single-lede{font-size:var(--text-lg);color:var(--color-muted);line-height:var(--leading-relaxed);margin-bottom:var(--space-40);}
.irhyt-single-meta--v2 svg{flex:none;color:var(--color-primary);}
.irhyt-content > p:first-of-type::first-letter{font-family:var(--font-display);font-weight:800;font-size:3.25em;float:left;line-height:.9;padding-right:.12em;color:var(--color-ink);}

body.single-post .irhyt-content {
    width: 100%;
    max-width: var(--max-width);
    margin-inline: auto;

    color: var(--color-ink);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
}

/* =========================================================
   CONTENT FLOW
   ========================================================= */

body.single-post .irhyt-content > * {
    margin-top: 0;
}

/* Default paragraph rhythm */
body.single-post .irhyt-content > p,
body.single-post .irhyt-content > .wp-block-paragraph {
    margin: 0 0 var(--space-50);
}

/* Blocks that normally need stronger separation */
body.single-post .irhyt-content > .wp-block-list,
body.single-post .irhyt-content > .wp-block-code,
body.single-post .irhyt-content > .wp-block-table,
body.single-post .irhyt-content > .wp-block-quote,
body.single-post .irhyt-content > figure,
body.single-post .irhyt-content > .wp-block-embed {
    margin-top: var(--space-60);
    margin-bottom: var(--space-60);
}

/* Consecutive paragraphs should remain visually connected */
body.single-post .irhyt-content > p + p,
body.single-post .irhyt-content > .wp-block-paragraph + .wp-block-paragraph {
    margin-top: calc(var(--space-20) * -1);
}

/* =========================================================
   HEADINGS
   ========================================================= */

body.single-post .irhyt-content .wp-block-heading {
    position: relative;

    margin: var(--space-80) 0 var(--space-40);

    color: var(--color-ink);
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    line-height: var(--leading-snug);
    letter-spacing: var(--tracking-tight);
}

/* First heading begins content immediately */
body.single-post .irhyt-content > .wp-block-heading:first-child {
    margin-top: 0;
}

/* H1 */
body.single-post .irhyt-content h1.wp-block-heading {
    margin-top: 0;
    margin-bottom: var(--space-50);

    font-size: clamp(
        var(--text-3xl),
        5vw,
        var(--text-5xl)
    );

    line-height: var(--leading-tight);
}

/* H2 = major section */
body.single-post .irhyt-content h2.wp-block-heading {
    margin-top: var(--space-100);
    margin-bottom: var(--space-40);

    font-size: clamp(
        var(--text-2xl),
        4vw,
        var(--text-4xl)
    );
}

/* H3 = subsection */
body.single-post .irhyt-content h3.wp-block-heading {
    margin-top: var(--space-80);
    margin-bottom: var(--space-30);

    font-size: clamp(
        var(--text-xl),
        3vw,
        var(--text-3xl)
    );
}

/* H4 */
body.single-post .irhyt-content h4.wp-block-heading {
    margin-top: var(--space-60);
    margin-bottom: var(--space-30);

    font-size: var(--text-xl);
}

/* H5 / H6 */
body.single-post .irhyt-content h5.wp-block-heading,
body.single-post .irhyt-content h6.wp-block-heading {
    margin-top: var(--space-50);
    margin-bottom: var(--space-20);

    font-size: var(--text-lg);
}

/* Heading followed directly by heading */
body.single-post .irhyt-content .wp-block-heading + .wp-block-heading {
    margin-top: var(--space-50);
}

/* =========================================================
   PARAGRAPH
   ========================================================= */

body.single-post .irhyt-content p {
    color: var(--color-ink-secondary);
}

body.single-post .irhyt-content strong {
    color: var(--color-ink);
    font-weight: var(--fw-semibold);
}

body.single-post .irhyt-content em {
    color: var(--color-ink-secondary);
}

/* Intro paragraph */
body.single-post .irhyt-content > .wp-block-heading + .wp-block-paragraph:first-of-type {
    color: var(--color-ink-secondary);
}

/* First paragraph after H1 gets slightly stronger emphasis */
body.single-post .irhyt-content > h1 + p,
body.single-post .irhyt-content > h1 + .wp-block-paragraph {
    font-size: var(--text-lg);
    line-height: var(--leading-relaxed);
}

/* =========================================================
   LINKS
   ========================================================= */

body.single-post .irhyt-content a:not(.btn) {
    color: var(--color-primary);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;

    transition: var(--transition-fast);
}

body.single-post .irhyt-content a:not(.btn):hover {
    color: var(--color-primary-hover);
}

body.single-post .irhyt-content a:active {
    color: var(--color-primary-active);
}

/* =========================================================
   LIST
   ========================================================= */

body.single-post .irhyt-content .wp-block-list {
    margin-top: var(--space-50);
    margin-bottom: var(--space-60);
    padding-left: var(--space-60);

    color: var(--color-ink-secondary);
}

body.single-post .irhyt-content ul.wp-block-list {
    list-style: disc;
}

body.single-post .irhyt-content ol.wp-block-list {
    list-style: decimal;
}

body.single-post .irhyt-content .wp-block-list li {
    margin-bottom: var(--space-30);
    padding-left: var(--space-10);

    line-height: var(--leading-relaxed);
}

body.single-post .irhyt-content .wp-block-list li:last-child {
    margin-bottom: 0;
}

body.single-post .irhyt-content .wp-block-list li::marker {
    color: var(--color-primary);
    font-weight: var(--fw-semibold);
}

/* Nested list */
body.single-post .irhyt-content .wp-block-list .wp-block-list {
    margin-top: var(--space-20);
    margin-bottom: var(--space-30);
}

/* =========================================================
   CODE BLOCK
   ========================================================= */

body.single-post .irhyt-content .wp-block-code {
    overflow: hidden;

    margin-top: var(--space-60);
    margin-bottom: var(--space-80);

    padding: 0;

    background: var(--color-code-bg);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
}

body.single-post .irhyt-content .wp-block-code code {
    display: block;

    padding: var(--space-50);

    overflow-x: auto;

    color: var(--color-code-text);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);

    white-space: pre;
    tab-size: 4;
}

/* Inline code */
body.single-post .irhyt-content :not(pre) > code {
    padding: 0.15em 0.4em;

    color: var(--color-primary);
    background: var(--color-primary-alpha);

    border-radius: var(--radius-xs);

    font-family: var(--font-mono);
    font-size: 0.9em;
}

/* =========================================================
   TABLE
   ========================================================= */

body.single-post .irhyt-content .wp-block-table {
    width: 100%;

    margin-top: var(--space-60);
    margin-bottom: var(--space-80);

    overflow-x: auto;
}

body.single-post .irhyt-content .wp-block-table table {
    width: 100%;
    min-width: 560px;

    border-collapse: collapse;

    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);

    overflow: hidden;
}

body.single-post .irhyt-content .wp-block-table th,
body.single-post .irhyt-content .wp-block-table td {
    padding: var(--space-30) var(--space-40);

    color: var(--color-ink-secondary);

    text-align: left;
    vertical-align: middle;

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

body.single-post .irhyt-content .wp-block-table th {
    color: var(--color-ink);
    font-weight: var(--fw-semibold);
    background: var(--color-surface);
}

body.single-post .irhyt-content .wp-block-table tbody tr:nth-child(even) {
    background: var(--color-ink-alpha);
}

body.single-post .irhyt-content .wp-block-table tbody tr:hover {
    background: var(--color-ink-alpha-hover);
}

/* =========================================================
   BLOCKQUOTE
   ========================================================= */

body.single-post .irhyt-content .wp-block-quote {
    margin-top: var(--space-80);
    margin-bottom: var(--space-80);
    padding: var(--space-50) var(--space-60);

    background: var(--color-primary-alpha);

    border-left: 4px solid var(--color-primary);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

body.single-post .irhyt-content .wp-block-quote p {
    margin: 0;

    color: var(--color-ink);

    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: var(--fw-semibold);
    line-height: var(--leading-snug);
    letter-spacing: var(--tracking-snug);
}

body.single-post .irhyt-content .wp-block-quote cite {
    display: block;

    margin-top: var(--space-30);

    color: var(--color-muted);

    font-size: var(--text-sm);
    font-style: normal;
}

/* =========================================================
   IMAGES / FIGURES
   ========================================================= */

body.single-post .irhyt-content figure {
    margin-top: var(--space-60);
    margin-bottom: var(--space-80);
}

body.single-post .irhyt-content img {
    display: block;

    width: 100%;
    max-width: 100%;
    height: auto;

    border-radius: var(--radius-md);
}

body.single-post .irhyt-content figcaption {
    margin-top: var(--space-30);

    color: var(--color-muted);

    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    text-align: center;
}

/* =========================================================
   EMBED
   ========================================================= */

body.single-post .irhyt-content .wp-block-embed {
    margin-top: var(--space-60);
    margin-bottom: var(--space-80);
}

body.single-post .irhyt-content iframe {
    display: block;
    max-width: 100%;
}

/* =========================================================
   HR
   ========================================================= */

body.single-post .irhyt-content hr {
    margin: var(--space-100) 0;

    border: 0;
    border-top: 1px solid var(--color-border);
}

/* =========================================================
   BLOCK RELATIONSHIPS
   ========================================================= */

/* Heading → content */
body.single-post .irhyt-content .wp-block-heading + p,
body.single-post .irhyt-content .wp-block-heading + .wp-block-paragraph,
body.single-post .irhyt-content .wp-block-heading + .wp-block-list,
body.single-post .irhyt-content .wp-block-heading + .wp-block-table,
body.single-post .irhyt-content .wp-block-heading + .wp-block-code {
    margin-top: 0;
}

/* Paragraph → list */
body.single-post .irhyt-content p + .wp-block-list,
body.single-post .irhyt-content .wp-block-paragraph + .wp-block-list {
    margin-top: var(--space-40);
}

/* Paragraph → code */
body.single-post .irhyt-content p + .wp-block-code,
body.single-post .irhyt-content .wp-block-paragraph + .wp-block-code {
    margin-top: var(--space-50);
}

/* Paragraph → table */
body.single-post .irhyt-content p + .wp-block-table,
body.single-post .irhyt-content .wp-block-paragraph + .wp-block-table {
    margin-top: var(--space-50);
}

/* Paragraph → quote */
body.single-post .irhyt-content p + .wp-block-quote,
body.single-post .irhyt-content .wp-block-paragraph + .wp-block-quote {
    margin-top: var(--space-60);
}

/* List → paragraph */
body.single-post .irhyt-content .wp-block-list + p,
body.single-post .irhyt-content .wp-block-list + .wp-block-paragraph {
    margin-top: var(--space-50);
}

/* Code → table / quote */
body.single-post .irhyt-content .wp-block-code + .wp-block-table,
body.single-post .irhyt-content .wp-block-code + .wp-block-quote {
    margin-top: var(--space-80);
}

/* Table → quote */
body.single-post .irhyt-content .wp-block-table + .wp-block-quote {
    margin-top: var(--space-80);
}

/* =========================================================
   LAST BLOCK
   ========================================================= */

body.single-post .irhyt-content > *:last-child {
    margin-bottom: 0;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    body.single-post .irhyt-content {
        font-size: var(--text-base);
    }

    body.single-post .irhyt-content h1.wp-block-heading {
        margin-bottom: var(--space-40);
    }

    body.single-post .irhyt-content h2.wp-block-heading {
        margin-top: var(--space-80);
        margin-bottom: var(--space-30);
    }

    body.single-post .irhyt-content h3.wp-block-heading {
        margin-top: var(--space-60);
    }

    body.single-post .irhyt-content .wp-block-paragraph,
    body.single-post .irhyt-content > p {
        margin-bottom: var(--space-40);
    }

    body.single-post .irhyt-content .wp-block-list {
        margin-top: var(--space-40);
        margin-bottom: var(--space-50);
        padding-left: var(--space-50);
    }

    body.single-post .irhyt-content .wp-block-code {
        margin-top: var(--space-50);
        margin-bottom: var(--space-60);
    }

    body.single-post .irhyt-content .wp-block-code code {
        padding: var(--space-40);
        font-size: var(--text-xs);
    }

    body.single-post .irhyt-content .wp-block-table {
        margin-top: var(--space-50);
        margin-bottom: var(--space-60);
    }

    body.single-post .irhyt-content .wp-block-quote {
        margin-top: var(--space-60);
        margin-bottom: var(--space-60);
        padding: var(--space-40) var(--space-50);
    }

    body.single-post .irhyt-content .wp-block-quote p {
        font-size: var(--text-lg);
    }

    body.single-post .irhyt-content figure,
    body.single-post .irhyt-content .wp-block-embed {
        margin-top: var(--space-50);
        margin-bottom: var(--space-60);
    }

    body.single-post .irhyt-content hr {
        margin: var(--space-80) 0;
    }
}

img.irhyt-single-thumb.wp-post-image {display: block;width: 100%;max-width: 100vw;aspect-ratio: 16 / 9;height: auto;margin: var(--space-60) auto;object-fit: cover;border-radius: var(--radius-md);background: var(--color-surface);box-shadow: var(--shadow-soft);}