/*
Theme Name: Apollo89 GeneratePress Child
Theme URI: https://apollo89.com/
Description: Apollo89.com용 GeneratePress Child Theme. AI/개발/보안/자동화 기술 블로그 레이아웃 + AdSense 광고 슬롯 관리.
Author: Apollo89
Template: generatepress
Version: 2.0.0
Text Domain: apollo89
*/

/* =========================================================
   Apollo89 Design System v2.0.0
   ========================================================= */

:root {
    --apollo-primary: #2563eb;
    --apollo-primary-hover: #1d4ed8;
    --apollo-heading: #111827;
    --apollo-text: #374151;
    --apollo-muted: #6b7280;
    --apollo-border: #e5e7eb;
    --apollo-bg: #f6f8fb;
    --apollo-card: #ffffff;
    --apollo-soft: #f8fafc;
    --apollo-code-bg: #111827;
    --apollo-code-text: #e5e7eb;
    --apollo-inline-code-bg: #eef2f7;
    --apollo-inline-code-text: #be123c;
    --apollo-radius: 14px;
    --apollo-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    --apollo-max: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--apollo-bg);
    color: var(--apollo-text);
    font-family:
        -apple-system, BlinkMacSystemFont, "Segoe UI",
        "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    font-size: 17px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body, button, input, select, textarea { color: var(--apollo-text); }

a {
    color: var(--apollo-primary);
    text-decoration-thickness: 1px;
    text-underline-offset: .16em;
}

a:hover, a:focus { color: var(--apollo-primary-hover); }

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-branding .main-title {
    color: var(--apollo-heading);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -.025em;
}

p { margin-bottom: 1.5em; }
h1 { font-size: 42px; }
h2 { font-size: 30px; margin-top: 2.15em; margin-bottom: .8em; }
h3 { font-size: 23px; margin-top: 1.8em; margin-bottom: .7em; }
h4 { font-size: 19px; }

