/*
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.2
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;
}

/* ========================================
   메인페이지(mainpage-maker) 스크롤 잠금 방지
   테마 모바일 메뉴와 충돌 시 스크롤 복구 (일반회원 구글 로그인 등)
   ======================================== */
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) {
    overflow: auto !important;
}

/* 플러그인 메뉴와 헤더 통합 */
@media (max-width: 921px) {
    /* 헤더와 플러그인 메뉴 배경색 동기화 */
    .ast-primary-header-bar {
        background-color: var(--jms-header-bg, #000000) !important;
    }
}

/* 큰 모바일(481px~921px): Astra 메뉴 + HC JOYN 메뉴 둘 다 표시, 로고 중복 방지 */
@media (min-width: 481px) and (max-width: 921px) {
    /* 헤더에서 로고(site-identity)가 두 번 나오지 않도록 첫 번째만 표시 */
    .ast-header-break-point .ast-builder-grid-row .ast-builder-layout-element.ast-site-identity ~ .ast-builder-layout-element.ast-site-identity {
        display: none !important;
    }
    /* HC JOYN 메뉴 트리거가 Astra 메뉴 버튼과 겹치지 않도록 우측 여유 */
    .hc-joyn-menu-trigger-top-right.hc-joyn-menu-trigger {
        right: 16px !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;
    }
}

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

@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 {
    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 {
    color: var(--jms-accent) !important;
}

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

.ast-primary-header-bar .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 {
    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-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, 메뉴 간격 축소
   ======================================== */
@media (min-width: 922px) {
    .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;
    }
}

