:root {
	--brand-color: #0b223a;
	--text-muted: #666666;
	--border-light: #e2e8f0;
}

/* ==========================================================================
   회사소개 / 연혁 (sub1/index1.php) 전용 스타일 레이아웃
   ========================================================================== */

#fullpage_sub1_wrapper .section {
	width: 100%;
	height: 100vh;
	background-color: #ffffff;
	box-sizing: border-box;
	padding-top: 80px !important;
	/* 헤더 80px 영역 침범 방지 마감선 고정 */
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.sub1_container {
	width: 1100px;
	/* ㄹ자 그리드 확보를 위해 가로폭을 1100px로 소폭 확장 */
	margin: 0 auto;
}

/* 서브페이지 대타이틀 스타일 양식 */
.sub1_container .sub1_section_title {
	font-size: 2.2rem;
	font-weight: 700;
	color: var(--brand-color);
	text-align: center;
	line-height: 1.4;
	margin-bottom: 50px;
	letter-spacing: -1px;
}

.sub1_section_title span {
	display: block;
	font-size: 1.05rem;
	color: #666666;
	font-weight: 500;
	margin-top: 8px;
	letter-spacing: 0;
}

/* [SECTION 1] 회사 소개말 상세 스타일 */
.sub1_container .intro_text_box {
	background-color: #f8fafc;
	border: 1px solid var(--border-light);
	border-radius: 6px;
	padding: 40px 50px;
	box-sizing: border-box;
}

.intro_text_box p {
	font-size: 1.1rem;
	color: #334155;
	line-height: 1.8;
	margin: 0 0 24px 0;
	text-align: justify;
	word-break: keep-all;
}

.intro_text_box p:last-of-type {
	margin-bottom: 35px;
}

.intro_text_box .intro_signature {
	text-align: right;
	border-top: 1px dashed #cbd5e1;
	padding-top: 20px;
}

.intro_signature span {
	display: block;
	font-size: 1.1rem;
	color: #64748b;
	margin-bottom: 4px;
}

.intro_signature strong {
	font-size: 1.3rem;
	color: var(--brand-color);
	font-weight: 700;
}

/* ==========================================================================
   [SECTION 2] 풀페이지 1화면 밀착 지그재그 타임라인 정의
   ========================================================================== */

#fullpage_sub1_wrapper .sub1_sec_history {
	height: 100vh !important;
	padding-top: 80px !important;
	box-sizing: border-box;
}

.sub1_container .sub1_section_title {
	margin-bottom: 25px !important;
}

.sub1_container .history_timeline_wrapper {
	position: relative;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
}

/* 개별 3열 블록 (33.333% 규격) */
.history_timeline_wrapper .timeline_block {
	position: relative;
	width: 33.333%;
	padding: 8px 18px 18px 18px;
	box-sizing: border-box;
	z-index: 2;
	border-top: 3px solid #cbd5e1;
	/* 기본 상단 수평선 */
}

/* 
   지그재그(ㄹ자) 수직선 및 누락선 수술적 교정
*/

/* 1. 홀수 행 우측 끝 (3, 9, 15번 블록) : 우측 하향 수직선 부여 */
.history_timeline_wrapper .timeline_block:nth-child(6n+3) {
	border-right: 3px solid #cbd5e1;
}

/* 2. 5행 3열(15번 블록: 2001년) 하단 빨간선 영역 보완 
      -> 우측 수직선을 타고 내려와 6행으로 넘어가는 연결 밑선을 그려줌 */
/* .history_timeline_wrapper .timeline_block:nth-child(15) {
	border-bottom: 3px solid #cbd5e1;
} */

/* 2. 짝수 행 좌측 끝 (4, 10, 16번 블록) : 좌측 하향 수직선 부여 */
.history_timeline_wrapper .timeline_block:nth-child(6n+4) {
	border-left: 3px solid #cbd5e1;
}