/* Header */
.site-header { background: #fff; border-bottom: 0; }

.inside-header {
    max-width: var(--apollo-max);
    margin: 0 auto;
    padding: 18px 24px 14px;
}

.site-branding {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.site-branding .main-title {
    font-size: 27px;
    letter-spacing: -.04em;
    line-height: 1.1;
}

.site-branding .main-title a,
.site-branding .main-title a:hover { color: var(--apollo-heading); }

.site-description {
    margin: 0;
    color: var(--apollo-muted);
    font-size: 12px;
    line-height: 1.4;
}

.main-navigation { display: none; }

.apollo-topic-nav {
    background: #fff;
    border-top: 1px solid #f3f4f6;
    border-bottom: 1px solid var(--apollo-border);
}

.apollo-topic-nav__inner {
    width: min(calc(100% - 48px), var(--apollo-max));
    min-height: 48px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 18px;
}

.apollo-topic-nav__links {
    display: flex;
    align-items: center;
    gap: 0;
    min-width: 0;
    flex: 1;
    overflow-x: auto;
    scrollbar-width: none;
}

.apollo-topic-nav__links::-webkit-scrollbar { display: none; }

.apollo-topic-nav a {
    flex: 0 0 auto;
    padding: 12px 10px;
    color: var(--apollo-heading);
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
}

.apollo-topic-nav a:first-child { padding-left: 0; }
.apollo-topic-nav a:hover { color: var(--apollo-primary); }

.apollo-topic-search {
    position: relative;
    display: flex;
    align-items: center;
    width: 178px;
    margin: 0;
}

.apollo-topic-search input[type="search"] {
    width: 100%;
    min-height: 34px;
    padding: 6px 34px 6px 12px;
    border: 1px solid var(--apollo-border);
    border-radius: 999px;
    background: var(--apollo-soft);
    color: var(--apollo-heading);
    font-size: 13px;
    outline: none;
}

.apollo-topic-search::after {
    content: "⌕";
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-53%);
    color: #9ca3af;
    font-size: 17px;
    pointer-events: none;
}

.apollo-topic-search input[type="search"]:focus {
    border-color: #93c5fd;
    background: #fff;
}

/* Main */
.site.grid-container { max-width: none; }

.site-content {
    padding-top: 0;
    padding-bottom: 56px;
}

.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header {
    background: var(--apollo-card);
    border-radius: var(--apollo-radius);
    box-shadow: var(--apollo-shadow);
}

/* Home */
.apollo-home {
    width: min(calc(100% - 48px), var(--apollo-max));
    margin: 0 auto;
    padding: 30px 0 64px;
}

.apollo-hero {
    position: relative;
    overflow: hidden;
    padding: 26px 48px;
    border: 1px solid var(--apollo-border);
    border-radius: 18px;
    background:
        radial-gradient(circle at 88% 18%, rgba(37, 99, 235, .10), transparent 28%),
        linear-gradient(135deg, #fff 0%, #fbfdff 58%, #f4f7ff 100%);
    box-shadow: var(--apollo-shadow);
}

.apollo-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: var(--apollo-primary);
    font-size: 12px;
    font-weight: 780;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.apollo-hero h1 {
    max-width: 1000px;
    margin: 0 0 14px;
    font-size: clamp(34px, 4vw, 42px);
    line-height: 1.12;
    letter-spacing: -.05em;
    text-wrap: balance;
    word-break: keep-all;
}

.apollo-hero p {
    max-width: 1000px;
    margin: 0;
    color: #4b5563;
    font-size: 17px;
    line-height: 1.7;
    word-break: keep-all;
}

.apollo-section { margin-top: 36px; }

.apollo-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.apollo-section-header h2 {
    margin: 0;
    font-size: 24px;
    letter-spacing: -.035em;
}

.apollo-section-header p {
    margin: 2px 0 0;
    color: var(--apollo-muted);
    font-size: 14px;
}

.apollo-post-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.apollo-post-card {
    display: flex;
    min-height: 232px;
    flex-direction: column;
    padding: 26px;
    border: 1px solid var(--apollo-border);
    border-radius: var(--apollo-radius);
    background: var(--apollo-card);
    box-shadow: var(--apollo-shadow);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.apollo-post-card:hover {
    transform: translateY(-2px);
    border-color: #cbd5e1;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}

.apollo-post-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 11px;
    color: var(--apollo-muted);
    font-size: 12.5px;
}

.apollo-post-card__category {
    color: var(--apollo-primary);
    font-weight: 700;
}

.apollo-post-card h3 {
    margin: 0 0 12px;
    font-size: 21px;
    line-height: 1.42;
    letter-spacing: -.03em;
    word-break: keep-all;
}

.apollo-post-card h3 a {
    color: var(--apollo-heading);
    text-decoration: none;
}

.apollo-post-card h3 a:hover { color: var(--apollo-primary); }

.apollo-post-card__excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 0 0 16px;
    color: #5b6472;
    font-size: 14.5px;
    line-height: 1.7;
}

.apollo-post-card__more {
    margin-top: auto;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
}

.apollo-pagination { margin-top: 26px; }

.apollo-pagination .page-numbers {
    display: inline-flex;
    min-width: 36px;
    height: 36px;
    margin: 0 4px 6px 0;
    padding: 0 11px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--apollo-border);
    border-radius: 8px;
    background: #fff;
    color: var(--apollo-heading);
    text-decoration: none;
    font-size: 13.5px;
}

.apollo-pagination .page-numbers.current,
.apollo-pagination .page-numbers:hover {
    border-color: var(--apollo-primary);
    background: var(--apollo-primary);
    color: #fff;
}

/* AdSense — visually separate from content/cards to avoid misleading clicks. */
.apollo-ad {
    width: 100%;
    margin: 34px auto;
    padding: 18px 0;
    text-align: center;
}

.apollo-ad--home {
    grid-column: 1 / -1;
    margin: 10px 0 14px;
    padding: 22px 12px;
    border-top: 1px solid var(--apollo-border);
    border-bottom: 1px solid var(--apollo-border);
}

.apollo-ad--article {
    margin: 38px auto;
    padding: 24px 0;
    border-top: 1px solid var(--apollo-border);
    border-bottom: 1px solid var(--apollo-border);
}

.apollo-ad__label {
    display: block;
    margin-bottom: 8px;
    color: #9ca3af;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.apollo-ad .adsbygoogle {
    min-height: 90px;
}

.apollo-ad--article .adsbygoogle {
    min-height: 100px;
}

.apollo-ad-admin-placeholder {
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #cbd5e1;
    border-radius: 9px;
    background: rgba(255,255,255,.65);
    color: #94a3b8;
    font-size: 12px;
}


/* Home affiliate block: shown immediately after the hero. */
.apollo-home-affiliate {
    margin: 22px 0 0;
    padding: 18px 12px 22px;
    border-top: 1px solid var(--apollo-border);
    border-bottom: 1px solid var(--apollo-border);
    background: var(--apollo-card);
}

.apollo-home-affiliate__disclosure {
    margin: 0 0 14px;
    color: var(--apollo-muted);
    font-size: 13px;
    line-height: 1.6;
    text-align: center !important;
}

.apollo-home-affiliate #coupang a,
.apollo-home-affiliate #coupang img {
    display: block;
}

