/* ========== RESPONSIVE ========== */

/* Tablet Large */
@media (max-width: 1200px) {
    /* 4열 → 3열 */
    .posts-grid,
    .archive-grid,
    .related-posts-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* TOC 사이드바 — 1100px 이하 숨김 */
@media (max-width: 1100px) {
    .toc-sidebar {
        display: none;
    }

    .single-page-layout {
        justify-content: center;
    }

    .single-content-wrapper {
        max-width: 760px;
        width: 100%;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    .search-hero-title {
        font-size: 36px;
    }
    :root {
        --section-padding: 60px 30px;
    }

    .header-inner {
        padding: 0 24px;
    }

    /* Front Hero */
    .front-hero {
        padding: 100px 30px 70px;
    }

    .main-hero-section {
        padding: 60px 0 60px;
    }

    .main-hero-inner {
        padding: 0 30px;
    }

    /* Archive Hero */
    .archive-hero {
        padding: 90px 30px 48px;
    }

    .archive-hero-title {
        font-size: 40px;
    }

    .archive-posts-section {
        padding: 48px 30px 72px;
    }

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

    .hero-content {
        padding: 50px 40px;
    }

    /* 3열 → 2열 */
    .posts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

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

    .related-posts-section {
        padding: 60px 30px;
    }

    /* Footer */
    .footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }

    .footer-branding {
        grid-column: 1 / -1;
    }
}

/* Mobile Large */
@media (max-width: 768px) {
    .search-hero-title {
        font-size: 28px;
    }

    .search-refine {
        max-width: 100%;
        margin-top: 24px;
    }

    .search-no-results {
        padding: 52px 0 64px;
    }
    /* Front Hero — 모바일 */
    .front-hero {
        padding: 92px 20px 60px;
    }

    /* WRITE 버튼 — 모바일에서 숨김 */
    .header-write-btn {
        display: none;
    }

    .main-navigation {
        display: none;
    }

    .menu-toggle {
        display: flex;
    }

    /* 모바일 닫기 버튼 */
    .main-navigation.toggled .mobile-menu-close {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 24px;
        right: 20px;
        width: 48px;
        height: 48px;
        color: #ffffff;
        background: rgba(255, 255, 255, 0.1);
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, 0.2);
        cursor: pointer;
        transition: background 0.2s;
        z-index: 10;
    }

    .main-navigation.toggled .mobile-menu-close:hover {
        background: rgba(255, 255, 255, 0.2);
    }

    /* Mobile Menu */
    .main-navigation.toggled {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(26, 26, 46, 0.98);
        z-index: 9998;
        justify-content: center;
        align-items: center;
        animation: fadeIn 0.3s ease;
    }

    @keyframes fadeIn {
        from { opacity: 0; }
        to { opacity: 1; }
    }

    .main-navigation.toggled .primary-menu {
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }

    .main-navigation.toggled .primary-menu li a {
        font-size: 20px;
        padding: 14px 28px;
        color: rgba(255, 255, 255, 0.85);
        background-color: transparent;
    }

    .main-navigation.toggled .primary-menu li a:hover,
    .main-navigation.toggled .primary-menu li.current-menu-item > a,
    .main-navigation.toggled .primary-menu li.current-menu-ancestor > a {
        color: #ffffff;
        background-color: rgba(255, 255, 255, 0.1);
    }

    .main-navigation.toggled .primary-menu li .sub-menu {
        position: static;
        transform: none;
        opacity: 1;
        visibility: visible;
        background: transparent;
        box-shadow: none;
        padding: 0;
        min-width: auto;
    }

    /* Hero */
    .single-hero {
        min-height: 56vh;
    }

    .single-hero.no-image {
        min-height: 0;
        padding-top: 60px;
    }

    .single-hero.no-image .hero-content {
        padding: 20px 20px 28px;
    }

    .hero-content {
        padding: 40px 24px;
    }

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

    /* Content */
    .single-page-layout {
        padding: 0 16px;
    }

    .single-content-wrapper {
        padding: 40px 0 64px;
    }

    .entry-content {
        font-size: 16px;
    }

    .entry-content h2 {
        font-size: 20px;
        margin: 48px 0 24px;
    }

    .entry-content h3 {
        font-size: 17px;
        margin: 36px 0 18px;
    }

    /* Archive Hero */
    .archive-hero {
        padding: 80px 20px 40px;
    }

    .archive-hero-title {
        font-size: 32px;
    }

    .archive-hero-title::after {
        margin-top: 14px;
    }

    .archive-posts-section {
        padding: 40px 20px 60px;
    }

    /* Grid */
    .front-hero {
        padding: 60px 16px 50px;
    }

    .main-hero-section {
        padding: 40px 0 40px;
    }

    .main-hero-inner {
        padding: 0 12px;
    }

    .posts-grid,
    .archive-grid,
    .related-posts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .card-title {
        font-size: 14px;
    }

    .related-posts-section {
        padding: 50px 20px;
    }

    .related-title {
        font-size: 24px;
    }

    /* Navigation */
    .nav-links {
        grid-template-columns: 1fr;
    }

    .nav-next {
        text-align: left;
    }

    .nav-next .nav-direction {
        justify-content: flex-start;
    }

    /* Footer */
    .footer-inner {
        padding: 0 24px;
    }

    .footer-top {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 40px 0 36px;
    }

    .footer-branding {
        grid-column: auto;
    }

    .footer-description {
        max-width: 100%;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 16px 0;
    }
}

