/*
Theme Name: Astra Child
Theme URI: https://hcjoyn.com
Description: HC Joyn을 위한 Astra Child 테마 - HC JOYN MENU 플러그인과 완벽 호환
Author: HC Joyn
Author URI: https://hcjoyn.com
Template: astra
Version: 2.0.10
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
*/

/* ========================================
   HC JOYN MENU 플러그인 호환성
   ======================================== */

/* 플러그인 메뉴·오버레이가 스티키 헤더/메인 위에 항상 표시 (관리자·구글 로그인 동일) */
.hc-joyn-menu-trigger,
body .hc-joyn-menu-trigger {
    z-index: 2147483646 !important;
}
.hc-joyn-menu-overlay,
body .hc-joyn-menu-overlay {
    z-index: 2147483646 !important;
}

/* 모바일에서 admin bar 숨김 + 상단 백색 여백 제거 (관리자 로그인 시에도) */
@media (max-width: 782px) {
    #wpadminbar {
        display: none !important;
    }
    html {
        margin-top: 0 !important;
    }
}

/* ★★★ [FIX] 데스크톱 헤더 중복 표시 방지 ★★★
   Astra Header Builder가 모바일 모드(ast-header-break-point)일 때
   #ast-desktop-header가 숨겨지지 않아 로고가 2개 보이는 문제 해결 */
.ast-header-break-point #ast-desktop-header {
    display: none !important;
}

/* ★★★ 비로그인 시 상단 "로그인 회원가입" 바 숨김 + 백색 여백 제거 ★★★ */
body:not(.logged-in) .ast-above-header-wrap,
body:not(.logged-in) .ast-above-header-bar,
body:not(.logged-in) #top-bar,
body:not(.logged-in) .top-bar,
body:not(.logged-in) .header-top {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 0 !important;
}
/* 위 영역 부모 행도 공간·배경 제거 (흰색 바 안 나오게) */
body:not(.logged-in) #ast-desktop-header > .ast-above-header-wrap,
body:not(.logged-in) #ast-mobile-header .ast-above-header-wrap {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

/* ========================================
   메인페이지(.mainpage-wrapper, mainpage-mini 등) 스크롤 잠금 방지
   테마 모바일 메뉴와 충돌 시 스크롤 복구 (일반회원 구글 로그인 등)
   ======================================== */
body.hcjoyn-mainpage-scroll-fix,
body.hcjoyn-mainpage-scroll-fix.ast-mobile-popup-active {
    overflow: auto !important;
    position: static !important;
    top: auto !important;
}
html:has(.mainpage-wrapper),
html:has(.mpm-root) {
    overflow: auto !important;
}

/* HC Joyn 메뉴 동기화 클라이언트: 기존 규칙이 nav.site-navigation·.main-navigation 전체를 숨기므로 동기화 전용 네비는 예외 */
nav.hcjoyn-synced-menu-nav.hcjoyn-sync-site-nav,
nav.hcjoyn-synced-menu-nav.hcjoyn-sync-main-nav {
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	flex-wrap: wrap;
	align-items: center;
	min-width: 0;
}

/* HC JOYN MENU 활성 시에만(functions.php body_class): 헤더·트리거 연동. 비활성화 시 Astra 기본 메뉴 유지 */
@media (max-width: 921px) {
    body.hc-joyn-menu-active .ast-primary-header-bar {
        background-color: var(--jms-header-bg, #000000) !important;
    }
}

/* 모바일 전체(1024px 이하): HC JOYN MENU 사용 중일 때만 Astra 햄버거·데스크톱 네비 숨김 */
@media (max-width: 1024px) {
    body.hc-joyn-menu-active .ast-mobile-menu-buttons,
    body.hc-joyn-menu-active .menu-toggle,
    body.hc-joyn-menu-active .main-header-menu-toggle,
    body.hc-joyn-menu-active .ast-button-wrap,
    body.hc-joyn-menu-active #ast-mobile-header .ast-mobile-menu-buttons,
    body.hc-joyn-menu-active #ast-mobile-header .menu-toggle,
    body.hc-joyn-menu-active #ast-mobile-header .ast-button-wrap,
    body.hc-joyn-menu-active .ast-mobile-header-wrap .ast-mobile-menu-buttons,
    body.hc-joyn-menu-active .ast-mobile-header-wrap .menu-toggle,
    body.hc-joyn-menu-active .ast-mobile-header-wrap .ast-button-wrap,
    body.hc-joyn-menu-active #ast-mobile-popup-wrapper,
    body.hc-joyn-menu-active #ast-mobile-popup,
    body.hc-joyn-menu-active .ast-mobile-popup-drawer,
    body.hc-joyn-menu-active .ast-mobile-popup-drawer.active,
    body.hc-joyn-menu-active .ast-mobile-popup-drawer.show,
    body.hc-joyn-menu-active .ast-mobile-popup-overlay,
    body.hc-joyn-menu-active .ast-mobile-popup-inner {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transform: translateX(100%) translateX(-9999px) !important;
        width: 0 !important;
        max-width: 0 !important;
        overflow: hidden !important;
    }

    body.hc-joyn-menu-active .main-navigation,
    body.hc-joyn-menu-active .ast-desktop .main-navigation,
    body.hc-joyn-menu-active .main-header-menu,
    body.hc-joyn-menu-active .ast-desktop .main-header-menu,
    body.hc-joyn-menu-active nav.site-navigation,
    body.hc-joyn-menu-active .ast-flex.main-header-container .main-navigation,
    body.hc-joyn-menu-active .ast-primary-header-bar .main-header-bar-navigation {
        display: none !important;
        visibility: hidden !important;
    }

    body.hc-joyn-menu-active.ast-header-break-point .ast-above-header-wrap,
    body.hc-joyn-menu-active.ast-header-break-point .ast-above-header-bar,
    body.hc-joyn-menu-active.ast-header-break-point .ast-above-header-bar .main-header-bar-navigation,
    body.hc-joyn-menu-active.ast-header-break-point .ast-above-header-wrap .main-navigation {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
    }

    body.hc-joyn-menu-active .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        right: 31px !important;
    }

    body.hc-joyn-menu-active:not(.hcjoyn-hybrid-app) .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        top: 25px !important;
    }
    body.hc-joyn-menu-active:not(.hcjoyn-hybrid-app).admin-bar .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        top: 57px !important;  /* 관리바 32px + 25px */
    }
}

