/* ALL 카테고리 전체 레이아웃 */ .all-category-layout { padding: 0 24px; /* base와 다른 padding 값 유지 */ } /* Blog. 전체 헤더 */ .all-header { margin-bottom: 40px; } .all-title { font-size: 32px; font-weight: 700; color: #333; margin: 0 0 16px 0; line-height: 1.2; } .all-description { font-size: 16px; color: #666; margin: 0; line-height: 1.5; } /* 최근 추천 게시물 섹션 - Bootstrap Container 사용 시 제거 예정 */ .recent-recommended-posts { margin-top: 40px; /* max-width, margin auto, padding은 Bootstrap Container로 대체 예정 */ } .recent-recommended-posts .section-title { display: flex; justify-content: space-between; align-items: center; font-size: 32px; font-weight: 700; color: #333; margin-bottom: 5px; padding-bottom: 12px; } /* 추천 게시물 통합 컨테이너 */ .recommended-container { /* 기본 스타일은 .base-widget 클래스 사용 권장 */ border: 1px solid #e9ecef; border-radius: 8px; background: white; overflow: hidden; } /* 추천 게시물 아이템 래퍼 */ .recommended-item-wrapper { position: relative; } /* 추천 게시물 아이템 - .base-widget-content 패딩 스타일 참고 가능 */ .recommended-item { display: flex; gap: 20px; padding: 24px; /* .base-widget-content는 16px */ background: white; /* .base-widget에서 상속 가능 */ transition: all 0.3s ease; cursor: pointer; align-items: flex-start; border: none; border-radius: 0; } .recommended-item:hover { background: #fafbfc; } /* 아이템 구분선 */ .item-divider { height: 1px; background: #f0f0f0; margin: 0; } /* 아이템 이미지 (왼쪽) */ .item-image { width: 240px; height: 200px; flex-shrink: 0; border-radius: 6px; overflow: hidden; } .item-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .recommended-item:hover .item-image img { transform: scale(1.05); } /* 아이템 콘텐츠 (중앙) */ .item-content { flex: 1; display: flex; flex-direction: column; gap: 8px; padding-right: 16px; } /* 아이템 공유 (오른쪽) */ .item-share { display: flex; align-items: flex-start; padding-top: 2px; } /* 카테고리 (주황색) */ .item-category { color: #fa751e; font-size: 13px; font-weight: 600; margin-bottom: 4px; } .item-title { font-size: 18px; font-weight: 700; color: #333; line-height: 1.4; margin: 0 0 8px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .item-excerpt { font-size: 14px; color: #666; line-height: 1.5; margin: 0 0 12px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .item-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; } .item-tags .tag { background: #f8f9fa; color: #666; font-size: 12px; font-weight: 500; padding: 4px 8px; border-radius: 10px; border: none; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ white-space: nowrap; transition: all 0.3s ease; } .item-tags .tag:hover { background: #007bff; color: white; } /* 메타 정보 */ .item-meta { display: flex; gap: 12px; align-items: center; font-size: 12px; color: #999; margin-top: auto; } .item-meta .date, .item-meta .views { color: #666; } /* 공유 버튼 (오른쪽) */ .share-button { width: 32px; height: 32px; border: none; border-radius: 50%; background: #f8f9fa; color: #666; font-size: 14px; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; } .share-button:hover { background: #e9ecef; color: #333; transform: scale(1.1); } /* =================================== 전체 카테고리 섹션 스타일 =================================== */ /* 전체 카테고리 게시물 섹션 */ .all-category-posts { max-width: 1200px; margin: 40px auto 0; padding: 0 24px; } /* 전체 카테고리 컨테이너 */ .all-category-container { border: 1px solid #e9ecef; border-radius: 8px; background: white; overflow: hidden; } /* 전체 카테고리 아이템 래퍼 */ .all-category-item-wrapper { position: relative; } /* 전체 카테고리 아이템 - 추천 게시물과 동일한 스타일 재사용 */ .all-category-item { display: flex; gap: 20px; padding: 24px; background: white; transition: all 0.3s ease; } .all-category-item:hover { background: #f8f9fa; } /* 전체 카테고리 로딩 상태 - 베이스 클래스 사용 */ .loading-state { color: #666; font-size: 16px; margin: 0; } .loading-spinner { /* 베이스 스피너 + 주황색 테마 사용 */ width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid #fa751e; border-radius: 50%; animation: base-spin 1s linear infinite; margin: 0 auto 16px; } /* 박우진 컬럼 로딩 상태 - 베이스 클래스 + 커스텀 패딩 */ .column-loading-state { /* text-align: center; → Bootstrap .text-center 클래스 사용으로 제거 */ padding: 80px 20px; color: #666; min-height: 320px; } .column-loading-state p { color: #666; font-size: 16px; font-weight: 500; margin: 0; } /* 전체 카테고리 에러 상태 */ .error-state { padding: 60px 20px; color: #666; } .retry-btn { margin-top: 16px; padding: 10px 20px; background: #fa751e; color: white; border: none; border-radius: 4px; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ transition: background 0.3s ease; } .retry-btn:hover { background: #e65100; } /* 전체 카테고리 더보기 버튼 */ .all-category-load-more-container { padding: 30px 20px; background: white; } #all-category-load-more-btn { padding: 12px 32px; background: #fa751e; color: white; border: none; border-radius: 25px; font-size: 14px; font-weight: 600; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ transition: all 0.3s ease; position: relative; overflow: hidden; } #all-category-load-more-btn:hover { background: #e65100; transform: translateY(-1px); } #all-category-load-more-btn:disabled { background: #ccc; cursor: not-allowed; transform: none; } /* 전체 카테고리 반응형 스타일 */ @media (max-width: 768px) { .all-category-posts { padding: 0 16px; margin-top: 24px; } .all-category-item { flex-direction: column; gap: 16px; padding: 16px; } } @media (max-width: 480px) { .all-category-item { padding: 12px; } } /* =================================== 개발 테크 섹션 스타일 =================================== */ /* 박우진 컬럼 섹션만의 특별한 설정 (공통 베이스 클래스 사용) */ .column-section .section-header { margin-bottom: 24px; } .column-section .section-title .highlight { color: #1976d2; } .column-section .view-all { color: #1976d2; } .column-section .view-all:hover { color: #1565c0; } /* 박우진 컬럼 캐러셀 - 베이스 클래스 확장 */ /* 박우진 컬럼 캐러셀 아이템 - 밸런스 UP과 동일한 스타일 */ .column-carousel-item { flex: 0 0 280px !important; display: flex !important; flex-direction: column !important; gap: 16px; min-width: 280px !important; overflow: hidden !important; } .column-item-image { width: 100%; height: 160px; overflow: hidden; } .column-item-image img { width: 100%; height: 100%; object-fit: cover; } .column-item-content { display: flex !important; flex-direction: column !important; gap: 12px; padding: 0; } .column-item-category { color: #1976d2; font-size: 13px; font-weight: 600; } .column-item-title h3 { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.4; color: #333; } .column-item-title h3 a { color: #333; text-decoration: none; } .column-item-excerpt { font-size: 13px; line-height: 1.5; color: #666; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .column-item-tags { display: flex !important; flex-wrap: wrap; gap: 6px; } .column-tag { background: #f5f5f5; color: #666; border: none; padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 500; /* cursor: pointer; - Bootstrap .btn 클래스에서 제공 */ } .column-item-meta { display: flex !important; align-items: center !important; gap: 6px; font-size: 11px; color: #999; } .column-item-meta .date, .column-item-meta .views { color: #666; } /* 박우진 컬럼 캐러셀 네비게이션 버튼 */ .column-carousel-nav-btn { position: absolute; top: 80px; /* 썸네일 중앙 높이로 조정 */ transform: translateY(-50%); width: 40px; height: 40px; background: white; border: none; border-radius: 50%; 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; } .column-carousel-nav-btn:hover { background-color: #1976d2; box-shadow: 0 4px 12px rgba(25, 118, 210, 0.3); } .column-carousel-nav-btn i { font-size: 14px; color: #333; transition: color 0.3s ease; } .column-carousel-nav-btn:hover i { color: white; } .column-carousel-prev { left: -20px; /* 썸네일 왼쪽으로 이동 */ display: none; /* 첫 화면에서 숨김 */ } .column-carousel-next { right: -20px; /* 썸네일 오른쪽으로 이동 */ } @media (max-width: 768px) { .column-section { padding: 60px 0; } .column-container { padding: 0 16px; } .column-section .section-title { font-size: 28px; } .column-section .section-description { font-size: 16px; } .column-carousel-wrapper { padding: 0 40px; } .column-carousel-items { gap: 16px; } .column-carousel-item { flex: 0 0 260px; min-width: 260px; } .column-item-title h3 { font-size: 15px; } .column-carousel-nav-btn { width: 36px; height: 36px; } .column-carousel-nav-btn i { font-size: 12px; } } @media (max-width: 480px) { .column-section { padding: 40px 0; } .column-section .section-title { font-size: 24px; } .column-section .section-description { font-size: 14px; } .column-carousel-wrapper { padding: 0 32px; } .column-carousel-items { gap: 12px; } .column-carousel-item { flex: 0 0 240px; min-width: 240px; } .column-item-image { height: 140px; } .column-item-content { padding: 12px; } .column-item-title h3 { font-size: 14px; } .column-item-tags { gap: 6px; } .column-tag { font-size: 10px; padding: 3px 6px; } .column-item-meta { font-size: 11px; } .column-carousel-nav-btn { width: 32px; height: 32px; } .column-carousel-nav-btn i { font-size: 11px; } } /* =================================== 새로운 카테고리 레이아웃 스타일 =================================== */