@charset "utf-8";

/* ===========================================
   Main V7 - 한국경영학회 v5 퍼블리싱 기반 디자인
   2026-03-13: 신규 생성
   - GNB/Footer 제외 (기존 사이트 시스템 사용)
   - 히어로: 정적 디자인 (DB 연결 없음)
   - 게시판: 기존 API 연결
   =========================================== */

/* =========================================
   CSS 변수 (v7 전용)
   ========================================= */
body.main-v7 {
    --v7-mainColor: #00518c;
    --v7-headerH: 90px;
    --v7-utilH: 40px;
}

/* 2026-03-15: 배경색은 메인 페이지 전용 — 서브페이지(.contents.subpage)가 없을 때만 적용 */
body.main-v7:not(:has(.contents.subpage)) {
    background: #f6f6f6;
}

/* =========================================
   #wrap padding 오버라이드 (헤더 높이 보정)
   기존: 190px (info_head 32 + head 100 + nav 58)
   v7:  130px (util 40 + header 90)
   ========================================= */
/* 2026-03-15: 메인 페이지 전용 — 서브페이지(.contents.subpage가 있는 경우)에는 적용하지 않음 */
@media all and (min-width: 1025px) {
    body.main-v7 #wrap {
        padding-top: 130px;
    }
    /* 서브페이지는 layout.css의 --header-height 사용 */
    body.main-v7 #wrap:has(.contents.subpage) {
        padding-top: var(--header-height, 130px);
    }
}

/* =========================================
   헤더 오버라이드 - 퍼블리싱 스타일
   ========================================= */

/* 인증 뱃지 숨김 */
body.main-v7 .info_head {
    display: none !important;
}

/* 2026-03-15: 초기 로드 시 깜빡임 방지 — 헤더+콘텐츠 전체를 숨겼다가 nav-loading 해제 시 한번에 표시 */
body.main-v7.nav-loading #wrap {
    opacity: 0;
}
body.main-v7.nav-loading #header {
    transition: none !important;
}

/* 헤더 컨테이너 */
body.main-v7 #header {
    background: #fff;
    box-shadow: 0 5px 14px -8px rgba(0, 0, 0, 0.1);
    overflow: visible; /* 2026-03-13: hidden→visible (유틸리티바 클리핑 방지) */
    transition: transform 0.5s;
}

/* 2026-03-13: 스크롤 시 헤더 숨김 (퍼블리싱 동작) */
body.main-v7 #header.v7-scroll-hide {
    transform: translateY(-100%);
}

/* ── 유틸리티 바: 검정 배경 전체 너비 ── */
/* 2026-03-13: layout.css .header-util(flex-direction:column, height:100%) 완전 오버라이드 */
body.main-v7 #header .header-util {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: var(--v7-utilH) !important;
    background: #000 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 0 max(20px, calc((100% - 1360px) / 2)) !important;
    gap: 0 !important;
    z-index: 10;
}

/* 유틸리티 상단 토글 메뉴 숨김 (언어/지원/화면크기) */
body.main-v7 #header .header-util .top {
    display: none !important;
}

/* .bottom 컨테이너: flex row로 정렬 */
body.main-v7 #header .header-util .bottom {
    display: flex;
    align-items: center;
    height: 100%;
}

/* tnb 링크 스타일 */
body.main-v7 #header .tnb {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    height: 100%;
    gap: 14px;
}

/* 2026-03-13: li를 flex 아이템으로 정렬 (list-item 기본값 해제) */
body.main-v7 #header .tnb li {
    display: flex;
    align-items: center;
    height: 100%;
    list-style: none;
}

body.main-v7 #header .tnb a {
    color: #fff !important;
    font-size: 15px;
    font-weight: 500;
    line-height: var(--v7-utilH);
    white-space: nowrap;
}

/* 아이콘 숨김 (퍼블리싱은 텍스트만) */
body.main-v7 #header .tnb a img {
    display: none;
}

/* 구분선: li 내부 flex 정렬 유지 */
body.main-v7 #header .tnb li:not(:last-child)::after {
    content: "";
    width: 1px;
    height: 12px;
    background: rgba(255, 255, 255, 0.4);
    margin-left: 14px;
    flex-shrink: 0;
}

/* ── .head 영역: 로고 ── */
/* 2026-03-15: 좌우 패딩을 .inner로 이동 — .head에 남기면 max-width 미만 화면에서 이중 패딩 */
body.main-v7 .head {
    padding: var(--v7-utilH) 0 0 0 !important;
}

body.main-v7 #header .head .inner {
    position: static !important; /* 2026-03-13: relative 해제 → .header-util이 #header 기준으로 top:0 위치 */
    height: var(--v7-headerH);
    display: flex;
    align-items: center;
    padding: 0 24px; /* 2026-03-15: 로고 좌우 24px 여백 — 모든 화면 크기에서 일관 */
}

/* 2026-03-13: layout.css #header .head .logo(position:absolute;top:33px) 오버라이드 */
body.main-v7 #header .head .logo {
    position: static !important;
    top: auto !important;
    left: auto !important;
    z-index: 5;
}

body.main-v7 #header .head .logo img {
    height: 54px !important; /* 2026-03-13: site.js 인라인 스타일(36px) 오버라이드 */
    width: auto !important;
}

/* ── GNB nav: 로고와 같은 행, 우측 정렬 ── */
body.main-v7 #desktopNav {
    border: none;
    position: absolute;
    top: var(--v7-utilH);
    left: 0;
    right: 0;
    height: var(--v7-headerH);
    z-index: 3;
    pointer-events: none;
    padding: 0 24px; /* 2026-03-15: .head와 동일한 좌우 여백 */
    box-sizing: border-box;
}

body.main-v7 #desktopNav .inner {
    position: relative; /* 2026-03-13: mega-dropdown 포지셔닝 기준점 */
    height: var(--v7-headerH);
    display: flex;
    align-items: flex-end; /* 2026-03-15: GNB 하단을 로고 하단에 맞춤 */
    justify-content: flex-end;
    pointer-events: auto;
}

/* 2026-03-13: GNB 메뉴 퍼블리싱 스타일 (#desktopNav ID로 특이성 확보) */
body.main-v7 #desktopNav .gnb {
    display: flex !important;
    justify-content: flex-end !important;
    pointer-events: auto;
}

body.main-v7 #desktopNav .gnb > li {
    flex: 0 0 auto !important;
    max-width: none !important;
    position: relative;
}

