@charset "utf-8";


a { transition: all 0.4s ease;}
button { transition: all 0.4s ease;}

.m_br { display: none; }
@media only screen and (max-width: 767px) {
	.m_br { display: block; }
}

/* 준비중 */
.img_ready {display:flex;justify-content:center;align-items: center;margin:10rem 0;}
.img_ready .left img {width: 41.7rem;}
.img_ready .right {padding-left:2rem;}
.img_ready .right strong {line-height:1.2;font-size:4rem;color:#1d1d1d;font-weight: 300;}
.img_ready .right strong em {font-weight: 700;}
.img_ready .right p {margin-top:2.5rem;line-height:1.5;font-size:1.8rem;color:#767676;}
@media only screen and (max-width:1023px){
	.img_ready .left img {}
}
@media only screen and (max-width:767px){
	.img_ready {flex-direction: column;gap:4rem;text-align: center;}
	.img_ready .right strong em br {display: none;}
}



/**************************************/
/********** 공통 **********/
/**************************************/
[class*="g_title"] { --line-height: 0; position: relative; z-index: 1; font-size: 5.5rem; word-break: keep-all; font-weight: 700; }
[class*="g_title"] h4, .g_flex_box { perspective: 1000px; }
[class*="g_title"]::after {content: ''; position: absolute; bottom: 0; left: 50%; width: 1px; height: 10rem; background-color: #7f7f7f; z-index: -1; transform: scaleY(var(--line-height)); transform-origin: top;}

.g_title1 { padding-bottom:16.5rem; }
.g_title2 { padding-bottom:0; }
.g_title2::after {display: none;}
.g_title3 { padding-top:16.5rem; }
.g_title3::before {content: ''; position: absolute; top: 0; left: 50%; width: 1px; height: 10rem; background-color: #7f7f7f; z-index: -1; transform: scaleY(var(--line-height)); transform-origin: bottom;}
.g_title3::after {display: none;}



/**************************************/
/********** 인사말 (About) **********/
/**************************************/
.greet_wrap { padding-top:10rem; overflow: hidden; }
.greet_wrap h4 { line-height: 1.3; color: #222; font-weight: 400; letter-spacing: -0.05em; margin: 0; }
.greet_wrap h4 .quot0 { display: block; font-size: 4rem; font-weight: 600; margin-bottom: 4rem; }
.greet_wrap h4 .quot1 { display: block; color: #222; }
.greet_wrap h4 .quot2 { display: block; color: #222; }

.g_blur_fade { opacity: 0; filter: blur(15px); transform: translateY(30px); }
.g_blur_fade span { opacity: 0; filter: blur(15px); transform: translateY(30px); }
.line_mask { display: block; overflow: hidden; }
.line_mask > span { display: block; opacity: 0; }

.g_title1 .quot0, .g_title1 .quot3 { display: block; font-size: 4rem; color: #777; font-weight: 500; }
.g_title1 .quot0 { margin-bottom: 1.25rem; }
.g_title1 .quot3 { margin-top: 4rem; }
.g_title1 .quot1, .g_title1 .quot2 { color: #222; }

.g_sec1 { text-align: center; margin-bottom: 10rem; }
.g_sec1 .g_hero_img { display: inline-block; width: 45.3rem; max-width: 100%; aspect-ratio: 4/5; overflow: hidden; position: relative; margin-top: 5rem; }

.g_sec2 { text-align: center; margin: 0 auto 20rem; max-width: 140rem; }
.g_sec2 h4 { line-height: 1.3; font-size:4.7rem; }
.g_sec2 h4::after { display: none; }

.ani_text_stair { margin-top:8rem; }

.g_title_greet { font-size: 5.5rem; color: #666; font-weight: 400; line-height: 1.4; margin-bottom: 0.5rem; word-break: keep-all; }
.g_title_greet.gray_text { color: #222; margin-bottom: 8rem; }
.greet_desc_area p { font-size: 2rem; color: #666; line-height: 1.8; margin-bottom: 5rem; font-weight: 400; word-break: keep-all; }
.greet_desc_area p:last-child { margin-bottom: 0; }

/* 배려의 건축 */
.g_sec3 { text-align: center; margin: 0 auto 15rem; max-width: 140rem; position: relative; }
.g_sec3 .g_sec_title { font-size: 5.5rem; color: #666; font-weight: 400; margin-bottom: 2rem; }
.g_sec3 .line_v { width: 1px; height: 10rem; background: rgba(0,0,0,0.5); margin: 0 auto 6rem; }
.circle_roll_wrap { display: flex; justify-content: center; gap: 2rem; padding:0 3rem; }
.roll_item { width: 25%; aspect-ratio: 1/1; border: 1px solid #ccc; border-radius: 50%; display: flex; flex-direction: column; justify-content: center; align-items: center; background: #fff; position: relative; flex-shrink: 0; }
.roll_item.item1 { z-index: 4; }
.roll_item.item2 { z-index: 3; }
.roll_item.item3 { z-index: 2; }
.roll_item.item4 { z-index: 1; }
.roll_item .en { font-size: 2.5rem; color: #a7a7a7; margin-bottom: 0.5rem; letter-spacing: 0.05em; text-transform: uppercase; }
.roll_item .ko { font-size: 4rem; color: #666; font-weight: 400; }

.img_mask { position: relative; width: 100%; height: 100%; overflow: hidden; background: transparent; }
.img_mask img { width: 100%; height: 100%; object-fit: cover; transform-origin: center; will-change: transform; }

/* Section 4 */
.g_sec4 { position: relative; width: 100%; height: 100vh; overflow: hidden; background: #fff; }
.s4_part1 { position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 0; box-sizing: border-box; }
.math_wrap { display: flex; align-items: center; justify-content: center; gap: 2.5rem; margin-bottom: 5rem; }
.txt_iruda { font-size: 4.5rem; font-weight: 800; color: #000; letter-spacing: -0.05em; }
.txt_an { font-size: 15rem; font-weight: 400; color: #cdcdcd; line-height: 1; margin-top: -1.5rem; }
.plus_icon { position: relative; width: 7rem; height: 7rem; display: flex; justify-content: center; align-items: center; }
.plus_icon span { position: absolute; background: #ccc; display: block; }
.plus_icon .p_h { width: 100%; height: 4px; }
.plus_icon .p_v { height: 100%; width: 4px; }
.g_sec4 .g_s4_title { line-height: 1; font-size: 8.5rem; font-weight: 200; color: #a7a7a7; letter-spacing: -0.06rem; }

.s4_part2 { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; background: transparent; text-align: left; padding: 0; }
.s4_part2 .inner { width: 100%; max-width: 140rem; margin: 0 auto; padding: 0 2rem; }
.s4_line_h { width: 15.3rem; height: 1px; background: #000; margin-bottom: 8rem; }
.g_sec4 .s4_title2 { font-size: 4.5rem; font-weight: 800; color: #000; line-height: 1.2; letter-spacing: -0.05em; margin-bottom: 6rem; }
.g_sec4 .s4_title2 .d_block { display: block; }
.s4_desc p { font-size: 3rem; font-weight: 200; color: #464646; line-height: 1.5; margin-bottom: 0.5rem; letter-spacing: -0.02em; }

.s4_part3 { position: absolute; z-index: 3; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.s4_part3 .inner { width: 100%; max-width: 140rem; }
.s4_big_text { font-size: 6rem; font-weight: 800; color: #000; line-height: 1.3; letter-spacing: -0.05em; transform-origin: center; pointer-events: none; }
.s4_sub_text { font-size: 3rem; font-weight: 200; color: #464646; margin-top: 6rem; letter-spacing: -0.02em; }

.s4_part4 { position: absolute; z-index: 4; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.s4_part4 .inner { width: 100%; max-width: 140rem; }
.s4_final_text .reveal_text { overflow: hidden; padding-bottom: 0.5rem; margin-bottom: 0; }
.s4_final_text .reveal_text span { display: block; font-size: 4.5rem; font-weight: 800; color: #c0c0c0; line-height: 1.1; letter-spacing: -0.05rem; }
.s4_final_text .reveal_text:first-child span { font-weight: 800; color: #000; }

.s4_part5 { position: absolute; z-index: 5; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.s4_part5 .inner { perspective: 1540px; width: 100%; max-width: 140rem; }
.cube_text { transform-style: preserve-3d; }
.cube_text p { font-size: 3.5rem; line-height: 1.4; letter-spacing: -0.05rem; margin-bottom: 0.5rem; }
.cube_text .t1 { font-size: 5.5rem; font-weight: 800; color: #000; margin-bottom: 1.5rem; line-height:1; }
.cube_text .t1 span {  color: #a7a7a7; }
.cube_text .t2 { font-weight: 400; color: #a7a7a7; }

/* 가치관 & 인사말 공통 추가 스타일 */
.g_sec5 { background: #fff; /* padding: 15rem 0; */ position: relative; z-index: 10; }
.g_sec5 .v_quote_title { text-align: center; font-size: 3.5rem; color: #a7a7a7; font-weight: 300; line-height: 1.4; letter-spacing: -0.05rem; margin-bottom: 9rem; }
.g_sec5 .v_quote_title span { font-weight: 800; }

.v_mind_grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; max-width: 95rem; margin: 0 auto; padding-bottom:5rem; }
.mind_item { background: #f6f6f6; padding: 5rem 3rem 5rem 4rem; border-radius: 0.5rem; transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), background 0.4s ease, box-shadow 0.4s ease; border: 1px solid transparent; text-align: left; will-change: transform, opacity; }
.mind_item:hover { background: #fff; border-color: #eee; transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0,0,0,0.05); }
.mind_item .item_head { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; }
.mind_item .item_head i { font-size: 3.8rem; color: #c0c0c0; }
.mind_item .item_titles { display: flex; align-items: center; gap: 0.4rem; }
.mind_item .item_titles .en { font-size: 2.7rem; font-weight: 800; color: #000; letter-spacing: -0.02rem; }
.mind_item .item_titles .ko { font-size: 2.2rem; font-weight: 500; color: #444; position: relative; /* padding-left: 1.5rem; */ }
/* .mind_item .item_titles .ko::before { content: ''; position: absolute; left: 0; top: 50%; width: 1px; height: 1.8rem; background: #ddd; margin-top: -0.9rem; } */
.mind_item .item_desc { font-size: 1.8rem; font-weight: 400; color: #666; line-height: 1.6; letter-spacing: -0.02rem; /* margin-left:4.8rem; */ }

/* 신규 메시지 섹션 공통 */
.g_msg_sec { padding: 22rem 0; text-align: center; }
.g_msg_sec1 { background: #f6f6f6; }
.g_msg_sec2 { background: #fff; }
.g_msg_sec .reveal_text { overflow: hidden; }
.g_msg_sec .reveal_text span { display: block; font-size: 3.5rem; line-height: 1.6; color: #000; font-weight: 400; margin-bottom: 0.6rem; letter-spacing: -0.05rem; }
.g_msg_sec .msg_box.highlight .reveal_text span { font-size: 4rem; color: #000; font-weight: 800; margin-bottom: 1rem; }

/* 최종 클로징 통합 시퀀스 (순차 스크롤 레이아웃) */
.g_closing_wrap { position: relative; width: 100%; background: #fff; }
.g_closing_wrap .g_sec { position: relative; width: 100%; overflow: hidden; }
.g_msg_sec { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 10rem 0; text-align: center; }


@media only screen and (max-width: 1023px) {
	.g_msg_sec { padding: 15rem 0; }
	.g_msg_sec .msg_box p { font-size: 2.4rem; }
	.g_msg_sec .msg_box.highlight p { font-size: 2.8rem; }
}

@media only screen and (max-width: 1199px) {
	.roll_item .en { font-size: 2rem; }
}
@media only screen and (max-width: 1023px) {
	.greet_wrap { padding-top:6rem; }
	[class^="g_title"] { font-size: 3.5rem; }
	.g_title_greet { font-size: 3.8rem; margin-bottom: 8rem; }
	.greet_wrap h4 .quot0 { font-size: 3rem; }
	.g_title1 .quot0, .g_title1 .quot3 { font-size: 3rem; }
	.greet_desc_area p { font-size: 1.8rem; margin-bottom: 5rem; }
	.circle_roll_wrap { gap: 1rem; padding:0 2rem; }
	.roll_item .en { font-size: 1.6rem; }
	.roll_item .ko { font-size: 3.5rem; }
	.g_sec2 { margin: 0 auto 15rem; }
	.g_sec3 .g_sec_title { font-size: 3.5rem; }
	.txt_iruda { font-size: 5rem; }
	.txt_an { font-size: 10rem; }
	.plus_icon { width: 5rem; height: 5rem; }
	.g_s4_title { font-size: 5rem; }
	.s4_title2 { font-size: 4rem; margin-bottom: 5rem; }
	.s4_desc p { font-size: 1.8rem; }

	.mind_item .item_desc br { display: none; }
}
@media only screen and (max-width: 767px) {

	.g_sec1 { margin-bottom: 8rem; }
	.g_sec1 .g_hero_img { width: 80%; }
	.g_sec2 { margin-bottom: 12rem; }
	.g_sec2 h4 { font-size: 2.8rem; }
	.g_title_greet { font-size: 2.8rem; margin-bottom: 6rem; line-height: 1.5; }
	.greet_desc_area p { font-size: 1.6rem; margin-bottom: 4rem; }
	.g_sec3 { margin-bottom: 8rem; }
	.circle_roll_wrap { flex-wrap: wrap; align-items: center; gap: 2rem; padding:0; }
	.roll_item { width: calc(50% - 2rem); padding:0 1rem; }
	.roll_item .ko { font-size: 2.8rem; }

	.s4_part1 { padding-top: 6rem; padding-bottom: 12rem; }
	.math_wrap { flex-direction: column; gap: 2rem; }
	.txt_iruda { font-size: 4rem; }
	.txt_an { font-size: 8rem; margin-top: 0; }
	.plus_icon { width: 4rem; height: 4rem; }
	.g_s4_title { font-size: 3.5rem; }

	.s4_part2 { padding: 10rem 0; }
	.s4_line_h { margin-bottom: 4rem; }
	.s4_title2 { font-size: 2.8rem; margin-bottom: 4rem; }
	.s4_desc p { font-size: 1.6rem; }

	.mind_item { padding: 5rem 3rem 5rem 3rem;}
	.v_mind_grid { grid-template-columns: repeat(1, 1fr); }
}



/**************************************/
/********** 가치관 (Values) **********/
/**************************************/
.values_wrap { padding-top: 10rem; }
.v_sec { position: relative; width: 100%; max-width: 172rem; margin: 0 auto 10rem; text-align: center; }
.v_sec2 { margin: 0 auto 20rem; }
.v_sec3 { margin: 0 auto 20rem; }

.v_title_wrap { padding-bottom: 20rem; }
.v_title { font-size: 6rem; font-weight: 900; color: #111; letter-spacing: -0.02em; line-height: 1; }
.v_line_box { margin: 2rem auto; }

.v_intro_text { margin-top: 9rem; font-size: 5.5rem; color: #333; font-weight: 400; line-height: 1.3; letter-spacing: -0.05em; }
.v_intro_text p:nth-child(1) { color:#464646; }
.v_intro_text p:nth-child(2) { color:#949494; }

/* Section 1: Hero */
.v_hero_img_wrap { position: relative; width: 100%; margin-top: 10rem; }
.hero_mask { width: 100%; height: 123.1rem; position: relative; overflow: hidden; background: #000; }

/* 배경 이미지 (투명도 0.7) */
.hero_mask .bg_img { width: 100%; height: 100%; object-fit: cover; opacity: 0.7; pointer-events: none; }

/* 양옆 가로 영역 흰색 배경 가림막 (중앙 154rem 제외한 나머지 영역) */
.v_hero_img_wrap::before, .v_hero_img_wrap::after { content: ''; position: absolute; top: 0; width: calc((100vw - 155rem) / 2); height: 36.5rem; background: #fff; z-index: 5; }
@media (max-width: 1545px) { .v_hero_img_wrap::before, .v_hero_img_wrap::after { display: none; } }
.v_hero_img_wrap::before { left: 0; }
.v_hero_img_wrap::after { right: 0; }

.hero_overlay_text { position: absolute; left: 0; top: 0; right: 0; margin: 0 auto; max-width: 154rem; width: 100%; height: 100%; z-index: 10; }

/* 왼쪽 영역: 이미지가 투명도 1로 보여야 함 (clip-path 또는 별도 background 이미지 처리) */
.hero_overlay_text .left_glass { width: 100%; position: relative; display: flex; align-items: flex-start; padding-top: 34.5rem; padding-left:9.3rem; padding-bottom: 7rem; }
.hero_overlay_text .left_glass .img_cutout { position: absolute; top: -36.5rem; left: 0; width: 100%; height: calc(100% + 36.5rem); z-index: -1; backdrop-filter: brightness(1.43); -webkit-backdrop-filter: brightness(1.43); }
.hero_overlay_text .left_glass .ani_text_stair { padding-left: 9rem; padding-bottom:6.8rem; position: relative; z-index: 11; }

.hero_overlay_text .left_glass h4, .hero_overlay_text .left_glass p, .hero_overlay_text .right_content p { opacity: 0; transform: translateY(50px); }
.hero_overlay_text .left_glass h4 { font-size: 7.5rem; color: #fff; font-weight: 400; line-height: 0.95; margin: 0; }
.hero_overlay_text .left_glass p { font-size: 2.5rem; color: #fff; opacity: 0.95; margin-top: 3rem; font-weight: 300; letter-spacing: -0.2px; }

.hero_overlay_text .right_content { width: 100%; padding-left: calc(50% + 12.5rem); padding-top: 12rem; }
.hero_overlay_text .right_content p { font-size: 2rem; color: #fff; line-height: 1.8; margin-bottom: 7rem; word-break: keep-all; font-weight: 400; transform: translateY(30px); }
.hero_overlay_text .right_content p:last-child { margin-bottom: 0; }

/* Section 2: An & Values */
.big_char_an { font-size: 30rem; color: #e9e9e9; line-height: 1; margin: 20rem 0; }

.v_sub_intro { font-size: 5.5rem; font-weight: 400; color: #222; margin-top: 10rem; line-height: 1.3; }
.v_sub_intro p:nth-child(1) { color:#464646; }
.v_sub_intro p:nth-child(2) { color:#949494; }

.v_accordion_wrap { width: 100%; max-width: 154.1rem; margin: 10rem auto; }
/* 비활성화 상태: 4rem의 색상 바 형태 */
.v_acc_item { width: 100%; position: relative; height: 4.2rem; margin-bottom: 4rem; overflow: hidden; transition: 1s cubic-bezier(0.19, 1, 0.22, 1); }
.v_acc_item:last-child { margin-bottom: 0; }

/* 활성화 상태: 높이 제한을 풀어 내용이 다 보이게 함 */
.v_acc_item.on { height: 75rem; }

/* 비활성화 배경색 */
.v_acc01 { background-color: #8a8a8a; }
.v_acc02 { background-color: #b9b9b9; }
.v_acc03 { background-color: #eaeaea; }

.acc_img_box { width: 100%; position: relative; }
.acc_img_box .temp_img { aspect-ratio: 4/5; width: 100%; height: 0; opacity: 0; transition: height 1s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.8s ease; }
.acc_img_box .temp_img img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.9); }

/* 활성화 시 이미지 높이 61.8rem 고정 및 페이드 인 */
.v_acc_item.on .temp_img { height: 61.8rem; opacity: 1; }

/* 텍스트 포지션 제거 및 이미지 아래 배치 */
.acc_text { position: static; width: 100%; padding: 2rem 0; text-align: center; color: #111; transition: 0.8s ease; opacity: 0; transform: translateY(20px); }
.v_acc_item.on .acc_text { opacity: 1; transform: translateY(0); }

.acc_text h5 { line-height: 1; font-size: 3rem; font-weight: 600; margin: 0; letter-spacing: -0.02em; color: #333; }
.acc_text p { line-height: 1; font-size: 2rem; color: #666; margin-top: 1.5rem; }

/* Section 3: Work */
.v_work_grid { display: flex; gap: 0; width: 100%; margin-top:10rem; }
.work_item { flex: 1; position: relative; transition: 0.5s ease; }
.work_item:last-child { border-right: 0; }
.work_item .img_box { width: 100%; height: 61.8rem; overflow: hidden; border-radius: 0; }
.work_item .img_box .temp_img { width: 100%; height: 100%; transition: 0.8s cubic-bezier(0.19, 1, 0.22, 1); opacity: 0.3; }
.work_item .img_box .temp_img img { width: 100%; height: 100%; object-fit: cover; }
.work_item:hover { margin-top:2rem; }
.work_item:hover .img_box .temp_img { opacity: 1; transform: translateY(2rem) scale(1.05); }

.work_item .txt_box { padding: 4rem 3rem; text-align: left; }
.work_item .txt_box h5 { font-size: 2.5rem; font-weight: 800; color: #333; line-height: 1.1; text-transform: uppercase; }
.work_item .txt_box strong { display: block; font-size: 2rem; font-weight: 600; color: #666; margin-bottom: 3.5rem; }
.work_item .txt_box p { font-size: 1.8rem; color: #666; line-height: 1.6; margin-bottom: 6rem; word-break: keep-all; font-weight: 400; }
.work_item .txt_box ul { width: 60%; border-top: 1px solid #eee; padding-top: 6rem; }
.work_item .txt_box ul li { font-size: 1.8rem; color: #666; margin-bottom: 0.5rem; position: relative; padding-left: 1rem; }
.work_item .txt_box ul li::before { content: ''; position: absolute; left: 0; top: 12px; display: block; width: 5px; height: 1px; background-color: #b2b2b2; }
.work_item .txt_box ul li:last-child { margin-bottom: 0; }

/* Section 4: People */
.v_people_floating { position: relative; height: 90rem; width: 100%; overflow: hidden; background: #fff; cursor: default; display: flex; align-items: center; justify-content: center; }
.floating_bg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 60rem; height: 60rem; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.floating_bg .circle { position: absolute; border-radius: 50%; border: 1px solid #e0e0e0; transition: 0.5s ease; }
.circle1 { width: 100%; height: 100%; opacity: 0.8; }
.circle2 { width: 98.5%; height: 98.5%; opacity: 0.5; }
.circle3 { width: 97%; height: 97%; opacity: 0.3; }
.circle4 { width: 105%; height: 105%; opacity: 0.1; border-style: dashed; }

.floating_content { position: relative; z-index: 2; width: 100%; height: 100%; max-width: 140rem; margin: 0 auto; }
.float_item { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 1.5rem; transition: transform 0.3s ease; white-space: nowrap; }
.float_item i { font-size: 3.5rem; color: #999; line-height: 1; }
.float_item span { display: block; font-size: 3.5rem; color: #999; letter-spacing: -0.025em; }
.float_item:hover i { color: #333; }
.float_item:hover span { color: #333; }

.v_flashlight_area { position: relative; padding: 10rem 0; cursor: default; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48rem; }
.flashlight_inner { position: relative; width: fit-content; margin: 0 auto; cursor: none; }
.flashlight_text { font-size: 3.8rem; font-weight: 700; line-height: 1.6; word-break: keep-all; text-align: center; pointer-events: none; white-space: nowrap; }
.flashlight_text p:nth-child(odd) { font-weight: 600; }
.flashlight_text p:nth-child(even) { font-weight: 400; }
.base_text { color: #c1c1c1; position: relative; z-index: 1; }
.active_text { color: #333; position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 2; -webkit-mask-image: radial-gradient(circle at 50% 50%, black 0%, black 100px, transparent 100px); mask-image: radial-gradient(circle at 50% 50%, black 0%, black 100px, transparent 100px); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }

@media only screen and (max-width: 1023px) {
	.v_title { font-size: 4.5rem; }
	.v_intro_text { font-size: 2.22rem; }
	.hero_overlay_text { flex-direction: column; text-align: center; padding: 5rem 2rem; justify-content: center; }
	.hero_overlay_text .left, .hero_overlay_text .right { width: 100%; padding-left: 0; }
	.hero_overlay_text .left h4 { font-size: 3.5rem; }
	.hero_overlay_text .right p { font-size: 1.75rem; }
	.big_char_an { font-size: 15rem; }
	.v_sub_intro { font-size: 3rem; }
	.v_work_grid { flex-direction: column; }
	.v_people_floating { height: 60rem; }
	.floating_bg { width: 42rem; height: 42rem; }
	.float_item i { font-size: 3.2rem; }
	.float_item span { font-size: 1.8rem; }
	.flashlight_text { font-size: 2.5rem; }

	/* 모바일 Hero 레이아웃 덮어쓰기 */
	.v_hero_img_wrap { width: 100%; left: 0; transform: none; margin-top: 5rem; }
	.hero_mask { height: 55rem; aspect-ratio: 1 / 1.3; }
	.hero_overlay_text { flex-direction: column; text-align: center; padding: 0; justify-content: center; background: rgba(0,0,0,0.2); }
	.hero_overlay_text .left_glass { justify-content: center; width: 100%; padding: 4rem 2rem !important; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.2); }
	.hero_overlay_text .left_glass h4 { font-size: 3.5rem; }
	.hero_overlay_text .left_glass p { font-size: 1.8rem; margin-top: 2rem; }
	.hero_overlay_text .right_content { width: 100%; padding: 4rem 2rem !important; }
	.hero_overlay_text .right_content p { font-size: 1.6rem; margin-bottom: 2rem; }
}



/**************************************/
/********** 서비스 (Service) **********/
/**************************************/
.service_list_wrap { width: 100%; max-width: 172rem; margin: 0 auto; padding: 5rem 0 0; display: flex; flex-direction: column; gap: 20rem; }
.service_item { display: flex; align-items: flex-start; justify-content: space-between; gap: 5rem; }

.s_text { width: 40%; }
.tit_box { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 3rem; }
.tit_box .num { font-size: 5.5rem; font-weight: 400; color: #464646; line-height: 1; display: block; }
.tit_box h4 { font-size: 5rem; font-weight: 700; color: #111; line-height: 1.2; word-break: keep-all; margin: 0; }
.s_text .desc_box { font-size: 2.1rem; color: #444; line-height: 1.8; word-break: keep-all; font-weight: 400; }

.s_img { width: 60%; display: flex; gap: 2.5rem; margin-top:1rem; }
.s_img .img_wrap { flex: 1; aspect-ratio: 4/3; }
.s_img .img_wrap img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1400px) {
	.tit_box .num { font-size: 4rem; }
	.tit_box h4 { font-size: 4rem; }
	.s_text .desc_box { font-size: 1.8rem; }
}
@media (max-width: 1199px) {
	.service_item { gap: 4rem; }
}
@media (max-width: 1023px) {
	.service_list_wrap { gap: 8rem; }
	.service_item { flex-direction: column; gap: 4rem; }
	.s_text { width: 100%; }
	.s_img { width: 100%; }
}
@media (max-width: 767px) {
	.service_list_wrap { padding-top: 3rem; padding-bottom: 0; gap: 10rem; }
	.service_item { gap: 3rem; }
	.tit_box { gap: 1rem; margin-bottom: 2rem; }
	.tit_box .num { font-size: 3.2rem; }
	.tit_box h4 { font-size: 3.2rem; }
	.s_text .desc_box { font-size: 1.6rem; }
	.s_img { flex-direction: column; gap: 1.5rem; }

	.s_img .img_wrap:nth-child(2) { display: none; }
}



/**************************************/
/********** 복리후생 (Careers - Welfare) **********/
/**************************************/
.welfare_wrap { width: 100%; max-width: 172rem; margin: 0 auto; }
.welfare_list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5rem 4rem; }
.w_item { width: 100%; position: relative; border: 1px solid #ddd; background-color: #fff; display: flex; flex-direction: column; }
.w_img { width: 100%; position: relative; overflow: hidden; }
.w_img img { width: 100%; aspect-ratio: 4/3; display: block; object-fit: cover; transition: transform 0.8s ease; }
.w_item:hover .w_img img { transform: scale(1.05); }

.w_tit { padding: 4rem 2rem; text-align: center; flex: 1; display: flex; flex-direction: column; justify-content: center; max-width: 100%; }
.w_tit h5 { font-weight: 400; font-size: 3.4rem; color: #464646; margin-bottom: 1rem; letter-spacing: -0.05em; line-height: 1.2; word-break: keep-all; }
.w_tit p { font-size: 2rem; color: #666; letter-spacing: -0.02em; word-break: keep-all; line-height: 1.4; }

@media (max-width: 1199px) {
	.welfare_list { gap: 4rem 2rem; }
}
@media (max-width: 1023px) {
	.welfare_list { grid-template-columns: repeat(2, 1fr); gap: 4rem; }
	.w_tit { padding: 3rem 1.5rem; }
	.w_tit h5 { font-size: 3rem; margin-bottom: 0.8rem; }
	.w_tit p { font-size: 1.8rem; }
}
@media (max-width: 767px) {
	.welfare_list { grid-template-columns: 1fr; gap: 4rem; }
	.w_tit h5 { font-size: 2.8rem; }
}



/**************************************/
/********** 위치 (Location) **********/
/**************************************/
.location_wrap {  }
.location_list { display: flex; flex-wrap: wrap; gap: 10rem; align-items: flex-start; max-width: 172rem; margin: 0 auto; }
.location_item { width: calc(50% - 5rem); }

.office_info { margin-bottom: 5.5rem; }
.office_type { display: block; font-size: 1.4rem; color: #888; letter-spacing: 0.1em; font-weight: 500; margin-bottom: 1.5rem; }
.office_name { font-size: 5rem; font-weight: 400; color: #222; line-height: 1.2; margin-bottom: 4.5rem; }

.info_details { display: flex; flex-direction: column; gap: 3.5rem; }
.detail_item { }
.detail_item .label { font-size: 1.4rem; color: #aaa; letter-spacing: 0.1em; margin-bottom: 1rem; font-weight: 600; display: flex; align-items: center; gap: 0.8rem; }
.detail_item .label i { font-size: 1.8rem; color: #ccc; transition: 0.3s; }
.location_item:hover .detail_item .label i { color: #888; }
.detail_item .val { font-size: 2rem; color: #444; line-height: 1.6; word-break: keep-all; font-weight: 400; }

.flex_details { display: flex; gap: 6rem; flex-wrap: wrap; }

.map_area { margin-top: 6rem; width: 100%; aspect-ratio: 1/1; position: relative; }
.map_img_box { width: 100%; height: 100%; overflow: hidden; position: relative; background: #eee; }
.map_img_box img { width: 100%; height: 100%; object-fit: cover; transition: 0.6s ease; }
.map_img_box .root_daum_roughmap_landing .wrap_map { height: 100%; }
.map_img_box .cont { display: none; }
/*.location_item:hover .map_img_box img { transform: scale(1.05); }*/

.btn_view_map { position: absolute; right: 3rem; bottom: 3rem; z-index: 1; background: rgba(0,0,0,0.4); color: #fff; padding: 1.8rem 3rem; font-size: 1.3rem; letter-spacing: 0.1em; font-weight: 500; display: flex; align-items: center; gap: 1rem; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: 0.4s; }
.btn_view_map i { font-size: 1.6rem; }
.btn_view_map:hover { background: rgba(0,0,0,0.8); }

@media only screen and (max-width: 1300px) {
	.office_name { font-size: 4rem; }
	.detail_item .val { font-size: 1.8rem; }
}

@media only screen and (max-width: 1023px) {
	.location_item { width: 100%; }
	.flex_details { gap: 4rem; }
	.map_area { aspect-ratio: 1.2/1; }
}

@media only screen and (max-width: 767px) {
	.location_wrap { padding-top: 5rem; padding-bottom: 5rem; }
	.location_list { gap: 8rem; }
	.office_name { font-size: 3.2rem; margin-bottom: 3rem; }
	.detail_item .label { margin-bottom: 0.4rem; }
	.flex_details { flex-direction: column; gap: 3.5rem; }
	.map_area { aspect-ratio: 1/1; margin-top: 4rem; }
	.btn_view_map { right: 2rem; bottom: 2rem; padding: 1.5rem 2rem; font-size: 1.2rem; }
}



/**************************************/
/********** 조직도 (Organization Chart) **********/
/**************************************/
/* NEO ORG CHART - MODERN BLACK & WHITE AESTHETIC */
.neo_org_wrapper { width: 100%; background: #fff; }
.neo_org_wrapper::-webkit-scrollbar { height: 6px; }
.neo_org_wrapper::-webkit-scrollbar-thumb { background: #111; border-radius: 0; }
.neo_org_wrapper::-webkit-scrollbar-track { background: #eee; }

.neo_org_inner { display: flex; flex-direction: column; align-items: center; max-width: 1400px; width: 100%; margin: 0 auto; color: #111; position: relative; }

/* Lines Structure */
.v_line { width: 1px; background: #111; margin: 0 auto; z-index: 1; position: relative; transform-origin: top center; }
.v_line.h_60 { height: 6rem; }
.v_line.h_40 { height: 4rem; }
.v_line.h_100 { height: 20rem; }
.h_line { height: 1px; background: #111; width: 100%; margin: 0 auto; position: relative; z-index: 1; transform-origin: center center; }

/* General Typography inside Org */
.eyebrow { display: none; }
.neo_org_inner h2 { font-size: 3.6rem; font-weight: 800; letter-spacing: -0.05em; margin: 0; color: #111; }
.neo_org_inner h2 span { display: none; }
.neo_org_inner h3 { font-size: 2.4rem; font-weight: 800; letter-spacing: -0.04em; line-height: 1.3; margin-bottom: 0; }
.neo_org_inner p { display: none; }

/* Common Box Style */
.neo_box { padding: 2.5rem 3rem; width: 100%; border: 1px solid #111; box-sizing: border-box; position: relative; z-index: 2; background: #fff; }
.bg_dark { background: #efefef; color: #111; }
.bg_dark h3 { color: #111; }
.bg_dark p { color: #666; }
.bg_light { background: #fff; color: #111; }

/* Level 1 */
.neo_ceo { background: #efefef; border: 1px solid #111; padding: 3rem 6rem; text-align: center; width: 50rem; position: relative; z-index: 2; }
.neo_ceo img.ceo_logo { width: 23rem; vertical-align: middle; }
.neo_hub { width: 50rem; background: #fff; border: 3px solid #111; color: #111; position: relative; z-index: 2; }
.hub_item { padding: 3rem; border-bottom: 1px solid #ddd; }
.hub_item:last-child { border-bottom: none; }
.hub_item h3 { display: flex; justify-content: space-between; align-items: center; color: #111; font-size: 2.4rem; }
.hub_item h3 .loc { color: #999; font-size: 0.9em; font-weight: 400; }
.hub_item p { display: none; }

/* Level 2 */
.neo_lvl2 { width: 100%; max-width: 90rem; display: flex; flex-direction: column; position: relative; z-index: 2; }
.neo_lvl2 > .h_line { width: calc(100% - 30rem); }
.lvl2_flex { display: flex; justify-content: space-between; width: 100%; }
.lvl2_col { width: 30rem; display: flex; flex-direction: column; align-items: center; }
.lvl2_col .neo_box { text-align: center; }
.lvl2_center { flex: 1; display: flex; justify-content: center; }

/* Level 3 */
.neo_lvl3 { width: 100%; display: flex; flex-direction: column; align-items: center; position: relative; z-index: 2; }
.neo_lvl3_bar { width: calc(80% + 0.8rem); }
.neo_grid { display: flex; width: 100%; justify-content: space-between; gap: 1rem; }
.neo_col { flex: 1; display: flex; flex-direction: column; align-items: center; }
.title_box { padding: 3.5rem 2.5rem; min-height: 12rem; display: flex; flex-direction: column; justify-content: center; border-bottom: none; }
.title_box h3 { font-size: 2.1rem; line-height: 1.3; margin-bottom: 0; text-align: center; }
.title_box .eng_dept { display: block; font-size: 1.6rem; color: #999; margin-top: 5px; font-weight: 400; letter-spacing: 0; text-align: center; }

.neo_list { width: 100%; background: #fff; border: 1px solid #111; padding: 3.5rem 2.5rem; min-height: 25rem; display: flex; flex-direction: column; position: relative; z-index: 2; }
.neo_list ul { display: flex; flex-direction: column; gap: 1.8rem; }
.neo_list li { display: flex; align-items: center; gap: 1.2rem; font-size: 1.5rem; color: #333; font-weight: 500; letter-spacing: 0.05em; line-height: 1.5; }
.neo_list .num { background: #111; color: #fff; padding: 0.1rem 0.6rem; font-size: 1.35rem; font-weight: 800; }

@media only screen and (max-width: 1299px) {
	.title_box { padding: 2.5rem 1.5rem; min-height:14rem; }
}

/* 모바일 수직 배열 전환 */
@media only screen and (max-width: 1199px) {
	.neo_org_wrapper { overflow-x: visible; padding: 0 0 5rem 0; }
	.neo_org_inner { min-width: auto; width: 100%; }

	/* 연결 선 완전히 숨김 처리 */
	.v_line, .h_line { display: none; }

	/* Level 1 & Hub */
	.neo_ceo, .neo_hub { width: 100%; margin-bottom: 3rem; }

	/* Level 2 */
	.neo_lvl2 { margin-bottom: 3rem; }
	.lvl2_flex { flex-direction: column; gap: 3rem; }
	.lvl2_col { width: 100%; }
	.lvl2_center { display: none; }

	/* Level 3 */
	.neo_grid { flex-direction: column; gap: 3rem; }
	.title_box { min-height: auto; padding: 2.5rem; border: 3px solid #111; }
	.neo_list { min-height: auto; padding: 2.5rem; border-top: none; }
}

@media only screen and (max-width: 767px) {
	.neo_ceo { padding: 2.5rem; }
	.neo_ceo h2 { font-size: 2.6rem; }
	.neo_ceo h2 span { font-size: 1.8rem; }
	.hub_item { padding: 2rem; }
	.title_box { padding: 2rem; }
	.neo_list { padding: 2rem; }
}