/* 년도 타이틀 폰트 및 라인 */
.timeline_block .timeline_year {
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--brand-color);
	margin-bottom: 4px;
	position: relative;
	display: inline-block;
}

.timeline_block .timeline_year::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 25px;
	height: 2px;
	background-color: var(--brand-color);
}

/* 상세 세부 내역 스타일 */
.timeline_block .timeline_details {
	margin: 0;
	padding: 0;
	list-style: none;
}

.timeline_details li {
	font-size: 0.82rem;
	color: #334155;
	line-height: 1.35;
	margin-bottom: 2px;
	word-break: keep-all;
}

.timeline_details li span {
	font-weight: 700;
	color: var(--brand-color);
	margin-right: 4px;
}

/* 선 위 포인트 노드(Dot) 위치 동기화 */
.timeline_block .timeline_node_dot {
	position: absolute;
	top: -8px;
	left: 15px;
	width: 12px;
	height: 12px;
	background-color: var(--brand-color);
	border: 2px solid #ffffff;
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--brand-color);
	z-index: 10;
}

/* ==========================================================================
   회사소개 / 연혁 순차적 등장 애니메이션 (Fade-in Up Motion)
   ========================================================================== */

/* 1. 기본 정적 대기 상태 (투명화 및 하향 대기) */
.sub1_sec_intro .sub1_section_title,
.sub1_sec_intro .intro_text_box,
.sub1_sec_history .sub1_section_title,
.sub1_sec_history .history_timeline_wrapper {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

/* 개별 연혁 블록 카드들의 초기 투명화 */
.sub1_sec_history .timeline_block {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

/* 2. [SECTION 1: 회사소개] 모션 발동 (.motion_start) */
.sub1_sec_intro.motion_start .sub1_section_title {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.1s;
}

.sub1_sec_intro.motion_start .intro_text_box {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.3s;
}

/* 3. [SECTION 2: 연혁] 모션 발동 (.motion_start) - 설립연도(1999년) 순서대로 등장 */

/* 타이틀 및 전체 틀 등장 */
.sub1_sec_history.motion_start .sub1_section_title {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.1s;
}

.sub1_sec_history.motion_start .history_timeline_wrapper {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.2s;
}

/* 연혁 개별 행(ROW) 역순 등장 (6행 -> 1행) */

/* ROW 6 (1999~2000) 가장 먼저 등장 */
.sub1_sec_history.motion_start .timeline_block:nth-child(16),
.sub1_sec_history.motion_start .timeline_block:nth-child(17),
.sub1_sec_history.motion_start .timeline_block:nth-child(18) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.3s;
}

/* ROW 5 (2001~2003) */
.sub1_sec_history.motion_start .timeline_block:nth-child(13),
.sub1_sec_history.motion_start .timeline_block:nth-child(14),
.sub1_sec_history.motion_start .timeline_block:nth-child(15) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.45s;
}

/* ROW 4 (2004~2006) */
.sub1_sec_history.motion_start .timeline_block:nth-child(10),
.sub1_sec_history.motion_start .timeline_block:nth-child(11),
.sub1_sec_history.motion_start .timeline_block:nth-child(12) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.6s;
}

/* ROW 3 (2007~2009) */
.sub1_sec_history.motion_start .timeline_block:nth-child(7),
.sub1_sec_history.motion_start .timeline_block:nth-child(8),
.sub1_sec_history.motion_start .timeline_block:nth-child(9) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.75s;
}

/* ROW 2 (2010~2012) */
.sub1_sec_history.motion_start .timeline_block:nth-child(4),
.sub1_sec_history.motion_start .timeline_block:nth-child(5),
.sub1_sec_history.motion_start .timeline_block:nth-child(6) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.9s;
}

/* ROW 1 (2013~2024) 가장 마지막에 등장 */
.sub1_sec_history.motion_start .timeline_block:nth-child(1),
.sub1_sec_history.motion_start .timeline_block:nth-child(2),
.sub1_sec_history.motion_start .timeline_block:nth-child(3) {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 1.05s;
}