@charset "UTF-8";

/* ==========================================================================
   전역 폰트 크기 및 색상 가독성 개선 (배너 영역 제외)
   ========================================================================== */
:root {
    --black: #0F172A;
    --gray-900: #1E293B;
    --gray-700: #334155;
    --gray-500: #64748B;
}

/* 큰 타이틀 기본 46px 적용 (PC) */
.heading-section,
.heading-hero,
h1.heading-section,
h2.heading-section,
.section-header h2,
.page-intro-heading,
.event-hero-title,
.event-step-title,
.event-benefits-title,
.participation-header .header-title {
    font-size: 46px !important;
    line-height: 1.25 !important;
}

/* 모바일 가장 큰 타이틀 텍스트 축소 (46px -> 36px) */
@media (max-width: 768px) {
    .heading-section,
    .heading-hero,
    h1.heading-section,
    h2.heading-section,
    .section-header h2,
    .page-intro-heading,
    .event-hero-title,
    .event-step-title,
    .event-benefits-title,
    .participation-header .header-title {
        font-size: 36px !important;
        line-height: 1.3 !important;
    }
}

@media (max-width: 480px) {
    .heading-section,
    .heading-hero,
    h1.heading-section,
    h2.heading-section,
    .section-header h2,
    .page-intro-heading,
    .event-hero-title,
    .event-step-title,
    .event-benefits-title,
    .participation-header .header-title {
        font-size: 32px !important;
        line-height: 1.3 !important;
    }
}

/* 중간 텍스트 (미래에너지관 등 카드 타이틀: 26px / 32px) */
.overview-card-title,
.program-card h4,
.card h4 {
    font-size: 26px !important;
}

.theme-card-title,
.content-page .theme-card-title,
h3.theme-card-title {
    font-size: 32px !important;
}

/* 모바일에서 미래에너지관 등 테마관 카드 타이틀 2px 더 작게 (32px -> 30px) */
@media (max-width: 768px) {
    .theme-card-title,
    .content-page .theme-card-title,
    h3.theme-card-title,
    .theme-program-card .theme-card-title {
        font-size: 30px !important;
        line-height: 1.35 !important;
    }
}

@media (max-width: 480px) {
    .theme-card-title,
    .content-page .theme-card-title,
    h3.theme-card-title,
    .theme-program-card .theme-card-title {
        font-size: 28px !important;
        line-height: 1.35 !important;
    }
}

/* 본문 및 텍스트 요소 색상 진하게 및 폰트 18px 상향 (서브배너, 메인배너 제외) */
body {
    font-size: 18px;
    color: #1E293B;
}

main:not(.hero-banner) p:not(.hero-banner *):not(.hero-slogan-title):not(.hero-slogan-location):not(.sub-visual-desc):not(.sub-visual-title):not(.hero-notice-text),
.content-page,
.content-page p,
.content-page .text-body,
.content-page .text-sub,
.content-page .page-intro-desc,
.content-page .page-intro-info-val,
.content-page .theme-detail-desc,
.content-page .theme-detail-list li,
.content-page .journey-bullet-list li,
.content-page .process-flow-desc,
.content-page .facility-item,
.content-page .directions-info-val,
.content-page .faq-answer,
.content-page .faq-answer-inner,
.content-page .notice-content,
.content-page .company-desc,
.content-page td,
.content-page li,
.facility-item,
.theme-card-desc,
.theme-detail-desc,
.theme-detail-list li,
.theme-meta-val,
.journey-bullet-list li,
.process-flow-desc,
.event-step-card-desc,
.event-hero-desc {
    font-size: 18px !important;
    color: #334155 !important;
    line-height: 1.7 !important;
}

/* ==========================================================================
   게시판 텍스트 전역 2px 상향 규칙 (공지사항, 참여기업, 온라인문의, FAQ 등)
   ========================================================================== */
/* 1. 게시판 본문 (18px -> 20px) */
.notice-content-area,
.notice-content-area p,
.inquiry-content-area,
.inquiry-content-area p,
.intro-text-block,
.intro-text-block p,
.notice-content,
.company-desc,
.faq-answer,
.faq-answer-inner,
.faq-answer-inner p {
    font-size: 20px !important;
    color: #334155 !important;
    line-height: 1.8 !important;
}

