/*
Theme Name: Korea Realist Child
Template: generatepress
Version: 1.0
*/


body{
    background:#fff;
    color:#111;
    font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    word-break:normal;
}

img{
    max-width:100%;
    height:auto;
}

.site-content{
    padding-top:0;
}



/* =========================
HOME
========================= */

.sc-home{
    max-width:1200px;
    margin:0 auto;
    padding:40px 20px 100px;
}

.hero-section{
    margin-bottom:80px;
}

.hero-card a,
.post-card a{
    text-decoration:none;
    color:inherit;
}

.section-title{
    margin-bottom:30px;
}

.section-title h2{
    font-size:26px;
    line-height:1.3;
    letter-spacing:-0.02em;
    font-weight:800;
    margin:0;
    color:#111;
}

.hero-card img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:22px;
    display:block;
}

.hero-content{
    margin-top:16px;
}

.hero-category{
    font-size:13px;
    color:#888;
    font-weight:700;
}

.hero-card h1{
    font-size:28px !important;
    line-height:1.35 !important;
    letter-spacing:-0.02em;
    color:#111 !important;
    margin:12px 0 !important;
    font-weight:700 !important;
}

.hero-card p{
    font-size:16px;
    color:#666;
    line-height:1.7;
}


/* =========================
HERO GRID
========================= */

.hero-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto;
    gap:12px;
}

.hero-main{
    grid-row:1 / 3;
    position:relative;
    border-radius:16px;
    overflow:hidden;
}

.hero-main a{
    display:block;
    text-decoration:none;
    color:inherit;
    height:100%;
    position:relative;
}

.hero-main img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    aspect-ratio:unset;
    border-radius:0;
}

.hero-main-content{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:28px 24px;
    background:linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0) 100%);
}

.hero-main-content .hero-category{
    display:inline-block;
    background:#fff;
    color:#111;
    font-size:12px;
    font-weight:700;
    padding:3px 10px;
    border-radius:999px;
    margin-bottom:10px;
}

.hero-main-content h1{
    font-size:28px !important;
    line-height:1.35 !important;
    letter-spacing:-0.02em;
    color:#fff !important;
    margin:0 !important;
    font-weight:700 !important;
}

.hero-sub{
    position:relative;
    border-radius:16px;
    overflow:hidden;
}

.hero-sub a{
    display:block;
    text-decoration:none;
    color:inherit;
    position:relative;
}

.hero-sub img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    display:block;
    border-radius:0;
}

.hero-sub-content{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:16px 14px;
    background:linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0) 100%);
}

.hero-sub-content h3{
    font-size:15px !important;
    line-height:1.4;
    letter-spacing:-0.015em;
    color:#fff !important;
    margin:0 !important;
    font-weight:700 !important;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}



/* =========================
POST GRID
========================= */

.post-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px 24px;
}

.post-card{
    transition:transform .25s ease;
}

.post-card:hover{
    transform:translateY(-6px);
}

.post-card img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:22px;
    margin-bottom:14px;
    transition:transform .4s ease;
}

.post-card:hover img{
    transform:scale(1.03);
}

.post-card h3{
    font-size:18px;
    line-height:1.5;
    margin:10px 0;
    letter-spacing:-0.015em;
}

.post-card p{
    font-size:15px;
    line-height:1.6;
    color:#666;
}



/* =========================
HEADER
========================= */

.site-header{
    background:#fff;
    border-bottom:1px solid #eee;
}

.inside-header{
    max-width:1200px;
    margin:0 auto;
    padding:22px 20px;
}

.main-title a{
    font-size:28px;
    font-weight:800;
    letter-spacing:-0.02em;
    color:#111;
    text-decoration:none;
}

.main-navigation{
    background:#fff;
}

.main-navigation .main-nav ul li a{
    font-size:15px;
    font-weight:600;
    color:#222;
    padding-left:14px;
    padding-right:14px;
}

.main-navigation .main-nav ul li a:hover{
    color:#777;
}

.site-header .header-image{
    width:auto !important;
    max-height:44px !important;
}



/* =========================
CATEGORY SECTION
========================= */

.category-section{
    margin-top:60px;
}



/* =========================
SINGLE
========================= */

.sc-single{
    max-width:760px;
    margin:0 auto;
    padding:48px 20px 90px;
}

.single-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    font-size:13px;
    color:#888;
    margin-bottom:14px;
    letter-spacing:-0.01em;
}

.single-meta span{
    position:relative;
}

.single-meta span:not(:last-child)::after{
    content:"·";
    margin-left:10px;
    color:#ccc;
}

.meta-category{
    font-weight:700;
    color:#111;
}

.meta-author{
    color:#666;
}

.meta-author a{
    color:#666;
    text-decoration:none;
}

.meta-author a:hover{
    color:#111;
    text-decoration:underline;
    text-underline-offset:3px;
}

