/*
 Theme Name:   NaeBokji GeneratePress Child
 Template:     generatepress
 Description:  NaeBokji custom child theme.
 Version:      1.0.1
*/
/* =====================================================
   내복지 (bokji.mhb-blog.com) - 커스텀 CSS
   GeneratePress 테마 위에 올라가는 모바일 퍼스트 디자인
   WP Code 플러그인 또는 외모 > 추가 CSS에 삽입
   ===================================================== */

/* =====================================================
   CSS 커스텀 프로퍼티 (디자인 토큰)
   ===================================================== */
:root {
    /* 기본 색상 */
    --nb-primary: #1e40af;
    --nb-primary-light: #3b82f6;
    --nb-primary-sky: #0ea5e9;
    --nb-primary-dark: #1e3a8a;

    /* 배경 색상 */
    --nb-bg: #f8fafc;
    --nb-bg-white: #ffffff;
    --nb-bg-card: #ffffff;

    /* 텍스트 색상 */
    --nb-text-dark: #0f172a;
    --nb-text-medium: #334155;
    --nb-text-light: #94a3b8;
    --nb-text-muted: #64748b;

    /* 강조 색상 */
    --nb-accent: #f59e0b;
    --nb-accent-bg: #FFF8E1;
    --nb-accent-dark: #b45309;
    --nb-success: #16a34a;

    /* 카테고리 색상 */
    --nb-cat-bg: #eff6ff;
    --nb-cat-text: #1e40af;

    /* 기타 */
    --nb-border: #e2e8f0;
    --nb-shadow: rgba(15, 23, 42, 0.08);
    --nb-shadow-hover: rgba(30, 64, 175, 0.15);
    --nb-radius: 16px;
    --nb-radius-sm: 12px;
    --nb-radius-xs: 8px;
    --nb-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);

    /* 폰트 */
    --nb-font: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, '맑은 고딕', sans-serif;
}

/* =====================================================
   GeneratePress 기본 스타일 오버라이드
   ===================================================== */

/* 기본 폰트 및 본문 */
body {
    font-family: var(--nb-font) !important;
    background-color: var(--nb-bg) !important;
    color: var(--nb-text-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.7;
    word-break: keep-all;
}

/* 링크 기본 스타일 */
a {
    color: var(--nb-primary-light);
    text-decoration: none;
    transition: color var(--nb-transition);
}
a:hover, a:focus {
    color: var(--nb-primary);
}

/* ── 제목 (h1~h4) 전역 스타일 ── */
/* 포스트/페이지 대제목 */
h1, .entry-title {
    font-family: var(--nb-font) !important;
    font-size: 26px !important;
    font-weight: 900 !important;
    color: var(--nb-text-dark) !important;
    line-height: 1.35 !important;
    margin: 0 0 20px !important;
    letter-spacing: 0;
}

/* 섹션/소제목 */
h2 {
    font-family: var(--nb-font) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--nb-text-dark) !important;
    line-height: 1.4 !important;
    margin: 32px 0 16px !important;
    padding: 14px 18px !important;
    background: linear-gradient(135deg, var(--nb-primary) 0%, var(--nb-primary-light) 100%) !important;
    color: #fff !important;
    border-radius: var(--nb-radius-sm) !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(30, 64, 175, 0.2) !important;
}

h3 {
    font-family: var(--nb-font) !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    color: var(--nb-text-dark) !important;
    line-height: 1.4 !important;
    margin: 28px 0 14px !important;
    padding: 12px 16px !important;
    background: linear-gradient(135deg, var(--nb-primary-light) 0%, var(--nb-primary-sky) 100%) !important;
    color: #fff !important;
    border-radius: var(--nb-radius-xs) !important;
    border: none !important;
}

