@charset "utf-8";

/* ===================================================================
   common.css — 헤더, 모바일메뉴, 서브비주얼, 공통 레이아웃
   =================================================================== */

/* ----- CSS 변수 ----- */
:root{
    --color: #0066ff;
    --bar: 1px solid #E5E5EC;
    --fs42: 42px;   --fs38: 38px;   --fs32: 32px;
    --fs28: 28px;   --fs24: 24px;   --fs22: 22px;
    --fs20: 20px;   --fs18: 18px;   --fs14: 14px;
}

/* ----- Reset & Base ----- */
*, *::before, *::after{margin: 0; padding: 0; box-sizing: border-box;}
html{font-size: 62.5%;}
body{font-family: 'Pretendard';font-size: 16px; color: #333; line-height: 160%; -webkit-font-smoothing: antialiased;}
a{text-decoration: none; color: inherit;}
ul, ol, li{list-style: none;}
img{border: 0; vertical-align: top;}
button{border: 0; background: none; cursor: pointer; font-family: inherit;}

/* ----- 공통 유틸리티 ----- */
.all_wrap{overflow: hidden; position: relative;}
.width{width: 92%; max-width: 1500px; margin: 0 auto;}
.common{padding: 140px 0;}
.pc{display: block;}
.mob{display: none;}
.label{display: inline-block; font-family: 'Outfit', sans-serif; font-size: 16px; font-weight: 500; color: var(--color, #0066ff); letter-spacing: 2px; line-height: 100%; margin-bottom: 16px;}

/* ===================================================================
   관리자 퀵메뉴
   =================================================================== */
.main_admin{position: fixed; top: 0; right: 0; z-index: 10000; display: flex; gap: 0;}
.main_admin li a{display: block; padding: 8px 16px; font-size: 12px; color: #fff; background: #333;}
.main_admin li:nth-child(2) a{background: var(--color, #0066ff);}
.main_admin li:last-child a{background: #c00;}


/* ===================================================================
   PC 헤더  (고정, 투명 → 스크롤시 불투명)
   =================================================================== */
#header{position: fixed; top: 0; left: 0; width: 100%; z-index: 9000; background: #fff; border-bottom: 1px solid #eee;}
#header .head_menu{display: flex; align-items: center; justify-content: space-between; height: 100px;}

/* 로고 */
#header .logo{flex-shrink: 0;}
#header .logo a{display: inline-block;}
#header .logo img{height: 48px; width: auto;}
#header .logo .logo_w{display: none;}
#header .logo .logo_c{display: block;}

/* 스크롤시 */
#header.scrolled{box-shadow: 0 2px 12px rgba(0,0,0,0.06);}
#header.scrolled .head_menu{height: 80px;}

/* 1차 메뉴 */
.main_menu{display: flex; gap: 0; height: 100%;}
.main_menu > .dept1{position: relative; text-align: center; width: 140px;}
.main_menu > .dept1 > a{display: block; font-size: var(--fs18, 18px); font-weight: 500; color: #333; line-height: 100px; transition: color 0.3s, line-height 0.3s;}
#header.scrolled .main_menu > .dept1 > a{line-height: 80px;}
.main_menu > .dept1 > a:hover,
.main_menu > .dept1 > a.on,
.main_menu > .dept1 > a.active{color: var(--color, #0066ff);}

/* 서브메뉴 — 모던 카드 + 내부 pill hover (Linear/Notion 스타일) */
.main_menu .sub_menu{position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(10px); min-width: 190px; width: max-content; padding: 7px; background: #fff; border: 1px solid #f0f0f0; border-radius: 14px; display: block; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;}
.main_menu .dept1:hover .sub_menu{opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);}
.main_menu .sub_menu .dept2{padding: 0;}
.main_menu .sub_menu .dept2 + .dept2{margin-top: 2px;}
.main_menu .sub_menu .dept2 a{display: block; padding: 9px 16px; border-radius: 8px; font-size: 14.5px; color: #555; white-space: nowrap; text-align: center; line-height: 140%; transition: background 0.2s ease, color 0.2s ease;}
.main_menu .sub_menu .dept2 a:hover,
.main_menu .sub_menu .dept2 a.on{color: var(--color, #0066ff); background: #f4f6f8; font-weight: 600;}

/* 풀드롭 배경 제거 (개별 드롭으로 전환) */
.gnb_bg{display: none;}

/* 햄버거 버튼 (PC) */
.menu_bar{display: flex; align-items: center; justify-content: center; width: 30px; height: 30px;}
.menu_bar i{font-size: 28px; color: #333;}


/* ===================================================================
   퀵메뉴 (PC 고정 우측)
   =================================================================== */
.quick_menu{position: fixed; right: 20px; top: 50%; transform: translateY(-50%); width: 76px; background: #fff; border: 1px solid #e5e5e5; z-index: 100; display: flex; flex-direction: column;}
.quick_label{padding: 14px 0; background: #1a1a1a; color: #fff; text-align: center; font-family: 'Outfit', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; line-height: 100%;}
.quick_item{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 16px 8px; border-top: 1px solid #e5e5e5; color: #555; transition: background 0.3s, color 0.3s;}
.quick_item i{font-size: 22px; color: #555; transition: color 0.3s;}
.quick_item span{font-size: 12px; color: #555; line-height: 100%; transition: color 0.3s;}
.quick_item:hover{background: #f8f8f8;}
.quick_item:hover i, .quick_item:hover span{color: var(--color);}
.quick_top{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 14px 8px; background: #1a1a1a; color: #fff; border-top: 1px solid #e5e5e5; transition: background 0.3s;}
.quick_top i{font-size: 16px; color: #fff;}
.quick_top span{font-family: 'Outfit', sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 1px; color: #fff; line-height: 100%;}
.quick_top:hover{background: var(--color);}


/* ===================================================================
   PC 사이트맵 (전체메뉴 오버레이)
   =================================================================== */
.menu_open{position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: #fafafa; z-index: 9500; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity 0.35s;}
.menu_open.on{opacity: 1; visibility: visible;}
.menu_bg{display: none;}

.site_map_wrap{padding: 50px 0 80px;}
.site_map_top{display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; padding-bottom: 30px; border-bottom: 1px solid #eaeaea;}
.site_map_top .logo{display: block;}
.site_map_top .logo img{height: 32px; width: auto;}
.menu_close{width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 20px; color: #999; cursor: pointer; transition: all 0.3s;}
.menu_close:hover{color: #222; transform: rotate(90deg);}

.site_map{display: flex; flex-wrap: wrap; gap: 28px 2%; padding: 50px 0; counter-reset: site;}
.site_map > .dept1{width: calc((100% - 6%) / 4); padding: 36px 30px 30px; background: #fff; border: 1px solid #ececec; border-radius: 18px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); position: relative; overflow: hidden; counter-increment: site; opacity: 0; transform: translateY(16px); transition: opacity 0.5s, transform 0.5s, box-shadow 0.35s, border-color 0.35s, background 0.35s;}
.site_map > .dept1::before{content: counter(site, decimal-leading-zero); position: absolute; top: 22px; right: 26px; font-size: 13px; font-weight: 700; color: #ccc; letter-spacing: 1px; transition: color 0.3s;}
.site_map > .dept1:hover{border-color: var(--color, #0066ff); box-shadow: 0 14px 32px rgba(0, 102, 255, 0.12); transform: translateY(-6px);}
.site_map > .dept1:hover::before{color: var(--color, #0066ff);}
.menu_open.on .site_map > .dept1{opacity: 1; transform: translateY(0);}
.menu_open.on .site_map > .dept1:hover{transform: translateY(-6px);}
.menu_open.on .site_map > .dept1:nth-child(1){transition-delay: 0.08s;}
.menu_open.on .site_map > .dept1:nth-child(2){transition-delay: 0.14s;}
.menu_open.on .site_map > .dept1:nth-child(3){transition-delay: 0.2s;}
.menu_open.on .site_map > .dept1:nth-child(4){transition-delay: 0.26s;}
.menu_open.on .site_map > .dept1:nth-child(5){transition-delay: 0.32s;}
.menu_open.on .site_map > .dept1:nth-child(6){transition-delay: 0.38s;}
.menu_open.on .site_map > .dept1:nth-child(7){transition-delay: 0.44s;}
.menu_open.on .site_map > .dept1:nth-child(8){transition-delay: 0.5s;}
.site_map > .dept1 > a{display: block; font-size: var(--fs20, 20px); font-weight: 700; color: #222; padding-bottom: 20px; margin-bottom: 18px; border-bottom: 1px solid #eee; line-height: 140%; transition: color 0.3s;}
.site_map > .dept1:hover > a{color: var(--color, #0066ff);}
.site_menu{display: flex; flex-direction: column; gap: 4px;}
.site_menu .dept2 a{display: flex; align-items: center; gap: 8px; padding: 8px 10px; font-size: 15px; color: #777; line-height: 140%; border-radius: 8px; transition: all 0.2s;}
.site_menu .dept2 a::before{content: ''; width: 4px; height: 4px; border-radius: 50%; background: #ddd; flex-shrink: 0; transition: background 0.2s;}
.site_menu .dept2 a:hover{background: rgba(0, 102, 255, 0.06); color: var(--color, #0066ff); padding-left: 14px;}
.site_menu .dept2 a:hover::before{background: var(--color, #0066ff);}

.site_foot{padding-top: 30px; border-top: 1px solid #eaeaea;}
.site_login{display: flex; gap: 20px;}
.site_login a{font-size: 14px; color: #aaa; transition: color 0.3s;}
.site_login a:hover{color: #222;}


/* ===================================================================
   모바일 헤더
   =================================================================== */
.mobile_head{display: none; position: fixed; top: 0; left: 0; width: 100%; height: 60px; background: #fff; z-index: 9000; box-shadow: 0 1px 6px rgba(0,0,0,0.06); align-items: center; justify-content: space-between; padding: 0 4%;}
.mobile_head .mobile_logo img{height: 40px; width: auto;}

/* 모바일 햄버거 */
.mobile_open{display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 26px; height: 26px;}
.mobile_open span{display: block; width: 100%; height: 2px; background: #333;}

/* 모바일 사이드 메뉴 */
.mobile_menu{position: fixed; top: 0; left: -320px; width: 300px; height: 100vh; background: #fff; z-index: 9600; transition: left 0.35s; overflow-y: auto;}
.mobile_menu.on{left: 0;}
.mob_bg{position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0,0,0,0.5); z-index: 9500; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s;}
.mob_bg.on{opacity: 1; visibility: visible;}

/* 모바일 메뉴 상단 */
.mob_top{display: flex; align-items: center; justify-content: space-between; padding: 20px 24px;}
.mob_top .mob_logo img{height: 28px; width: auto;}
.mobile_close{font-size: 18px; color: #333; line-height: 100%; letter-spacing: -1px;}

/* 모바일 로그인 영역 */
.mob_login{padding: 16px 24px; background: #f8f8f8;}
.mob_login span{display: block; font-size: 14px; color: #555; margin-bottom: 10px;}
.mob_login_btn{display: flex; gap: 8px;}
.mob_login_btn a{display: inline-block; padding: 8px 16px; font-size: 13px; border: 1px solid #ddd; color: #555;}

/* 모바일 네비게이션 */
.mob_nav{padding: 10px 0;}
.mob_nav .top_menu{display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; font-size: 16px; font-weight: 600; color: #333; border-bottom: 1px solid #f0f0f0;}
.mob_nav .top_menu:not(.no_sub)::after{content: '+'; font-size: 20px; font-weight: 300; color: #999; transition: transform 0.3s;}
.mob_nav .top_menu.on:not(.no_sub)::after{transform: rotate(45deg);}
.mob_nav .sub_menu{display: none; background: #fafafa;}
.mob_nav .sub_menu li a{display: block; padding: 12px 24px 12px 36px; font-size: 14px; color: #666; border-bottom: 1px solid #f0f0f0;}
.mob_nav .sub_menu li a:hover,
.mob_nav .sub_menu li a.on{color: var(--color, #0066ff);}


/* ===================================================================
   서브 비주얼
   =================================================================== */
.sub_visual{position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 180px 0 80px;}
.sub_visual::before{content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4);}
.sub_top_text{position: relative; z-index: 1; text-align: center;}
.sub_top_text h3{font-size: 4.2rem; font-weight: 600; color: #fff; line-height: 130%;}

/* 브레드크럼 */
.lnb{position: relative; z-index: 1; margin-top: 24px;}
.lnb .lnb_map{display: flex; align-items: center; gap: 0; background: rgba(0,0,0,0.35); padding: 10px 24px;}
.lnb_map .home{display: flex; align-items: center;}
.lnb_map .home i{font-size: 16px; color: rgba(255,255,255,0.8);}
.lnb_map .dep,
.lnb_map .dep2{position: relative; padding-left: 24px; margin-left: 12px; font-size: 14px; color: rgba(255,255,255,0.7); line-height: 100%;}
.lnb_map .dep::before,
.lnb_map .dep2::before{content: '>'; position: absolute; left: 0; top: 50%; transform: translateY(-50%); font-family: 'SUIT', sans-serif; font-weight: 200; font-size: 12px; color: rgba(255,255,255,0.5);}
.lnb_map .dep2{color: #fff;}

/* 서브 네비게이션 */
.sub_nav{border-bottom: 1px solid #e5e5e5;}
.sub_nav_wrap{display: flex; align-items: stretch;}
.sub_nav_home{display: flex; align-items: center; justify-content: center; width: 56px; background: var(--color, #0066ff); color: #fff; font-size: 18px; flex-shrink: 0;}
.sub_nav_dep{position: relative; border-right: 1px solid #e5e5e5; width: 240px; flex-shrink: 0;}
.sub_nav_btn{display: flex; align-items: center; width: 100%; padding: 0 24px; height: 56px; font-size: 15px; font-weight: 500; color: #333; background: none; border: 0; cursor: pointer; font-family: inherit; white-space: nowrap; justify-content: space-between;}
.sub_nav_btn i{font-size: 12px; color: #aaa; transition: transform 0.2s;}
.sub_nav_dep.open .sub_nav_btn i{transform: rotate(180deg);}
.sub_nav_drop{display: none; position: absolute; top: 100%; left: 0; width: 100%; background: #fff; border: 1px solid #e5e5e5; border-top: 0; z-index: 100; box-shadow: 0 4px 12px rgba(0,0,0,0.06);}
.sub_nav_dep.open .sub_nav_drop{display: block;}
.sub_nav_drop a{display: block; padding: 14px 24px; font-size: 14px; color: #666; transition: all 0.15s;}
.sub_nav_drop a:hover, .sub_nav_drop a.on{background: #f5f7f9; color: var(--color, #0066ff); font-weight: 600;}


/* ===================================================================
   메인 비주얼 — Split Hero (좌: 텍스트 / 우: 미디어)
   =================================================================== */
.visual{position: relative; margin-top: 100px; background: #fff; overflow: hidden; z-index: 3;}
.visualSwiper{height: 720px;}
.visualSwiper .swiper-wrapper, .visualSwiper > .swiper-slide{height: 100%;}
.visualSwiper .swiper-slide{display: flex; align-items: stretch;}

/* 좌측 — 텍스트 영역 (좌측 패딩은 .width 컨테이너 좌측 엣지와 정렬) */
.visual_left{width: 50%; padding: 0 6% 0 max(4vw, calc((100vw - 1500px) / 2)); display: flex; flex-direction: column; justify-content: center; background: #fff; position: relative; z-index: 2;}
.visual_label{display: inline-flex; align-items: center; gap: 12px; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); font-weight: 700; color: var(--color); letter-spacing: 3px; text-transform: uppercase; margin-bottom: 32px; line-height: 100%;}
.visual_label b{font-weight: inherit;}
.visual_label em{display: inline-block; width: 24px; height: 1px; background: currentColor; opacity: 0.7;}
.visual_left h2{font-size: 76px; font-weight: 800; color: #111; line-height: 115%; letter-spacing: -2.5px; margin-bottom: 32px; word-break: keep-all;}
.visual_left p{font-size: 17px; color: #666; line-height: 175%; margin-bottom: 48px;}

/* 버튼 그룹 (Primary + Outline) */
.visual_btns{display: flex; gap: 10px; align-items: center;}
.visual_btn{display: inline-flex; align-items: center; gap: 10px; padding: 17px 32px; border-radius: 100px; font-size: 15px; font-weight: 600; letter-spacing: 0.2px; line-height: 100%; transition: all 0.3s; white-space: nowrap;}
.visual_btn.primary{background: #111; color: #fff; border: 1px solid #111;}
.visual_btn.primary:hover{background: var(--color); border-color: var(--color); color: #fff;}
.visual_btn.outline{background: #fff; color: #111; border: 1px solid #d8d8d8;}
.visual_btn.outline:hover{border-color: #111;}
.visual_btn i{font-size: 16px; transition: transform 0.3s;}
.visual_btn:hover i{transform: translateX(4px);}

/* 슬라이드 텍스트 fadeUp 애니메이션 (공통: 활성 슬라이드 내 .fade_up 요소를 순차 등장) */
.swiper-slide .fade_up{opacity: 0; transform: translateY(24px); transition: opacity 0.8s ease, transform 0.8s ease;}
.swiper-slide-active .fade_up{opacity: 1; transform: translateY(0);}
.swiper-slide-active .fade_up:nth-child(1){transition-delay: 0.2s;}
.swiper-slide-active .fade_up:nth-child(2){transition-delay: 0.35s;}
.swiper-slide-active .fade_up:nth-child(3){transition-delay: 0.5s;}
.swiper-slide-active .fade_up:nth-child(4){transition-delay: 0.65s;}

/* 우측 — 미디어 영역 */
.visual_right{width: 50%; position: relative; overflow: hidden; background: #111;}
.visual_bg{position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.visual_bg img{position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}  /* visual 내부 예외 */
.visual_bg video{width: 100%; height: 100%; object-fit: cover;}  /* video는 img 규칙 예외 */
.visual_bg.jarallax{z-index: 0;}

/* 우상단 — 카운터 */
.visual_counter{position: absolute; top: 48px; right: 48px; z-index: 10; display: flex; align-items: baseline; gap: 8px; font-family: 'Outfit', sans-serif; color: #fff; line-height: 100%;}
.visual_counter .visual_current{font-size: 28px; font-weight: 700;}
.visual_counter em{font-style: normal; font-size: 16px; color: rgba(255,255,255,0.4); font-weight: 300;}
.visual_counter .visual_total{font-size: 16px; color: rgba(255,255,255,0.6); font-weight: 400;}

/* 우하단 — 썸네일 페이지네이션 (이미지 / MP4 / 유튜브) */
.visual_thumbs{position: absolute; bottom: 48px; right: 48px; z-index: 10; width: 240px;}
.visualThumbsSwiper .swiper-slide{aspect-ratio: 16/10; overflow: hidden; cursor: pointer; opacity: 0.45; transition: opacity 0.3s, border-color 0.3s; border: 2px solid rgba(255,255,255,0.3); position: relative; background: #000; border-radius: 4px;}
.visualThumbsSwiper .swiper-slide:hover{opacity: 0.75;}
.visualThumbsSwiper .swiper-slide-thumb-active{opacity: 1; border-color: #fff;}
.visualThumbsSwiper .swiper-slide img{width: 100%; height: 100%; object-fit: cover;}
.visualThumbsSwiper .swiper-slide video{position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}  /* 썸네일 video 예외 */
.visualThumbsSwiper .swiper-slide .visual_thumb_yt{position: absolute; top: 0; left: 0; width: 100%; height: 100%;}

/* 좌측 하단 — 화살표 (좌측 정렬은 .width 컨테이너 좌측 엣지와 동일) */
.visual_nav{position: absolute; bottom: 48px; left: max(4vw, calc((100vw - 1500px) / 2)); z-index: 10; display: flex; gap: 8px;}
.visual_prev, .visual_next{width: 48px; height: 48px; border: 1px solid #e0e0e0; background: #fff; display: flex; align-items: center; justify-content: center; transition: all 0.3s; cursor: pointer; border-radius: 50%;}
.visual_prev:hover, .visual_next:hover{background: var(--color); border-color: var(--color);}
.visual_prev:hover span, .visual_next:hover span{color: #fff;}
.visual_prev span, .visual_next span{font-family: 'SUIT', sans-serif; font-size: 18px; font-weight: 200; color: #555; line-height: 100%;}


/* ===================================================================
   마키 트랙 (히어로 바로 아래)
   =================================================================== */
.marquee_track{overflow: hidden; padding: 30px 0;}
.marquee_inner{display: flex; gap: 60px; white-space: nowrap; animation: marqueeScroll 20s linear infinite;}
.marquee_inner span{font-family: 'Outfit', sans-serif; font-size: 80px; font-weight: 600; color: #f7f7f7; line-height: 100%; flex-shrink: 0;}

@keyframes marqueeScroll{
    0%{transform: translateX(0);}
    100%{transform: translateX(-50%);}
}


/* ===================================================================
   ABOUT (m2_about)
   =================================================================== */
.m2_wrap{display: flex; justify-content: space-between; gap: 5%;}
.m2_left{width: 40%;}
.m2_right{width: 55%;}
.m2_label{display: inline-block; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); font-weight: 700; color: var(--color); letter-spacing: 3px; margin-bottom: 32px; line-height: 100%;}
.m2_left h2{font-size: 48px; font-weight: 800; color: #111; line-height: 130%; letter-spacing: -1.5px;}
.m2_desc{font-size: 17px; color: #555; line-height: 175%; margin-bottom: 80px; word-break: keep-all;}
.m2_about .box_wrap{display: flex; gap: 3%;}
.m2_about .box{width: calc((100% - 6%) / 3); padding-top: 24px; border-top: 1px solid #111;}
.m2_about .box strong{display: block; font-family: 'Outfit', sans-serif; font-size: 56px; font-weight: 800; color: #111; line-height: 100%; margin-bottom: 16px; letter-spacing: -1px;}
.m2_about .box p{font-size: var(--fs14, 14px); color: #888; line-height: 150%;}


/* ===================================================================
   WHY US (m3_whyus) — 강점 카드 4x2 그리드
   =================================================================== */
.m3_top{display: flex; justify-content: space-between; align-items: flex-end; gap: 5%; margin-bottom: 70px;}
.m3_top_left{flex: 1;}
.m3_label{display: inline-block; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); font-weight: 700; color: var(--color); letter-spacing: 3px; margin-bottom: 32px; line-height: 100%;}
.m3_top_left h2{font-size: 48px; font-weight: 800; color: #111; line-height: 130%; letter-spacing: -1.5px;}
.m3_top_right{display: flex; align-items: center; gap: 28px; flex-shrink: 0;}
.m3_meta{font-size: var(--fs14, 14px); color: #888;}
.m3_more{display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: #111; transition: color 0.3s;}
.m3_more i{font-size: 16px; transition: transform 0.3s;}
.m3_more:hover{color: var(--color);}
.m3_more:hover i{transform: translateX(4px);}

.m3_whyus .box_wrap{display: flex; flex-wrap: wrap; border-bottom: 1px solid #e5e5e5;}
.m3_whyus .box{width: 25%; padding: 36px 28px 40px 0; border-top: 1px solid #e5e5e5; transition: background 0.3s;}
.m3_whyus .box:not(:nth-child(4n)){padding-right: 32px;}
.m3_box_top{display: flex; justify-content: space-between; align-items: center; margin-bottom: 36px;}
.m3_icon{font-size: 36px; color: var(--color); line-height: 100%; transition: transform 0.3s;}
.m3_whyus .box:hover .m3_icon{transform: scale(1.1);}
.m3_num{font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 500; color: #aaa; letter-spacing: 1px; line-height: 100%;}
.m3_whyus .box h3{font-size: var(--fs20, 20px); font-weight: 700; color: #111; line-height: 130%; margin-bottom: 6px;}
.m3_en{display: block; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); color: #888; margin-bottom: 18px; letter-spacing: 0.2px; line-height: 130%;}
.m3_whyus .box p{font-size: var(--fs14, 14px); color: #666; line-height: 160%; word-break: keep-all;}


/* ===================================================================
   RECENT PROJECTS (m4_recent) — 포트폴리오 게시판 latest 연동 2x2 그리드
   =================================================================== */
.m4_recent{background: #f7f7f7;}
.m4_top{margin-bottom: 60px;}
.m4_label{display: inline-block; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); font-weight: 700; color: var(--color); letter-spacing: 3px; margin-bottom: 32px; line-height: 100%;}
.m4_top h2{font-size: 48px; font-weight: 800; color: #111; line-height: 130%; letter-spacing: -1.5px;}

.m4_recent .box_wrap{display: flex; flex-wrap: wrap; gap: 60px 2%;}
.m4_recent .box{width: 49%;}
.m4_recent .box a{display: block;}
.m4_recent .box .img{width: 100%; overflow: hidden; border-radius: 12px; margin-bottom: 24px;}
.m4_recent .box .img img{width: 100%; transition: transform 0.6s ease;}
.m4_recent .box a:hover .img img{transform: scale(1.04);}
.m4_recent .box .m4_cat{display: block; font-family: 'Outfit', sans-serif; font-size: 12px; font-weight: 700; color: #999; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 10px; line-height: 100%;}
.m4_recent .box strong{display: block; font-size: var(--fs20, 20px); font-weight: 700; color: #111; line-height: 140%; transition: color 0.3s;}
.m4_recent .box a:hover strong{color: var(--color);}
.m4_empty{padding: 80px 0; text-align: center; color: #999;}


/* ===================================================================
   NEWS & NOTICE (m5_notice) — news 게시판 latest 연동 (좌우 구조 + 웹진형 카드)
   =================================================================== */
.m5_wrap{display: flex; justify-content: space-between; gap: 5%;}
.m5_left{width: 30%; flex-shrink: 0;}
.m5_right{width: 65%;}

.m5_label{display: inline-block; font-family: 'Outfit', sans-serif; font-size: var(--fs14, 14px); font-weight: 700; color: var(--color); letter-spacing: 3px; margin-bottom: 28px; line-height: 100%;}
.m5_left h2{font-size: 48px; font-weight: 800; color: #111; line-height: 130%; letter-spacing: -1.5px; margin-bottom: 40px;}

.m5_more{display: inline-flex; align-items: center; gap: 10px; padding: 17px 32px; border-radius: 100px; background: #111; border: 1px solid #111; color: #fff; font-size: 15px; font-weight: 600; letter-spacing: 0.2px; line-height: 100%; transition: all 0.3s;}
.m5_more i{font-size: 16px; transition: transform 0.3s;}
.m5_more:hover{background: var(--color, #004E73); border-color: var(--color, #004E73); color: #fff;}
.m5_more:hover i{transform: translateX(4px);}

.m5_notice .box_wrap{display: flex; flex-direction: column;}
.m5_notice .box{border-top: 1px solid #e5e5e5;}
.m5_notice .box:last-child{border-bottom: 1px solid #e5e5e5;}
.m5_notice .box a{display: flex; align-items: center; gap: 32px; padding: 28px 4px;}
.m5_notice .box .img{width: 240px; flex-shrink: 0; overflow: hidden; border-radius: 8px;}
.m5_notice .box .img img{width: 100%; transition: transform 0.5s ease;}
.m5_notice .box:hover .img img{transform: scale(1.05);}
.m5_notice .box .text{flex: 1; display: flex; flex-direction: column; gap: 10px; min-width: 0;}
.m5_meta{display: flex; align-items: center; gap: 12px;}
.m5_cat{display: inline-flex; align-items: center; padding: 5px 14px; background: rgba(0, 78, 115, 0.08); color: var(--color); font-size: 12px; font-weight: 600; border-radius: 100px; line-height: 130%;}
.m5_date{font-family: 'Outfit', sans-serif; font-style: normal; font-size: 13px; color: #999;}
.m5_notice .box strong{font-size: var(--fs20, 20px); font-weight: 600; color: #111; line-height: 140%; transition: color 0.3s; word-break: keep-all;}
.m5_notice .box a:hover strong{color: var(--color);}
.m5_excerpt{font-size: var(--fs14, 14px); color: #666; line-height: 160%; word-break: keep-all; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
.m5_empty{padding: 60px 20px; text-align: center; color: #999;}


/* ===================================================================
   인사말 (a1_greeting)
   =================================================================== */
.a1_greeting{position: relative; overflow: hidden;}
.a1_greeting .width, .a1_info .width{max-width: 1500px;}
.a1_greeting .label{display: block;}
.a1_row{display: flex; gap: 0 5%;}
.a1_row_left{width: 45%; padding-top: 8px;}
.a1_row_left .a1_img{margin-top: 32px; width: 85%; overflow: hidden;}
.a1_row_left .a1_img img{width: 100%;}
.a1_row h3{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 140%; letter-spacing: -0.8px;}
.a1_row_right{width: 50%; display: flex; flex-direction: column; gap: 28px;}
.a1_row_right p{font-size: var(--fs18, 18px); font-weight: 400; color: #444; letter-spacing: -0.4px; line-height: 150%;}
.a1_row_right p:first-child{font-size: var(--fs20, 20px); font-weight: 600; color: #111;}
.a1_sign{margin-top: 12px; display: flex; flex-direction: column; gap: 4px;}
.a1_sign span{font-size: 16px; font-weight: 400; color: #767676; line-height: 150%;}
.a1_sign strong{display: block; font-size: var(--fs24, 24px); font-weight: 700; color: #111; letter-spacing: -0.6px; line-height: 150%;}

/* 회사 정보 테이블 */
.a1_info{padding-top: 80px; padding-bottom: 120px; background: #f9fafb;}
.a1_info .label{display: block;}
.a1_info_table{display: flex; flex-wrap: wrap; gap: 20px;}
.a1_info_table dl{flex: 1; min-width: calc(50% - 20px); padding: 28px 28px; background: #fff; border: 1px solid #e8e8e8; display: flex; align-items: center; gap: 20px; transition: border-color 0.3s, box-shadow 0.3s;}
.a1_info_table dl:hover{border-color: var(--color, #0066ff); box-shadow: 0 4px 16px rgba(0, 102, 255,0.06);}
.a1_info_table dt{font-size: 14px; font-weight: 600; color: #888; flex-shrink: 0; position: relative; padding-left: 14px; letter-spacing: -0.3px;}
.a1_info_table dt::before{content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 14px; background: var(--color, #0066ff);}
.a1_info_table dd{font-size: 17px; color: #222; margin: 0; font-weight: 600; letter-spacing: -0.3px;}
.a1_info_table dd a{color: #222;}


/* ===================================================================
   인사말02 (a2) — 인용 + 이미지 통합형
   =================================================================== */
.a2_top{margin-bottom: 60px;}
.a2_top .label{display: block;}
.a2_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; letter-spacing: -0.8px;}

.a2_wrap{display: flex; gap: 5%; align-items: flex-start;}
.a2_img{width: 42%; flex-shrink: 0; overflow: hidden; position: sticky; top: 120px;}
.a2_img img{width: 100%;}
.a2_text{width: 53%;}
.a2_lead{font-size: var(--fs20, 20px); font-weight: 600; color: #111; line-height: 150%; margin-bottom: 28px;}
.a2_text p{font-size: 17px; color: #444; line-height: 150%; letter-spacing: -0.3px; margin-bottom: 24px;}
.a2_text p:last-of-type{margin-bottom: 0;}
.a2_sign{margin-top: 40px;}
.a2_sign span{display: block; font-size: 14px; color: #888; margin-bottom: 20px;}
.a2_sign strong{display: block; font-size: var(--fs24, 24px); font-weight: 700; color: #111; letter-spacing: -0.5px;}

/* 회사 정보 — a2 스타일 */
.a2_info{background: #1a1a1a;}
.a2_info .label{display: block; color: rgba(255,255,255,0.7) !important;}
.a2_info .box_wrap{display: flex; flex-wrap: wrap; gap: 0;}
.a2_info .box{width: calc(100% / 3); padding: 36px 32px; border: 1px solid rgba(255,255,255,0.08); margin-top: -1px; margin-left: -1px;}
.a2_info .box span{display: block; font-size: 13px; color: rgba(255,255,255,0.35); margin-bottom: 12px; letter-spacing: 1px; text-transform: uppercase;}
.a2_info .box strong{display: block; font-size: var(--fs18, 18px); font-weight: 600; color: #fff; letter-spacing: -0.3px; line-height: 150%;}


/* ===================================================================
   CI 페이지
   =================================================================== */
.ci_intro{margin-bottom: 80px;}
.ci_intro h2{font-size: var(--fs38, 38px); font-weight: 700; color: #222; line-height: 150%; margin-bottom: 24px;}
.ci_intro p{font-size: var(--fs18, 18px); color: #888; line-height: 180%;}

.ci_section{margin-bottom: 80px;}
.ci_section:last-child{margin-bottom: 0;}
.ci_section h3{font-size: var(--fs22, 22px); font-weight: 600; color: #222; margin-bottom: 32px; padding-bottom: 16px; border-bottom: 2px solid #222;}

.ci_logo_wrap{display: flex; gap: 3%;}
.ci_logo_box{width: 48.5%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 40px;}
.ci_logo_box img{max-width: 200px; width: 100%; margin-bottom: 24px;}
.ci_logo_box span{font-size: 14px; color: #999;}
.ci_light{background: #f5f5f5;}
.ci_dark{background: #222;}
.ci_dark span{color: rgba(255,255,255,0.5);}

.ci_desc{font-size: 16px; color: #888; line-height: 150%; margin-bottom: 32px;}

/* CI 로고 사용 규정 */
.ci_page .box_wrap{display: flex; flex-wrap: wrap; gap: 20px;}
.ci_page .box{width: calc(50% - 10px); padding: 28px 32px; border: 1px solid #e8e8e8; transition: border-color 0.2s;}
.ci_page .box:hover{border-color: var(--color, #0066ff);}
.ci_page .box strong{display: block; font-size: 16px; font-weight: 600; color: #222; margin-bottom: 8px;}
.ci_page .box p{font-size: 14px; color: #888; line-height: 150%;}

/* CI 컬러 */
.ci_color_wrap{display: flex; gap: 3%;}
.ci_color_box{width: 22.75%; text-align: center;}
.ci_color_swatch{ padding: 50px 0; margin-bottom: 16px;}
.ci_color_box strong{display: block; font-size: 15px; font-weight: 600; color: #222; margin-bottom: 8px;}
.ci_color_box span{display: block; font-size: 13px; color: #999; line-height: 180%;}

/* CI 서체 */
.ci_typo_wrap{display: flex; gap: 3%;}
.ci_typo_box{width: 48.5%; padding: 40px; background: #f9fafb;}
.ci_typo_label{display: inline-block; font-size: 13px; color: var(--color, #0066ff); font-weight: 600; letter-spacing: 1px; margin-bottom: 16px;}
.ci_typo_name{font-size: 32px; font-weight: 700; color: #222; margin-bottom: 12px; line-height: 130%;}
.ci_typo_sample{font-size: 18px; color: #666; margin-bottom: 24px; line-height: 150%; letter-spacing: 1px;}
.ci_typo_weights{display: flex; flex-wrap: wrap; gap: 8px;}
.ci_typo_weights span{display: inline-block; padding: 6px 14px; background: #fff; border: 1px solid #e0e0e0; font-size: 13px; color: #666;}


/* ========== a3 연혁 ========== */
.a3_history{padding: 140px 0;}
.a3_history .label{display: block;}
.a3_title{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.a3_desc{font-size: 16px; color: #777; line-height: 150%; margin-bottom: 80px;}
.a3_timeline{position: relative;}
.a3_timeline::before{content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: #e0e0e0; transform: translateX(-50%);}
.a3_item{display: flex; align-items: stretch; gap: 5%; position: relative; margin-bottom: 80px;}
.a3_item:last-child{margin-bottom: 0;}
.a3_item::before{content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; background: #fff; border: 2px solid var(--color, #0066ff); border-radius: 50%; transform: translate(-50%, -50%); z-index: 1;}
.a3_item_img{width: 47.5%; overflow: hidden;}
.a3_item_img img{width: 100%; display: block;}
.a3_item_text{width: 47.5%; display: flex; flex-direction: column; justify-content: center; padding: 20px 0;}
.a3_year{font-size: 48px; font-weight: 800; color: var(--color, #0066ff); letter-spacing: -1px; line-height: 100%; margin-bottom: 24px;}
.a3_item .box_wrap{display: flex; flex-direction: column; gap: 0;}
.a3_item .box{display: flex; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid #f0f0f0;}
.a3_item .box:last-child{border-bottom: none;}
.a3_month{font-size: 15px; font-weight: 700; color: var(--color, #0066ff); min-width: 30px;}
.a3_item .box p{font-size: 16px; color: #444; line-height: 150%;}

/* 지그재그 */
.a3_item.reverse{flex-direction: row-reverse;}

/* 연혁02 (a4 — 소개 + 표형 타임라인) */
.a4_intro{padding-bottom: 0;}
.a4_intro_text{text-align: center;}
.a4_intro_text h2{font-size: var(--fs38, 38px); font-weight: 700; color: #222; line-height: 140%; margin-bottom: 40px;}
.a4_intro_img{background: url('../img/a4_bg.png') center center / cover no-repeat; padding-bottom: 25%;}
.a4_history{padding-top: 60px;}
.a4_history .box_wrap{display: flex; flex-direction: column; gap: 0;}
.a4_history .box{display: flex; gap: 4%; margin-top: 60px;}
.a4_history .box .year{width: 34%; border-top: 2px solid var(--color, #0066ff); padding-top: 28px;}
.a4_history .box .year h2{font-family: 'Outfit', sans-serif; font-size: 48px; font-weight: 800; color: var(--color, #0066ff); margin-bottom: 16px; line-height: 120%;}
.a4_history .box .year h3{font-size: var(--fs22, 22px); font-weight: 600; color: #aaa;}
.a4_table{width: 66%; border-top: 1px solid #e4e4e4;}
.a4_table dl{display: flex; align-items: center; padding: 18px 0; border-bottom: 1px solid #e4e4e4;}
.a4_table dt{min-width: 130px; padding-left: 5px; font-weight: 500; font-size: var(--fs18, 18px); color: var(--color, #0066ff);}
.a4_table dd{font-size: var(--fs18, 18px); color: #494949; line-height: 150%;}


/* ===================================================================
   푸터
   =================================================================== */
#ft{background: #111;}
.ft_top{padding: 80px 0 60px; border-bottom: 1px solid rgba(255,255,255,0.08);}
.ft_inner{display: flex; justify-content: space-between; gap: 60px;}
.ft_info{width: 35%; text-align: left;}
.ft_logo{margin-bottom: 24px;}
.ft_logo img{height: 36px; width: auto;}
.ft_contact_row{display: flex; flex-wrap: wrap; gap: 0 20px; margin-bottom: 6px;}
.ft_contact_row:last-child{margin-bottom: 0;}
.ft_contact_row span{font-size: 13px; color: rgba(255,255,255,0.5);}
.ft_contact_row em{font-style: normal; color: rgba(255,255,255,0.3); margin-right: 4px;}


.ft_bottom{padding: 28px 0;}
.ft_bottom_inner{display: flex; justify-content: space-between; align-items: center;}
.ft_copy{font-size: 13px; color: rgba(255,255,255,0.25);}


/* ===================================================================
   사업소개 (b1_intro)
   =================================================================== */
.b1_top{margin-bottom: 60px;}
.b1_top .label{display: block;}
.b1_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; letter-spacing: -0.8px;}
.b1_intro .box_wrap{display: flex; flex-wrap: wrap; gap: 40px 5%;}
.b1_intro .box{width: calc(50% - 2.5%); display: flex;}
.b1_intro .box .img{width: 45%; overflow: hidden; aspect-ratio: 4/5;}
.b1_intro .box .img img{width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease;}
.b1_intro .box:hover .img img{transform: scale(1.04);}
.b1_intro .box .text{width: 55%; padding: 0 0 0 44px; display: flex; flex-direction: column; justify-content: center;}
.b1_intro .box .text > span{display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid #ddd; font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 500; color: #bbb; margin-bottom: 20px; flex-shrink: 0;}
.b1_intro .box .text strong{display: block; font-size: var(--fs22, 22px); font-weight: 700; color: #222; line-height: 140%; margin-bottom: 14px;}
.b1_intro .box .text p{font-size: var(--fs14, 14px); color: #999; line-height: 150%;}
.b1_intro .box:nth-child(2) .text, .b1_intro .box:nth-child(4) .text{border-right: 1px solid #f0f0f0;}



/* 서비스 프로세스 */
.b1_process_top{margin-bottom: 40px;}
.b1_process_top .label{display: block;}
.b1_process_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.b1_process_top p{font-size: 16px; color: #777; line-height: 150%;}
.b1_process .box_wrap{display: flex; gap: 0; counter-reset: step;}
.b1_process .box{flex: 1; padding: 36px 28px; background: #fff; border: 1px solid #e8e8e8; border-right: none; position: relative;}
.b1_process .box:first-child{}
.b1_process .box:last-child{ border-right: 1px solid #e8e8e8;}
.b1_process .box span{display: block; font-family: 'Outfit', sans-serif; font-size: 14px; font-weight: 600; color: var(--color, #0066ff); margin-bottom: 16px; letter-spacing: 1px; line-height: 100%;}
.b1_process .box strong{display: block; font-size: var(--fs18, 18px); font-weight: 700; color: #111; margin-bottom: 10px;}
.b1_process .box p{font-size: 14px; color: #888; line-height: 160%;}
.b1_process .box::after{content: ''; position: absolute; right: -10px; top: 50%; transform: translateY(-50%) rotate(45deg); width: 18px; height: 18px; border-top: 1px solid #e8e8e8; border-right: 1px solid #e8e8e8; background: #fff; z-index: 1;}
.b1_process .box:last-child::after{display: none;}


/* CTA */
.b1_cta{padding: 100px 0; background: var(--color, #0066ff);}
.b1_cta_inner{display: flex; align-items: center; justify-content: space-between;}
.b1_cta_text h2{font-size: var(--fs28, 28px); font-weight: 700; color: #fff; margin-bottom: 12px; line-height: 140%;}
.b1_cta_text p{font-size: 16px; color: rgba(255,255,255,0.7); line-height: 150%;}
.b1_cta_btns{display: flex; gap: 12px; flex-shrink: 0;}
.b1_cta_btn{display: inline-flex; align-items: center; gap: 8px; padding: 16px 36px; background: #fff; color: var(--color, #0066ff); font-size: 16px; font-weight: 600; transition: opacity 0.3s;}
.b1_cta_btn:hover{opacity: 0.9;}
.b1_cta_outline{background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4);}
.b1_cta_outline:hover{border-color: #fff;}


/* ===================================================================
   사업분야 (b2_field)
   =================================================================== */
.b2_top{margin-bottom: 60px;}
.b2_top .label{display: block;}
.b2_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.b2_top p{font-size: 16px; color: #777; line-height: 150%;}
.b2_field .box_wrap{display: flex; flex-wrap: wrap; gap: 24px;}
.b2_field .box{width: calc(50% - 12px); padding: 36px 32px; background: #fff; border: 1px solid #e8e8e8; transition: border-color 0.3s, box-shadow 0.3s;}
.b2_field .box:hover{border-color: var(--color, #0066ff); box-shadow: 0 8px 24px rgba(0, 102, 255,0.06);}
.b2_head{display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px;}
.b2_head i{font-size: 32px; color: var(--color, #0066ff); line-height: 100%;}
.b2_num{font-family: 'Outfit', sans-serif; font-size: 16px; font-weight: 600; color: #ccc; line-height: 100%;}
.b2_field .box strong{display: block; font-size: var(--fs20, 20px); font-weight: 700; color: #111; margin-bottom: 12px;}
.b2_field .box p{font-size: 15px; color: #666; line-height: 160%; margin-bottom: 20px;}
.b2_features{list-style: none; margin-bottom: 20px; display: flex; flex-direction: column; gap: 8px;}
.b2_features li{font-size: 14px; color: #555; padding-left: 18px; position: relative; line-height: 150%;}
.b2_features li::before{content: ''; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--color, #0066ff);}
.b2_badge{display: inline-block; padding: 6px 14px; background: #f2f7fa; color: var(--color, #0066ff); font-size: 12px; font-weight: 600; letter-spacing: -0.3px;}

/* b2 CTA */
.b2_cta{padding: 100px 0; background: var(--color, #0066ff);}
.b2_cta_inner{display: flex; align-items: center; justify-content: space-between;}
.b2_cta_text h2{font-size: var(--fs28, 28px); font-weight: 700; color: #fff; margin-bottom: 12px; line-height: 140%;}
.b2_cta_text p{font-size: 16px; color: rgba(255,255,255,0.7); line-height: 150%;}
.b2_cta_btns{display: flex; gap: 12px; flex-shrink: 0;}
.b2_cta_btn{display: inline-flex; align-items: center; gap: 8px; padding: 16px 36px; background: #fff; color: var(--color, #0066ff); font-size: 16px; font-weight: 600; transition: opacity 0.3s;}
.b2_cta_btn:hover{opacity: 0.9;}
.b2_cta_outline{background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4);}
.b2_cta_outline:hover{border-color: #fff;}


/* ===================================================================
   사업분야 (b3_field)
   =================================================================== */
.b3_top{margin-bottom: 60px;}
.b3_top .label{display: block;}
.b3_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.b3_top p{font-size: 16px; color: #777; line-height: 150%;}
.b3_field .box_wrap{display: flex; gap: 3%;}
.b3_field .box{width: calc(33.333% - 2%); display: block; overflow: hidden;}
.b3_field .box .img{overflow: hidden;}
.b3_field .box .img img{width: 100%; transition: transform 0.5s ease;}
.b3_field .box:hover .img img{transform: scale(1.05);}
.b3_field .box .text{padding: 28px 4px 0;}
.b3_field .box .text strong{display: block; font-size: var(--fs20, 20px); font-weight: 700; color: #222; line-height: 140%; margin-bottom: 12px;}
.b3_field .box .text p{font-size: var(--fs14, 14px); color: #888; line-height: 150%;}

.b3_bottom{background: #f7f8fa;}
.b3_bottom_wrap{display: flex; gap: 8%;}
.b3_bottom_left{width: 30%; flex-shrink: 0;}
.b3_bottom_left h2{font-size: var(--fs38, 38px); font-weight: 700; color: #222; line-height: 140%; margin-top: 16px;}
.b3_bottom_right{flex: 1;}
.b3_bottom_right .box_wrap{display: flex; flex-direction: column; gap: 0;}
.b3_bottom_right .box{display: flex; align-items: flex-start; gap: 20px; padding: 24px 0; border-bottom: 1px solid #e5e5e5;}
.b3_bottom_right .box:first-child{border-top: 1px solid #e5e5e5;}
.b3_bottom_right .box > span{font-family: 'Outfit', sans-serif; font-size: var(--fs20, 20px); font-weight: 700; color: var(--color, #0066ff); line-height: 140%; flex-shrink: 0;}
.b3_bottom_right .box .text strong{display: block; font-size: 16px; font-weight: 600; color: #222; margin-bottom: 6px; line-height: 140%;}
.b3_bottom_right .box .text p{font-size: var(--fs14, 14px); color: #888; line-height: 150%;}



/* ===================================================================
   주요실적 (b4_record)
   =================================================================== */
.b4_top{margin-bottom: 60px;}
.b4_top .label{display: block;}
.b4_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.b4_top p{font-size: 16px; color: #777; line-height: 150%;}
.b4_record .box_wrap{display: flex; flex-direction: column; gap: 0;}
.b4_record .box{display: flex; align-items: flex-start; gap: 5%; padding: 32px 0; border-bottom: 1px solid #eee;}
.b4_record .box:first-child{border-top: 2px solid #222;}
.b4_year{font-family: 'Outfit', sans-serif; font-size: 20px; font-weight: 600; color: var(--color, #0066ff); flex-shrink: 0; width: 80px; padding-top: 2px;}
.b4_record .box .text{flex: 1;}
.b4_badges{display: flex; gap: 6px; margin-bottom: 10px;}
.b4_badge{display: inline-block; padding: 4px 12px; background: #f2f7fa; color: var(--color, #0066ff); font-size: 12px; font-weight: 600; letter-spacing: -0.3px;}
.b4_record .box .text strong{display: block; font-size: var(--fs18, 18px); font-weight: 700; color: #111; margin-bottom: 10px; letter-spacing: -0.3px;}
.b4_record .box .text p{font-size: 15px; color: #666; line-height: 150%;}

/* ===================================================================
   파트너사 (b5_partner)
   =================================================================== */
.b5_top{margin-bottom: 60px;}
.b5_top .label{display: block;}
.b5_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 16px;}
.b5_top p{font-size: 16px; color: #777; line-height: 150%;}
.b5_partner .box_wrap{display: flex; flex-wrap: wrap; gap: 20px;}
.b5_partner .box{width: calc(25% - 15px); padding: 32px 20px; background: #fff; border: 1px solid #e8e8e8; display: flex; flex-direction: column; align-items: center; text-align: center; transition: border-color 0.3s, box-shadow 0.3s;}
.b5_partner .box:hover{border-color: var(--color, #0066ff); box-shadow: 0 6px 20px rgba(0, 102, 255,0.06);}
.b5_logo{display: flex; align-items: center; justify-content: center; margin-bottom: 16px;}
.b5_logo img{max-width: 120px; width: 100%;}
.b5_partner .box span{font-size: 13px; color: #999; letter-spacing: -0.3px;}


/* ===================================================================
   오시는길 (a5_map)
   =================================================================== */
.a5_top{margin-bottom: 40px;}
.a5_map .label{display: block;}
.a5_title{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%;}
.a5_content{display: flex; gap: 0; align-items: stretch; overflow: hidden; border: 1px solid #e8e8e8;}
.a5_map_wrap{width: 65%;}
.a5_map_wrap .root_daum_roughmap{width: 100% !important; height: 520px !important;}
.a5_map_wrap .root_daum_roughmap .wrap_map{width: 100% !important; height: 520px !important;}
.a5_map_wrap .root_daum_roughmap .wrap_controllers{display: none;}
.a5_info{width: 35%; background: #fafafa;}
.a5_info_head{padding: 36px 32px; border-bottom: 1px solid #e8e8e8;}
.a5_info_head strong{display: block; font-size: var(--fs22, 22px); font-weight: 700; color: #111; margin-bottom: 10px; letter-spacing: -0.5px;}
.a5_info_head p{font-size: 15px; color: #666; line-height: 150%;}
.a5_info .box_wrap{display: flex; flex-direction: column; gap: 0;}
.a5_info .box{display: flex; align-items: center; gap: 16px; padding: 22px 32px; border-bottom: 1px solid #eee;}
.a5_info .box:last-child{border-bottom: none;}
.a5_icon{width: 40px; height: 40px; background: #fff; border: 1px solid #e8e8e8; display: flex; align-items: center; justify-content: center; flex-shrink: 0;}
.a5_icon i{font-size: 18px; color: var(--color, #0066ff); line-height: 100%;}
.a5_info .box span{display: block; font-size: 12px; color: #999; margin-bottom: 4px; font-weight: 500;}
.a5_info .box strong{display: block; font-size: 15px; font-weight: 600; color: #222; letter-spacing: -0.3px; line-height: 140%;}

/* 오시는길 (a6 = a5 동일 스타일) */
.a6_top{margin-bottom: 40px;}
.a6_map .label{display: block;}
.a6_title{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%;}
.a6_content{display: flex; gap: 0; align-items: stretch; overflow: hidden; border: 1px solid #e8e8e8;}
.a6_map_wrap{width: 65%;}
.a6_map_wrap .root_daum_roughmap{width: 100% !important; height: 520px !important;}
.a6_map_wrap .root_daum_roughmap .wrap_map{width: 100% !important; height: 520px !important;}
.a6_map_wrap .root_daum_roughmap .wrap_controllers{display: none;}
.a6_info{width: 35%; background: #fafafa;}
.a6_info_head{padding: 36px 32px; border-bottom: 1px solid #e8e8e8;}
.a6_info_head strong{display: block; font-size: var(--fs22, 22px); font-weight: 700; color: #111; margin-bottom: 10px; letter-spacing: -0.5px;}
.a6_info_head p{font-size: 15px; color: #666; line-height: 150%;}
.a6_info .box_wrap{display: flex; flex-direction: column; gap: 0;}
.a6_info .box{display: flex; align-items: center; gap: 16px; padding: 22px 32px; border-bottom: 1px solid #eee;}
.a6_info .box:last-child{border-bottom: none;}
.a6_icon{width: 40px; height: 40px; background: #fff; border: 1px solid #e8e8e8; display: flex; align-items: center; justify-content: center; flex-shrink: 0;}
.a6_icon i{font-size: 18px; color: var(--color, #0066ff); line-height: 100%;}
.a6_info .box span{display: block; font-size: 12px; color: #999; margin-bottom: 4px; font-weight: 500;}
.a6_info .box strong{display: block; font-size: 15px; font-weight: 600; color: #222; letter-spacing: -0.3px; line-height: 140%;}


/* ===================================================================
   제품소개 페이지 (p1)
   =================================================================== */

/* 공통 섹션 타이틀 */
.c1_section_top{margin-bottom: 48px;}
.c1_section_top .label{display: block;}
.c1_section_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 12px;}
.c1_section_top p{font-size: 16px; color: #666; line-height: 160%;}

/* 1. 메인 비주얼 */
.c1_hero_wrap{display: flex; align-items: center; gap: 5%;}
.c1_hero_text{width: 48%;}
.c1_hero_text .label{display: block;}
.c1_hero_text h2{font-size: var(--fs38, 38px); font-weight: 800; color: #111; line-height: 145%; margin-bottom: 20px; letter-spacing: -1px; word-break: keep-all;}
.c1_hero_text p{font-size: 16px; color: #555; line-height: 175%; margin-bottom: 36px;}
.c1_hero_btns{display: flex; gap: 10px;}
.c1_hero_btn{display: inline-flex; align-items: center; gap: 8px; padding: 15px 32px; background: var(--color, #0066ff); color: #fff; font-size: 15px; font-weight: 600; transition: opacity 0.3s; line-height: 100%;}
.c1_hero_btn:hover{opacity: 0.9; color: #fff;}
.c1_hero_outline{background: #fff; color: #222; border: 1px solid #d0d0d0;}
.c1_hero_outline:hover{border-color: #222; color: #222; opacity: 1;}
.c1_hero_img{width: 47%; overflow: hidden;}
.c1_hero_img img{width: 100%; display: block;}

/* 2. 제품 핵심 소개 */
.c1_core{background: #f5f5f7;}
.c1_core .box_wrap{display: flex; gap: 3%;}
.c1_core .box{flex: 1; padding: 36px 28px; background: #fff; border: 1px solid #e8e8e8; transition: border-color 0.3s;}
.c1_core .box:hover{border-color: var(--color, #0066ff);}
.c1_core .box i{font-size: 28px; color: var(--color, #0066ff); margin-bottom: 20px; display: block; line-height: 100%;}
.c1_core .box strong{display: block; font-size: 16px; font-weight: 700; color: #111; margin-bottom: 10px;}
.c1_core .box p{font-size: 14px; color: #666; line-height: 165%;}

/* 9. FAQ */
.c1_faq .c1_section_top{text-align: center;}
.c1_faq_list{max-width: 1000px; margin: 0 auto;}
.c1_faq_item{border-bottom: 1px solid #e8e8e8;}
.c1_faq_q{display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 22px 0; border: 0; background: none; cursor: pointer; text-align: left; font-family: inherit;}
.c1_faq_q span{font-size: 16px; font-weight: 600; color: #222;}
.c1_faq_q i{font-size: 18px; color: #999; transition: transform 0.3s; flex-shrink: 0; margin-left: 16px;}
.c1_faq_item.on .c1_faq_q i{transform: rotate(180deg);}
.c1_faq_a{display: none; padding: 0 0 22px;}
.c1_faq_a p{font-size: 15px; color: #555; line-height: 175%;}

/* 10. CTA */
.c1_cta{padding: 100px 0; background: var(--color, #0066ff);}
.c1_cta_inner{display: flex; align-items: center; justify-content: space-between;}
.c1_cta_text h2{font-size: var(--fs28, 28px); font-weight: 700; color: #fff; margin-bottom: 12px; line-height: 150%;}
.c1_cta_text p{font-size: 16px; color: rgba(255,255,255,0.7); line-height: 150%;}
.c1_cta_btns{display: flex; gap: 12px; flex-shrink: 0;}
.c1_cta_btn{display: inline-flex; align-items: center; gap: 8px; padding: 16px 36px; background: #fff; color: var(--color, #0066ff); font-size: 16px; font-weight: 600; transition: opacity 0.3s;}
.c1_cta_btn:hover{opacity: 0.9;}
.c1_cta_outline{background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4);}
.c1_cta_outline:hover{border-color: #fff;}

/* c2 = c1 동일 스타일 */
.c2_section_top{margin-bottom: 48px;}
.c2_section_top .label{display: block;}
.c2_section_top h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 12px;}
.c2_section_top p{font-size: 16px; color: #666; line-height: 150%;}
.c2_recommend_wrap{display: flex; align-items: center; gap: 6%;}
.c2_recommend_img{width: 45%; overflow: hidden;}
.c2_recommend_img img{width: 100%; display: block;}
.c2_recommend_right{width: 49%;}
.c2_recommend_right .label{display: block;}
.c2_recommend_right h2{font-size: var(--fs38, 38px); font-weight: 700; color: #111; line-height: 150%; margin-bottom: 28px;}
.c2_recommend .box_wrap{display: flex; flex-direction: column; gap: 0;}
.c2_recommend .box{display: flex; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid #eee;}
.c2_recommend .box:last-child{border-bottom: 0;}
.c2_recommend .box i{font-size: 22px; color: var(--color, #0066ff); flex-shrink: 0;}
.c2_recommend .box p{font-size: 16px; color: #333; font-weight: 500; line-height: 150%;}
.c2_preview{background: #f5f5f7;}
.c2_preview .box_wrap{display: flex; gap: 3%;}
.c2_preview .box{width: 31.3%; overflow: hidden; border: 1px solid #e8e8e8; background: #fff; transition: border-color 0.3s;}
.c2_preview .box:hover{border-color: var(--color, #0066ff);}
.c2_preview .box .img{overflow: hidden;}
.c2_preview .box .img img{width: 100%; display: block; transition: transform 0.4s;}
.c2_preview .box:hover .img img{transform: scale(1.05);}
.c2_preview .box .text{padding: 16px 20px;}
.c2_preview .box .text strong{font-size: 15px; font-weight: 600; color: #333;}
.c2_faq .c2_section_top{text-align: center;}
.c2_faq_list{max-width: 1000px; margin: 0 auto;}
.c2_faq_item{border-bottom: 1px solid #e8e8e8;}
.c2_faq_q{display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 22px 0; border: 0; background: none; cursor: pointer; text-align: left; font-family: inherit;}
.c2_faq_q span{font-size: 16px; font-weight: 600; color: #222;}
.c2_faq_q i{font-size: 18px; color: #999; transition: transform 0.3s; flex-shrink: 0; margin-left: 16px;}
.c2_faq_item.on .c2_faq_q i{transform: rotate(180deg);}
.c2_faq_a{display: none; padding: 0 0 22px;}
.c2_faq_a p{font-size: 15px; color: #555; line-height: 150%;}
.c2_cta{padding: 100px 0; background: var(--color, #0066ff);}
.c2_cta_inner{display: flex; align-items: center; justify-content: space-between;}
.c2_cta_text h2{font-size: var(--fs28, 28px); font-weight: 700; color: #fff; margin-bottom: 12px; line-height: 150%;}
.c2_cta_text p{font-size: 16px; color: rgba(255,255,255,0.7); line-height: 150%;}
.c2_cta_btns{display: flex; gap: 12px; flex-shrink: 0;}
.c2_cta_btn{display: inline-flex; align-items: center; gap: 8px; padding: 16px 36px; background: #fff; color: var(--color, #0066ff); font-size: 16px; font-weight: 600; transition: opacity 0.3s;}
.c2_cta_btn:hover{opacity: 0.9;}
.c2_cta_outline{background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4);}
.c2_cta_outline:hover{border-color: #fff;}


/* ===================================================================
   반응형 — 1500px
   =================================================================== */
@media screen and (max-width: 1500px) {
    html{font-size: 55%;}
    .main_menu > .dept1{width: 120px;}
    .main_menu > .dept1 > a{font-size: 16px;}
    .sub_nav .width{width: 100%;}
}

/* ===================================================================
   반응형 — 1024px
   =================================================================== */
@media screen and (max-width: 1024px) {
    .common{padding: 60px 0;}
    #header{display: none;}
    .mobile_head{display: flex;}
    .label{font-size: 14px;}

    /* 메인 비주얼 — 배경 미디어 풀 + 텍스트 오버레이 */
    .visual{margin-top: 60px;}
    .visualSwiper{height: 620px;}
    .visualSwiper .swiper-slide{display: block; position: relative;}
    /* 배경 미디어를 슬라이드 전체로 채움 */
    .visual_right{position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0;}
    .visual_right:after{content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.45); z-index: 1;}
    /* 텍스트를 배경 위에 오버레이 */
    .visual_left{width: 100%; height: 100%; position: relative; z-index: 2; background: transparent; justify-content: center; padding: 0 5% 0 max(4vw, calc((100vw - 1500px) / 2));}
    .visual_label{margin-bottom: 24px; color: #B6E0F2; opacity: 0.75;}
    .visual_label em{opacity: 0.9;}
    .visual_left h2{font-size: 48px; line-height: 120%; letter-spacing: -1.5px; margin-bottom: 24px; color: #fff;}
    .visual_left p{font-size: 15px; margin-bottom: 36px; color: rgba(255,255,255,0.85);}
    .visual_btn{padding: 14px 26px; font-size: 14px;}
    .visual_btn.outline{background: transparent; color: #fff; border-color: rgba(255,255,255,0.6);}
    .visual_btn.outline:hover{border-color: #fff;}
    .visual_counter{top: 36px; right: 36px;}
    .visual_counter .visual_current{font-size: 24px;}
    .visual_thumbs{bottom: 36px; right: 36px; width: 210px;}
    .visual_nav{bottom: 36px; left: max(4vw, calc((100vw - 1500px) / 2));}
    .visual_prev, .visual_next{width: 44px; height: 44px;}

    /* 마키 */
    .marquee_inner{gap: 40px;}
    .marquee_inner span{font-size: 56px;}

    /* ABOUT */
    .m2_wrap{flex-direction: column; gap: 50px;}
    .m2_left, .m2_right{width: 100%;}
    .m2_left h2{font-size: 36px;}
    .m2_desc{margin-bottom: 50px;}
    .m2_about .box strong{font-size: 44px;}

    /* WHY US */
    .m3_top{flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 50px;}
    .m3_top_right{align-self: stretch; justify-content: space-between;}
    .m3_top_left h2{font-size: 36px;}
    .m3_whyus .box{width: 50%; padding: 32px 24px 36px 0;}
    .m3_whyus .box:not(:nth-child(4n)){padding-right: 24px;}
    .m3_whyus .box:nth-child(2n){padding-right: 0;}
    .m3_icon{font-size: 32px;}

    /* RECENT PROJECTS */
    .m4_top h2{font-size: 36px;}
    .m4_top{margin-bottom: 50px;}
    .m4_recent .box_wrap{gap: 50px 2%;}

    /* NEWS & NOTICE */
    .m5_wrap{flex-direction: column; gap: 40px;}
    .m5_left, .m5_right{width: 100%;}
    .m5_left h2{font-size: 36px; margin-bottom: 28px;}
    .m5_notice .box a{padding: 24px 4px; gap: 24px;}
    .m5_notice .box .img{width: 200px;}
    .m5_notice .box strong{font-size: 18px;}

    .ft_inner{flex-direction: column; gap: 40px;}
    .ft_info{width: 100%;}
    .ft_bottom_inner{flex-direction: column; gap: 12px; text-align: center;}
    /* 서브페이지 타이틀 반응형 */
    .a1_row h3, .a2_top h2, .a5_title, .a6_title, .a3_title, .a4_title, .ci_intro h2, .b1_top h2, .b1_process_top h2, .b2_top h2, .b3_top h2, .b4_top h2, .b5_top h2, .c1_section_top h2, .c1_hero_text h2, .c2_section_top h2, .c2_recommend_right h2, .c2_cta_text h2, .a4_intro_text h2{font-size: 28px;}
    .ci_intro{margin-bottom: 50px;}
    .ci_intro p{font-size: 15px;}
    .ci_section{margin-bottom: 60px;}
    .ci_section h3{font-size: 20px; margin-bottom: 24px;}
    .ci_logo_box{padding: 40px 24px;}
    .ci_logo_box img{max-width: 160px;}
    .ci_color_wrap{flex-wrap: wrap; gap: 24px 2%;}
    .ci_color_box{width: calc((100% - 2%) / 2);}
    .ci_color_swatch{padding: 40px 0;}
    .ci_typo_box{padding: 32px 24px;}
    .ci_typo_name{font-size: 26px;}
    .a2_top{margin-bottom: 40px;}
    .b1_top, .b2_top, .b3_top, .b4_top, .b5_top{margin-bottom: 40px;}
    .a5_top{margin-bottom: 30px;}
    .sub_visual{padding: 120px 0 60px;}
    .sub_top_text h3{font-size: 2.8rem;}
    .sub_nav_home{width: 42px; font-size: 16px;}
    .sub_nav_dep{width: auto; flex: 1;}
    .sub_nav_btn{padding: 0 14px; height: 46px; font-size: 14px;}

    .c1_core .box_wrap{flex-wrap: wrap; gap: 16px;}
    .c1_core .box{flex: none; width: calc(50% - 8px); padding: 28px 20px;}

    /* 오시는 길 — 지도 높이 축소 */
    .a6_map_wrap .root_daum_roughmap, .a6_map_wrap .root_daum_roughmap .wrap_map{height: 420px !important;}
    .a6_info_head{padding: 28px 24px;}
    .a6_info .box{padding: 18px 24px;}

    /* 사이트맵 카드 — 4컬럼 → 2컬럼 */
    .site_map{gap: 20px 2%;}
    .site_map > .dept1{width: calc((100% - 2%) / 2); padding: 30px 24px 24px;}

    /* c2 미리보기 — 3컬럼 → 2컬럼 */
    .c2_preview .box_wrap{flex-wrap: wrap; gap: 16px 2%;}
    .c2_preview .box{width: calc((100% - 2%) / 2);}
}

/* ===================================================================
   반응형 — 768px
   =================================================================== */
@media screen and (max-width: 768px) {
    .a1_row{flex-direction: column; gap: 40px;}
    .a1_row_left{width: 100%;}
    .a1_row_left .a1_img{width: 100%;}
    .a1_row_right{width: 100%;}
    .a1_row_right p{font-size: 15px;}
    .a1_sign{margin-top: 30px;}
    .a1_info_table{gap: 12px;}
    .a1_info_table dl{min-width: 100%; padding: 20px 20px;}

    .a2_top h2 br{display: none;}
    .a2_wrap{flex-direction: column; gap: 36px;}
    .a2_img{width: 100%; position: static;}
    .a2_text{width: 100%;}
    .a2_lead{font-size: var(--fs18, 18px);}
    .a2_text p{font-size: 15px;}
    .a2_info .box{width: 50%; padding: 24px 20px;}
    .a2_sign{text-align: right;}

    /* CI 페이지 */
    .ci_section{margin-bottom: 50px;}
    .ci_section h3{font-size: 18px; margin-bottom: 20px; padding-bottom: 12px;}
    .ci_logo_wrap{flex-direction: column; gap: 16px;}
    .ci_logo_box{width: 100%; padding: 36px 20px;}
    .ci_logo_box img{max-width: 140px; margin-bottom: 18px;}
    .ci_color_box{width: calc((100% - 2%) / 2);}
    .ci_color_swatch{padding: 32px 0;}
    .ci_typo_wrap{flex-direction: column; gap: 16px;}
    .ci_typo_box{width: 100%; padding: 24px 20px;}
    .ci_typo_name{font-size: 22px;}
    .ci_typo_sample{font-size: 15px;}

    .a3_timeline::before{display: none;}
    .a3_item, .a3_item.reverse{flex-direction: column; gap: 24px; margin-bottom: 60px;}
    .a3_item::before{display: none;}
    .a3_item_img{width: 100%;}
    .a3_item_text{width: 100%; padding: 0;}
    .a4_intro_img{padding-bottom: 40%;}
    .a4_history{padding-top: 0;}
    .a4_history .box{flex-direction: column; gap: 0; margin-top: 40px;}
    .a4_history .box .year{width: 100%; padding-bottom: 20px;}
    .a4_history .box .year h2{font-size: 36px;}
    .a4_history .box .year h3{font-size: 18px;}
    .a4_table{width: 100%;}
    .a4_table dt{min-width: 100px; font-size: 15px;}
    .a4_table dd{font-size: 15px;}
    .a3_year{font-size: 32px; margin-bottom: 16px;}


    .b1_intro .box{width: 100%;}
    .b1_intro .box:nth-child(2) .text, .b1_intro .box:nth-child(4) .text{border-right: 0;}
    .b1_intro .box .text{padding: 24px 20px;}

    .b1_process .box_wrap{flex-direction: column; gap: 0;}
    .b1_process .box{border-right: 1px solid #e8e8e8; border-bottom: none;}
    .b1_process .box:first-child{}
    .b1_process .box:last-child{ border-bottom: 1px solid #e8e8e8;}
    .b1_process .box::after{display: none;}

    .b1_cta{padding: 60px 0;}
    .b1_cta_inner{flex-direction: column; text-align: center; gap: 28px;}
    .b1_cta_text h2{font-size: var(--fs22, 22px);}
    .b1_cta_btns{justify-content: center; flex-wrap: wrap; gap: 10px;}
    .b1_cta_btn{justify-content: center; padding: 13px 24px; font-size: 14px;}

    .b2_field .box{width: 100%; padding: 28px 24px;}
    .b2_cta{padding: 60px 0;}
    .b2_cta_inner{flex-direction: column; text-align: center; gap: 28px;}
    .b2_cta_text h2{font-size: var(--fs22, 22px);}
    .b2_cta_btns{justify-content: center; flex-wrap: wrap; gap: 10px;}
    .b2_cta_btn{justify-content: center; padding: 13px 24px; font-size: 14px;}

    .b3_field .box_wrap{flex-direction: column; gap: 24px;}
    .b3_field .box{width: 100%;}
    .b3_bottom_wrap{flex-direction: column; gap: 40px;}
    .b3_bottom_left{width: 100%;}
    .b4_record .box{flex-direction: column; gap: 18px; padding: 24px 0;}
    .b4_year{width: auto;}
    .b4_badges{margin-bottom: 12px;}

    .b5_partner .box{width: calc(50% - 10px); padding: 24px 16px;}

    .a5_content{flex-direction: column;}
    .a6_content{flex-direction: column;}
    .a5_map_wrap{width: 100%;}
    .a5_map_wrap .root_daum_roughmap, .a5_map_wrap .root_daum_roughmap .wrap_map{height: 320px !important;}
    .a5_info{width: 100%;}
    .a6_map_wrap{width: 100%;}
    .a6_map_wrap .root_daum_roughmap, .a6_map_wrap .root_daum_roughmap .wrap_map{height: 320px !important;}
    .a6_info{width: 100%;}
    .a6_info_head{padding: 24px 20px;}
    .a6_info .box{padding: 18px 20px;}
    .a6_top{margin-bottom: 28px;}
    .a5_info_head{padding: 28px 24px;}
    .a5_info .box{padding: 18px 24px;}

    .pc{display: none;}
    .mob{display: block;}

    /* 메인 비주얼 — 배경 미디어 풀 + 텍스트 오버레이 (모바일) */
    .visualSwiper{height: 520px;}
    .visual_left{padding: 0 max(4vw, calc((100vw - 1500px) / 2));}
    .visual_label{margin-bottom: 18px; font-size: 12px;}
    .visual_left h2{font-size: 32px; line-height: 125%; letter-spacing: -1px; margin-bottom: 16px;}
    .visual_left p{font-size: var(--fs14, 14px); margin-bottom: 24px;}
    .visual_btns{flex-wrap: wrap; gap: 8px;}
    .visual_btn{padding: 13px 22px; font-size: 13px;}
    .visual_right{height: 100%;}

    /* 모바일에선 카운터/썸네일 숨김 — 화살표만 노출 */
    .visual_counter, .visual_thumbs{display: none;}

    /* 화살표 — 우측 이미지 영역의 우하단 */
    .visual_nav{bottom: 20px; right: 20px; left: auto; gap: 6px;}
    .visual_prev, .visual_next{width: 40px; height: 40px; background: rgba(255,255,255,0.95); border: 0;}
    .visual_prev span, .visual_next span{font-size: 16px;}

    /* 마키 */
    .marquee_inner{gap: 30px;}
    .marquee_inner span{font-size: 40px;}

    /* ABOUT */
    .m2_left h2{font-size: 28px;}
    .m2_label{font-size: 12px; margin-bottom: 24px;}
    .m2_desc{font-size: 15px; margin-bottom: 40px;}
    .m2_about .box_wrap{flex-wrap: wrap; gap: 30px 4%;}
    .m2_about .box{width: 48%;}
    .m2_about .box strong{font-size: 36px;}

    /* WHY US */
    .m3_top_left h2{font-size: 28px;}
    .m3_label{font-size: 12px; margin-bottom: 24px;}
    .m3_top_right{flex-direction: column; align-items: flex-start; gap: 12px;}
    .m3_whyus .box{width: 100%; padding: 28px 0;}
    .m3_whyus .box:not(:nth-child(4n)),
    .m3_whyus .box:nth-child(2n){padding-right: 0;}
    .m3_box_top{margin-bottom: 20px;}
    .m3_icon{font-size: 28px;}

    /* RECENT PROJECTS */
    .m4_top h2{font-size: 28px;}
    .m4_label{font-size: 12px; margin-bottom: 24px;}
    .m4_recent .box{width: 100%;}
    .m4_recent .box_wrap{gap: 40px 0;}
    .m4_recent .box strong{font-size: 17px;}

    /* NEWS & NOTICE */
    .m5_left h2{font-size: 28px; margin-bottom: 22px;}
    .m5_label{font-size: 12px; margin-bottom: 20px;}
    .m5_notice .box a{padding: 20px 0; gap: 16px;}
    .m5_notice .box .img{width: 110px;}
    .m5_notice .box .text{gap: 6px;}
    .m5_cat{padding: 3px 10px; font-size: 11px;}
    .m5_date{font-size: 12px;}
    .m5_notice .box strong{font-size: 15px;}
    .m5_excerpt{display: none;}

    .ft_top{padding: 50px 0 40px;}
    .ft_inner{flex-direction: column; gap: 40px;}
    .ft_info{width: 100%; text-align: left;}
    .ft_contact_row{flex-direction: column; gap: 6px;}
    .ft_bottom{padding: 20px 0;}
    .ft_bottom_inner{flex-direction: column; gap: 10px; text-align: center;}
    /* 서브페이지 타이틀 반응형 */
    .a1_row h3, .a2_top h2, .a5_title, .a6_title, .a3_title, .a4_title, .ci_intro h2, .b1_top h2, .b1_process_top h2, .b2_top h2, .b3_top h2, .b4_top h2, .b5_top h2, .c1_section_top h2, .c1_hero_text h2, .c2_section_top h2, .c2_recommend_right h2, .c2_cta_text h2, .a4_intro_text h2{font-size: 25px;}

    /* 사이트맵 카드 — 1컬럼 (모바일에선 보통 헤더 숨김으로 노출 안 되지만 안전장치) */
    .site_map > .dept1{width: 100%;}

    .c1_hero_wrap{flex-direction: column; gap: 36px;}
    .c1_hero_text{width: 100%;}
    .c1_hero_img{width: 100%;}
    .c1_hero_btns{flex-direction: column; gap: 10px;}
    .c1_hero_btn{justify-content: center;}
    .c1_core .box{width: 100%;}
    .c1_faq_q span{font-size: 15px;}
    .c1_cta{padding: 60px 0;}
    .c2_recommend_wrap{flex-direction: column; gap: 32px;}
    .c2_recommend_img{width: 100%;}
    .c2_recommend_right{width: 100%;}
    .c2_preview .box{width: 100%;}
    .c2_faq_q span{font-size: 15px;}
    .c2_cta{padding: 60px 0;}
    .c1_cta_inner, .c2_cta_inner{flex-direction: column; text-align: center; gap: 28px;}
    .c1_cta_text h2, .c2_cta_text h2{font-size: var(--fs22, 22px);}
    .c1_cta_btns, .c2_cta_btns{flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 10px;}
    .c1_cta_btn, .c2_cta_btn{justify-content: center; padding: 13px 24px; font-size: 14px;}
}