.apollo-home-affiliate #coupang img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    .apollo-home-affiliate #coupang {
        align-items: center;
        flex-direction: column;
    }

    .apollo-home-affiliate #coupang iframe {
        width: min(100%, 360px) !important;
    }
}

/* Single */
.single .site-content,
.page .site-content,
.archive .site-content,
.search .site-content {
    padding-top: 34px;
}

.single .inside-article {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.single .entry-title {
    margin-bottom: 14px;
    font-size: 42px;
    line-height: 1.3;
    letter-spacing: -.04em;
}

.entry-meta {
    color: var(--apollo-muted);
    font-size: 14px;
}

.entry-meta a { color: var(--apollo-muted); }
.entry-meta a:hover { color: var(--apollo-primary); }

.entry-content { margin-top: 2em; }
.entry-content > *:first-child { margin-top: 0; }

.entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.wp-caption-text,
figcaption {
    color: var(--apollo-muted);
    font-size: 14px;
    line-height: 1.6;
}

.entry-content pre,
.wp-block-code {
    overflow-x: auto;
    padding: 20px;
    border: 0;
    border-radius: 9px;
    background: var(--apollo-code-bg);
    color: var(--apollo-code-text);
    font-size: 14px;
    line-height: 1.65;
    tab-size: 4;
}

.entry-content pre code,
.wp-block-code code {
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: inherit;
}

.entry-content code {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Monaco, monospace;
}

.entry-content p code,
.entry-content li code,
.entry-content td code {
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--apollo-inline-code-bg);
    color: var(--apollo-inline-code-text);
    font-size: .9em;
}

blockquote,
.wp-block-quote {
    margin: 30px 0;
    padding: 18px 22px;
    border-left: 4px solid var(--apollo-primary);
    background: var(--apollo-soft);
    color: var(--apollo-text);
}

blockquote p:last-child { margin-bottom: 0; }

.entry-content table,
.wp-block-table table {
    width: 100%;
    margin: 30px 0;
    border-collapse: collapse;
}

.entry-content th,
.entry-content td,
.wp-block-table th,
.wp-block-table td {
    padding: 12px 15px;
    border: 1px solid var(--apollo-border);
    vertical-align: top;
}

.entry-content th,
.wp-block-table th {
    background: var(--apollo-soft);
    color: var(--apollo-heading);
    font-weight: 700;
}

.entry-content ul,
.entry-content ol { margin-bottom: 1.5em; }
.entry-content li + li { margin-top: .35em; }

.wp-block-button__link,
button,
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button { border-radius: 7px; }

/* Footer */
.site-footer { border-top: 1px solid var(--apollo-border); }

.site-info {
    padding: 22px 24px;
    background: #fff;
    color: var(--apollo-muted);
    font-size: 13px;
}

.site-info a { color: var(--apollo-muted); }

.apollo-footer-note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.screen-reader-text:focus { z-index: 100000; }

::selection {
    background: #dbeafe;
    color: var(--apollo-heading);
}

/* Responsive */
@media (max-width: 900px) {
    .apollo-post-grid { grid-template-columns: 1fr; }

    .apollo-topic-search { display: none; }
}

@media (max-width: 768px) {
    body { font-size: 16px; }

    .inside-header { padding: 16px 20px 12px; }

    .site-branding { display: block; }
    .site-branding .main-title { font-size: 24px; }

    .site-description {
        margin-top: 3px;
        font-size: 11.5px;
    }

    .apollo-topic-nav__inner,
    .apollo-home {
        width: min(calc(100% - 32px), var(--apollo-max));
    }

    .apollo-topic-nav__inner { min-height: 46px; }

    .apollo-topic-nav a {
        padding: 11px 8px;
        font-size: 13px;
    }

    .apollo-home {
        padding-top: 24px;
        padding-bottom: 46px;
    }

    .apollo-hero {
        padding: 28px 24px;
        border-radius: 16px;
    }

    .apollo-hero h1 {
        font-size: 34px;
        line-height: 1.16;
    }

    .apollo-hero p { font-size: 15.5px; }
    .apollo-section { margin-top: 36px; }

    .apollo-post-card { padding: 21px; }

    .apollo-post-card { min-height: 0; }
    .apollo-post-card h3 { font-size: 20px; }

    .apollo-ad--home,
    .apollo-ad--article {
        margin: 26px auto;
        padding: 18px 0;
    }

    .single .site-content,
    .page .site-content,
    .archive .site-content,
    .search .site-content {
        padding-top: 24px;
    }

    h1,
    .single .entry-title { font-size: 32px; }

    h2 { font-size: 26px; }
    h3 { font-size: 21px; }

    .inside-article {
        padding-left: 20px;
        padding-right: 20px;
    }

    .entry-content pre,
    .wp-block-code {
        padding: 16px;
        font-size: 13px;
    }
}