h4 {
    font-family: var(--nb-font) !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    margin: 24px 0 12px !important;
    padding: 8px 14px !important;
    color: #fff !important;
    background: linear-gradient(135deg, #475569, #64748b) !important;
    border-radius: 6px !important;
    border: none !important;
}

/* 본문 텍스트 크기 */
p { font-size: 17px; line-height: 1.75; }
ul, ol { font-size: 16px; line-height: 1.7; }

/* 6. 사이드바 위젯 스타일 개선 (기타 페이지용) */
.widget {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    margin-bottom: 24px;
    border: 1px solid #e2e8f0;
}

.widget-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e40af;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e0e7ff;
    background: transparent;
    border-radius: 0;
}

/* =====================================================
   사이트 브랜딩 영역 (헤더)
   ===================================================== */
.site-header {
    background: var(--nb-bg-white) !important;
    border-bottom: 1px solid var(--nb-border) !important;
    box-shadow: 0 1px 3px var(--nb-shadow) !important;
}

/* 로고/타이틀 영역 */
.site-logo img,
.custom-logo {
    max-width: 44px !important;
    width: 44px !important;
    height: auto !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}

.site-branding {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

.main-title,
.main-title a,
.site-branding .main-title a {
    font-family: var(--nb-font) !important;
    font-weight: 900 !important;
    font-size: 24px !important;
    color: var(--nb-primary) !important;
    letter-spacing: 0;
    margin: 0 !important;
    line-height: 1 !important;
}

/* 네비게이션 강제 숨김 (순수 앱 스타일) */
.main-navigation,
#site-navigation {
    display: none !important;
}

/* =====================================================
   홈페이지 강제 레이아웃 설정 (앱 스타일)
   ===================================================== */
/* 홈 페이지 제목 숨기기 */
.home .entry-title,
.home h1.entry-title,
.home .page-title {
    display: none !important;
}

/* 홈 페이지 사이드바 강제 숨김 및 컨텐츠 전체 확장 */
.home #right-sidebar,
.home .sidebar,
.home .widget-area {
    display: none !important;
}

html, body {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 🌟 요즘 트렌드: 모바일 앱 스타일 중앙 정렬 (PC에서도 좁게) 🌟 */
body {
    background-color: #f1f5f9 !important; /* PC 배경은 살짝 어둡게 */
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 100vh !important;
}

/* 화면 리더기용 숨김 링크나 기타 요소가 공간을 차지하지 않도록 방어 */
body > a.screen-reader-text {
    display: none !important;
}

/* 헤더, 본문, 푸터 컨테이너를 모두 모바일 사이즈로 고정하고 정중앙 정렬 */
.site-header,
#page,
.site-info,
.site-footer,
#page.grid-container,
.inside-header,
.inside-footer {
    width: 100% !important;
    max-width: 540px !important;
    margin: 0 !important; /* body flexbox가 정렬해주므로 내부 마진 불필요 */
    float: none !important;
    background-color: #ffffff !important; /* 앱 영역은 흰색 */
    box-shadow: 0 0 20px rgba(0,0,0,0.05);
    flex-shrink: 0 !important; /* 찌그러짐 방지 */
}

/* 사이드바 강제 숨김 및 컨텐츠 전체 폭 확장 (GeneratePress 인라인 CSS 오버라이드) */
#primary,
.content-area,
.site-content .content-area,
#primary.content-area {
    width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* 사이드바 완전 제거 */
#right-sidebar,
#left-sidebar,
.is-right-sidebar,
.is-left-sidebar,
.sidebar,
.widget-area.sidebar {
    display: none !important;
    width: 0 !important;
}

/* GeneratePress 기본 컨테이너 패딩 오버라이드 및 상단 공백 제거 */
.site-content {
    max-width: 100% !important;
    padding: 0 !important;
    margin-top: 0 !important;
}
.inside-article {
    padding: 0 !important;
    margin-top: 0 !important;
}

/* =====================================================
   히어로 섹션
   ===================================================== */
.nb-hero {
    background: linear-gradient(150deg, var(--nb-primary-dark) 0%, var(--nb-primary-light) 50%, var(--nb-primary-sky) 100%);
    padding: 40px 20px 44px;
    text-align: center;
    color: #fff;
    position: relative;
    overflow: hidden;
}

/* 히어로 배경 장식 */
.nb-hero::before {
    content: '';
    position: absolute;
    top: -60%;
    right: -20%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    pointer-events: none;
}
.nb-hero::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -15%;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    pointer-events: none;
}

