/**
 * KAICE Home Page Styles
 * 메인 페이지 전용 스타일
 *
 * 컨테이너: kaice-page-container home
 * 섹션: page-section news, page-section programs, page-section experts 등
 *
 * @package KAICE
 * @since 1.0.0
 */

/* ===========================================
   홈 페이지 컨테이너
   =========================================== */

/* page-inner의 overflow 해제하여 box-shadow 잘림 방지 */
.kaice-page-container.home .page-inner {
    overflow: visible;
}

/* ===========================================
   공지사항 & 데일리뉴스 섹션
   =========================================== */

.kaice-page-container.home .page-section.news {
    padding: 30px 0;
}

.home-news-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.home-news-box {
    background: #fff;
    border-radius: var(--theme-card-radius);
    padding: 30px;
    border: 1px solid var(--theme-card-border);
    min-width: 0; /* 그리드 아이템 오버플로우 방지 */
}

.home-news-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.home-news-list li {
    padding: 12px 0;
    border-bottom: 1px solid var(--theme-card-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.home-news-list li:last-child {
    border-bottom: none;
}

.home-news-list a {
    flex: 1;
    min-width: 0; /* flex 아이템 오버플로우 방지 */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-right: 20px;
    color: var(--theme-text-color);
    font-size: var(--theme-font-size-body);
    transition: color 0.3s;
}

.home-news-list a:hover {
    color: var(--theme-main-color);
}

.home-news-date {
    font-size: var(--theme-font-size-medium);
    color: var(--theme-info-text);
    flex-shrink: 0;
}

/* ===========================================
   교육 프로그램 섹션
   =========================================== */

.kaice-page-container.home .page-section.programs {
    padding: 50px 0;
}

/* 홈 교육 프로그램 카테고리 네비게이션 - 중앙 정렬 */
.page-section.programs .category-nav {
    margin-bottom: 20px;
}

.page-section.programs .category-list {
    justify-content: center;
}

/* 카테고리 콘텐츠 영역 (설명 + 프로그램 카드) */
.page-section.programs .category-content-area {
    margin-bottom: 30px;
}

.page-section.programs .category-content {
    display: none;
    animation: fadeIn 0.3s ease;
}

.page-section.programs .category-content.active {
    display: block;
}

.page-section.programs .category-description {
    text-align: center;
    padding: 20px;
    background: var(--theme-info-bg);
    border-radius: var(--theme-card-radius);
    margin-bottom: 30px;
}

.page-section.programs .category-description p {
    font-size: var(--theme-font-size-body);
    color: var(--theme-text-color);
    margin: 0;
    line-height: 1.6;
}

.page-section.programs .category-description.admin-notice {
    background: #fff3cd;
    border: 1px solid #ffc107;
}

.page-section.programs .category-description.admin-notice a {
    color: var(--theme-main-color);
    text-decoration: underline;
}

.page-section.programs .category-programs {
    margin-top: 20px;
}

/* 숏코드 스타일 오버라이드 */
.page-section.programs .education-programs-shortcode {
    margin: 0;
}

.page-section.programs .education-programs-shortcode .education-programs-content {
    padding: 0;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===========================================
   전문가 소개 섹션
   =========================================== */

.kaice-page-container.home .page-section.experts {
    padding: 50px 0;
}

/* 전문가 그리드 - card-grid 클래스 상속 + 4열 고정 */
.page-section.experts .home-experts-grid {
    grid-template-columns: repeat(4, 1fr);
}

/* 전문가 카드 - 높이 맞춤 유지하되 내용을 아래 기준으로 정렬 */
.page-section.experts .archive.kaice-board-item.card {
    justify-content: flex-end;
}

/* ===========================================
   교육 사례 & 언론보도 섹션
   =========================================== */

.kaice-page-container.home .page-section.case-media {
    padding: 50px 0;
}

.home-case-media-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 40px;
}

/* 교육 사례 박스 - 그리드 아이템이 넘치지 않도록 */
.home-case-box,
.home-media-box {
    min-width: 0;
    overflow: visible;
}

/* 교육 사례 */
.home-case-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.home-case-card {
    background: #fff;
    border-radius: var(--theme-card-radius);
    overflow: visible;
    box-shadow: var(--theme-card-shadow);
    border: 1px solid var(--theme-card-border);
    display: block;
    color: var(--theme-text-color);
    transition: transform 0.3s;
}

.home-case-img {
    position: relative;
    height: 180px;
    overflow: visible;
}

.home-case-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-case-placeholder {
    width: 100%;
    height: 100%;
    background: var(--theme-item-bg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-case-placeholder i {
    font-size: 3rem;
    color: var(--theme-info-text);
}

.home-case-tag {
    position: absolute;
    top: 15px;
    left: 15px;
    background: var(--theme-main-color);
    color: #fff;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: var(--theme-font-size-caption);
}

.home-case-content {
    padding: 20px;
}

.home-case-content h3 {
    font-size: var(--theme-font-size-body);
    font-family: var(--theme-font-bold);
    margin-bottom: 10px;
    line-height: 1.4;
}

.home-case-content p {
    font-size: var(--theme-font-size-body);
    color: var(--theme-info-text);
    line-height: 1.6;
}

/* 언론보도 */
.home-media-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.home-media-list li {
    padding: 18px 0;
    border-bottom: 1px solid var(--theme-card-border);
}

.home-media-list li:last-child {
    border-bottom: none;
}

.home-media-source {
    display: inline-block;
    background: var(--theme-secondary-button-bg);
    color: #fff;
    padding: 3px 10px;
    border-radius: 3px;
    font-size: var(--theme-font-size-caption);
    margin-right: 10px;
}

.home-media-list a {
    display: block;
    margin-top: 10px;
    font-size: var(--theme-font-size-body);
    color: var(--theme-text-color);
    transition: color 0.3s;
}

.home-media-list a:hover {
    color: var(--theme-main-color);
}

.home-media-date {
    display: block;
    margin-top: 8px;
    font-size: var(--theme-font-size-caption);
    color: var(--theme-info-text);
}

/* ===========================================
   문의 섹션
   =========================================== */

.kaice-page-container.home .page-section.contact {
    padding: 50px 0;
}

.home-contact-content {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 60px;
    align-items: center;
}

.home-contact-info {
    color: #fff;
}

.home-contact-info h2 {
    font-size: var(--theme-font-size-heading);
    font-family: var(--theme-font-bold);
    margin-bottom: 15px;
}

.home-contact-info > p {
    opacity: 0.9;
    margin-bottom: 40px;
}

.home-contact-details {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.home-contact-item {
    display: flex;
    align-items: center;
    gap: 20px;
}

.home-contact-item i {
    font-size: 1.5rem;
    width: 50px;
    height: 50px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-contact-item span {
    font-size: var(--theme-font-size-small);
    opacity: 0.8;
}

.home-contact-item strong {
    display: block;
    font-size: var(--theme-font-size-subtitle);
}

.home-contact-item a {
    color: inherit;
}

.home-contact-item a:hover {
    text-decoration: underline;
}

/* 문의 폼 */
.home-contact-form-wrapper {
    background: #fff;
    padding: 40px;
    border-radius: var(--theme-card-radius);
}

.home-contact-form .kaice-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 15px;
}

.home-contact-form .kaice-form-group {
    margin-bottom: 15px;
}

.home-contact-form input,
.home-contact-form select,
.home-contact-form textarea {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid var(--theme-input-border);
    border-radius: var(--theme-input-radius);
    font-size: var(--theme-font-size-input);
    font-family: inherit;
}

.home-contact-form input:focus,
.home-contact-form select:focus,
.home-contact-form textarea:focus {
    outline: none;
    border-color: var(--theme-main-color);
}

.home-contact-form textarea {
    resize: none;
}

.home-contact-form .kaice-form-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
}

.home-contact-form .kaice-form-checkbox input {
    width: auto;
}

.home-contact-form .kaice-form-checkbox label {
    font-size: var(--theme-font-size-small);
    color: var(--theme-info-text);
}

.home-contact-form .kaice-form-checkbox a {
    color: var(--theme-main-color);
}

/* 문의 성공 메시지 */
.home-contact-success {
    text-align: center;
    padding: 40px 20px;
}

.home-contact-success i {
    font-size: 3rem;
    color: var(--theme-main-color);
    margin-bottom: 20px;
}

.home-contact-success h3 {
    font-size: var(--theme-font-size-title);
    margin-bottom: 10px;
}

.home-contact-success p {
    color: var(--theme-info-text);
}

/* ===========================================
   배너 섹션
   =========================================== */

.kaice-page-container.home .page-section.banner {
    padding: 0;
}

.home-banner-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.home-banner-item {
    border-radius: var(--theme-card-radius);
    overflow: visible;
    transition: transform 0.3s;
}

.home-banner-item img {
    width: 100%;
    height: auto;
    display: block;
}

.home-banner-item.placeholder {
    height: 100px;
    background: var(--theme-item-bg);
    border: 2px dashed var(--theme-item-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-banner-item.placeholder span {
    color: var(--theme-info-text);
    font-size: var(--theme-font-size-small);
}

/* ===========================================
   협력 기관 섹션
   =========================================== */

.kaice-page-container.home .page-section.partners {
    padding: 50px 0 90px 0;
}

.kaice-page-container.home .page-section.partners .page-inner {
    overflow: visible;
}

.page-section.partners h2 {
    text-align: center;
    font-size: var(--theme-font-size-title);
    font-family: var(--theme-font-bold);
    margin-bottom: 20px;
}

/* 파트너 슬라이더 nav 버튼 공간 확보 */
.page-section.partners .kaice-partner-wrapper {
    padding: 0 40px;
}

.page-section.partners .kaice-partner-container .partner-nav-prev {
    left: -40px;
}

.page-section.partners .kaice-partner-container .partner-nav-next {
    right: -40px;
}

.home-partners-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.home-partner-logo {
    opacity: 0.6;
    transition: opacity 0.3s;
}

.home-partner-logo:hover {
    opacity: 1;
}

.home-partner-logo img {
    height: 50px;
    width: auto;
}

.home-partner-logo.placeholder {
    width: 150px;
    height: 60px;
    background: var(--theme-item-bg);
    border: 2px dashed var(--theme-item-border);
    border-radius: var(--theme-card-radius);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-partner-logo.placeholder span {
    color: var(--theme-info-text);
    font-size: var(--theme-font-size-caption);
}

/* ===========================================
   카드뉴스 섹션
   =========================================== */

.kaice-page-container.home .page-section.cardnews {
    padding: 50px 0;
}

/* ===========================================
   반응형 디자인
   =========================================== */

/* 카드뉴스: 기본 4열 */
.page-section.cardnews .home-cardnews-grid {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1400px) {
    /* 교육 프로그램: 홈에서는 4열 유지 (archive-card-styles.css의 3열 오버라이드) */
    .page-section.programs .card-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 1260px) {
    /* 4열 -> 3열로 변경, 3개만 표시 */
    .page-section.experts .home-experts-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .page-section.experts .home-experts-grid > *:nth-child(n+4) {
        display: none;
    }

    /* 교육 프로그램: 3열로 변경, 3개만 표시 */
    .page-section.programs .card-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .page-section.programs .card-grid > *:nth-child(n+4) {
        display: none;
    }

    /* 카드뉴스: 3열로 변경, 3개만 표시 */
    .page-section.cardnews .home-cardnews-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .page-section.cardnews .home-cardnews-grid > *:nth-child(n+4) {
        display: none;
    }
}

@media (max-width: 1024px) {
    .home-news-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* 3열 -> 2열로 변경, 4개 다시 표시 (카드뉴스, 교육 프로그램, 전문가 통일) */
    .page-section.cardnews .home-cardnews-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .page-section.cardnews .home-cardnews-grid > *:nth-child(n+4) {
        display: block;
    }

    .page-section.programs .card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .page-section.programs .card-grid > *:nth-child(n+4) {
        display: block;
    }

    .page-section.experts .home-experts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .page-section.experts .home-experts-grid > *:nth-child(n+4) {
        display: block;
    }

    .home-case-media-grid {
        grid-template-columns: 1fr;
    }

    .home-contact-content {
        grid-template-columns: 1fr;
    }

    /* 파트너 nav 버튼 위치 조정 */
    .page-section.partners .kaice-partner-wrapper {
        padding: 0 30px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-prev {
        left: -30px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-next {
        right: -30px;
    }
}

@media (max-width: 768px) {
    .home-news-grid,
    .home-case-cards,
    .home-banner-grid {
        grid-template-columns: 1fr;
    }

    .page-section.experts .home-experts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-contact-form .kaice-form-row {
        grid-template-columns: 1fr;
    }

    .home-contact-form-wrapper {
        padding: 25px;
    }

    .home-news-box {
        padding: 20px;
    }

    /* 파트너 nav 버튼 위치 조정 */
    .page-section.partners .kaice-partner-wrapper {
        padding: 0 25px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-prev {
        left: -25px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-next {
        right: -25px;
    }
}

@media (max-width: 576px) {
    .page-section.experts .home-experts-grid {
        grid-template-columns: 1fr;
    }

    /* 교육 프로그램: 1열로 변경 */
    .page-section.programs .card-grid {
        grid-template-columns: 1fr;
    }

    /* 카드뉴스: 1열로 변경 */
    .page-section.cardnews .home-cardnews-grid {
        grid-template-columns: 1fr;
    }

    /* 파트너 nav 버튼 위치 조정 */
    .page-section.partners .kaice-partner-wrapper {
        padding: 0 20px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-prev {
        left: -20px;
    }

    .page-section.partners .kaice-partner-container .partner-nav-next {
        right: -20px;
    }
}