body.main-v7 #desktopNav .gnb > li > a {
    min-width: max-content !important;
    height: auto !important; /* 2026-03-15: flex-end 정렬을 위해 auto */
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important; /* 2026-03-15: 텍스트 하단 정렬 */
    font-size: 17px !important;
    font-weight: 600 !important;
    color: #111 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.3 !important;
    text-align: center !important;
    white-space: nowrap !important;
    padding: 0 24px 18px !important; /* 2026-03-15: 좌우 24px, 하단 18px = 로고 하단과 동일 위치 */
    transition: color 0.3s !important;
    position: relative;
}

body.main-v7 #desktopNav .gnb > li > a::after {
    content: "" !important;
    width: 100% !important;
    height: 2px !important;
    background: var(--v7-mainColor) !important;
    position: absolute !important;
    bottom: -1px !important;
    left: 0 !important;
    transform: scaleX(0) !important;
    transform-origin: left !important; /* 2026-03-13: 좌→우 방향 모션 */
    transition: transform 0.25s ease-out !important;
}

/* GNB 호버 시 메뉴 색상 + 밑줄 */
body.main-v7 #desktopNav .gnb > li:hover > a,
body.main-v7 #desktopNav .gnb > li.active > a {
    color: var(--v7-mainColor) !important;
}

body.main-v7 #desktopNav .gnb > li:hover > a::after,
body.main-v7 #desktopNav .gnb > li.active > a::after {
    transform: scaleX(1) !important;
}

/* GNB 드롭다운: 기존 사이트 동작 유지, 위치만 보정 */
body.main-v7 .gnb > li > ul {
    top: 100%;
}

/* 2026-03-13: mega-dropdown top만 보정 (기존 left:50%+margin-left:-50vw 패턴 유지) */
body.main-v7 #desktopNav .mega-dropdown {
    top: var(--v7-headerH) !important; /* layout.css의 56px → 90px (v7 헤더 높이) */
}

/* navOn 상태 (드롭다운 열림) 높이 보정 */
body.main-v7.navOn #header {
    height: auto;
    min-height: calc(var(--v7-utilH) + var(--v7-headerH) + 340px);
    overflow: visible;
}

/* GNB 구분선 숨김 (퍼블리싱은 구분선 없음) */
body.main-v7 #desktopNav .gnb > li ~ li:before {
    display: none !important;
}

/* 모바일 메뉴 버튼 숨김 (PC에서) */
body.main-v7 .pc_none {
    display: none;
}

/* ── 헤더 반응형 ── */

/* 2026-03-16: 1550px 이하 — 로고 축소, GNB 좌우 여백만 축소 (padding-bottom 18px 고정) */
@media screen and (max-width: 1550px) {
    body.main-v7 #desktopNav .gnb > li > a {
        padding: 0 18px 18px !important;
    }
    body.main-v7 .head .logo img {
        height: 50px;
    }
}

/* 2026-03-16: 1200px 이하 — 로고 축소, GNB 좌우 여백 추가 축소 (padding-bottom 18px 고정) */
@media screen and (max-width: 1200px) {
    body.main-v7 #desktopNav .gnb > li > a {
        padding: 0 14px 18px !important;
    }
    body.main-v7 .head .logo img {
        height: 44px;
    }
}

/* 태블릿 1024px 이하 - 모바일 전환 */
/* 2026-03-15: 모바일 1024px 이하 - 기존 모바일 메뉴 시스템으로 전환 */
@media screen and (max-width: 1024px) {
    body.main-v7 {
        --v7-headerH: 60px;
        --v7-utilH: 0px;
    }

    body.main-v7 #wrap {
        padding-top: 60px;
    }

    /* 유틸리티 바 숨김 (layout.css 모바일과 동일) */
    body.main-v7 #header .header-util {
        display: none !important;
    }

    /* 헤더: layout.css 모바일 패턴 따름 */
    body.main-v7 #header {
        height: 60px;
    }

    /* 2026-03-15: 모바일 .head 좌우 패딩 — 로고 left는 이 패딩 기준 15px */
    body.main-v7 #header .head {
        padding: 0 15px !important;
    }

    body.main-v7 #header .head .inner {
        position: relative !important;
        height: 60px;
        padding: 0; /* 2026-03-15: 모바일에서는 .head의 15px 패딩이 담당 */
    }

    /* 2026-03-15: 로고 — layout.css 모바일 스타일에 위임, v7 데스크탑 오버라이드만 해제 */
    /* 2026-03-15: 로고 left:0 — .head의 padding:15px이 좌측 여백 담당 */
    body.main-v7 #header .head .logo {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 200px !important;
    }

    body.main-v7 #header .head .logo img {
        height: 36px !important;
        width: auto !important;
    }

    /* 데스크탑 nav 숨김 */
    body.main-v7 #desktopNav {
        display: none;
    }

    /* 모바일 메뉴 버튼 (햄버거) 표시 */
    /* 2026-03-15: position:static — .mnu가 .head .inner 기준 absolute가 되도록 */
    body.main-v7 .pc_none {
        display: block;
        height: 60px;
        position: static;
    }

    /* 모바일 메뉴 버튼 위치 */
    body.main-v7 #header .mnu {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 50px;
        height: 50px;
        margin: 0;
        padding: 0;
        background: none;
        border: none;
        font-size: var(--font-h1);
        color: #2c313e;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* 모바일 전체메뉴(#nav): layout.css가 처리하므로 v7 간섭 최소화 */
    body.main-v7 #nav {
        top: 60px;
    }

    /* 2026-03-15: 모바일 메뉴 좌우 여백을 헤더(로고 15px / 햄버거 15px)에 맞춤 */
    body.main-v7 #nav .gnb > li > a {
        padding-left: 15px;
        padding-right: 15px;
    }
    /* 2026-03-16: 화살표 아이콘 — PNG 스프라이트 → 인라인 SVG chevron (크기 축소) */
    body.main-v7 #nav .gnb > li > a:before {
        right: 27px; /* 2026-03-16: 15px + 12px 추가 여백 — 햄버거 버튼과 우측 정렬 */
        width: 16px;
        height: 16px;
        background: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
    }
    body.main-v7 #nav .gnb > li > ul > li > a {
        padding-left: 20px;
        padding-right: 15px;
    }
    body.main-v7 #nav .gnb > li > ul > li > ul > li > a {
        padding-left: 25px;
        padding-right: 15px;
    }
}

/* 모바일 768px 이하 - 로고는 1024px에서 이미 36px 처리됨 */