.nb-hero-inner {
    max-width: 680px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* 히어로 뱃지 */
.nb-hero-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 30px;
    padding: 6px 18px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 16px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    animation: nb-fade-in 0.6s ease-out;
}

/* 히어로 타이틀 - GeneratePress h1 오버라이드 */
.nb-hero-title,
.nb-hero h1,
h1.nb-hero-title {
    font-size: 32px !important;
    font-weight: 900 !important;
    margin: 0 0 12px !important;
    line-height: 1.2 !important;
    color: #fff !important;
    background: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    letter-spacing: 0;
    animation: nb-slide-up 0.5s ease-out;
}

/* 히어로 설명 */
.nb-hero-desc {
    font-size: 16px !important;
    line-height: 1.7 !important;
    margin: 0 0 24px !important;
    color: #fff !important;
    opacity: 0.92;
    background: none !important;
    animation: nb-slide-up 0.6s ease-out;
}

/* 히어로 태그 */
.nb-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    animation: nb-slide-up 0.7s ease-out;
}
.nb-hero-tags a {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 24px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: background var(--nb-transition), transform var(--nb-transition);
    cursor: pointer;
    text-decoration: none;
    color: white;
}
.nb-hero-tags a:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-1px);
}

/* =====================================================
   안내 배너 (푸시 알림 유도)
   ===================================================== */
.nb-notice {
    background: var(--nb-accent-bg);
    border-left: 4px solid var(--nb-accent);
    padding: 14px 20px;
    font-size: 14px;
    color: #78350F;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.55;
}
.nb-notice-icon {
    font-size: 20px;
    flex-shrink: 0;
}
.nb-notice a {
    color: var(--nb-accent-dark);
    font-weight: 700;
    text-decoration: underline;
}

/* =====================================================
   메인 컨테이너
   ===================================================== */
.nb-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 28px 16px 48px;
    width: 100%;
    box-sizing: border-box;
}

/* =====================================================
   섹션 타이틀
   ===================================================== */
.nb-section-title,
h2.nb-section-title {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--nb-primary) !important;
    margin: 0 0 20px !important;
    padding: 0 0 14px !important;
    border-bottom: 3px solid var(--nb-primary-light) !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* =====================================================
   카테고리 아이콘 그리드
   ===================================================== */
.nb-categories {
    margin-bottom: 36px;
}

.nb-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.nb-cat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 18px 8px;
    background: var(--nb-bg-white);
    border-radius: var(--nb-radius-sm);
    border: 1px solid var(--nb-border);
    text-decoration: none !important;
    color: var(--nb-text-dark) !important;
    transition: all var(--nb-transition);
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.nb-cat-item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.04), rgba(14, 165, 233, 0.04));
    opacity: 0;
    transition: opacity var(--nb-transition);
}
.nb-cat-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px var(--nb-shadow-hover);
    border-color: var(--nb-primary-light);
    text-decoration: none !important;
}
.nb-cat-item:hover::before {
    opacity: 1;
}

.nb-cat-emoji {
    font-size: 32px;
    line-height: 1;
    position: relative;
    z-index: 1;
}

.nb-cat-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--nb-text-medium);
    text-align: center;
    position: relative;
    z-index: 1;
    word-break: keep-all;
}

/* =====================================================
   카드형 포스트 목록
   ===================================================== */
.nb-posts {
    margin-bottom: 36px;
}

/* 카드 그리드 - 모바일: 1열 */
.nb-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

/* 카드 */
.nb-card {
    display: flex;
    background: var(--nb-bg-white);
    border-radius: var(--nb-radius);
    overflow: hidden;
    box-shadow: 0 2px 12px var(--nb-shadow);
    text-decoration: none !important;
    color: inherit !important;
    border: 1px solid var(--nb-border);
    transition: transform var(--nb-transition), box-shadow var(--nb-transition);
    -webkit-tap-highlight-color: transparent;
}
.nb-card:hover,
.nb-card:active {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px var(--nb-shadow-hover);
    text-decoration: none !important;
    color: inherit !important;
}