@media (max-width: 544px) {
    body.hc-joyn-menu-active:not(.hcjoyn-hybrid-app) .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        top: 54px !important;
    }
    body.hc-joyn-menu-active:not(.hcjoyn-hybrid-app).admin-bar .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        top: 54px !important;
    }
}

/* ========================================
   맨 위로 가기 버튼 위치 조정 (모바일)
   ======================================== */

@media screen and (max-width: 768px) {
    #ast-scroll-top,
    .ast-scroll-to-top-right,
    .ast-scroll-to-top-left {
        bottom: 110px;
    }
}

@media screen and (max-width: 360px) {
    #ast-scroll-top,
    .ast-scroll-to-top-right,
    .ast-scroll-to-top-left {
        bottom: 105px;
    }
}

/* ========================================
   스티키 메뉴 (Sticky Header)
   ======================================== */

.ast-primary-header-bar {
    position: sticky;
    top: 0;
    z-index: 9999;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    background-color: var(--ast-global-color-5);
}

@media (max-width: 768px) {
    .ast-primary-header-bar {
        position: sticky;
        top: 0;
        z-index: 9999;
    }
    
    .ast-mobile-header-wrap .ast-primary-header-bar {
        z-index: 9999;
    }
}

@media (min-width: 769px) {
    .ast-desktop .ast-primary-header-bar {
        position: sticky;
        top: 0;
    }
}

/* ========================================
   조인자료실 게시판 영역: 가로 1200px
   ======================================== */