/* 2. 게시판 상세 제목 및 주요 헤드라인 (+2px) */
.notice-subject-title,
.inquiry-subject-title {
    font-size: 28px !important;
}

.hero-company-name {
    font-size: 36px !important;
}

.company-name {
    font-size: 22px !important;
}

.col-subhead {
    font-size: 22px !important;
}

.faq-question {
    font-size: 19px !important;
}

/* 3. 게시판 목록 제목 및 테이블 (+2px) */
.board-title-link,
.board-title-text {
    font-size: 18px !important;
}

.board-table th,
.board-table td,
.recruit-table th,
.recruit-table td,
.def-item,
.def-dt,
.def-dd {
    font-size: 17px !important;
}

/* 4. 폼 및 검색 인풋, 라벨 (+2px) */
.select-input,
.search-input,
.company-search-select,
.company-search-input,
.company-search-btn,
.form-input,
.form-select,
.form-textarea,
.form-label,
.inquiry-info-item strong {
    font-size: 16px !important;
}

/* 5. 버튼, 메타 및 첨부파일 (+2px) */
.file-name-line,
.notice-main-list-btn,
.btn-action-primary,
.btn-submit-inquiry,
.btn-inquiry-list,
.btn-list-back {
    font-size: 17px !important;
}

.notice-meta-info,
.inquiry-meta-info,
.location-info-row {
    font-size: 16px !important;
}

.file-size-badge,
.file-meta-line,
.pn-item,
.pn-badge,
.inquiry-info-item span,
.file-label-text,
.btn-company-detail {
    font-size: 15.5px !important;
}

/* 서브페이지 내 소제목/강조 타이틀 크기 상향 */
.content-page .process-title,
.content-page .journey-card-title {
    font-size: 24px !important;
}

/* 주최, 주관 글자 바탕색 / 후원 배지 스타일 */
.hero-organizer-badge {
    font-size: 14.5px !important;
    font-weight: 800 !important;
    color: #0369A1 !important;
    background-color: #E0F2FE !important;
    border: 1px solid #BAE6FD !important;
    padding: 6px 14px !important;
    border-radius: 6px !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
    display: inline-block !important;
}

@media (min-width: 993px) {
    .hero-organizer-group:not(.hero-sponsor-group) .hero-organizer-img {
        height: 46px !important;
        max-width: 220px !important;
    }

    .hero-organizer-group:not(.hero-sponsor-group) .hero-org-blue-text {
        font-size: 25px !important;
    }
}

.hero-sponsor-badge,
.hero-organizer-badge.hero-sponsor-badge {
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #475569 !important;
    background-color: #F1F5F9 !important;
    border: 1px solid #CBD5E1 !important;
    border-radius: 6px !important;
    padding: 4px 11px !important;
    display: inline-block !important;
}

/* 공통 이미지 기본 안전 규칙 */
img {
    max-width: 100%;
    height: auto;
}

/* 공간배치도 / 부스배치도 이미지 컨테이너 (테두리 및 배경 제거, 1440px 맞춤) */
.plan-image-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 32px;
}

.plan-image-box {
    width: 100%;
    max-width: 1440px;
    background: transparent;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
    box-sizing: border-box;
    margin: 0 auto;
}

.plan-image-link {
    display: block;
    width: 100%;
    cursor: zoom-in;
    overflow: hidden;
}

.plan-image-img {
    width: 100%;
    max-width: 1440px;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    display: block;
    border: none;
    box-shadow: none;
}

.plan-image-tip {
    font-size: 14px;
    color: #64748b;
    margin-top: 16px;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* 메인 배너 하단 단체등록 안내 텍스트 (순백색 고정, 굵기 600, 15.5px) */
.hero-notice-text,
p.hero-notice-text,
.hero-banner .hero-notice-text,
.hero-actions-wrap .hero-notice-text,
main .hero-notice-text {
    color: #FFFFFF !important;
    font-weight: 600 !important;
    font-size: 15.5px !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45) !important;
}

@media (max-width: 768px) {
    .hero-notice-text,
    p.hero-notice-text,
    .hero-banner .hero-notice-text,
    .hero-actions-wrap .hero-notice-text,
    main .hero-notice-text {
        color: #FFFFFF !important;
        font-weight: 600 !important;
        font-size: 14.5px !important;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45) !important;
    }
}