/* 카드 썸네일 - 모바일: 가로형 (좌측 고정) */
.nb-card-thumb {
    width: 120px;
    min-width: 120px;
    overflow: hidden;
    background: var(--nb-cat-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nb-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.nb-card-thumb-emoji {
    font-size: 40px;
    line-height: 1;
}

/* 카드 내용 */
.nb-card-body {
    padding: 14px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

/* 카테고리 뱃지 */
.nb-card-cat {
    display: inline-block;
    font-size: 11px;
    color: var(--nb-cat-text);
    font-weight: 700;
    background: var(--nb-cat-bg);
    padding: 3px 10px;
    border-radius: 12px;
    align-self: flex-start;
    letter-spacing: 0.02em;
}

/* 카드 제목 - h3 전역 오버라이드 */
.nb-card-title,
.nb-card h3,
h3.nb-card-title,
.nb-grid h3 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--nb-text-dark) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* 카드 요약 */
.nb-card-excerpt {
    font-size: 13px !important;
    color: var(--nb-text-muted) !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 카드 푸터 */
.nb-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: 4px;
}
.nb-card-date {
    font-size: 12px;
    color: var(--nb-text-light);
}
.nb-card-more {
    font-size: 12px;
    color: var(--nb-primary-light);
    font-weight: 600;
    transition: color var(--nb-transition);
}
.nb-card:hover .nb-card-more {
    color: var(--nb-primary);
}

/* 빈 목록 */
.nb-empty {
    text-align: center;
    color: var(--nb-text-light);
    padding: 48px 0;
    font-size: 16px;
}

/* =====================================================
   광고 유닛 스타일
   ===================================================== */
.nb-ad-unit {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 100px;
    background: var(--nb-bg);
    border-radius: var(--nb-radius-xs);
    overflow: hidden;
    margin: 6px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--nb-border);
}
.nb-ad-unit .adsbygoogle {
    width: 100%;
}
/* 광고 레이블 */
.nb-ad-label {
    font-size: 10px;
    color: var(--nb-text-light);
    text-align: center;
    padding: 4px 0 0;
    letter-spacing: 0.05em;
}

/* =====================================================
   푸터 스타일
   ===================================================== */
.site-info {
    background: var(--nb-text-dark) !important;
    color: var(--nb-text-light) !important;
    font-size: 13px !important;
    padding: 24px 0 !important;
}
.site-info a {
    color: var(--nb-text-light) !important;
}
.site-info a:hover {
    color: #fff !important;
}

.footer-widgets {
    background: #1e293b !important;
    color: #cbd5e1 !important;
}
.footer-widgets .widget-title {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

/* =====================================================
   글 목록 페이지 (아카이브/카테고리/검색) 요약문
   ===================================================== */
.blog .entry-summary p,
.archive .entry-summary p,
.search .entry-summary p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin-bottom: 8px;
}

/* 글 목록 광고 영역 */
.custom-archive-ad {
    margin: 24px 0;
    text-align: center;
    clear: both;
}

/* 형광펜 밑줄 (에디터에서 <u> 태그 사용 시) */
u {
    text-decoration: none;
    display: inline;
    box-shadow: inset 0 -7px 0 #FEF3C7;
    color: var(--nb-text-dark);
}

/* 포스트 상단 CTA */
.entry-content .nb-post-cta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 20px;
}

.entry-content .nb-post-cta-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 50px;
    padding: 14px 16px;
    border-radius: 12px;
    color: #fff !important;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

.entry-content .nb-post-cta-primary {
    background: var(--nb-primary-light) !important;
}

.entry-content .nb-post-cta-target {
    background: var(--nb-accent) !important;
    color: var(--nb-text-dark) !important;
}

.entry-content .nb-post-cta-support {
    background: var(--nb-success) !important;
}

.entry-content .nb-post-cta-link:hover,
.entry-content .nb-post-cta-link:focus {
    filter: brightness(0.96);
    transform: translateY(-1px);
}