/* 404 & 검색결과없음 반응형 */
@media (max-width: 1024px) {
    .e404-hero {
        padding: 90px 30px 60px;
    }
    .snr-hero {
        padding: 60px 30px 68px;
    }
    .e404-code {
        font-size: 96px;
    }
    .snr-icon-xl {
        width: 80px;
        height: 80px;
    }
    .e404-title {
        font-size: 24px;
    }
    .e404-recent-section {
        padding: 52px 30px 64px;
    }
}

@media (max-width: 768px) {
    .e404-hero {
        padding: 80px 20px 48px;
        min-height: auto;
    }
    .snr-hero {
        padding: 52px 20px 60px;
    }
    .e404-body {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 36px;
    }
    .e404-code {
        font-size: 80px;
        letter-spacing: -2px;
    }
    .snr-icon-xl {
        width: 64px;
        height: 64px;
    }
    .e404-message {
        padding-top: 0;
    }
    .e404-title {
        font-size: 22px;
    }
    .e404-recent-section {
        padding: 44px 20px 56px;
    }
}

@media (max-width: 480px) {
    .e404-hero {
        padding: 74px 16px 44px;
    }
    .snr-hero {
        padding: 44px 16px 52px;
    }
    .e404-code {
        font-size: 64px;
    }
    .snr-icon-xl {
        width: 56px;
        height: 56px;
    }
    .e404-title {
        font-size: 20px;
    }
    .e404-desc {
        font-size: 14px;
    }
    .e404-search-field {
        padding: 14px 16px;
        font-size: 14px;
    }
    .e404-search-btn {
        height: 48px;
        padding: 0 18px;
    }
    .e404-home-btn {
        font-size: 14px;
        padding: 12px 22px;
    }
    .e404-recent-section {
        padding: 36px 16px 48px;
    }
}

/* Mobile Small */
@media (max-width: 480px) {
    .front-hero {
        padding: 84px 16px 44px;
    }

    .main-hero-section {
        padding: 32px 0 36px;
    }

    .main-hero-inner {
        padding: 0 8px;
    }

    .search-hero-title {
        font-size: 24px;
    }

    .search-no-results-title {
        font-size: 18px;
    }
    .archive-hero {
        padding: 74px 16px 36px;
    }

    .archive-hero-title {
        font-size: 28px;
    }

    .archive-breadcrumb {
        font-size: 12px;
        margin-bottom: 24px;
    }

    .archive-posts-section {
        padding: 32px 16px 48px;
    }

    .posts-grid,
    .archive-grid,
    .related-posts-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .single-hero {
        min-height: 50vh;
    }

    .single-hero.no-image {
        min-height: 0;
        padding-top: 60px;
    }

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

    .header-inner {
        padding: 0 16px;
        height: 60px;
    }

    .single-page-layout {
        padding: 0 12px;
    }

    .single-content-wrapper {
        padding: 32px 0 48px;
    }
}