/* v1.4.2: compact home hero */
.apollo-hero h1 { margin-top: 12px; margin-bottom: 14px; line-height: 1.10; }
.apollo-hero p { margin-bottom: 0; }
@media (max-width: 768px) {
    .apollo-hero { padding-top: 22px; padding-bottom: 22px; }
}


/* =========================================================
   v1.5.0 Single Article UX
   ========================================================= */

.apollo-article-tools {
    max-width: 820px;
    margin: -8px auto 24px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    color: var(--apollo-muted);
    font-size: 13px;
}

.apollo-article-tools__item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.apollo-article-tools__dot::before {
    content: "·";
    margin-right: 8px;
    color: #cbd5e1;
}

.apollo-reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
    width: 0;
    height: 3px;
    background: var(--apollo-primary);
    pointer-events: none;
    transition: width .08s linear;
}

.apollo-code-wrap {
    position: relative;
    margin: 30px 0;
}

.apollo-code-wrap > pre,
.apollo-code-wrap > .wp-block-code {
    margin: 0;
}

.apollo-copy-code {
    position: absolute;
    top: 9px;
    right: 9px;
    z-index: 2;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 6px;
    background: rgba(17,24,39,.86);
    color: #d1d5db;
    font: 600 11px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    cursor: pointer;
    opacity: .78;
}

.apollo-copy-code:hover,
.apollo-copy-code:focus {
    opacity: 1;
    color: #fff;
    background: rgba(31,41,55,.98);
}

.apollo-related {
    max-width: 820px;
    margin: 34px auto 0;
    padding-top: 28px;
    border-top: 1px solid var(--apollo-border);
}

.apollo-related__title {
    margin: 0 0 16px;
    font-size: 21px;
    letter-spacing: -.03em;
}

.apollo-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.apollo-related__card {
    display: block;
    min-height: 128px;
    padding: 16px;
    border: 1px solid var(--apollo-border);
    border-radius: 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: var(--apollo-shadow);
}

.apollo-related__card:hover {
    border-color: #bfdbfe;
    color: inherit;
}

.apollo-related__meta {
    display: block;
    margin-bottom: 8px;
    color: var(--apollo-muted);
    font-size: 11px;
}

.apollo-related__card strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    color: var(--apollo-heading);
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .apollo-article-tools {
        padding-left: 20px;
        padding-right: 20px;
        font-size: 12px;
    }

    .apollo-related {
        padding-left: 20px;
        padding-right: 20px;
    }

    .apollo-related__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   v1.5.1 Single Article refinements
   ========================================================= */

/* Hide GeneratePress' default single-post meta so our compact meta row is the only one shown. */
.single-post .entry-header > .entry-meta {
    display: none;
}

/* Reduce the visual weight and vertical height of the article header. */
.single-post .inside-article {
    padding-top: 34px;
    padding-bottom: 42px;
}

.single-post .entry-header {
    margin-bottom: 0;
}

.single-post .entry-title {
    margin: 0;
    font-size: clamp(34px, 4vw, 42px);
    line-height: 1.28;
    letter-spacing: -.045em;
}

.single-post .apollo-article-tools {
    margin: 10px auto 0;
    padding: 0;
    min-height: 0;
    line-height: 1.45;
}

.single-post .entry-content {
    margin-top: 24px;
}

/* Affiliate disclosure: keep it visible but visually secondary and compact. */
.single-post .apollo-affiliate-disclosure {
    margin: 0 0 24px;
    padding: 10px 12px;
    border-left: 3px solid #93c5fd;
    border-radius: 6px;
    background: #f8fbff;
    color: #4b5563;
    font-size: 13.5px;
    line-height: 1.65;
}

.single-post .apollo-affiliate-disclosure a {
    color: var(--apollo-primary);
    text-decoration: none;
}