.entry-content table {
    display: block;
    width: 100% !important;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* 버튼 스타일 */
.nb-btn,
.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    background: linear-gradient(135deg, var(--nb-primary) 0%, var(--nb-primary-light) 100%);
    color: #fff !important;
    border: none;
    border-radius: var(--nb-radius-xs);
    font-family: var(--nb-font);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--nb-transition);
    box-shadow: 0 4px 12px rgba(30, 64, 175, 0.25);
    text-decoration: none !important;
}
.nb-btn:hover,
.wp-block-button__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(30, 64, 175, 0.35);
}

/* =====================================================
   애니메이션
   ===================================================== */
@keyframes nb-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes nb-slide-up {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =====================================================
   모바일 최적화 (기본 - 600px 이하)
   ===================================================== */

/* GeneratePress 컨텐츠 패딩 상쇄 */
@media (max-width: 599px) {
    .nb-hero,
    .nb-notice,
    .nb-container {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .nb-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
        max-width: 100% !important;
    }
    .nb-hero {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .entry-content .nb-post-cta-link {
        min-height: 46px;
        padding: 12px 14px;
        font-size: 15px;
    }

    /* 카드 100% 폭 */
    .nb-grid {
        width: 100%;
    }
    .nb-card {
        width: 100%;
        box-sizing: border-box;
    }

    /* GeneratePress 30px 패딩 상쇄 (768px 미디어쿼리) */
    .separate-containers .inside-article {
        padding: 16px !important;
    }
}

/* =====================================================
   PC/태블릿 (600px 이상)
   ===================================================== */
@media (min-width: 600px) {
    /* 히어로 타이틀 */
    .nb-hero-title,
    .nb-hero h1,
    h1.nb-hero-title {
        font-size: 36px !important;
    }
    .nb-hero-desc {
        font-size: 18px !important;
    }
    .nb-hero {
        padding: 52px 24px 56px;
    }

    /* 카드 그리드: 2열 세로형 */
    .nb-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
        align-items: stretch;
    }

    /* 카드 세로형으로 변환 */
    .nb-card {
        flex-direction: column;
    }

    /* 썸네일 상단 고정 */
    .nb-card-thumb {
        width: 100%;
        min-width: unset;
        height: 170px !important;
        max-height: 170px !important;
        min-height: 170px !important;
        flex-shrink: 0;
        overflow: hidden;
    }
    .nb-card-thumb-emoji {
        width: 100%;
        height: 100%;
        font-size: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--nb-cat-bg);
    }
    .nb-card-thumb img {
        width: 100%;
        height: 170px;
        object-fit: cover;
    }

    /* 카드 내용 */
    .nb-card-body {
        padding: 16px 18px;
    }
    .nb-card-title,
    .nb-card h3,
    h3.nb-card-title,
    .nb-grid h3 {
        font-size: 16px !important;
    }

    /* 카테고리 그리드: 5열 */
    .nb-cat-grid {
        grid-template-columns: repeat(5, 1fr);
        gap: 14px;
    }
    .nb-cat-item {
        padding: 22px 10px;
    }
    .nb-cat-emoji {
        font-size: 36px;
    }
    .nb-cat-name {
        font-size: 14px;
    }

    /* 광고 유닛 - 2열 그리드에서 전체 너비 차지 */
    .nb-ad-unit {
        grid-column: 1 / -1;
    }

    /* Ad Inserter 등 외부 플러그인 삽입 요소 숨김 */
    .nb-grid > :not(.nb-card):not(.nb-ad-unit) {
        display: none !important;
    }
}

/* =====================================================
   대형 화면 (900px 이상)
   ===================================================== */
@media (min-width: 900px) {
    .nb-hero {
        padding: 64px 32px 68px;
    }
    .nb-hero-title,
    .nb-hero h1,
    h1.nb-hero-title {
        font-size: 40px !important;
    }
    .nb-container {
        padding: 36px 24px 60px;
    }
    .nb-cat-grid {
        gap: 16px;
    }
    .nb-cat-item {
        padding: 26px 12px;
    }
}