.single-title{
    font-size:34px;
    line-height:1.35;
    letter-spacing:-0.01em;
    margin-bottom:28px;
    font-weight:700;
}

.single-thumb img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:12px;
    margin-bottom:34px;
    display:block;
}

.single-content{
    font-size:17px;
    line-height:1.85;
    letter-spacing:-0.01em;
    color:#222;
}

.single-content p{
    margin-bottom:24px;
}

.single-content h2{
    font-size:25px;
    line-height:1.45;
    margin:54px 0 22px;
    letter-spacing:-0.02em;
    font-weight:700;
}

.single-content h3{
    font-size:21px;
    line-height:1.45;
    margin:38px 0 16px;
    letter-spacing:-0.02em;
    font-weight:700;
}

.single-content img{
    max-width:100%;
    height:auto;
    border-radius:12px;
    display:block;
    margin:30px auto;
}



/* =========================
ARCHIVE
========================= */

.sc-archive{
    max-width:1200px;
    margin:0 auto;
    padding:60px 20px 100px;
}

.archive-header{
    margin-bottom:42px;
}

.archive-header span{
    font-size:14px;
    color:#888;
    font-weight:700;
}

.archive-header h1{
    font-size:46px;
    line-height:1.2;
    letter-spacing:-0.02em;
    margin-top:10px;
}



/* =========================
FOOTER
========================= */

.sc-footer{
    border-top:1px solid #eee;
    margin-top:90px;
    padding:50px 20px;
    text-align:center;
}

.sc-footer-inner{
    max-width:1200px;
    margin:0 auto;
}

.footer-brand{
    margin-bottom:14px;
}

.footer-brand a{
    font-size:22px;
    font-weight:800;
    letter-spacing:-0.02em;
    color:#111;
    text-decoration:none;
}

.footer-menu{
    margin-bottom:16px;
}

.footer-menu ul{
    display:flex;
    justify-content:center;
    gap:18px;
    list-style:none;
    margin:0;
    padding:0;
    flex-wrap:wrap;
}

.footer-menu a{
    font-size:14px;
    color:#555;
    text-decoration:none;
}

.footer-menu a:hover{
    color:#111;
}

.footer-copy{
    font-size:13px;
    color:#444;
}



/* =========================
ARTICLE TYPOGRAPHY
========================= */

.single-content ul,
.single-content ol{
    margin:28px 0;
    padding-left:26px;
}

.single-content li{
    margin-bottom:14px;
    line-height:1.9;
}

.single-content blockquote{
    margin:40px 0;
    padding:28px 32px;
    background:#f7f7f7;
    border-left:4px solid #111;
    border-radius:18px;
    font-size:18px;
    line-height:1.9;
    color:#333;
}

.single-content table{
    width:100%;
    border-collapse:collapse;
    margin:34px 0;
    font-size:15px;
}

.single-content table th{
    background:#f5f5f5;
    font-weight:700;
}

.single-content table th,
.single-content table td{
    border:1px solid #e5e5e5;
    padding:13px 15px;
    text-align:left;
    line-height:1.7;
}

.single-content strong{
    font-weight:700;
    color:#111;
}

.single-content a{
    color:#111;
    text-decoration:underline;
    text-underline-offset:3px;
}

.single-content hr{
    margin:60px 0;
    border:none;
    border-top:1px solid #e5e5e5;
}

.related-posts{
    margin-top:72px;
    padding-top:36px;
    border-top:1px solid #eee;
}

.related-posts h2{
    font-size:22px;
    line-height:1.35;
    letter-spacing:-0.02em;
    margin-bottom:22px;
}

.related-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.related-card a{
    text-decoration:none;
    color:inherit;
}

.related-card img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:12px;
    display:block;
    margin-bottom:12px;
}

.related-card h3{
    font-size:14px;
    line-height:1.45;
    letter-spacing:-0.015em;
    margin:0;
}



/* =========================
AUTHOR PAGE
========================= */

.sc-author{
    max-width:1200px;
    margin:0 auto;
    padding:70px 20px 100px;
}

.author-header{
    margin-bottom:48px;
    padding-bottom:34px;
    border-bottom:1px solid #eee;
}

.author-label{
    font-size:13px;
    font-weight:700;
    color:#999;
    letter-spacing:0.08em;
    margin-bottom:12px;
}

.author-name{
    font-size:44px;
    line-height:1.25;
    letter-spacing:-0.02em;
    margin:0;
}

.author-desc{
    margin-top:16px;
    font-size:17px;
    line-height:1.7;
    color:#666;
}



/* =========================
PAGINATION
========================= */

.archive-pagination{
    margin-top:60px;
    text-align:center;
}