.single-post .apollo-affiliate-disclosure a:hover {
    text-decoration: underline;
}

/* Featured image / first large visual should start closer to the disclosure. */
.single-post .entry-content > figure:first-of-type,
.single-post .entry-content > .wp-block-image:first-of-type,
.single-post .entry-content > img:first-of-type {
    margin-top: 22px;
}

/* Remove excessive spacing left by empty legacy paragraphs near the top. */
.single-post .entry-content > p:empty,
.single-post .entry-content > p > br:only-child {
    display: none;
}

@media (max-width: 768px) {
    .single-post .inside-article {
        padding-top: 26px;
        padding-bottom: 34px;
    }

    .single-post .entry-title {
        font-size: 30px;
        line-height: 1.3;
    }

    .single-post .apollo-article-tools {
        margin-top: 8px;
        padding-left: 0;
        padding-right: 0;
    }

    .single-post .entry-content {
        margin-top: 20px;
    }
}


/* =========================================================
   v1.6.0 Comprehensive single-post polish
   ========================================================= */

/* Keep the article card compact and centered. */
.single-post .site-content {
    padding-top: 28px;
    padding-bottom: 42px;
}

.single-post .inside-article {
    max-width: 880px;
    padding: 34px 42px 40px;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    background: #fff;
}

/* Title/header */
.single-post .entry-title {
    max-width: 100%;
    margin: 0;
    font-size: clamp(32px, 3.5vw, 42px);
    line-height: 1.25;
    letter-spacing: -.045em;
    word-break: keep-all;
}

.single-post .apollo-article-tools {
    max-width: none;
    margin: 10px 0 0;
    padding: 0;
    gap: 8px 12px;
    color: #7b8492;
    font-size: 12.5px;
}

.single-post .entry-content {
    margin-top: 22px;
}

/* Affiliate disclosure: visible, compact, not visually dominant. */
.single-post .apollo-affiliate-disclosure {
    margin: 0 0 24px !important;
    padding: 10px 12px !important;
    border-left: 3px solid #93c5fd;
    border-radius: 6px;
    background: #f8fbff;
    color: #4b5563 !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    text-align: left !important;
}

.single-post .apollo-affiliate-disclosure,
.single-post .apollo-affiliate-disclosure a {
    text-decoration: none;
}

.single-post .apollo-affiliate-disclosure a {
    color: #4f6f9f !important;
}

/* Article typography */
.single-post .entry-content {
    font-size: 17px;
    line-height: 1.85;
}

.single-post .entry-content p {
    margin: 0 0 1.45em;
}

.single-post .entry-content h2 {
    margin-top: 2.15em;
    margin-bottom: .7em;
    font-size: 28px;
}

.single-post .entry-content h3 {
    margin-top: 1.8em;
    margin-bottom: .65em;
    font-size: 22px;
}

/* Images */
.single-post .entry-content figure,
.single-post .entry-content .wp-block-image {
    margin-top: 26px;
    margin-bottom: 30px;
}

.single-post .entry-content img {
    border-radius: 10px;
}

/* Ads: generous separation without swallowing the page. */
.single-post .apollo-ad--article {
    margin: 34px 0;
    padding: 22px 0;
}

.single-post .apollo-ad--article-end {
    margin-bottom: 18px;
}

/* Remove redundant GeneratePress footer meta / prev-next navigation.
   Related Articles replaces this more cleanly. */
.single-post .entry-footer,
.single-post .post-navigation,
.single-post .paging-navigation,
.single-post .nav-links {
    display: none !important;
}

/* Related Articles */
.single-post .apollo-related {
    max-width: none;
    margin: 28px 0 0;
    padding-top: 26px;
}

.single-post .apollo-related__title {
    margin-bottom: 14px;
    font-size: 20px;
}

.single-post .apollo-related__grid {
    gap: 12px;
}

.single-post .apollo-related__card {
    min-height: 120px;
    padding: 15px 16px;
    border-radius: 10px;
}

.single-post .apollo-related__card strong {
    font-size: 13.5px;
    line-height: 1.48;
}

/* Comments: center and visually connect them to the article instead of
   letting GeneratePress span a full-width white block. */
.single-post .comments-area {
    max-width: 880px;
    margin: 24px auto 0;
    padding: 30px 42px 36px;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--apollo-shadow);
}

.single-post .comments-title,
.single-post .comment-reply-title {
    margin-top: 0;
    font-size: 22px;
    letter-spacing: -.03em;
}

