/* ===============================================================
    RESET & BASE
================================================================ */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    display: flex;
    height: 100vh;
    overflow-x: hidden;                /* 세로 스크롤만 허용 */
    font-family: 'Pretendard', 'Noto Sans KR', sans-serif;
    background: #f4f6fa;
    position: relative;                /* .topbar absolute 기준 */
}



/* ===============================================================
    SIDE BAR
================================================================ */
.sidebar {
    width: 80px;
    background: #1e1e1e;
    z-index: 9000;

    display: flex;
    flex-direction: column;
    justify-content: space-between;  /* 위 ↔ 아래 정렬 */
    height: 100vh;
}

.nav-download-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    padding-bottom: 20px;
}

.nav-wrapper {
    width: 80px;
    background: #1e1e1e;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 14px;
    gap: 12px;
    z-index: 9000;
}
/* ────── 메뉴 카드 ────── */
.nav-item {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    background: #2b2b2b;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    text-align: center;
    color: #c4c6cf;
    cursor: pointer;
    transition: 0.25s;
}

.nav-item i {
    font-size: 20px;
    margin-bottom: 6px;
}

.nav-item:hover {
    background: #444444;
}

.nav-item.active {
    background: #6948ff;
    color: #ffffff;
    font-weight: 700;
}
/* ──────────────────────────────────────────
   SIDEBAR ANCHOR – 언더라인 & 포커스 제거
────────────────────────────────────────── */
.sidebar a.nav-item{
    text-decoration:none;           /* 기본 밑줄 제거 */
    outline:none;                   /* 포커스 외곽선 제거(필요 시 유지) */
}

/* 상태별(hover / visited / focus)도 모두 매끄럽게 */
.sidebar a.nav-item:link,
.sidebar a.nav-item:visited,
.sidebar a.nav-item:hover,
.sidebar a.nav-item:active,
.sidebar a.nav-item:focus{
    text-decoration:none;
}







/* ===============================================================
   TOP BAR :  좌측(로고) — 우측(메뉴) 레이아웃
================================================================ */
.topbar{
    position:fixed;
    top:20px;
    left:0;
    width:100%;                           /* 가로 전체 차지 */
    height:50px;                          /* 기존 높이 그대로 */
    
    /* flex 레이아웃 */
    display:flex;
    align-items:center;
    justify-content:space-between;        /* 양쪽 끝으로 분배 */

    /* 좌우 여백:  왼쪽 = 사이드바(80) + 20,  오른쪽 = 40 */
    padding:0 40px 0 100px;

    z-index:50;
}

/* 로고 링크(높이 50px 이미지 규칙은 유지) */
.topbar .logo{ display:inline-flex; align-items:center; }
.topbar .logo img{ height:60px; width:auto; }

/* 오른쪽 영역(GNB + 드롭다운)을 하나로 묶어 정렬 */
.right-cluster{
    display:flex;
    align-items:center;
    gap:24px;               /* GNB ↔ 드롭다운 간격 */
}
/* 필요하면 <div class="right-cluster"> 로 감싸 주세요 */


/* ────── GNB 메뉴 ────── */
.gnb {
    display: flex;
    align-items: center;
    gap: 32px;
    background: #2b2b2b;
    height: 50px;
    padding: 0 40px;
    border-radius: 23px;               /* height / 2 */
}

.gnb a {
    font-size: 16px;
    color: #ffffff;
    text-decoration: none;
    line-height: 50px;                 /* 수직 중앙 정렬 */
    position: relative;
}

.gnb a::after {                        /* 세로 구분선 */
    content: "";
    position: absolute;
    right: -16px;
    top: 50%;
    width: 1px;
    height: 14px;
    background: #555555;
    transform: translateY(-50%);
}

.gnb a:last-child::after {
    display: none;
}

.gnb a:hover {
    color: #ffd95c;
}

/* ────── 우측 언어 드롭다운 컨테이너 ────── */
.topbar-etc {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-left: 24px;
}






/* ===============================================================
    DROPDOWN : LANGUAGE SWITCH  (다크 · 고정 높이 46px)
================================================================ */
.dropdown {
    position: relative;
}

/* 토글 버튼 */
.dropdown-toggle {
    background: #2b2b2b;
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    border: none;
    border-radius: 23px;
    height: 50px;
    padding: 0 22px;
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: background 0.2s;
}

.dropdown-toggle i {
    font-size: 16px;
}

.dropdown-toggle:hover {
    background: #444444;
}