.archive-pagination .nav-links{
    display:flex;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.archive-pagination .page-numbers{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    height:38px;
    padding:0 12px;
    border:1px solid #e5e5e5;
    border-radius:999px;
    color:#333;
    text-decoration:none;
    font-size:14px;
}

.archive-pagination .page-numbers.current{
    background:#111;
    border-color:#111;
    color:#fff;
}

.archive-pagination .page-numbers:hover{
    border-color:#111;
}



/* =========================
LATEST POSTS
========================= */

.latest-posts{
    margin-top:70px;
    padding-top:40px;
    border-top:1px solid #eee;
}

.latest-posts h2{
    font-size:26px;
    line-height:1.35;
    letter-spacing:-0.02em;
    margin-bottom:24px;
}



/* =========================
TABLET
========================= */

@media(max-width:1024px){

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

.hero-grid{
    gap:10px;
}

.hero-main-content h1{
    font-size:22px !important;
}

.hero-sub-content h3{
    font-size:13px !important;
}

}



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

@media(max-width:640px){

.sc-home,
.sc-single,
.sc-archive{
    padding:24px 16px 70px;
}

.hero-grid{
    grid-template-columns:1fr;
    grid-template-rows:auto;
}

.hero-card h1{
    font-size:22px !important;
}

.hero-main{
    grid-row:auto;
}

.hero-main img{
    aspect-ratio:16/9;
    height:auto;
}

.hero-main-content h1{
    font-size:18px !important;
}

.hero-sub{
    grid-column:1;
}

.hero-sub img{
    aspect-ratio:16/9;
    height:auto;
}

.hero-sub:nth-child(n+4){
    display:none;
}

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

.single-title{
    font-size:29px;
}

.single-content{
    font-size:17px;
    line-height:1.85;
}

.single-content h2{
    font-size:23px;
}

.archive-header h1{
    font-size:34px;
}

.author-name{
    font-size:32px;
}

.footer-menu ul{
    flex-wrap:wrap;
    gap:12px;
}

.related-grid{
    grid-template-columns:1fr;
}

.sc-single{
    padding:28px 16px 70px;
}

}

/* =========================
SCAVAS STYLE HERO
========================= */

.scanvas-hero{
    max-width:1320px;
    margin:0 auto;
    padding:28px 20px 44px;
}

.scanvas-hero-grid{
    display:grid;
    grid-template-columns:2.3fr 1fr 1fr;
    grid-template-rows:repeat(2, 1fr);
    gap:12px;
}

.scanvas-main-card{
    grid-row:span 2;
    aspect-ratio:1.56/1;
}

.scanvas-main-card,
.scanvas-small-card{
    position:relative;
    overflow:hidden;
    background:#111;
}

.scanvas-main-card a,
.scanvas-small-card a{
    display:block;
    position:relative;
    height:100%;
    color:#fff;
    text-decoration:none;
}

.scanvas-main-card img,
.scanvas-small-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}

.scanvas-small-card{
    aspect-ratio:1.42/1;
}

.scanvas-main-card:hover img,
.scanvas-small-card:hover img{
    transform:scale(1.04);
}

.scanvas-overlay{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:30px;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.76),
        rgba(0,0,0,.38),
        rgba(0,0,0,0)
    );
}

.scanvas-category{
    display:inline-block;
    background:#32d6b0;
    color:#111;
    font-size:13px;
    font-weight:800;
    padding:6px 14px;
    border-radius:999px;
    margin-bottom:12px;
}

.scanvas-main-card h2{
    font-size:32px;
    line-height:1.32;
    letter-spacing:-0.01em;
    margin:0;
    color:#fff;
}

.scanvas-small-card h3{
    font-size:19px;
    line-height:1.35;
    letter-spacing:-0.02em;
    margin:0;
    color:#fff;
}

/* 기존 큰 히어로 여백 */
.hero-section{
    margin-bottom:40px;
}

/* 모바일 */
@media(max-width:768px){

    .scanvas-hero{
        padding:12px 12px 28px;
    }

    .scanvas-hero-grid{
        display:block;
    }

    /* 메인 기사 */
    .scanvas-main-card{
        aspect-ratio:1.35/1;
        margin-bottom:14px;
    }

    .scanvas-main-card .scanvas-overlay{
        padding:18px;
    }

    .scanvas-main-card h2{
        font-size:19px;
        line-height:1.4;
        letter-spacing:-0.02em;
    }

    /* 작은 기사들 리스트형 */
    .scanvas-small-card{
        aspect-ratio:auto;
        margin-bottom:10px;
        background:none;
    }

    .scanvas-small-card a{
        display:grid;
        grid-template-columns:110px 1fr;
        gap:12px;
        align-items:center;
        background:#fff;
    }

    .scanvas-small-card img{
        aspect-ratio:1/1;
        border-radius:0;
    }

    .scanvas-small-card .scanvas-overlay{
        position:static;
        padding:0;
        background:none;
    }

    .scanvas-small-card h3{
        font-size:16px;
        line-height:1.45;
        color:#111;
        margin:0;
    }

    /* 카테고리 숨김 */
    .scanvas-small-card .scanvas-category{
        display:none;
    }
}

.home-hidden-h1{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}