.single-post .logged-in-as,
.single-post .comment-notes {
    color: var(--apollo-muted);
    font-size: 13px;
}

.single-post .comment-form-comment label {
    display: block;
    margin-bottom: 7px;
    color: var(--apollo-heading);
    font-size: 13px;
    font-weight: 650;
}

.single-post textarea,
.single-post input[type="text"],
.single-post input[type="email"],
.single-post input[type="url"] {
    width: 100%;
    border: 1px solid var(--apollo-border);
    border-radius: 9px;
    background: #fff;
}

.single-post textarea:focus,
.single-post input[type="text"]:focus,
.single-post input[type="email"]:focus,
.single-post input[type="url"]:focus {
    border-color: #93c5fd;
    outline: none;
}

.single-post input[type="submit"] {
    padding: 10px 16px;
    border-radius: 8px;
    background: var(--apollo-primary);
    color: #fff;
    font-weight: 700;
}

/* Code copy button */
.single-post .apollo-code-wrap {
    margin: 28px 0;
}

/* Keep footer visually close to the article stack. */
.single-post .site-footer {
    margin-top: 36px;
}

/* Tablet/mobile */
@media (max-width: 900px) {
    .single-post .inside-article,
    .single-post .comments-area {
        max-width: calc(100% - 32px);
    }
}

@media (max-width: 768px) {
    .single-post .site-content {
        padding-top: 18px;
        padding-bottom: 28px;
    }

    .single-post .inside-article {
        max-width: calc(100% - 24px);
        padding: 24px 20px 30px;
        border-radius: 12px;
    }

    .single-post .entry-title {
        font-size: 29px;
        line-height: 1.28;
    }

    .single-post .entry-content {
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.8;
    }

    .single-post .entry-content h2 {
        font-size: 24px;
    }

    .single-post .entry-content h3 {
        font-size: 20px;
    }

    .single-post .apollo-related__grid {
        grid-template-columns: 1fr;
    }

    .single-post .comments-area {
        max-width: calc(100% - 24px);
        margin-top: 18px;
        padding: 24px 20px 28px;
        border-radius: 12px;
    }
}

.apollo-topic-nav a.is-current {
    color: var(--apollo-primary);
}


/* =========================================================
   v1.6.1 Final cleanup
   ========================================================= */

/* GeneratePress can emit post taxonomy meta in more than one wrapper.
   Remove all redundant single-post taxonomy/footer meta because
   Related Articles now owns the lower article navigation area. */
.single-post footer.entry-meta,
.single-post .entry-meta.cat-links,
.single-post .entry-meta.tags-links,
.single-post .cat-links,
.single-post .tags-links,
.single-post .post-term-item,
.single-post .post-term-item-parent {
    display: none !important;
}

/* If a footer meta wrapper only contains hidden taxonomy data, collapse it. */
.single-post .inside-article > footer,
.single-post .inside-article > .entry-meta:last-of-type {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}