/* 메뉴 */
.dropdown-menu {
    position: absolute;
    top: 54px;                          /* 46px + 8px */
    right: 0;
    background: #2b2b2b;
    border-radius: 12px;
    list-style: none;
    padding: 8px 0;
    min-width: 140px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
    transition: 0.25s;
}

.dropdown.open .dropdown-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.dropdown-menu li a {
    display: block;
    padding: 10px 18px;
    font-size: 12px;
    color: #ffffff;
    text-decoration: none;
    white-space: nowrap;
}

.dropdown-menu li a:hover {
    background: #444444;
}






/* ===============================================================
    MAIN CONTAINER  (사이드바 옆 영역 · 세로 스크롤)
================================================================ */
.main {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    position: relative;
}





/* ===============================================================
    SECTION : MAIN 01 (풀스크린 비디오)
================================================================ */
.main01.video {
    flex: 0 0 100vh;                    /* 뷰포트 한 화면 */
    position: relative;
    overflow: hidden;
}

.bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(65%);
    z-index: 0;
}

/* (필요 시) 비디오 오버레이 콘텐츠 */
.main01 .overlay-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #ffffff;
    text-align: center;
    padding: 0 20px;
    z-index: 1;
}

/* ===============================================================
   HERO CAPTION (H1 + SUBLINE 묶음)
================================================================ */
/* 다크 메인 배경 */
.dark-main {
    background: #121212;
    padding: 100px 0;
    color: #fff;
}

/* 인트로 텍스트 영역 */
.intro-text {
    text-align: center;
    margin: 32px 0;
}

.intro-text h1 {
    font-size: 46px;
    font-weight: 800;
    margin-bottom: 16px;
    color: #ffffff;
}

.intro-text p {
    font-size: 18px;
    color: #bbbbbb;
}

.company-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 2400px;
  margin: 60px auto;
  padding: 0 20px;
}