.entry-content .joyn-resources-container,
.ast-container .joyn-resources-container,
body .joyn-resources-container {
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ========================================
   게시판 모바일 레이아웃: 양쪽 공백 제거
   ======================================== */

@media (max-width: 639px) {
    .ast-container,
    .site-content .ast-container,
    .content-area .ast-container {
        padding-left: 0;
        padding-right: 0;
        max-width: 100%;
    }
    
    .site-content,
    .content-area,
    .ast-page .site-content,
    .ast-page .content-area {
        padding-left: 0;
        padding-right: 0;
    }
    
    .ast-page .entry-content,
    article .entry-content {
        padding-left: 0;
        padding-right: 0;
    }
    
    .ast-container {
        width: 100%;
        max-width: 100%;
    }
    
    .joyn-resources-container {
        padding-left: 0;
        padding-right: 0;
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
    }
}

/* ========================================
   Privacy Policy 페이지 모바일 패딩
   ======================================== */

@media (max-width: 768px) {
    body.page-id-6442 .ast-container,
    body.page-id-6442 .site-content .ast-container,
    body.page-id-6442 .content-area .ast-container {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    body.page-id-6442 .entry-content,
    body.page-id-6442 .ast-page .entry-content,
    body.page-id-6442 article .entry-content {
        padding-left: 0;
        padding-right: 0;
    }
    
    body.page-id-6442 .entry-header,
    body.page-id-6442 .entry-title {
        padding-left: 0;
        padding-right: 0;
    }
}

@media (max-width: 480px) {
    body.page-id-6442 .ast-container,
    body.page-id-6442 .site-content .ast-container,
    body.page-id-6442 .content-area .ast-container {
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media (max-width: 360px) {
    body.page-id-6442 .ast-container,
    body.page-id-6442 .site-content .ast-container,
    body.page-id-6442 .content-area .ast-container {
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* ========================================
   블랙 메뉴 테마 (Black Menu Theme)
   HC JOYN MENU 플러그인의 블랙 테마와 동기화됨
   ======================================== */

:root {
    --jms-header-bg: #000000;
    --jms-header-text: #ffffff;
    --jms-menu-bg: #000000;
    --jms-menu-text: #ffffff;
    --jms-menu-hover: rgba(255, 255, 255, 0.1);
    --jms-accent: #ff6b35;
    --jms-border: rgba(255, 255, 255, 0.1);
}

/* 
   주의: HC JOYN MENU 플러그인이 활성화되면
   모바일에서는 플러그인 메뉴가 사용됩니다.
   데스크톱에서는 Astra 기본 메뉴가 사용됩니다.
*/

/* --- 데스크톱 헤더 --- */
.ast-primary-header-bar,
.ast-above-header-bar,
.ast-below-header-bar,
.ast-main-header-bar-alignment {
    background-color: var(--jms-header-bg) !important;
}

.ast-primary-header-bar .main-navigation a,
.ast-primary-header-bar .ast-header-custom-item a,
.ast-primary-header-bar .site-title a,
.ast-primary-header-bar .site-description,
.ast-primary-header-bar .ast-masthead-custom-menu-items a,
/* HC Joyn 메뉴 동기화 클라이언트 — .main-navigation 이 아니라 .hcjoyn-sync-menu 사용 */
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu a,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu > li > a {
    color: var(--jms-header-text) !important;
}

.ast-primary-header-bar .main-navigation a:hover,
.ast-primary-header-bar .main-navigation li:hover > a,
.ast-primary-header-bar .main-navigation .current-menu-item > a,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu a:hover,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu li:hover > a {
    color: var(--jms-accent) !important;
}

.ast-primary-header-bar .sub-menu,
.ast-primary-header-bar .astra-megamenu,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu {
    background-color: var(--jms-menu-bg) !important;
    border: 1px solid var(--jms-border) !important;
}

.ast-primary-header-bar .sub-menu a,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu a {
    color: var(--jms-header-text) !important;
    border-bottom: 1px solid var(--jms-border) !important;
}

.ast-primary-header-bar .sub-menu a:hover,
.ast-primary-header-bar .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu a:hover {
    background-color: var(--jms-menu-hover) !important;
    color: var(--jms-accent) !important;
}

/* --- 모바일 헤더 --- */
.ast-mobile-header-content,
.ast-mobile-header-wrap,
.ast-header-break-point .ast-primary-header-bar,
.ast-header-break-point .ast-mobile-header-wrap .ast-primary-header-bar {
    background-color: var(--jms-header-bg) !important;
}

/* 모바일 헤더 행의 동기화 메뉴 글자색 (데스크톱과 동일 변수) */
.ast-mobile-header-wrap .hcjoyn-synced-menu-nav .hcjoyn-sync-menu a,
.ast-mobile-header-wrap .hcjoyn-synced-menu-nav .hcjoyn-sync-menu > li > a,
.ast-header-break-point .hcjoyn-synced-menu-nav .hcjoyn-sync-menu a {
    color: var(--jms-header-text) !important;
}

.ast-mobile-header-wrap .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu,
.ast-header-break-point .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu {
    background-color: var(--jms-menu-bg) !important;
    border: 1px solid var(--jms-border) !important;
}

.ast-mobile-header-wrap .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu a,
.ast-header-break-point .hcjoyn-synced-menu-nav .hcjoyn-sync-menu .sub-menu a {
    color: var(--jms-header-text) !important;
}


/* --- 사이트 로고/타이틀 --- */
.ast-header-break-point .site-title a,
.ast-header-break-point .site-description,
.site-header .site-title a,
.ast-site-identity .site-title a {
    color: var(--jms-header-text) !important;
}

/* --- 검색 아이콘 --- */
.ast-header-search .astra-search-icon,
.ast-header-break-point .ast-header-search .astra-search-icon,
.ast-search-icon {
    color: var(--jms-header-text) !important;
}


/* --- 스크롤 시 헤더 그림자 --- */
.ast-primary-header-bar.ast-header-sticked,
.ast-primary-sticky-header-active .ast-primary-header-bar {
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.5) !important;
}

/* --- 포커스 스타일 (접근성) --- */
.ast-primary-header-bar a:focus {
    outline: 2px solid var(--jms-accent) !important;
    outline-offset: 2px;
}

/* --- 모바일 헤더 높이 --- */
@media (max-width: 921px) {
    .ast-header-break-point .ast-primary-header-bar .ast-builder-grid-row {
        min-height: 56px;
    }
}

/* ========================================
   데스크톱 메뉴: 폰트 16px, 메뉴 간격 축소
   ★★★ [FIX] 1025px 이상에서만 적용 (922~1024px은 HC JOYN MENU 사용) ★★★
   ======================================== */
@media (min-width: 1025px) {
    .ast-desktop .ast-primary-header-bar .main-navigation .menu-item > a,
    .ast-desktop .ast-primary-header-bar .main-navigation a {
        font-size: 16px !important;
    }
    .ast-desktop .ast-primary-header-bar .main-navigation .menu-item {
        padding-left: 8px !important;
        padding-right: 8px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .ast-desktop .ast-primary-header-bar .main-navigation > ul {
        gap: 0;
    }
}

