/*
Theme Name: QuantPage
Theme URI: https://quantpage.kr
Description: QuantPage의 데이터·시스템 트레이딩 콘텐츠를 위한 GeneratePress 자식 테마입니다.
Author: QuantPage
Template: generatepress
Version: 0.1.0
Text Domain: quantpage
*/

:root {
    --qp-ink: #172033;
    --qp-muted: #627086;
    --qp-line: #dfe5ec;
    --qp-soft: #f4f7fa;
    --qp-paper: #ffffff;
    --qp-canvas: #f6f8fa;
    --qp-navy: #142a46;
    --qp-accent: #167c80;
    --qp-accent-dark: #0f5e62;
    --qp-accent-soft: #eaf5f4;
    --qp-warm: #a65336;
    --qp-radius: 12px;
    --qp-shadow: 0 10px 30px rgba(23, 32, 51, 0.06);
}

body {
    background: var(--qp-canvas);
    color: var(--qp-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    font-size: 17px;
    line-height: 1.78;
    text-rendering: optimizeLegibility;
    word-break: keep-all;
    overflow-wrap: break-word;
}

a {
    color: var(--qp-accent-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

a:hover,
a:focus {
    color: var(--qp-warm);
}

.grid-container {
    max-width: 1180px;
}

.site-header {
    background: rgba(255, 255, 255, 0.97);
    border-bottom: 1px solid var(--qp-line);
}

.inside-header {
    min-height: 82px;
    padding: 18px 28px;
}

.site-branding .main-title {
    font-size: clamp(1.45rem, 2vw, 1.8rem);
    font-weight: 800;
    letter-spacing: -0.035em;
}

.site-branding .main-title a {
    color: var(--qp-navy);
    text-decoration: none;
}

.site-description {
    color: var(--qp-muted);
    font-size: 0.82rem;
    margin-top: 2px;
}

.main-navigation,
.main-navigation .main-nav ul li a {
    background: var(--qp-paper);
    color: var(--qp-ink);
}

.main-navigation {
    border-bottom: 1px solid var(--qp-line);
}

.main-navigation .main-nav ul li a {
    font-size: 0.9rem;
    font-weight: 650;
    letter-spacing: -0.015em;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    background: var(--qp-accent-soft);
    color: var(--qp-accent-dark);
}

.site-content {
    padding: 38px 24px 54px;
}

.content-area {
    width: 100%;
}

.widget-area {
    display: none;
}

.site-main > article,
.site-main > .page-header,
.site-main > .inside-article {
    background: var(--qp-paper);
    border: 1px solid var(--qp-line);
    border-radius: var(--qp-radius);
    box-shadow: var(--qp-shadow);
}

.site-main > article .inside-article,
.site-main > .inside-article {
    padding: clamp(28px, 5vw, 64px);
}

.single .site-main,
.page .site-main {
    max-width: 900px;
    margin-inline: auto;
}

.entry-header {
    margin-bottom: 34px;
}

.entry-title {
    color: var(--qp-navy);
    font-size: clamp(2rem, 5vw, 3.05rem);
    font-weight: 820;
    letter-spacing: -0.045em;
    line-height: 1.25;
}

.blog .entry-title,
.archive .entry-title,
.search .entry-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
}

.entry-meta {
    color: var(--qp-muted);
    font-size: 0.82rem;
    margin-top: 12px;
}

.entry-meta .byline,
.entry-meta .comments-link {
    display: none;
}

.post-image,
.featured-image {
    margin-bottom: 32px;
}

.post-image img,
.featured-image img,
.entry-content img {
    height: auto;
    max-width: 100%;
}

.entry-content {
    color: var(--qp-ink);
    font-size: 1rem;
}

.entry-content > * {
    margin-top: 0;
    margin-bottom: 1.35em;
}

.entry-content > h2,
.entry-content > h3,
.entry-content > h4 {
    color: var(--qp-navy);
    font-weight: 780;
    letter-spacing: -0.035em;
    scroll-margin-top: 24px;
}

.entry-content > h2 {
    border-top: 1px solid var(--qp-line);
    font-size: clamp(1.55rem, 3vw, 2rem);
    line-height: 1.38;
    margin-top: 2.6em;
    padding-top: 1.05em;
}

.entry-content > h3 {
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    line-height: 1.45;
    margin-top: 2em;
}

.entry-content > h4 {
    font-size: 1.08rem;
    margin-top: 1.7em;
}

.entry-content p {
    margin-bottom: 1.25em;
}

.entry-content strong {
    color: #0c334f;
    font-weight: 760;
}

.entry-content ul,
.entry-content ol {
    margin: 0 0 1.45em 1.25em;
}

.entry-content li {
    margin-bottom: 0.5em;
    padding-left: 0.18em;
}

.entry-content blockquote,
.entry-content .qp-summary {
    background: var(--qp-accent-soft);
    border: 0;
    border-left: 5px solid var(--qp-accent);
    border-radius: 0 var(--qp-radius) var(--qp-radius) 0;
    color: #173e48;
    font-size: 1rem;
    margin: 2em 0;
    padding: 22px 24px;
}

.entry-content blockquote > :last-child,
.entry-content .qp-summary > :last-child {
    margin-bottom: 0;
}

.entry-content .qp-summary > :first-child {
    color: var(--qp-navy);
    font-size: 1.08rem;
}

.entry-content figure {
    margin: 2.1em 0;
}

.entry-content figcaption,
.wp-element-caption {
    color: var(--qp-muted);
    font-size: 0.8rem;
    line-height: 1.55;
    margin-top: 8px;
    text-align: center;
}

.entry-content .wp-block-table {
    border: 1px solid var(--qp-line);
    border-radius: 9px;
    margin: 1.8em 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.entry-content table {
    border: 0;
    border-collapse: collapse;
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
    min-width: 620px;
    width: 100%;
}

.entry-content th,
.entry-content td {
    border: 0;
    border-bottom: 1px solid var(--qp-line);
    padding: 12px 14px;
    text-align: left;
    vertical-align: middle;
}

.entry-content th {
    background: #edf2f6;
    color: var(--qp-navy);
    font-weight: 750;
    white-space: nowrap;
}

.entry-content tbody tr:nth-child(even) td {
    background: #fafbfd;
}

.entry-content tbody tr:last-child td {
    border-bottom: 0;
}

.entry-content code {
    background: #edf1f5;
    border-radius: 4px;
    color: #923e2b;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.86em;
    padding: 0.16em 0.38em;
}

.entry-content pre,
.entry-content .wp-block-code {
    background: #111b2a;
    border: 1px solid #26354b;
    border-radius: 10px;
    color: #e8eef6;
    font-size: 0.82rem;
    line-height: 1.65;
    margin: 1.8em 0;
    max-width: 100%;
    overflow-x: auto;
    padding: 20px 22px;
    white-space: pre;
}

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

.entry-content .qp-code-block {
    background: #111b2a;
    border: 1px solid #26354b;
    border-radius: 10px;
    margin: 1.8em 0;
    overflow: hidden;
}

.entry-content .qp-code-label {
    background: #1c2a3d;
    border-bottom: 1px solid #314158;
    color: #9fb0c5;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 8px 16px;
}

.entry-content .qp-code-block pre {
    border: 0;
    border-radius: 0;
    margin: 0;
}

.entry-content .qp-related {
    background: var(--qp-soft);
    border: 1px solid var(--qp-line);
    border-radius: var(--qp-radius);
    margin: 2.4em 0;
    padding: 22px 24px 10px;
}

.entry-content .qp-related h3 {
    color: var(--qp-navy);
    font-size: 1.08rem;
    margin: 0 0 12px;
}

.entry-content .qp-disclaimer {
    border-left: 4px solid #b9c2ce;
    color: var(--qp-muted);
    font-size: 0.86rem;
    margin-top: 3em;
    padding: 10px 0 10px 18px;
}

.entry-content hr {
    background: var(--qp-line);
    border: 0;
    height: 1px;
    margin: 2.8em 0;
}

.entry-content .wp-block-separator {
    border: 0;
}

.entry-content .alignwide {
    margin-left: max(-5vw, -52px);
    max-width: calc(100% + min(10vw, 104px));
    width: calc(100% + min(10vw, 104px));
}

.qp-category-market-statistics {
    --qp-accent: #98503c;
    --qp-accent-dark: #743726;
    --qp-accent-soft: #f8eeea;
}

.qp-category-system-trading {
    --qp-accent: #294c6d;
    --qp-accent-dark: #183a5a;
    --qp-accent-soft: #edf2f6;
}

.qp-category-backtest {
    --qp-accent: #6554a4;
    --qp-accent-dark: #4c3d86;
    --qp-accent-soft: #f0eef8;
}

.qp-category-performance-metrics,
.qp-category-performance_metrics {
    --qp-accent: #17745e;
    --qp-accent-dark: #115a49;
    --qp-accent-soft: #e9f4f0;
}

.qp-category-quant-papers,
.qp-category-quant_papers,
.qp-category-quant-research {
    --qp-accent: #7a2e42;
    --qp-accent-dark: #642237;
    --qp-accent-soft: #f6ebee;
}

.qp-category-data-collection,
.qp-category-data_collection {
    --qp-accent: #087f8c;
    --qp-accent-dark: #05606a;
    --qp-accent-soft: #e7f4f6;
}

.qp-category-traders {
    --qp-accent: #a55a2a;
    --qp-accent-dark: #7d401d;
    --qp-accent-soft: #f8efe8;
}

.qp-category-featured-stocks {
    --qp-accent: #b24d46;
    --qp-accent-dark: #86352f;
    --qp-accent-soft: #f8eceb;
}

.site-footer {
    border-top: 1px solid var(--qp-line);
}

.site-info {
    background: var(--qp-paper);
    color: var(--qp-muted);
    font-size: 0.8rem;
}

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

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

    .inside-header {
        min-height: auto;
        padding: 16px 18px;
    }

    .site-content {
        padding: 16px 10px 32px;
    }

    .site-main > article,
    .site-main > .page-header,
    .site-main > .inside-article {
        border-left: 0;
        border-radius: 8px;
        border-right: 0;
        box-shadow: none;
    }

    .site-main > article .inside-article,
    .site-main > .inside-article {
        padding: 28px 20px 36px;
    }

    .entry-header {
        margin-bottom: 26px;
    }

    .entry-title {
        font-size: clamp(1.75rem, 8vw, 2.25rem);
        line-height: 1.3;
    }

    .entry-content > h2 {
        margin-top: 2.25em;
    }

    .entry-content blockquote,
    .entry-content .qp-summary {
        padding: 18px;
    }

    .entry-content table {
        font-size: 0.82rem;
        min-width: 560px;
    }

    .entry-content th,
    .entry-content td {
        padding: 10px 12px;
    }

    .entry-content pre,
    .entry-content .wp-block-code {
        border-radius: 8px;
        font-size: 0.78rem;
        margin-left: -4px;
        margin-right: -4px;
        padding: 17px 16px;
    }

    .entry-content .alignwide {
        margin-left: 0;
        max-width: 100%;
        width: 100%;
    }
}

@media print {
    body,
    .site-main > article {
        background: #fff;
    }

    .site-header,
    .main-navigation,
    .site-footer {
        display: none;
    }

    .site-main > article {
        border: 0;
        box-shadow: none;
    }
}
