/* 템플릿 동적 CSS - layout.php에서 분리 */
/* CSS 변수는 layout.php의 인라인 스타일에서 동적으로 생성됩니다 */

/* 사이트 폭 적용 */
.header-container,
.layout-content .container,
.page-footer .container,
.site-main,
.site-footer,
.top-bar-container,
.footer-container,
.main-container {
    max-width: var(--site-width) !important;
    margin: 0 auto !important;
}

/* 폰트 적용 - 텍스트 요소 중심으로 적용 (아이콘 폰트 예외) */
html, body {
    font-family: var(--font-family) !important;
    font-size: var(--pc-font-size) !important;
    line-height: var(--pc-line-height, 1.5) !important;
}

input, button, select, textarea {
    font-family: var(--font-family) !important;
}

/* 본문/컨텐츠 기본 타이포 (PC 변수 사용) */
.post-content,
.board-view .content,
.board-view-content,
.page-content,
.content-area,
.article-content,
.editor-content,
.entry-content {
    font-size: var(--font-size-base) !important;
    line-height: var(--line-height-base) !important;
}

/* 한국어/혼합 텍스트 줄바꿈 개선: 단어 단위 제한 없이 줄바꿈 허용 */
.post-content,
.board-view .content,
.board-view-content,
.page-content,
.content-area,
.article-content,
.editor-content,
.entry-content {
    overflow-wrap: anywhere;
    word-break: break-word; /* 레거시 브라우저 대응 */
    word-wrap: break-word;  /* 구형 속성 호환 */
    hyphens: auto;
}

/* 우측 가장자리 정렬(양쪽 정렬) - 본문 단락 대상 */
.post-content p,
.board-view .content p,
.board-view-content p,
.page-content p,
.content-area p,
.article-content p,
.editor-content p,
.entry-content p {
    text-align: justify;
    text-justify: inter-character !important; /* CJK에서 글자 단위 균등 분배 */
}

/* Font Awesome 아이콘 폰트 보존 */
.fa, .fas, .far, .fal, .fab, .fa-solid, .fa-regular, .fa-brands {
    font-family: 'Font Awesome 6 Free', 'Font Awesome 6 Pro', 'Font Awesome 5 Free', 'Font Awesome 5 Pro', FontAwesome !important;
}

/* 사이트 폭 강제 적용 */
.site-header {
    width: 100% !important;
}

.header-container {
    max-width: var(--site-width) !important;
    margin: 0 auto !important;
    width: 100% !important;
}

.site-main {
    max-width: var(--site-width) !important;
    margin: 0 auto !important;
    width: 100% !important;
}

.site-footer {
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    width: 100vw !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin-top: 45px !important;
}

/* 전체 레이아웃 컨테이너 */
.main-container {
    max-width: var(--site-width) !important;
    margin: 0 auto !important;
    width: 100% !important;
}

/* 전체 페이지는 100% 폭 유지, 내부 컨테이너만 사이트 폭 적용 */

/* 푸터 내부 컨테이너는 사이트 폭에 맞춰 중앙 정렬 */
.site-footer .footer-container {
    max-width: var(--site-width) !important;
    margin: 0 auto !important;
    padding: 0px !important;
    width: 100% !important;
}

/* 홈페이지 콘텐츠 스타일 */
.home-content {
    min-height: 400px;
}

/* 메인슬라이드 100% 폭 스타일 */
.home-content {
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
    max-width: none;
}

.main-slide-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.main-slide-container.full-width {
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
}

.main-slide-container.boxed {
    max-width: var(--site-width);
    margin: 0 auto;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    html, body {
        font-size: var(--mobile-font-size) !important;
        line-height: var(--mobile-line-height, 1.5) !important;
    }
    input, button, select, textarea {
        font-family: var(--font-family) !important;
    }
    /* 모바일에서도 단락 균등정렬 유지 */
    .post-content p,
    .board-view .content p,
    .board-view-content p,
    .page-content p,
    .content-area p,
    .article-content p,
    .editor-content p,
    .entry-content p {
        text-align: justify;
        text-justify: inter-character;
    }
}

/* 전역 강제 적용: 개별 요소에 지정된 폰트패밀리 하드코딩을 무력화 (FA/코드계열 제외) */
body, 
body *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab):not(.fa-solid):not(.fa-regular):not(.fa-brands):not(pre):not(code):not(kbd):not(samp) {
    font-family: var(--font-family) !important;
}