/* 메인 컨테이너 */ .recent-article-container { background: white; border-radius: 24px; border: 1px solid #f3f4f6; padding: 40px; box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.08); } /* ============================================================================= 공통 섹션 헤더 베이스 클래스 - Bootstrap 3 최적화 ============================================================================= */ .section-header { margin-bottom: 30px; } .section-header .header-content { text-align: left; /* Bootstrap Container 내부이므로 max-width, margin auto 제거 */ } .section-header .title-area { margin-bottom: 10px; /* Bootstrap clearfix 사용을 위한 기본 스타일 */ } .section-header .title-area:after { content: ""; display: table; clear: both; } .section-header .section-title { margin: 0; font-size: 28px; font-weight: 700; line-height: 1.2; color: #333; } .section-header .section-description { margin: 0; font-size: 16px; line-height: 1.5; color: #666; max-width: 600px; } .section-header .view-all { color: #666; text-decoration: none; font-size: 14px; cursor: pointer; white-space: nowrap; transition: color 0.3s ease; } .section-header .view-all:hover { color: #333; } .section-header .highlight { color: #ff6b35; } /* 구식 more-btn 스타일 유지 (하위 호환성) */ .more-btn { background: none; border: none; color: #007bff; font-size: 12px; font-weight: 500; padding: 6px 10px; border-radius: 6px; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ transition: all 0.3s ease; } .more-btn:hover { background-color: #f8f9fa; color: #0056b3; transform: translateX(2px); } .recent-article-section .view-all { font-size: 14px; color: #007bff; font-weight: 500; cursor: pointer; transition: color 0.3s ease; } .recent-article-section .view-all:hover { color: #0056b3; } /* 모바일 반응형 */ @media (max-width: 768px) { .section-header .title-area { /* Bootstrap clearfix 사용으로 flexbox 제거 */ /* 모바일에서는 자연스럽게 세로 배치됨 */ } .section-header .section-title { font-size: 24px; } .section-header .section-description { font-size: 14px; } } /* PC 레이아웃 */ .pc-layout { display: block; overflow: hidden; } .layout-container { max-width: 100%; display: flex; gap: 32px; align-items: flex-start; flex-wrap: wrap; } @media screen and (min-width: 1200px) { .layout-container { flex-wrap: nowrap; } } /* 왼쪽 큰 카드 */ .main-card { width: 476px; flex-shrink: 0; cursor: pointer; } .main-card .card-image { width: 100%; height: 300px; margin-bottom: 16px; border-radius: 8px; overflow: hidden; } .main-card .card-image img { width: 100%; height: 100%; object-fit: none; transition: transform 0.3s ease; } .main-card:hover .card-image img { transform: scale(1.05); } .main-card .card-content { display: flex; flex-direction: column; gap: 16px; } .main-card .category-tag { color: #fa751e; font-size: 16px; font-weight: 500; background: none; border: none; padding: 0; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ } .main-card .title h3 { font-size: 24px; font-weight: 700; color: #1b1c1e; margin: 0; line-height: 1.3; } .main-card .note { font-size: 16px; color: #58575e; line-height: 24px; letter-spacing: -0.5px; font-style: italic; } .main-card .note span > *, .side-card .note span > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .side-card .note span > * { max-width: 270px; } .main-card .tags { display: flex; flex-wrap: wrap; gap: 8px; } .main-card .tag { background: #f8f9fa; border: none; color: #666; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; line-height: 1.25; font-family: inherit; margin: 2px; } .main-card .tag:hover { background: #007bff; color: white; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3); } .main-card .meta { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #666; } .main-card .divider { color: #ddd; } /* 오른쪽 작은 카드들 */ .side-cards { max-width: 500px; flex: 1; display: flex; flex-direction: column; gap: 24px; } @media screen and (max-width: 1200px) { .side-cards { max-width: 100%; } } .side-card { display: flex; gap: 16px; align-items: flex-start; cursor: pointer; } .side-card .card-image { width: 268px; height: 150px; flex-shrink: 0; border-radius: 8px; overflow: hidden; } .side-card .card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .side-card:hover .card-image img { transform: scale(1.05); } .side-card .card-content { flex: 1; display: flex; flex-direction: column; gap: 8px; } .side-card .category-tag { color: #fa751e; font-size: 12px; font-weight: 500; background: none; border: none; padding: 0; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ } .side-card .title h3 { font-size: 16px; font-weight: 600; color: #1b1c1e; margin: 0; line-height: 1.3; } .side-card .tags { display: flex; flex-wrap: wrap; gap: 4px; } .side-card .tag { background: #f8f9fa; border: none; color: #666; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; line-height: 1.25; font-family: inherit; margin: 2px; } .side-card .tag:hover { background: #007bff; color: white; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3); } .side-card .meta { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #666; } .side-card .divider { color: #ddd; } /* =================================== 인기 컨텐츠 섹션 스타일 =================================== */ /* 인기 컨텐츠 섹션 */ .popular-content-section { margin: 56px 0; /* Bootstrap Container 사용으로 max-width, margin, padding 제거 */ } .popular-content-container { background: transparent; border-radius: 0; border: none; padding: 0; box-shadow: none; } /* 인기 컨텐츠 섹션만의 특별한 설정 (공통 베이스 클래스 사용) */ .popular-content-section .section-header { margin-bottom: 20px; } /* 카테고리 탭 */ .popular-content-section .category-tabs { background-color: transparent; border-bottom: none; } .popular-content-section .tabs-container { margin: 0; display: flex; align-items: center; gap: 16px; padding: 12px 0; flex-wrap: wrap; justify-content: flex-start; } .popular-content-section .tabs-container::-webkit-scrollbar { display: none; } .popular-content-section .tabs-container { scrollbar-width: none; -ms-overflow-style: none; } /* 탭 버튼 스타일 */ .popular-content-section .tab-button, .popular-content-section .popular-tab-button { padding: 8px 16px; font-size: 14px; font-weight: 500; color: #666; background: white; border: none; border-radius: 20px; cursor: pointer; white-space: nowrap; transition: all 0.3s ease; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); font-family: inherit; margin-bottom: 8px; } .popular-content-section .tab-button:hover, .popular-content-section .popular-tab-button:hover { color: #333; background-color: #f8f9fa; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); } .popular-content-section .tab-button.active, .popular-content-section .popular-tab-button.active { background-color: #333; color: white; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); } /* 인기 컨텐츠 캐러셀 - 베이스 클래스 확장 */ /* 인기 컨텐츠 캐러셀 아이템 */ .popular-carousel-item { flex: 0 0 280px !important; display: flex !important; flex-direction: column !important; gap: 16px; min-width: 280px !important; overflow: hidden !important; cursor: pointer; } .popular-item-image { width: 100%; height: 160px; overflow: hidden; } .popular-item-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .popular-carousel-item:hover .popular-item-image img { transform: scale(1.05); } .popular-item-content { display: flex !important; flex-direction: column !important; gap: 12px; padding: 0; } .popular-item-meta { display: flex !important; justify-content: flex-start !important; align-items: center !important; font-size: 12px; } .popular-publisher { color: #1976d2 !important; font-weight: 600; } .popular-item-title h5 { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.4; color: #333; } .popular-item-title h5 a { color: #333; text-decoration: none; } .popular-item-excerpt { font-size: 13px; line-height: 1.5; color: #666; white-space: nowrap; } .popular-item-excerpt > * { margin: 0; width: 280px; overflow: hidden; text-overflow: ellipsis; } .popular-item-tags { display: flex !important; flex-wrap: wrap; gap: 6px; } .popular-tag { background: #f5f5f5; color: #666; border: none; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ } .popular-item-stats { display: flex !important; align-items: center !important; gap: 6px; font-size: 11px; color: #999; } .popular-item-stats i { font-size: 12px; } /* 캐러셀 네비게이션 버튼 */ .carousel-nav-btn { position: absolute; top: 80px; /* 썸네일 중앙 높이로 조정 */ transform: translateY(-50%); width: 40px; height: 40px; border: none; border-radius: 50%; background: white; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; z-index: 10; } .carousel-nav-btn:hover { background: #f8f9fa; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .carousel-nav-btn i { color: #666; font-size: 16px; } .carousel-nav-btn:hover i { color: #333; } .carousel-prev { left: -20px; /* 썸네일 왼쪽으로 이동 */ display: none; /* 첫 화면에서 숨김 */ } .carousel-next { right: -20px; /* 썸네일 오른쪽으로 이동 */ } /* =================================== 트렌드 키워드 섹션 스타일 =================================== */ /* 트렌드 키워드 섹션 */ .trend-keywords-section { margin-top: 56px; max-width: 1200px; margin-left: auto; margin-right: auto; padding: 0 24px; } .trend-keywords-container { background: transparent; border-radius: 0; border: none; padding: 0; box-shadow: none; } /* 트렌드 키워드 섹션만의 특별한 설정 (공통 베이스 클래스 사용) */ .trend-keywords-section .section-header { margin-bottom: 20px; } /* 트렌드 키워드 섹션의 카테고리 탭 */ .trend-keywords-section .category-tabs { background-color: transparent; border-bottom: none; } .trend-keywords-section .tabs-container { margin: 0; display: flex; align-items: center; gap: 16px; padding: 12px 0; flex-wrap: wrap; justify-content: flex-start; } .trend-keywords-section .tabs-container::-webkit-scrollbar { display: none; } .trend-keywords-section .tabs-container { scrollbar-width: none; -ms-overflow-style: none; } /* 트렌드 키워드 탭 버튼 스타일 */ .trend-keywords-section .tab-button, .trend-keywords-section .trend-tab-button { padding: 0 20px !important; font-size: 14px; font-weight: 500; color: #666; background: white; border: none; border-radius: 0; cursor: pointer; white-space: nowrap; transition: all 0.3s ease; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); font-family: inherit; margin-bottom: 8px; height: 40px; line-height: 40px; } .trend-keywords-section .tab-button:hover, .trend-keywords-section .trend-tab-button:hover { color: #333; background-color: #f8f9fa; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); } .trend-keywords-section .tab-button.active, .trend-keywords-section .trend-tab-button.active { background-color: #333; color: white; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); } /* 트렌드 키워드 캐러셀 - 베이스 클래스 확장 */ /* 트렌드 키워드 아이템 - 인기 컨텐츠 카드와 동일한 스타일 */ .trend-keyword-item { flex: 0 0 280px !important; display: flex !important; flex-direction: column !important; gap: 16px; min-width: 280px !important; overflow: hidden !important; cursor: pointer; } .trend-keyword-image { width: 100%; height: 160px; overflow: hidden; } .trend-keyword-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .trend-keyword-item:hover .trend-keyword-image img { transform: scale(1.05); } .trend-keyword-content { display: flex !important; flex-direction: column !important; gap: 12px; padding: 0; } .trend-keyword-meta { display: flex !important; justify-content: flex-start !important; align-items: center !important; font-size: 12px; } .trend-keyword-publisher { color: #1976d2 !important; font-weight: 600; } .trend-keyword-title h5 { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.4; color: #333; } .trend-keyword-title h5 a { color: #333; text-decoration: none; } .trend-keyword-excerpt { font-size: 13px; line-height: 1.5; color: #666; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .trend-keyword-tags { display: flex !important; flex-wrap: wrap; gap: 6px; } .trend-keyword-tag { background: #f5f5f5; color: #666; border: none; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ } .trend-keyword-stats { display: flex !important; align-items: center !important; gap: 6px; font-size: 11px; color: #999; } .trend-keyword-stats i { font-size: 12px; color: #fa751e; } /* 트렌드 캐러셀 네비게이션 - 베이스 클래스 확장 */ .trend-carousel-nav-btn { top: 80px; /* 썸네일 중앙 높이로 조정 */ } .trend-carousel-nav-btn i { color: #666; } .trend-carousel-nav-btn:hover i { color: #333; } .trend-carousel-prev { display: none; /* 첫 화면에서 숨김 */ } /* =================================== 밸런스 UP 섹션 스타일 =================================== */ /* 밸런스 UP 섹션 */ .balance-up-section { margin-top: 56px; max-width: 1200px; margin-left: auto; margin-right: auto; padding: 0 24px; } .balance-up-container { background: transparent; border-radius: 0; border: none; padding: 0; box-shadow: none; } /* 밸런스 UP 섹션만의 특별한 설정 (공통 베이스 클래스 사용) */ .balance-up-section .section-header { margin-bottom: 20px; } .balance-up-section .view-all { font-size: 14px; color: #fa751e; font-weight: 500; cursor: pointer; transition: color 0.3s ease; } .balance-up-section .view-all:hover { color: #e65100; } /* 밸런스 UP 섹션의 카테고리 탭 */ .balance-up-section .category-navigation { background: #f8f9fa; border-bottom: 1px solid #e9ecef; margin-bottom: 30px; position: relative; } .balance-up-section .tablist { display: flex; flex-wrap: nowrap; gap: 0; padding: 0; margin: 0; list-style: none; overflow-x: auto; scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* IE and Edge */ max-width: 1200px; margin: 0 auto; position: relative; justify-content: flex-start; /* 좌측 정렬 */ } .balance-up-section .tablist::-webkit-scrollbar { display: none; /* Chrome, Safari, Opera */ } .balance-up-section .tab { background: transparent; border: none; padding: 8px 12px; font-size: 15px; font-weight: 600; color: #888; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; position: relative; border-bottom: 3px solid transparent; min-width: 90px; /* text-align: center; → Bootstrap .text-center 클래스 사용으로 제거 */ font-family: Pretendard, sans-serif; line-height: 1.25; flex-shrink: 0; } .balance-up-section .tab:hover { background: #e9ecef; color: #333; } .balance-up-section .tab.active, .balance-up-section .tab[aria-selected="true"] { background: transparent; color: #333; border-bottom-color: #333; font-weight: 600; } .balance-up-section .tab.active::after, .balance-up-section .tab[aria-selected="true"]::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 1px; background: #fff; z-index: 1; } .balance-up-section .tab:focus { outline: none; } .balance-up-section .tab:not(.active):not([aria-selected="true"]) { background: transparent; color: #888; border-bottom-color: transparent; } .balance-up-section .tab:not(.active):not([aria-selected="true"]):hover { background: #f8f9fa; color: #333; } /* 밸런스 UP 캐러셀 - 베이스 클래스 확장 */ /* 밸런스 UP 콘텐츠 컨테이너 */ .balance-up-content-container { width: 100%; } /* 밸런스 UP 아이템 - 다른 섹션 카드와 동일한 스타일 */ .balance-up-item { flex: 0 0 280px !important; display: flex !important; flex-direction: column !important; gap: 16px; min-width: 280px !important; overflow: hidden !important; } .balance-up-image { width: 100%; height: 160px; overflow: hidden; } .balance-up-image img { width: 100%; height: 100%; object-fit: cover; } .balance-up-content { display: flex !important; flex-direction: column !important; gap: 12px; padding: 0; } .balance-up-meta { display: flex !important; justify-content: flex-start !important; align-items: center !important; font-size: 12px; } .balance-up-publisher { color: #1976d2 !important; font-weight: 600; } .balance-up-title h5 { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.4; color: #333; } .balance-up-title h5 a { color: #333; text-decoration: none; } .balance-up-excerpt { font-size: 13px; line-height: 1.5; color: #666; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .balance-up-tags { display: flex !important; flex-wrap: wrap; gap: 6px; } .balance-up-tag { background: #f5f5f5; color: #666; border: none; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; cursor: pointer; } .balance-up-stats { display: flex !important; align-items: center !important; gap: 6px; font-size: 11px; color: #999; } .balance-up-stats i { font-size: 12px; color: #fa751e; } /* 밸런스 UP 캐러셀 네비게이션 - 베이스 클래스 확장 */ .balance-carousel-nav-btn { top: 80px; /* 썸네일 중앙 높이로 조정 */ } .balance-carousel-nav-btn i { color: #666; } .balance-carousel-nav-btn:hover i { color: #333; } .balance-carousel-prev { display: none; /* 첫 화면에서 숨김 */ }