.company-card {
    width: 98%;
    min-width: 660px;
    min-height: 120px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 12px;
    padding: 20px 28px;
    color: white;
    font-size: 1.25rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease;
    background-blend-mode: multiply;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(2px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.company-card:hover {
  transform: scale(1.02);
}

.plus {
  font-size: 1.4rem;
  font-weight: bold;
}

/* + 아이콘 강조 */
.company-card .plus {
    color: #fff;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.company-card:hover .plus {
    opacity: 1;
}

.red    { background: linear-gradient(90deg, #ff4d4d, #ff6f61); }
.orange { background: linear-gradient(90deg, #ff944d, #ffb84d); }
.yellow { background: linear-gradient(90deg, #ffcc00, #ffe066); }
.green  { background: linear-gradient(90deg, #2ecc71, #27ae60); }
.blue   { background: linear-gradient(90deg, #3498db, #5dade2); }
.navy   { background: linear-gradient(90deg, #34495e, #2c3e50); }
.purple { background: linear-gradient(90deg, #9b59b6, #b57edc); }




/* ===============================================================
    📱 MOBILE ≤ 480 px — AI 게시판 전용 리팩터링
    - ‘테이블 형태 유지’ + 컬럼 최소화 + 작은 폰트
================================================================ */
@media (max-width: 480px) {

    /* 섹션·카드 패딩·타이틀 크기 ↓ */
    .board-section { padding:30px 4% 8px; gap:20px; }
    .board-card    { padding:28px 20px; }
    .board-title   { font-size:24px; }

    /* 검색창 전폭 & 작은 글꼴 */
    .board-search       { width:100%; margin-bottom:20px; }
    .board-search input { width:100%; font-size:.85rem; padding:8px 40px 8px 12px; }

    /* ── 테이블 표 형태 유지 ────────────────────────────── */
    .board-table{
        width:100%;
        table-layout:auto;      /* 자연 폭 */
        font-size:13px;
    }

    /* 모든 행/셀 본래 display 로 되돌리기 */
    .board-table thead { display:table-header-group; }
    .board-table tbody tr { display:table-row; background:none; margin:0; padding:0; }
    .board-table td{ display:table-cell; border-bottom:1px solid #333; padding:10px 6px; }

    /* 번호·조회 숨김 ------------------------------------ */
    .board-table .col-num,
    .board-table .col-hit,
    .board-table td:nth-child(1),   /* 예비: 번호 셀 */
    .board-table td:nth-child(5)    /* 예비: 조회 셀 */
    { display:none; }

    /* 제목 70 %, 작성자·날짜 각 15 % --------------------- */
    .board-table .col-title,
    .board-table td.col-title    { width:70%; text-align:left; }
    .board-table .col-author,
    .board-table .col-date       { width:15%; text-align:center; }

    /* 작성자·날짜 보이도록 재노출 */
    .col-author,
    .col-date { display:table-cell !important; font-size:12px; }

    /* hover 색상 살짝 */
    .board-table tbody tr:hover { background:#272727; }

    /* 페이지네이션 · 버튼 */
    .board-pagination{ margin-top:18px; }
    .board-pagination a{ min-width:28px; padding:6px 8px; font-size:.8rem; }

    .board-write{ text-align:center; margin-top:14px; }
    .write-btn{ width:100%; justify-content:center; padding:12px 0; }
}

/* ===============================================================
   📱 MOBILE TOPBAR  (≤ 768px)
   ---------------------------------------------------------------
   - PC Topbar는 접고 .mobile-only 를 노출
   - HTML 예시:
     <header class="topbar mobile-only"> … </header>
================================================================ */

/* 초기엔 숨김 */
.mobile-only{display:none;}

/* ===============================================================
   💚 Mobile Topbar Patch (≤ 768 px)
   ─ 기존 스타일을 초기화 → 원하는 값만 재정의
================================================================ */
@media (max-width: 768px){

  /* 0) 모든 .topbar 초기화 후 모바일만 다시 세팅 */
  .topbar{
      all:unset;                  /* ← 높이·flex 등 기존 값 제거 */
      box-sizing:border-box;
  }

  /* 1) PC Topbar 숨김, 모바일만 표시 */
  .topbar:not(.mobile-only){ display:none !important; }

  .topbar.mobile-only{
      display:flex !important;    /* 확실히 보이기 */
      position:fixed;
      top:0; left:0; width:100%; height:56px;
      padding:0 2.5vw;
      background:rgba(30,30,30,.92);
      backdrop-filter:blur(6px);
      justify-content:space-between;
      align-items:center;
      z-index:1000;
  }

  /* 2) 왼쪽 묶음 */
  .mtop-wraper{display:flex;gap:8px;}

  .m-burger{
      background:none;border:none;outline:none;
      color:#fff;font-size:26px;cursor:pointer;
      padding:6px;
  }

  .m-logo img{height:40px;width:auto;}

  /* 3) 언어 드롭다운 (모바일) */
  #langSwitch-mo.dropdown{position:relative;}
  #langSwitch-mo .dropdown-toggle{
      display:flex;align-items:center;gap:6px;
      height:42px;padding:0 16px;
      font-size:14px;font-weight:600;
      color:#fff;background:none;border:1px solid #555;
      border-radius:20px;cursor:pointer;
  }
  #langSwitch-mo .dropdown-menu{
      position:absolute;right:0;top:110%;
      min-width:120px;background:#1a1a1a;
      border:1px solid #333;border-radius:6px;
      padding:6px 0;display:none;z-index:2000;
  }
  #langSwitch-mo.open .dropdown-menu{display:block;}

  #langSwitch-mo .dropdown-menu li a{
      display:block;padding:8px 14px;
      color:#eee;font-size:14px;text-decoration:none;
  }
  #langSwitch-mo .dropdown-menu li a:hover{
      background:#2c2c2c;color:#32e0c4;
  }

  /* 4) 오프캔버스 Drawer */
  .m-drawer{
      position:fixed;top:0;left:-180px;
      width:180px;height:100vh;
      background:#111;color:#fff;
      padding:24px 20px 40px;
      box-shadow:4px 0 16px rgba(0,0,0,.45);
      transition:transform .45s cubic-bezier(.22,.61,.36,1);
      display:flex;flex-direction:column;gap:28px;
      z-index:130;
  }
  .m-drawer.open{transform:translateX(180px);}

  .drawer-overlay{
      position:fixed;inset:0;
      background:rgba(0,0,0,.45);backdrop-filter:blur(2px);
      z-index:120;display:none;
  }
  .drawer-overlay.show{display:block;}

  .drawer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px;}
  .drawer-links a{
      font-size:18px;font-weight:600;color:#eee;text-decoration:none;
  }
  .drawer-links a:hover{color:#32e0c4;}

  /* 5) 사이드 네비·PC 패널 강제 비활성 */
  .sidebar, .desk-qna{display:none !important;}
}


















/* ── 모바일 전용 요소 숨김 (500px 초과) ───────────────────── */
@media (min-width: 500px) {
    .m-drawer {            /* .topbar.mobile-only 등 */
        display: none !important;
    }
}