/*
 Theme Name:   SBONOVA Blog Child
 Theme URI:    https://sbonova.blog
 Description:  GeneratePress 차일드 테마 — 배너 테두리 완벽 제거 및 모바일/PC 레이아웃 최적화 통합본
 Author:       Anti-Gravity CTO
 Template:     generatepress
 Version:      6.0.0
*/

:root {
    --sbv-bg-main: #1b447c;
    --sbv-bg-card: #153663;
    --sbv-bg-card-hover: #1e4b8a;
    --sbv-point-orange: #ffac14;
    --sbv-point-blue: #0087ff;
    --sbv-text-primary: #eff6ff;
    --sbv-text-secondary: #cce0ff;
    --sbv-text-muted: #aabdd6;
    
    --sbv-border: rgba(255,255,255,0.1);
    --sbv-radius-md: 12px;
    --sbv-radius-lg: 16px;
    --sbv-radius-pill: 99px;
    --sbv-font-body: 'Noto Sans KR', sans-serif;
    --sbv-transition: 0.3s ease;
}

body, .site-header, .site-footer, .site-content, .inside-article { background-color: var(--sbv-bg-main) !important; color: var(--sbv-text-primary) !important; }
h1, h2, h3, h4, h5, h6 { color: #ffffff !important; }
.site-info { background-color: #122e54 !important; color: var(--sbv-text-muted); border-top: 1px solid var(--sbv-border); }
a { color: var(--sbv-point-orange); text-decoration: none; }

h1.entry-title { font-size: clamp(1.6rem, 3.5vw, 2.2rem) !important; font-weight: 800 !important; line-height: 1.3 !important; margin-bottom: 0.8rem !important; color: #fff !important; }
.entry-meta, .entry-meta a, .entry-meta time { color: var(--sbv-text-secondary) !important; font-size: 0.95rem; }

.main-title a, .main-title { color: #ffffff !important; font-weight: 800; }
.site-description { color: var(--sbv-text-muted) !important; }
.main-navigation, .main-navigation ul ul { background-color: transparent !important; }
.main-navigation .main-nav ul li a { color: var(--sbv-text-primary) !important; }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--sbv-point-orange) !important; }
.main-navigation .main-nav ul li a:hover { color: var(--sbv-point-orange) !important; background: transparent !important; }

/* ==========================================
   우측 사이드바 위젯 스마트 디자인 분리
   ========================================== */
.widget {
    background: linear-gradient(145deg, #153663, #112c52) !important;
    border: 1px solid rgba(255,255,255,0.05) !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15) !important;
    padding: 1.5rem !important;
    margin-bottom: 2rem !important;
}

/* 세로 배너가 들어간 위젯은 배경/테두리 투명하게 */
.widget:has(.sbonova-banner-widget) {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.widget-title { font-size: 1.1rem !important; font-weight: 700 !important; color: var(--sbv-point-orange) !important; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 0.8rem; margin-bottom: 1.2rem; }
.widget ul li { padding: 0.5rem 0; border-bottom: 1px dashed rgba(255,255,255,0.05); }
.widget ul li:last-child { border-bottom: none; }
.widget a { color: var(--sbv-text-secondary); transition: 0.2s; }
.widget a:hover { color: var(--sbv-point-orange); }

.widget .search-form { display: flex; gap: 8px; }
.widget input[type="search"], .widget input[type="text"] { flex: 1; background-color: #0d2240 !important; border: 1px solid rgba(255,255,255,0.1) !important; color: #fff !important; padding: 0.6rem 1rem !important; border-radius: 8px !important; }
.widget input[type="submit"] { background-color: var(--sbv-point-blue) !important; color: #fff !important; border: none; padding: 0.6rem 1.2rem !important; font-weight: bold; border-radius: 8px !important; cursor: pointer; white-space: nowrap !important; }

/* 본문 텍스트 모바일 최적화 */
.entry-content, .post-content { font-size: 17px; line-height: 1.8; color: var(--sbv-text-secondary) !important; font-family: var(--sbv-font-body); word-break: keep-all; overflow-wrap: break-word; }
.entry-content p { margin-bottom: 1.5em; }
@media (max-width: 768px) { .entry-content, .post-content { font-size: 15px; line-height: 1.7; padding: 0 10px; } .entry-content h2 { font-size: 1.3rem !important; } }

/* ==========================================
   모던 브랜드 CTA 배너 (중간 삽입용)
   ========================================== */
.sbonova-cta-wrapper { position: relative; overflow: hidden; border-radius: var(--sbv-radius-lg); margin: 2rem 0; padding: 1.75rem 2rem; border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.sbonova-cta-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.sbonova-cta-text { flex: 1; }
.sbonova-cta-action { flex-shrink: 0; text-align: right; }
.sbonova-cta-badge-wrap { display: flex; align-items: center; gap: 8px; margin-bottom: 0.75rem; }
.sbonova-cta-dot { width: 6px; height: 6px; border-radius: 50%; background-color: currentColor; box-shadow: 0 0 10px currentColor; animation: pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;} 50%{opacity:0.3;} }
.sbonova-cta-badge { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.sbonova-cta-headline { font-size: 1.35rem !important; font-weight: 800 !important; line-height: 1.4 !important; margin: 0 0 0.5rem !important; border: none !important; word-break: keep-all; background: linear-gradient(135deg, #ffac14 0%, #ffdf80 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.sbonova-cta-sub { font-size: 0.95rem; color: rgba(255,255,255,0.8); margin-bottom: 1rem; word-break: keep-all; }
.sbonova-trust-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.sbonova-trust-list li { font-size: 0.8rem; color: rgba(255,255,255,0.6); display: flex; align-items: center; gap: 4px; }
.sbonova-check { color: currentColor; font-weight: bold; }
.sbonova-cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1rem 1.75rem; border-radius: 12px; font-size: 1rem; font-weight: 700; text-decoration: none !important; transition: all var(--sbv-transition); }
.sbonova-cta-btn:hover { transform: translateY(-2px); filter: brightness(1.1); }
.sbonova-cta-disclaimer { margin-top: 0.75rem; font-size: 0.7rem; color: rgba(255,255,255,0.3); }

.sbonova-cta-orange { background: linear-gradient(135deg,#153663 0%,#1b447c 100%); border-color: rgba(255,172,20,0.3); }
.sbonova-cta-orange .sbonova-cta-dot, .sbonova-cta-orange .sbonova-cta-badge, .sbonova-cta-orange .sbonova-check { color: var(--sbv-point-orange); }
.sbonova-cta-btn-orange { background: var(--sbv-point-orange); color: #000 !important; box-shadow: 0 4px 15px rgba(255,172,20,0.3); }
.sbonova-cta-blue { background: linear-gradient(135deg,#0a1b31 0%,#153663 100%); border-color: rgba(0,135,255,0.3); }
.sbonova-cta-blue .sbonova-cta-dot, .sbonova-cta-blue .sbonova-cta-badge, .sbonova-cta-blue .sbonova-check { color: var(--sbv-point-blue); }
.sbonova-cta-btn-blue { background: var(--sbv-point-blue); color: #fff !important; box-shadow: 0 4px 15px rgba(0,135,255,0.3); }
.sbonova-cta-gold { background: linear-gradient(135deg,#1b447c 0%,#28599e 100%); border-color: rgba(255,215,0,0.3); }
.sbonova-cta-gold .sbonova-cta-dot, .sbonova-cta-gold .sbonova-cta-badge, .sbonova-cta-gold .sbonova-check { color: #FFD700; }
.sbonova-cta-btn-gold { background: linear-gradient(135deg,#FFD700 0%,#FF8C00 100%); color: #000 !important; box-shadow: 0 4px 15px rgba(255,215,0,0.3); }
.sbonova-cta-deep { background: linear-gradient(135deg,#081628 0%,#102847 100%); border-color: rgba(255,255,255,0.1); }
.sbonova-cta-deep .sbonova-cta-dot, .sbonova-cta-deep .sbonova-cta-badge, .sbonova-cta-deep .sbonova-check { color: #ffffff; }
.sbonova-cta-btn-deep { background: #ffffff; color: #1b447c !important; box-shadow: 0 4px 15px rgba(255,255,255,0.2); }

@media (max-width: 768px) { .sbonova-cta-wrapper { padding: 1.5rem; margin: 1.5rem 0; border-radius: 16px; } .sbonova-cta-inner { flex-direction: column; align-items: flex-start; gap: 1.25rem; } .sbonova-cta-text { width: 100%; text-align: left; } .sbonova-cta-headline { font-size: 1.2rem !important; } .sbonova-cta-sub { font-size: 0.9rem; margin-bottom: 0.75rem; } .sbonova-trust-list { flex-direction: column; gap: 0.3rem; } .sbonova-cta-action { width: 100%; text-align: left; } .sbonova-cta-btn { width: 100%; padding: 1rem; font-size: 0.95rem; justify-content: space-between; } }

/* ==========================================
   메인 홈 피드 그리드 & 카드 디자인
   ========================================== */
.sbonova-masonry-grid { columns: 4 280px; column-gap: 1.5rem; }
.sbonova-card { break-inside: avoid; margin-bottom: 1.5rem; border-radius: var(--sbv-radius-md); background: var(--sbv-bg-card); border: 1px solid var(--sbv-border); overflow: hidden; display: inline-block; width: 100%; transition: transform 0.2s; position: relative; }
.sbonova-card:hover { transform: translateY(-4px); background: var(--sbv-bg-card-hover); border-color: rgba(255,255,255,0.2); }
.sbonova-card-link { text-decoration: none; color: inherit; display: block; }
.sbonova-card-thumb img { width: 100%; height: auto; display: block; }
.sbonova-card-body { padding: 1.25rem; }
.sbonova-card-title { font-size: 1rem !important; margin: 0 0 0.5rem !important; color: var(--sbv-text-primary) !important; }
.sbonova-card-meta { font-size: 0.8rem; color: var(--sbv-text-muted); }
.sbonova-badge { position: absolute; top: 10px; left: 10px; padding: 0.2rem 0.6rem; border-radius: 4px; font-size: 0.7rem; font-weight: bold; color: #fff; z-index: 2; }
@media (max-width: 768px) { .sbonova-masonry-grid { columns: 2 180px; column-gap: 1rem; } .sbonova-card { margin-bottom: 1rem; } }
@media (max-width: 480px) { .sbonova-masonry-grid { columns: 1; } }

.sbonova-reading-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: var(--sbv-point-orange); z-index: 9999; }

/* 모바일 햄버거 메뉴 강제 숨김 */
.menu-toggle, .mobile-menu-control-wrapper { display: none !important; }

/* ==========================================
   카테고리 탭 기본 설정
   ========================================== */
.sbonova-grid-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 1rem; }
.sbonova-filter-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin-bottom: 2rem; }
.sbonova-tab { padding: 0.5rem 1rem; border-radius: var(--sbv-radius-pill); border: 1px solid var(--sbv-border); background: transparent; color: var(--sbv-text-muted); font-size: 0.85rem; cursor: pointer; transition: 0.2s; white-space: nowrap; }
.sbonova-tab.active { background: var(--sbv-point-orange); color: #000; border-color: var(--sbv-point-orange); font-weight: bold; }

/* 홈 피드 타이틀 숨김 */
.home .entry-header { display: none !important; }

/* ==========================================
   🚨 최후의 사이드바 무적 패치 & 모바일 정렬
   (과거 작업 완전 복원 및 레이아웃 충돌 영구 제거)
   ========================================== */

/* 1. PC 레이아웃 완벽 복원 (좌측 본문 75% / 우측 사이드바 25%) */
@media (min-width: 769px) {
    .site-content { display: flex !important; flex-wrap: nowrap !important; }
    #primary { width: 75% !important; flex: 0 0 75% !important; }
    #right-sidebar { width: 25% !important; flex: 0 0 25% !important; display: block !important; visibility: visible !important; opacity: 1 !important; height: auto !important; }
    
    /* PC에서는 슬라이더와 세로 배너 모두 무조건 노출 (위젯 숨김 절대 방지) */
    #right-sidebar aside.widget,
    #right-sidebar .sbonova-image-slider,
    #right-sidebar .sbonova-banner-widget { display: block !important; visibility: visible !important; opacity: 1 !important; }
}

/* 2. 모바일 레이아웃 및 여백 최적화 (사이드바 본문 하단 강제 이동) */
@media (max-width: 768px) {
    /* 눈에 보이지 않는 테마 기본 뼈대 거대 여백 완벽 파괴 */
    .site-content, #content, #primary, .inside-article { padding-top: 0 !important; margin-top: 0 !important; }
    .sbonova-mobile-only-banners, .sbonova-image-slider { margin-bottom: 0 !important; padding-bottom: 0 !important; }
    .inside-header { padding-bottom: 0 !important; }

    /* 헤더 밖으로 날아다니는 뜬금없는 찌꺼기 버튼(배지) 강제 숨김 */
    .site-header > .sbonova-tab, .inside-header > .sbonova-tab { display: none !important; }

    /* 카테고리를 무조건 1줄로 만들고, 가로 스크롤(스와이프) 활성화 */
    .sbonova-grid-wrapper { padding: 0 10px !important; }
    .sbonova-filter-tabs { 
        display: flex !important; 
        flex-wrap: nowrap !important; 
        overflow-x: auto !important; 
        -webkit-overflow-scrolling: touch !important;
        justify-content: flex-start !important; 
        gap: 6px !important; 
        width: 100% !important;
        padding-bottom: 8px !important; 
        margin-bottom: 1rem !important; 
        scrollbar-width: none; 
    }
    .sbonova-filter-tabs::-webkit-scrollbar { display: none; }
    .sbonova-tab { 
        flex: 0 0 auto !important; 
        padding: 6px 14px !important; 
        font-size: 13px !important; 
        white-space: nowrap !important;
    }

    /* 본문과 사이드바를 위/아래로 정렬 (Flexbox Order) */
    .site-content { display: flex !important; flex-direction: column !important; }
    #primary { width: 100% !important; order: 1 !important; }
    #right-sidebar { width: 100% !important; order: 2 !important; display: block !important; visibility: visible !important; opacity: 1 !important; height: auto !important; }
    
    /* 🚨 가장 중요: 숨겨진 위젯 상자를 강제로 부수고 꺼냄 */
    div#right-sidebar aside.widget,
    div#right-sidebar aside.widget:has(.sbonova-image-slider) { display: block !important; visibility: visible !important; height: auto !important; }
    
    /* 세로 배너는 모바일에서도 반드시 노출되도록 강제 */
    div#right-sidebar .sbonova-banner-widget { display: block !important; visibility: visible !important; opacity: 1 !important; }
    
    /* 꼬임의 주범이었던 '슬라이더(4장짜리)' 내용물만 모바일에서 정확히 암살 */
    div#right-sidebar .sbonova-image-slider { display: none !important; }
}

/* 모바일 하단 세로 배너 좌우 여백 추가 (화면 꽉 참 방지) */
@media (max-width: 768px) {
    div#right-sidebar .sbonova-banner-widget {
        padding: 0 15px !important;
    }
}

/* 모바일에서 우측 사이드바의 '카테고리' 위젯만 숨김 */
@media (max-width: 768px) {
    div#right-sidebar aside.widget_categories, 
    div#right-sidebar aside.widget_block:has(.wp-block-categories) { 
        display: none !important; 
    }
}

/* 모바일 카테고리 버튼 짤림 방지 (한 줄에 가지런히 꽉 채우기) */
@media (max-width: 768px) {
    .sbonova-grid-wrapper { padding: 0 5px !important; } /* 좌우 여백을 살짝 줄여서 버튼 들어갈 공간 확보 */
    
    .sbonova-filter-tabs { 
        overflow: hidden !important; /* 잘려 보이는 스크롤(스와이프) 효과 제거 */
        justify-content: space-between !important; /* 버튼들을 양쪽 끝까지 균등하게 분배 */
        gap: 4px !important; /* 버튼 사이 간격 최소화 */
        padding-bottom: 0 !important;
    }
    
    .sbonova-tab { 
        flex: 1 1 auto !important; /* 글자 길이에 맞춰 버튼 크기 자동 조절 */
        padding: 7px 2px !important; /* 좌우 여백을 얇게 */
        font-size: 11.5px !important; /* 5개가 모두 들어가도록 폰트 크기 미세 조정 */
        letter-spacing: -0.5px !important; /* 글자 사이 간격 축소 */
        text-align: center !important; 
        border-radius: 6px !important; /* 버튼 모서리를 살짝 부드럽게 */
    }
}

/* 모바일에서 모든 위젯(사이드바)의 좌우 여백을 게시글과 완벽하게 통일 */
@media (max-width: 768px) {
    /* 사이드바 전체를 안쪽으로 밀어 넣어 본문 카드와 너비를 맞춤 */
    #right-sidebar { 
        padding: 0 10px !important; 
    }
    
    /* (이중 여백 방지) 직전에 세로 배너 전용으로 넣으셨던 여백은 초기화 */
    div#right-sidebar .sbonova-banner-widget {
        padding: 0 !important;
    }
}

/* 모바일 화면일 때, 사이드바 맨 밑에 중복되는 CTA 가입 배너 숨김 처리 (최상단으로 이동했으므로) */
@media (max-width: 768px) {
    div#right-sidebar aside.widget:has(img[src*="SBONOVA_SEO_IMAGES_12.jpg"]) { 
        display: none !important; 
    }
}

/* 모바일 최상단 슬라이더와 CTA 가입 배너 사이의 간격 추가 */
@media (max-width: 768px) {
    .sbonova-mobile-cta { margin-top: 25px !important; }
}

/* 모바일/PC 가입 배너 이미지의 둥근 모서리(라운드) 제거 */
.sbonova-mobile-cta > a:first-child,
.custom-html-widget > div > a:first-child {
    border-radius: 0 !important;
}

/* 하단 세로 배너 이미지 둥근 테두리 제거 (직각 처리) */
.sbonova-banner-widget img {
    border-radius: 0 !important;
}

/* 이미지가 없는 포스팅의 임시 SBONOVA 로고 정중앙 정렬 패치 */
.sbonova-card-thumb-placeholder {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, #0f2b50, #1a3c6d);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px 12px 0 0;
    padding-bottom: 0 !important;
}
.sbonova-card-thumb-placeholder span {
    position: static !important;
    transform: none !important;
    color: rgba(255,255,255,0.1) !important;
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 2px;
}

/* ==========================================
   포스팅 썸네일 16:9(1920x1080) 고정 및 짤림 방지 패치 
========================================== */
.sbonova-card-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    /* 빈 공간에 노출될 고급스러운 다크블루 바탕색 */
    background: linear-gradient(135deg, #0f2b50, #1a3c6d) !important; 
    overflow: hidden;
    position: relative;
    border-radius: 12px 12px 0 0;
}

.sbonova-card-thumb img {
    width: 100% !important;
    height: 100% !important;
    /* 억지로 자르는 cover 대신, 전체가 다 보이는 contain 사용 */
    object-fit: contain !important; 
    display: block;
    border-radius: 0 !important;
}

/* ==========================================
   포스팅 카드 디자인 플랫(Flat)화 (배경/테두리 완벽 제거)
========================================== */

/* 1. 카드 전체의 배경색, 테두리선, 그림자를 완전히 없애서 투명하게 만듦 */
.sbonova-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* 2. 썸네일 이미지 뒤쪽 빈 공간도 메인 배경색과 똑같이 투명하게 통일 & 둥근 모서리 직각 처리 */
.sbonova-card-thumb {
    background: transparent !important;
    border-radius: 0 !important; 
}

/* 3. 텍스트 구역의 배경을 없애고, 글씨가 이미지 라인과 잘 어우러지도록 여백을 좁힘 */
.sbonova-card-body {
    background: transparent !important;
    padding: 15px 5px !important; 
}

/* 썸네일 이미지 모서리 둥글기(라운드) 완벽 제거 (직각 처리) */
.sbonova-card-thumb img {
    border-radius: 0 !important;
}

/* 카드와 썸네일 관련된 모든 요소의 둥근 모서리(라운드) 강제 무력화 폭격 */
.sbonova-card,
.sbonova-card-link,
.sbonova-card-thumb,
.sbonova-card-thumb img,
.sbonova-card-thumb-placeholder {
    border-radius: 0 !important;
}