/* =========================================
   공통: v7-inner 컨테이너
   ========================================= */
.v7-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
}

/* =========================================
   Section 1: Visual (히어로) - 좌우 50:50 분할
   ========================================= */
.v7-visual {
    display: flex;
    justify-content: space-between;
    width: 100%;
    height: 580px;
    position: relative;
    z-index: 0;
}

.v7-visual .vis_left,
.v7-visual .vis_right {
    flex: 0 0 50%;
    width: 50%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.v7-visual .vis_left {
    background: url("/images/main-v7/vis_left_bg.png") no-repeat center center;
    background-size: cover;
    position: relative;
}

.v7-visual .vis_right {
    background: url("/images/main-v7/vis_right_bg.png") no-repeat center center;
    background-size: cover;
    position: relative;
}

.v7-visual .vis_inner {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    bottom: 80px;
}

.v7-visual .vis_left .vis_inner {
    padding: 40px 40px 40px max(20px, calc(50vw - 680px));
}

.v7-visual .vis_right .vis_inner {
    padding: 40px max(20px, calc(50vw - 680px)) 40px 40px;
}

/* vis_left 텍스트 */
.v7-visual .vis_top {
    display: flex;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 24px;
}

/* 2026-03-13: base.css h2 !important 오버라이드 */
.v7-visual .vis_kasba {
    color: #222;
    font-family: Roboto, sans-serif;
    font-size: 120px !important;
    font-weight: 400 !important;
    line-height: 80% !important;
    letter-spacing: -2.4px !important;
}

.v7-visual .vis_tagline {
    color: #555;
    font-family: "Pretendard Variable", sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 1px;
    margin-bottom: 6px;
}

.v7-visual .vis_orgname {
    color: #222;
    font-family: "Pretendard Variable", sans-serif;
    font-size: 40px !important;
    font-weight: 700 !important;
    line-height: 110% !important;
}

/* 2026-03-16: .mob-br — 데스크탑에서는 줄바꿈 숨김, 모바일에서만 표시 */
.v7-visual .mob-br {
    display: none;
}

.v7-visual .vis_en {
    color: #666;
    font-family: "Roboto", sans-serif;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 100% !important;
    letter-spacing: 1.08px !important;
}

/* vis_right 텍스트 (h2 → base.css !important 오버라이드) */
.v7-visual .vis_vision_title {
    color: var(--v7-mainColor);
    font-family: "Roboto", sans-serif;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 100% !important;
    letter-spacing: 1.44px !important;
    margin-bottom: 20px;
}

.v7-visual .vis_vision_body p {
    color: #222;
    font-family: "Pretendard Variable", sans-serif;
    font-size: 40px !important;
    font-weight: 300 !important;
    line-height: 135% !important;
    letter-spacing: -0.8px !important;
}

.v7-visual .vis_emphasis_inline {
    color: #222;
    font-family: "Pretendard Variable", sans-serif;
    font-size: 40px !important;
    font-weight: 700 !important;
    line-height: 135% !important;
    letter-spacing: -0.8px !important;
}

.v7-visual .vis_sub_text {
    color: #444;
    font-family: "Pretendard Variable", sans-serif;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 100% !important;
    letter-spacing: -0.44px !important;
    margin-top: 10px;
}

/* =========================================
   Section 2: Board Section (공지사항 + 회원)
   ========================================= */
.v7-board-section {
    width: 100%;
    position: relative;
    margin-top: -150px;
    z-index: 10;
}

/* 2026-03-13: 공지사항+회원 영역 정확한 50:50 분할 */
.v7-board-section > .v7-inner {
    display: flex;
}

.v7-board-section .v7-notice,
.v7-board-section .v7-member {
    flex: 0 0 50%;
    width: 50%;
    max-width: 50%;
    min-width: 0;
    box-sizing: border-box;
}

/* 공지사항 영역 */
.v7-notice {
    width: 100%;
    height: 260px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 34px;
}

.v7-notice .notice_inner {
    width: 100%;
    padding: 0 30px;
}

.v7-notice .notice__header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 30px;
}