/* Comment account status: one quiet line. */
.single-post .logged-in-as {
    margin: 0 0 18px;
    color: var(--apollo-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

.single-post .logged-in-as a {
    color: #64748b;
    text-decoration: none;
}

.single-post .logged-in-as a:hover {
    color: var(--apollo-primary);
}


/* =========================================================
   v1.7.0 Archive / Search / 404
   ========================================================= */

.apollo-listing {
    width: min(calc(100% - 48px), var(--apollo-max));
    margin: 0 auto;
    padding: 34px 0 64px;
}

.apollo-listing__header,
.apollo-not-found__card {
    margin-bottom: 24px;
    padding: 30px 34px;
    border: 1px solid var(--apollo-border);
    border-radius: 16px;
    background:
        radial-gradient(circle at 90% 10%, rgba(37,99,235,.08), transparent 26%),
        #fff;
    box-shadow: var(--apollo-shadow);
}

.apollo-listing__header h1,
.apollo-not-found__card h1 {
    margin: 4px 0 8px;
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.2;
    letter-spacing: -.04em;
    word-break: keep-all;
}

.apollo-listing__header > p,
.apollo-listing__description,
.apollo-not-found__card > p {
    margin: 0;
    color: var(--apollo-muted);
    font-size: 14.5px;
}

.apollo-listing__description p:last-child {
    margin-bottom: 0;
}

.apollo-listing-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.apollo-listing-card {
    display: flex;
    min-height: 214px;
    flex-direction: column;
    padding: 24px;
    border: 1px solid var(--apollo-border);
    border-radius: var(--apollo-radius);
    background: #fff;
    box-shadow: var(--apollo-shadow);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.apollo-listing-card:hover {
    transform: translateY(-2px);
    border-color: #cbd5e1;
    box-shadow: 0 8px 24px rgba(15,23,42,.055);
}

.apollo-listing-card h2 {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.42;
    letter-spacing: -.03em;
    word-break: keep-all;
}

.apollo-listing-card h2 a {
    color: var(--apollo-heading);
    text-decoration: none;
}

.apollo-listing-card h2 a:hover {
    color: var(--apollo-primary);
}

.apollo-listing-card > p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 0 0 16px;
    color: #5b6472;
    font-size: 14px;
    line-height: 1.7;
}

.apollo-listing-card__more {
    margin-top: auto;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.apollo-search-large {
    display: flex;
    gap: 8px;
    max-width: 620px;
    margin-top: 20px;
}

.apollo-search-large input[type="search"] {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--apollo-border);
    border-radius: 9px;
    background: #fff;
    font-size: 14px;
    outline: none;
}

.apollo-search-large input[type="search"]:focus {
    border-color: #93c5fd;
}

.apollo-search-large button {
    height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 9px;
    background: var(--apollo-primary);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.apollo-empty-state {
    padding: 36px;
    border: 1px solid var(--apollo-border);
    border-radius: 14px;
    background: #fff;
    text-align: center;
}

.apollo-empty-state h2 {
    margin: 0 0 8px;
    font-size: 22px;
}

.apollo-empty-state p {
    margin: 0;
    color: var(--apollo-muted);
}

.apollo-not-found {
    width: min(calc(100% - 48px), 900px);
    margin: 0 auto;
    padding: 70px 0 100px;
}

.apollo-not-found__card {
    margin-bottom: 0;
    padding: 46px;
}

.apollo-not-found__topics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
}

.apollo-not-found__topics a {
    padding: 7px 11px;
    border: 1px solid var(--apollo-border);
    border-radius: 999px;
    background: #fff;
    color: var(--apollo-heading);
    font-size: 12.5px;
    font-weight: 650;
    text-decoration: none;
}

.apollo-not-found__topics a:hover {
    border-color: #bfdbfe;
    color: var(--apollo-primary);
}

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

@media (max-width: 768px) {
    .apollo-listing {
        width: min(calc(100% - 32px), var(--apollo-max));
        padding-top: 22px;
        padding-bottom: 44px;
    }

    .apollo-listing__header,
    .apollo-not-found__card {
        padding: 24px 22px;
        border-radius: 12px;
    }

    .apollo-listing-card {
        min-height: 0;
        padding: 20px;
    }

    .apollo-search-large {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .apollo-not-found {
        width: min(calc(100% - 32px), 900px);
        padding: 44px 0 70px;
    }
}


/* =========================================================
   Apollo89 v1.8.0 — Taxonomy / internal-link UX
   ========================================================= */

.apollo-topic-nav a.is-current {
    color: var(--apollo-primary);
    font-weight: 750;
}

.apollo-breadcrumb {
    width: min(calc(100% - 48px), 880px);
    margin: 22px auto -10px;
    display: flex;
    align-items: center;
    gap: 7px;
    overflow: hidden;
    color: var(--apollo-muted);
    font-size: 12.5px;
    white-space: nowrap;
}

.apollo-breadcrumb a {
    flex: 0 0 auto;
    color: #64748b;
    text-decoration: none;
}

.apollo-breadcrumb a:hover {
    color: var(--apollo-primary);
}

.apollo-breadcrumb [aria-current="page"] {
    overflow: hidden;
    color: #94a3b8;
    text-overflow: ellipsis;
}

.apollo-tag-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.apollo-tag-chip {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 8px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
}

.apollo-tag-chip:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: var(--apollo-primary);
}

.apollo-tag-chips--card {
    margin: -4px 0 16px;
}

.apollo-article-taxonomy {
    margin: 36px 0 4px;
    padding: 18px 20px;
    border: 1px solid var(--apollo-border);
    border-radius: 12px;
    background: #fafcff;
}

.apollo-article-taxonomy__category {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 12px;
}

.apollo-article-taxonomy__category > span {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.apollo-article-taxonomy__category > a {
    color: var(--apollo-heading);
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.apollo-tag-chips--article .apollo-tag-chip {
    min-height: 28px;
    padding: 4px 9px;
    background: #fff;
    font-size: 12px;
}

.apollo-listing__stats {
    display: inline-flex;
    margin-top: 14px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 11.5px;
    font-weight: 700;
}

.apollo-archive-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 15px;
}

.apollo-archive-tags__label {
    margin-right: 2px;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.apollo-archive-tags a {
    padding: 4px 8px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #fff;
    color: #64748b;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}

.apollo-archive-tags a:hover {
    border-color: #bfdbfe;
    color: var(--apollo-primary);
}

.apollo-listing-card .apollo-tag-chips {
    margin-top: auto;
    padding-top: 2px;
}

.apollo-listing-card .apollo-listing-card__more {
    margin-top: 14px;
}

@media (max-width: 768px) {
    .apollo-breadcrumb {
        width: min(calc(100% - 32px), 880px);
        margin-top: 16px;
    }

    .apollo-article-taxonomy {
        padding: 16px;
    }

    .apollo-archive-tags {
        gap: 5px;
    }
}


/* =========================================================
   Apollo89 v1.8.1 — Centered masthead/navigation
   ========================================================= */

.inside-header {
    display: flex;
    justify-content: center;
    text-align: center;
    padding-top: 20px;
    padding-bottom: 16px;
}

.site-branding {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.site-branding .main-title,
.site-description {
    text-align: center;
}

.apollo-topic-nav__inner {
    width: min(calc(100% - 48px), 1060px);
    justify-content: center;
    gap: 22px;
}

.apollo-topic-nav__links {
    flex: 0 1 auto;
    justify-content: center;
}

.apollo-topic-nav a:first-child {
    padding-left: 10px;
}

.apollo-topic-search {
    flex: 0 0 178px;
}

@media (min-width: 1100px) {
    .site-branding .main-title {
        font-size: 29px;
    }

    .apollo-topic-nav__inner {
        min-height: 50px;
    }
}

@media (max-width: 768px) {
    .inside-header {
        padding-top: 16px;
        padding-bottom: 13px;
    }

    .apollo-topic-nav__inner {
        width: min(calc(100% - 32px), 1060px);
        justify-content: flex-start;
    }

    .apollo-topic-nav__links {
        flex: 1 1 auto;
        justify-content: flex-start;
    }

    .apollo-topic-nav a:first-child {
        padding-left: 0;
    }
}


/* =========================================================
   Apollo89 v1.8.2 — Header/article vertical rhythm
   ========================================================= */

/* Reduce the empty band between the centered header/navigation
   and the first article container. */
.single-post .site-content {
    padding-top: 12px;
}

.separate-containers.single-post .site-main,
.single-post.separate-containers .site-main {
    margin-top: 8px;
}

/* Breadcrumb should read as a separate path line, not as part
   of the title. v1.8.0 used a negative bottom margin, which
   visually pulled the title too close. */
.single-post .apollo-breadcrumb {
    margin-top: 12px;
    margin-bottom: 18px;
}

/* Give the title a little breathing room beneath the path. */
.single-post .entry-header {
    padding-top: 2px;
}

.single-post .entry-title {
    margin-top: 0;
}

/* Keep the centered masthead compact so the header and article
   feel like one continuous layout group. */
.inside-header {
    padding-top: 16px;
    padding-bottom: 12px;
}

.apollo-topic-nav__inner {
    min-height: 46px;
}

@media (max-width: 768px) {
    .single-post .site-content {
        padding-top: 8px;
    }

    .separate-containers.single-post .site-main,
    .single-post.separate-containers .site-main {
        margin-top: 4px;
    }

    .single-post .apollo-breadcrumb {
        margin-top: 8px;
        margin-bottom: 14px;
    }

    .inside-header {
        padding-top: 14px;
        padding-bottom: 10px;
    }
}


/* v1.8.3 legacy [cc] code blocks */
.entry-content pre.apollo89-legacy-code {
    position: relative;
    overflow-x: auto;
    margin: 1.5em 0;
    padding: 20px 22px;
    border: 1px solid #263247;
    border-radius: 10px;
    background: #111827;
    color: #e5edf7;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: .92em;
    line-height: 1.7;
    white-space: pre;
    tab-size: 4;
}

.entry-content pre.apollo89-legacy-code code {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    white-space: inherit;
}


/* v1.8.4 — hide modified-date label in visible post meta.
   Structured data still keeps dateModified for search engines. */
.single-post .apollo-post-modified,
.single-post .updated:not(.published),
.single-post .entry-meta .updated {
    display: none !important;
}