.v7-notice .notice__title {
    font-size: 24px !important;
    font-weight: 700 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.v7-notice .notice__title .dot {
    width: 6px;
    height: 6px;
    background: #1e3f8a;
    border-radius: 50%;
    display: inline-block;
}

/* 탭 버튼 */
.v7-notice .notice__tabs {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 20px;
}

.v7-notice .notice__tabs .tab {
    font-size: 16px;
    color: #777;
    cursor: pointer;
    font-weight: 600;
    line-height: 1.8;
    border: 0;
    background: none;
    padding: 0;
    transition: color 0.3s;
}

.v7-notice .notice__tabs .tab.active {
    color: #1e3f8a;
    border-bottom: 1px solid #1e3f8a;
    font-weight: 800;
}

/* 더보기 버튼 */
.v7-notice .notice__more {
    cursor: pointer;
    background: none;
    color: #333;
    border: 0;
    padding: 0;
    flex-shrink: 0;
}

.v7-notice .notice__more img {
    width: 24px;
    height: 24px;
}

/* 탭 리스트 */
.v7-notice .notice__list {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    align-content: space-between;
    gap: 10px;
    list-style: none;
    padding: 0;
}

.v7-notice .notice__list li a {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-decoration: none;
}

.v7-notice .notice__list .badge {
    border: 1px solid #06367d;
    border-radius: 20px;
    padding: 3px 8px;
    color: #06367d;
    font-size: 15px;
    font-weight: 700;
    line-height: 100%;
    margin-right: 10px;
    flex-shrink: 0;
}

.v7-notice .notice__list .title {
    flex: 1;
    color: #222;
    font-size: 17px;
    font-weight: 600;
    line-height: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.v7-notice .notice__list .date {
    color: #777;
    font-weight: 500;
    font-size: 16px;
    flex-shrink: 0;
    margin-left: 16px;
}

/* 탭 컨텐츠 */
.v7-notice .notice__content {
    display: none;
}

.v7-notice .notice__content.active {
    display: block;
}

/* 로딩/빈 상태 */
.v7-notice .notice__list .board-state {
    color: #999;
    font-size: 15px;
    padding: 20px 0;
    text-align: center;
}

/* 회원 영역 - 내부도 50:50 고정 */
.v7-board-section .v7-member {
    display: flex;
    align-items: stretch;
    position: relative;
}

.v7-member .member__menu,
.v7-member .member__join {
    flex: 0 0 50%;
    width: 50%;
    min-width: 0;
    height: 260px;
    box-sizing: border-box;
}

/* 회원 퀵 메뉴 */
.v7-member .member__menu_inner {
    background: url("/images/main-v7/login_bg.svg") no-repeat center center;
    background-size: cover;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 30px;
}

.v7-member .quick_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    font-size: 17px;
    height: 50px;
    margin-bottom: 6px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: transparent;
    transition: all 0.35s ease;
    text-decoration: none;
}

.v7-member .quick_btn:last-child {
    margin-bottom: 0;
}

.v7-member .quick_btn:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* 회원가입 배너 */
.v7-member .member__join_inner {
    background: url("/images/main-v7/join_bg.svg") no-repeat center center;
    background-size: cover;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
    padding: 0 30px;
}

.v7-member .member__join h3 {
    color: #fff;
    font-size: 26px !important;
    font-weight: 600 !important;
    line-height: 100% !important;
    margin-bottom: 20px;
}

.v7-member .member__join p {
    color: #fff;
    font-size: 17px;
    font-weight: 400;
    line-height: 160%;
    padding-bottom: 40px;
}

/* 2026-03-15: 가입 안내 버튼 — 텍스트 좌측, +아이콘 우측 (좌우 24px 여백) */
.v7-member .join__btn {
    width: 100%;
    font-size: 17px;
    height: 50px;
    padding: 0 24px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: transparent;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.35s ease;
    text-decoration: none;
    box-sizing: border-box;
}

.v7-member .join__btn span {
    display: inline-flex;
    align-items: center;
    line-height: 0;
}

.v7-member .join__btn span img {
    width: 16px;
    height: 16px;
    vertical-align: middle;
}

.v7-member .join__btn:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* =========================================
   Section 3: Banner Section (학술대회 + 학술지)
   ========================================= */
/* 2026-03-15: height: auto — 책 이미지 높이에 맞춤 */
.v7-banner-section {
    width: 100%;
    margin: 40px 0;
}

/* 2026-03-13: 학술대회+발간물 50:50 고정 분할 */
.v7-banner-section > .v7-inner {
    display: flex;
    align-items: stretch;
    gap: 20px;
    width: 100%;
}

.v7-banner-section .conference-banner,
.v7-banner-section .journal-card {
    flex: 0 0 calc(50% - 10px);
    width: calc(50% - 10px);
    max-width: calc(50% - 10px);
    min-width: 0;
    box-sizing: border-box;
}

/* 2026-03-15: 학술대회 배너 — height 제거, align-items:stretch로 journal-card와 동일 높이 */
.v7-banner-section .conference-banner {
    background: url("/images/main-v7/banner_bg.png") no-repeat center center;
    background-size: cover;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    transition: all 0.35s ease;
    position: relative;
    overflow: hidden;
}

.v7-banner-section .conference-banner:hover {
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

/* 2026-03-13: 학술대회 링크 스타일 */
.v7-banner-section .conference-link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

/* 2026-03-15: 학술대회/발간물 Swiper — 부모 배너 전체 채움 (pagination 위치 통일) */
.v7-banner-section .v7-conferenceSwiper,
.v7-banner-section .v7-publicationSwiper {
    width: 100%;
    height: 100%;
    align-self: stretch;
}

.v7-banner-section .v7-conferenceSwiper .swiper-slide {
    display: flex;
    align-items: center;
    height: 100%;
}

.v7-banner-section .v7-conferenceSwiper .swiper-slide .conference-link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
}

.v7-banner-section .v7-publicationSwiper .swiper-slide {
    height: auto;
}

/* 2026-03-15: Swiper 페이지네이션 — 좌우 카드 동일 위치 (우측 하단) */
.v7-banner-section .v7-conf-pagination,
.v7-banner-section .v7-pub-pagination {
    bottom: 12px !important;
    text-align: right;
    padding-right: 16px;
}

.v7-banner-section .v7-conf-pagination .swiper-pagination-bullet,
.v7-banner-section .v7-pub-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    opacity: 1;
    margin: 0 3px !important;
}

/* 학술대회: 흰색 계열 (배경이 어두움) */
.v7-banner-section .v7-conf-pagination .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.4);
}
.v7-banner-section .v7-conf-pagination .swiper-pagination-bullet-active {
    background: #fff;
}

/* 발간물: 진한 계열 (배경이 밝음) */
.v7-banner-section .v7-pub-pagination .swiper-pagination-bullet {
    background: #ccc;
}
.v7-banner-section .v7-pub-pagination .swiper-pagination-bullet-active {
    background: #06367d;
}

.v7-banner-section .banner-text {
    margin-left: 40px;
}

.v7-banner-section .banner-text h2 {
    color: #fff;
    font-size: 24px !important;
    font-weight: 600 !important;
    line-height: 100% !important;
    letter-spacing: normal !important;
    margin-bottom: 24px;
}

.v7-banner-section .banner-text ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.v7-banner-section .banner-text ul li {
    color: #fff;
    font-size: 17px;
    font-weight: 400;
    line-height: 150%;
}

/* 2026-03-15: 라벨(일시/장소/주최) 앞 세로 바 SVG 아이콘 */
.v7-banner-section .banner-text ul li b::before {
    content: "";
    display: inline-block;
    width: 2px;
    height: 14px;
    background: #fff;
    vertical-align: middle;
    margin-right: 10px;
    border-radius: 1px;
}

.v7-banner-section .banner-text ul li b {
    padding-right: 16px;
    font-weight: 600;
}

/* 발간물 카드 */
/* 2026-03-15: journal-card — position:relative 추가 (Swiper pagination 위치 기준) */
.v7-banner-section .journal-card {
    border: 1px solid #e8e8e8;
    background: #fff;
    position: relative;
    overflow: hidden;
}

/* 2026-03-15: 발간물 — 2단 구조 (좌: 이미지, 우: 타이틀+서브타이틀+버튼) */
/* 2026-03-15: align-items: stretch → content가 thumb 높이만큼 확장, 버튼 하단 정렬 가능 */
.v7-banner-section .journal-inner {
    width: 100%;
    display: flex;
    align-items: stretch;
    gap: 30px;
    padding: 24px 30px;
}

/* 2026-03-15: 책 이미지 — 고정 크기로 슬라이드 간 높이 통일 */
.v7-banner-section .journal-thumb {
    width: 120px;
    height: 170px;
    flex-shrink: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.v7-banner-section .journal-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
}

/* 2026-03-15: journal-content — 버튼이 하단 정렬되도록 stretch */
.v7-banner-section .journal-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
    align-self: stretch;
}

.v7-banner-section .journal-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.02em !important;
    color: #111;
    margin: 0;
}

/* 2026-03-15: subtitle — 아이콘 + 밑줄 스타일 유지 */
.v7-banner-section .journal-subtitle {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 400;
    color: #666;
    line-height: 1.5;
    margin: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v7-banner-section .icon-file {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    background-image: url(/images/main-v7/journal_icon2.svg);
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;
}

/* 2026-03-15: btn-more — journal-content 하단 고정 */
.v7-banner-section .btn-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: fit-content;
    font-size: 15px;
    font-weight: 500;
    height: 42px;
    padding: 0 20px;
    color: #fff;
    border: 0;
    background: #06367d;
    transition: all 0.3s ease;
    text-decoration: none;
    box-sizing: border-box;
    margin-top: auto;
}

/* + 아이콘 수직 중앙 정렬 */
.v7-banner-section .btn-more span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.v7-banner-section .btn-more span img {
    width: 16px;
    height: 16px;
    vertical-align: middle;
}

.v7-banner-section .btn-more:hover {
    color: #fff;
    opacity: 0.9;
}

/* =========================================
   Section 4: Photo Section (갤러리 + 퀵카드)
   ========================================= */
.v7-photo-section {
    width: 100%;
    height: 100%;
    margin-bottom: 60px;
}

.v7-photo-section > .v7-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
}

.v7-photo-section .v7-gallery,
.v7-photo-section .v7-quick-menu {
    flex: 1;
    width: 100%;
    height: 280px;
}

/* 갤러리 */
.v7-gallery {
    width: 100%;
    border: 1px solid #e8e8e8;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
    margin-right: 10px;
}

.v7-gallery .gallery-inner {
    padding: 30px;
}

.v7-gallery .gallery-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.v7-gallery .gallery-header h3 {
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: normal !important;
    letter-spacing: normal !important;
    display: flex;
    align-items: center;
}

.v7-gallery .gallery-header .dot {
    width: 6px;
    height: 6px;
    background: #1e4c86;
    display: inline-block;
    border-radius: 50%;
    margin-right: 8px;
}

.v7-gallery .gallery-control {
    display: flex;
    align-items: center;
    gap: 6px;
}

.v7-gallery .page-info {
    font-size: 16px;
    color: #555;
}

.v7-gallery .nav-btn {
    width: 30px;
    height: 30px;
    border: 1px solid #ccc;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.v7-gallery .nav-btn.prev::before {
    content: "<";
}

.v7-gallery .nav-btn.next::before {
    content: ">";
}

/* 갤러리 슬라이드 */
.v7-gallery .swiper-slide {
    overflow: hidden;
}

.v7-gallery .swiper-slide .img-box {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.v7-gallery .swiper-slide .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    /* 2026-03-13 hover 확대 효과 제거 (서버 이미지 로딩 부하) */
}

.v7-gallery .swiper-slide p {
    margin-top: 10px;
    overflow: hidden;
    white-space: nowrap;
    color: #222;
    text-overflow: ellipsis;
    font-size: 18px;
    font-weight: 700;
    line-height: 100%;
}

.v7-gallery .swiper-slide a {
    text-decoration: none;
    color: inherit;
}

/* 퀵카드 메뉴 */
.v7-quick-menu {
    margin-left: 10px;
}

.v7-quick-menu .quick-menu-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.v7-quick-menu .menu-card {
    width: 100%;
    display: flex;
    padding: 0 20px;
    gap: 20px;
    height: 130px;
    justify-content: space-between;
    align-items: center;
    background: #e7f2fa;
    border: 1px solid #e8e8e8;
    transition: all 0.35s ease;
    cursor: pointer;
    box-sizing: border-box;
    overflow: hidden;
    text-align: left;
    text-decoration: none;
    color: inherit;
}

.v7-quick-menu .menu-card .icon {
    width: 80px;
    height: 80px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8.297px 20.742px 0 rgba(0, 118, 191, 0.1);
}

.v7-quick-menu .menu-card .icon img {
    width: 40px;
    height: 40px;
}

.v7-quick-menu .menu-card .text {
    flex: 1;
    text-align: left;
}

.v7-quick-menu .menu-card h4 {
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: normal !important;
    letter-spacing: normal !important;
    color: #222;
    padding-bottom: 10px;
}

.v7-quick-menu .menu-card p {
    font-size: 15px;
    color: #555;
    font-weight: 400;
    line-height: 1.5;
}

.v7-quick-menu .menu-card:hover {
    border: 1px solid #1f4f87;
    background: #ffffff;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

/* ══════════════════════════════════════════════════════════════
   Responsive - LAPTOP ≤ 1400px
══════════════════════════════════════════════════════════════ */
@media screen and (max-width: 1400px) {
    .v7-inner {
        padding: 0 30px;
    }

    /* Visual */
    .v7-visual {
        height: 520px;
    }
    .v7-visual .vis_inner {
        bottom: 70px;
    }
    .v7-visual .vis_left .vis_inner {
        padding-left: max(20px, calc(50vw - 600px));
    }
    .v7-visual .vis_right .vis_inner {
        padding-right: max(20px, calc(50vw - 600px));
    }
    .v7-visual .vis_top {
        gap: 24px;
        margin-bottom: 18px;
    }
    .v7-visual .vis_kasba {
        font-size: 100px !important;
    }
    .v7-visual .vis_orgname {
        font-size: 40px !important;
        line-height: 100% !important;
    }
    .v7-visual .vis_en {
        font-size: 17px !important;
        line-height: 130% !important;
        letter-spacing: 0.5px !important;
    }
    /* 2026-03-16: 모바일에서 영문명 줄바꿈 표시 */
    .v7-visual .mob-br {
        display: inline;
    }
    .v7-visual .vis_vision_title {
        font-size: 17px !important;
        margin-bottom: 16px;
    }
    .v7-visual .vis_vision_body p {
        font-size: 36px !important;
    }
    .v7-visual .vis_emphasis_inline {
        font-size: 36px !important;
    }
    .v7-visual .vis_sub_text {
        font-size: 20px !important;
    }

    /* Board Section */
    .v7-notice {
        height: auto;
        min-height: 260px;
    }
    .v7-notice .notice_inner {
        padding: 0 28px 28px;
    }

    /* Banner Section */
    .v7-banner-section {
        min-height: 180px;
        height: auto;
    }
    .v7-banner-section .conference-banner {
        min-height: 180px;
        height: auto;
    }
}

/* ══════════════════════════════════════════════════════════════
   Responsive - LAPTOP-S ≤ 1200px
══════════════════════════════════════════════════════════════ */
@media screen and (max-width: 1200px) {
    /* Visual */
    .v7-visual {
        height: 500px;
    }
    .v7-visual .vis_inner {
        bottom: 70px;
    }
    .v7-visual .vis_left .vis_inner {
        padding-left: max(20px, calc(50vw - 540px));
    }
    .v7-visual .vis_right .vis_inner {
        padding-right: max(20px, calc(50vw - 540px));
    }
    .v7-visual .vis_top {
        gap: 16px;
        margin-bottom: 16px;
    }
    .v7-visual .vis_kasba {
        font-size: 96px !important;
    }
    .v7-visual .vis_tagline {
        letter-spacing: -0.5px;
    }
    .v7-visual .vis_orgname {
        font-size: 36px !important;
    }
    .v7-visual .vis_vision_title {
        font-size: 15px !important;
        margin-bottom: 14px;
    }
    .v7-visual .vis_vision_body p {
        font-size: 34px !important;
    }
    .v7-visual .vis_emphasis_inline {
        font-size: 34px !important;
    }
    .v7-visual .vis_sub_text {
        font-size: 18px !important;
    }

    /* Board Section */
    .v7-board-section {
        margin-top: -120px;
    }
    .v7-member .member__menu,
    .v7-member .member__join {
        height: 260px;
    }

    /* Banner Section - 세로 스택 */
    .v7-banner-section {
        min-height: 0;
        height: auto;
        margin: 24px 0;
    }
    .v7-banner-section > .v7-inner {
        flex-direction: column;
        gap: 12px;
        height: auto;
    }
    .v7-banner-section .conference-banner,
    .v7-banner-section .journal-card {
        flex: none;
        width: 100%;
        max-width: 100%;
    }
    /* 2026-03-15: 모바일 학술대회 — 콘텐츠 상단 정렬 */
    .v7-banner-section .conference-banner {
        min-height: 0;
        height: auto;
        align-items: flex-start;
        padding: 20px 0; /* 2026-03-16: 하단 여백 추가 — 행사 1개일 때도 여백 확보 */
    }
    .v7-banner-section .v7-conferenceSwiper,
    .v7-banner-section .v7-publicationSwiper {
        height: auto;
        align-self: auto;
    }
    .v7-banner-section .v7-conferenceSwiper .swiper-slide {
        height: auto;
    }
    .v7-banner-section .banner-text {
        margin-left: 20px;
    }
    /* 2026-03-15: 모바일 pagination — static으로 document flow에 포함, 콘텐츠 아래 중앙 */
    .v7-banner-section .v7-conf-pagination,
    .v7-banner-section .v7-pub-pagination {
        position: static !important;
        padding: 4px 0 10px;
        text-align: center;
    }
    /* 2026-03-15: 모바일 발간물 */
    .v7-banner-section .journal-card {
        height: auto;
    }
    .v7-banner-section .journal-inner {
        padding: 16px 20px;
        gap: 16px;
    }

    /* Photo Section - 세로 스택 */
    .v7-photo-section > .v7-inner {
        flex-direction: column;
        gap: 20px;
        height: auto;
    }
    .v7-photo-section .v7-gallery,
    .v7-photo-section .v7-quick-menu {
        flex: none;
        width: 100%;
        height: auto;
    }
    .v7-gallery {
        margin-right: 0;
    }
    .v7-quick-menu {
        margin-left: 0;
    }
    .v7-gallery .gallery-inner {
        padding: 28px;
    }
    .v7-quick-menu .quick-menu-inner {
        gap: 16px;
    }
    .v7-quick-menu .menu-card {
        height: 140px;
        padding: 0 24px;
        gap: 18px;
    }
    .v7-quick-menu .menu-card .icon {
        width: 72px;
        height: 72px;
    }
}

/* ══════════════════════════════════════════════════════════════
   Responsive - TABLET ≤ 1024px
══════════════════════════════════════════════════════════════ */
@media screen and (max-width: 1024px) {
    .v7-inner {
        padding: 0 32px;
    }

    /* Visual */
    .v7-visual {
        height: 500px;
    }
    .v7-visual .vis_inner {
        bottom: 60px;
    }
    .v7-visual .vis_left .vis_inner,
    .v7-visual .vis_right .vis_inner {
        padding: 30px 30px;
    }
    .v7-visual .vis_top {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        margin-bottom: 20px;
    }
    .v7-visual .vis_kasba {
        font-size: 80px !important;
    }
    .v7-visual .vis_tagline {
        font-size: 18px;
        margin-bottom: 10px;
    }
    .v7-visual .vis_orgname {
        font-size: 32px !important;
    }
    .v7-visual .vis_en {
        font-size: 16px !important;
    }
    .v7-visual .vis_vision_body p {
        font-size: 32px !important;
    }
    .v7-visual .vis_emphasis_inline {
        font-size: 32px !important;
    }
    .v7-visual .vis_sub_text {
        font-size: 18px !important;
        line-height: 135% !important;
    }

    /* Board Section - 세로 스택 */
    .v7-board-section {
        margin-top: -110px;
    }
    .v7-board-section > .v7-inner {
        flex-direction: column;
        gap: 0;
    }
    /* 2026-03-13: 세로 스택 시 50% 제한 해제 */
    .v7-board-section .v7-notice,
    .v7-board-section .v7-member {
        flex: none;
        width: 100%;
        max-width: 100%;
    }

    /* Notice */
    .v7-notice {
        height: auto;
        min-height: 0;
        padding-top: 28px;
        padding-bottom: 28px;
        border-bottom: 1px solid #e8e8e8;
    }
    .v7-notice .notice_inner {
        padding: 0 28px;
    }
    .v7-notice .notice__header {
        gap: 20px;
    }
    .v7-notice .notice__title {
        font-size: 20px !important;
    }
    .v7-notice .notice__tabs {
        gap: 16px;
    }
    .v7-notice .notice__tabs .tab {
        font-size: 16px;
    }
    .v7-notice .notice__list {
        margin-top: 20px;
        gap: 10px;
    }
    .v7-notice .notice__list .title {
        font-size: 16px;
    }
    .v7-notice .notice__list .date {
        font-size: 14px;
        white-space: nowrap;
    }
    .v7-notice .notice__list .badge {
        font-size: 14px;
    }

    /* Member - 가로 유지 */
    .v7-board-section .v7-member {
        flex-direction: row;
        height: 230px;
    }
    .v7-member .member__menu,
    .v7-member .member__join {
        height: 100%;
    }
    .v7-member .member__menu_inner {
        padding: 0 24px;
    }
    .v7-member .quick_btn {
        font-size: 16px;
        height: 46px;
    }
    .v7-member .member__join_inner {
        padding: 0 24px;
    }
    .v7-member .member__join h3 {
        font-size: 20px !important;
        margin-bottom: 14px;
    }
    .v7-member .member__join p {
        font-size: 16px;
        padding-bottom: 24px;
    }
    .v7-member .join__btn {
        font-size: 16px;
        height: 46px;
    }

    /* Banner Section */
    .v7-banner-section {
        margin: 28px 0;
    }
    .v7-banner-section .banner-text {
        margin-left: 32px;
    }
    .v7-banner-section .banner-text h2 {
        font-size: 20px !important;
        margin-bottom: 18px;
    }
    .v7-banner-section .banner-text ul li {
        font-size: 16px;
    }
    .v7-banner-section .journal-inner {
        gap: 20px;
        padding: 18px 24px;
    }
    .v7-banner-section .journal-thumb {
        width: 100px;
        height: 140px;
    }
    .v7-banner-section .journal-title {
        font-size: 18px !important;
    }
    .v7-banner-section .btn-more {
        font-size: 14px;
        height: 40px;
        padding: 0 16px;
    }

    /* Photo Section */
    .v7-photo-section {
        margin-bottom: 52px;
    }
    .v7-gallery .gallery-inner {
        padding: 24px;
    }
    .v7-gallery .gallery-header {
        margin-bottom: 18px;
    }
    .v7-gallery .gallery-header h3 {
        font-size: 20px !important;
    }
    .v7-gallery .swiper-slide p {
        font-size: 16px;
    }
    .v7-quick-menu .quick-menu-inner {
        gap: 14px;
    }
    .v7-quick-menu .menu-card {
        height: 112px;
        padding: 0 20px;
        gap: 16px;
    }
    .v7-quick-menu .menu-card .icon {
        width: 60px;
        height: 60px;
    }
    .v7-quick-menu .menu-card h4 {
        font-size: 16px !important;
        padding-bottom: 6px;
    }
    .v7-quick-menu .menu-card p {
        font-size: 14px;
    }
}

/* ══════════════════════════════════════════════════════════════
   Responsive - MOBILE ≤ 768px
══════════════════════════════════════════════════════════════ */
@media screen and (max-width: 768px) {
    .v7-inner {
        padding: 0 20px;
    }

    /* 2026-03-15: Visual - 우측 숨김, 좌측만 표시 */
    .v7-visual {
        flex-direction: column;
        margin-bottom: 20px;
        height: auto;
    }
    .v7-visual .vis_inner {
        bottom: 0;
        height: auto;
    }
    .v7-visual .vis_right {
        display: none;
    }
    .v7-visual .vis_left {
        width: 100%;
        height: auto;
        min-height: 360px;
    }
    .v7-visual .vis_kasba {
        font-size: 64px !important;
        text-align: center;
    }
    .v7-visual .vis_top {
        flex-direction: column;
        align-items: center;
        gap: 16px;
        margin-bottom: 16px;
    }
    .v7-visual .vis_kr {
        text-align: center;
    }
    .v7-visual .vis_tagline {
        font-size: 16px;
        text-align: center;
    }
    .v7-visual .vis_orgname {
        font-size: 32px !important;
        text-align: center;
    }
    .v7-visual .vis_en {
        font-size: 14px !important;
        text-align: center;
        letter-spacing: 0.5px !important;
    }
    .v7-visual .vis_left .vis_inner {
        padding: 60px 20px 160px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    /* Board Section - 모바일에서도 겹침 유지 */
    .v7-board-section {
        margin-top: -100px;
    }

    /* Notice - Grid 헤더 재배치 */
    .v7-notice {
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .v7-notice .notice_inner {
        padding: 0 30px;
    }
    .v7-notice .notice__header {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
        gap: 20px 0;
        align-items: center;
    }
    .v7-notice .notice__title {
        grid-column: 1;
        grid-row: 1;
        font-size: 20px !important;
    }
    .v7-notice .notice__more {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }
    .v7-notice .notice__tabs {
        grid-column: 1 / -1;
        grid-row: 2;
        gap: 20px;
    }
    .v7-notice .notice__tabs .tab {
        font-size: 16px;
    }
    .v7-notice .notice__list {
        margin-top: 20px;
        gap: 14px;
    }
    .v7-notice .notice__list li a {
        gap: 8px;
    }
    .v7-notice .notice__list .badge {
        font-size: 14px;
        padding: 5px 10px;
        margin-right: 4px;
    }
    .v7-notice .notice__list .title {
        font-size: 16px;
    }
    .v7-notice .notice__list .date {
        display: none;
    }

    /* Member - 세로 스택: 50% 제한 해제 */
    .v7-board-section .v7-member {
        flex-direction: column;
        height: auto;
        align-items: stretch;
    }
    .v7-member .member__menu,
    .v7-member .member__join {
        flex: none;
        height: auto;
        width: 100%;
        max-width: 100%;
    }
    .v7-member .member__menu_inner {
        padding: 30px 30px;
    }
    .v7-member .quick_btn {
        font-size: 16px;
        height: 52px;
        margin-bottom: 10px;
    }
    .v7-member .member__join_inner {
        padding: 40px 30px;
    }
    .v7-member .member__join h3 {
        font-size: 20px !important;
        margin-bottom: 16px;
    }
    .v7-member .member__join p {
        font-size: 16px;
        padding-bottom: 24px;
    }
    .v7-member .join__btn {
        font-size: 16px;
        height: 52px;
    }

    /* Banner Section */
    .v7-banner-section {
        margin: 24px 0;
    }
    .v7-banner-section > .v7-inner {
        gap: 14px;
    }
    .v7-banner-section .banner-text {
        margin-left: 30px;
    }
    .v7-banner-section .banner-text h2 {
        font-size: 20px !important;
        margin-bottom: 18px;
        line-height: 1.3 !important;
    }
    .v7-banner-section .banner-text ul li {
        font-size: 16px;
        line-height: 1.5;
    }
    .v7-banner-section .journal-card {
        margin-left: 0;
    }
    /* 2026-03-15: 768px 이하 — 2단 구조 유지, 간격 축소 */
    .v7-banner-section .journal-inner {
        gap: 20px;
        padding: 20px;
    }
    .v7-banner-section .journal-thumb {
        width: 100px;
        height: 140px;
    }
    .v7-banner-section .journal-title {
        font-size: 18px !important;
    }
    .v7-banner-section .icon-user,
    .v7-banner-section .icon-file {
        width: 16px;
        height: 16px;
    }
    .v7-banner-section .btn-more {
        width: fit-content;
        font-size: 14px;
        height: 38px;
        padding: 0 16px;
    }

    /* Photo Section */
    .v7-photo-section {
        margin-bottom: 44px;
    }
    .v7-gallery .gallery-inner {
        padding: 30px;
    }
    .v7-gallery .gallery-header h3 {
        font-size: 20px !important;
    }
    .v7-gallery .swiper-slide p {
        font-size: 16px;
        margin-top: 14px;
    }
    .v7-gallery .swiper-slide .img-box {
        border-radius: 2px;
    }
    .v7-gallery .page-info {
        font-size: 16px;
        padding-right: 10px;
    }
    .v7-quick-menu .quick-menu-inner {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
    .v7-quick-menu .menu-card {
        flex-direction: column;
        align-items: flex-start;
        justify-content: space-between;
        height: auto;
        padding: 20px 20px;
        gap: 0;
    }
    .v7-quick-menu .menu-card .text {
        padding-top: 20px;
    }
    .v7-quick-menu .menu-card .icon {
        width: 80px;
        height: 80px;
    }
    .v7-quick-menu .menu-card h4 {
        font-size: 18px !important;
        padding-bottom: 10px;
    }
    .v7-quick-menu .menu-card p {
        font-size: 14px;
        line-height: 1.6;
    }
}

/* ══════════════════════════════════════════════════════════════
   Responsive - SMALL ≤ 480px
══════════════════════════════════════════════════════════════ */
@media screen and (max-width: 480px) {
    .v7-inner {
        padding: 0 20px;
    }

    /* 2026-03-15: Visual - 좌측 표시 (480px) */
    .v7-visual .vis_left {
        min-height: 300px;
    }
    .v7-visual .vis_kasba {
        font-size: 48px !important;
    }
    .v7-visual .vis_orgname {
        font-size: 32px !important;
    }
    .v7-visual .vis_en {
        font-size: 14px !important;
    }

    /* Board Section */
    .v7-board-section {
        margin-top: -120px;
    }
    .v7-notice {
        padding-top: 24px;
        padding-bottom: 24px;
    }
    .v7-notice .notice_inner {
        padding: 0 20px;
    }
    .v7-notice .notice__header {
        gap: 12px 0;
    }
    .v7-notice .notice__title {
        font-size: 20px !important;
    }
    .v7-notice .notice__tabs {
        gap: 14px;
    }
    .v7-notice .notice__tabs .tab {
        font-size: 16px;
    }
    .v7-notice .notice__list {
        margin-top: 20px;
        gap: 12px;
    }
    .v7-notice .notice__list .badge {
        font-size: 14px;
        padding: 4px 8px;
        margin-right: 0;
    }
    .v7-notice .notice__list .title {
        font-size: 16px;
    }

    /* Member */
    .v7-member .member__menu_inner {
        padding: 24px;
    }
    .v7-member .quick_btn {
        font-size: 16px;
        height: 48px;
    }
    .v7-member .member__join_inner {
        padding: 32px 24px;
    }
    .v7-member .member__join h3 {
        font-size: 20px !important;
    }
    .v7-member .member__join p {
        font-size: 16px;
        padding-bottom: 20px;
    }
    .v7-member .join__btn {
        font-size: 16px;
        height: 48px;
    }

    /* Banner Section */
    .v7-banner-section .banner-text {
        margin-left: 24px;
    }
    .v7-banner-section .banner-text h2 {
        font-size: 20px !important;
        margin-bottom: 16px;
        line-height: 1.5 !important;
    }
    .v7-banner-section .banner-text ul li {
        font-size: 16px;
        line-height: 1.6;
    }
    .v7-banner-section .journal-inner {
        gap: 12px;
        padding: 20px 16px;
    }
    .v7-banner-section .journal-thumb {
        width: 90px;
        height: 126px;
    }
    .v7-banner-section .journal-title {
        font-size: 16px !important;
    }
    .v7-banner-section .journal-subtitle {
        font-size: 14px;
    }
    .v7-banner-section .btn-more {
        font-size: 14px;
        height: 36px;
        padding: 0 14px;
    }

    /* Photo Section */
    .v7-gallery .gallery-inner {
        padding: 34px 20px;
    }
    .v7-gallery .gallery-header h3 {
        font-size: 20px !important;
    }
    .v7-gallery .swiper-slide p {
        font-size: 16px;
    }
    .v7-gallery .page-info {
        font-size: 14px;
        padding-right: 6px;
    }
    .v7-quick-menu .quick-menu-inner {
        gap: 16px;
    }
    .v7-quick-menu .menu-card {
        padding: 20px 16px;
    }
    .v7-quick-menu .menu-card .icon {
        width: 64px;
        height: 64px;
    }
    .v7-quick-menu .menu-card h4 {
        font-size: 18px !important;
        padding-bottom: 12px;
    }
    .v7-quick-menu .menu-card p {
        font-size: 14px;
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}


/* ========================================
   2026-03-13: 협찬사/관련기관 배너 그리드
   ======================================== */
.v7-banner-grid {
    padding: 48px 0;
    margin-bottom: 48px;
}

.v7-banner-grid-box {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}

.v7-banner-grid-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background-color: #fff;
    border: 1px solid #e5e7eb;
    transition: border-color 0.2s;
}

.v7-banner-grid-item:hover {
    border-color: var(--primary, #1a5a7a);
}

.v7-banner-grid-item img {
    max-width: 100%;
    max-height: 60px;
    object-fit: contain;
}

/* 배너 그리드 반응형 - 태블릿 */
@media (max-width: 1024px) {
    .v7-banner-grid-box {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* 배너 그리드 반응형 - 모바일 */
@media (max-width: 640px) {
    .v7-banner-grid {
        padding: 32px 0;
        margin-bottom: 32px;
    }

    .v7-banner-grid-box {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .v7-banner-grid-item {
        padding: 12px;
    }

    .v7-banner-grid-item img {
        max-height: 40px;
    }
}
