/* interaction */
html{scrollbar-gutter:stable;}
a,button{transition:color var(--transition-base),opacity var(--transition-base),background-color var(--transition-base);}

/* custom cursor를 쓰는 동안은 항상 기본 커서를 숨긴다 — 클릭/grab 가능한 요소도 예외 없이 숨기고
대신 JS에서 커스텀 커서(.cursor_dot)를 확대해서 보여준다. 개별 요소의 cursor:pointer/grab 선언보다
우선해야 해서 !important로 덮어쓴다 */
@media (pointer:fine){
  *{cursor:none !important;}
}

/* noise overlay */
body{background:var(--color-bg)}
body::before{content:'';display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:url('/main/images/common/noise.webp') repeat;background-size:512px 512px;opacity:0.04;pointer-events:none;}

/* cursor — 항상 최상단에 있어야 하므로 페이지 내 다른 모든 z-index(팝업 등)보다 높은 값을 쓴다 */
.cursor_dot{display:flex;position:fixed;top:0;left:0;z-index:999;width:15px;height:12px;justify-content:center;align-items:center;background:var(--color-accent);
  clip-path: polygon(
          50% 0%,
          85% 25%,
          85% 75%,
          50% 100%,
          15% 75%,
          15% 25%
  );
  opacity:0;border-radius:50%;background:var(--color-accent);pointer-events:none;transition:opacity var(--transition-fast),background-color var(--transition-base);will-change:transform;}
/* grab 상태에서는 흰색 + difference 블렌드로 바꿔서 뒤에 깔린 이미지 색을 반전시켜 보여준다 */
.cursor_dot.is_grab{background:var(--color-white);mix-blend-mode:difference;}

/* gnb */
.gnb{position:fixed;top:0;left:0;z-index:100;width:100%;transition:backdrop-filter var(--transition-base)}
.gnb.is_scrolled{background:rgba(255, 255, 255, 0.05);backdrop-filter:blur(20px);}

.gnb_inner{display:flex;width:100%;gap:28px;height:74px;margin:0 auto;padding:0 30px;justify-content:space-between;align-items:center;}
.gnb_menu_btn{display:flex;align-items:center;gap:20px;justify-content:center;position:relative;z-index:10}
.gnb_symbol{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:50%;z-index:10;width:50px;height:74px;margin-left:-25px;}
.gnb_bar{display:block;position:relative;width:24px;height:13px;}
.gnb_bar_line{display:block;position:absolute;left:0;width:24px;height:1px;background:var(--color-surface);transform-origin:left center;transition:transform var(--transition-base),background-color var(--transition-base);text-indent:-9999px}
.gnb_bar_line_top{top:0;width:30px;}
.gnb_bar_line_mid{top:6px;}
.gnb_bar_line_bottom{top:12px;width:28px}
.gnb_menu_btn[aria-expanded="true"] .gnb_bar_line{height:2px}
.gnb_menu_btn[aria-expanded="true"] .gnb_bar_line_top{transform:translateY(6px) rotate(-45deg) scaleX(0.4);}
.gnb_menu_btn[aria-expanded="true"] .gnb_bar_line_bottom{transform:translateY(-6px) rotate(45deg) scaleX(0.4);}
.gnb_logo{font-family:'Inter',sans-serif;font-weight:800;font-size:20px;line-height:1.4;text-transform:uppercase;color:var(--color-surface);transition:color var(--transition-base);}

/* accd_wrap */
.gnb_open_body .accd_wrap {display:none;}
.accd_wrap{position:relative;margin-left:auto;}
.accd_wrap .accd_head{position:relative;display:flex;gap:4px;align-items: center;color: #747474;font-family: "Inter Display";font-size: 12px;font-weight: 800;letter-spacing: 0.24px;padding: 6px 9px;}
.accd_wrap .accd_head:after {content:'';width:8px;height:8px;border-left:1.5px solid #747474;border-bottom:1.5px solid #747474; transform:rotate(-45deg);margin-top: -4px;}
.accd_wrap .accd_cont{display:none;position:absolute;left:50%;transform:translateX(-50%);width:72px;text-align:center; border-radius:5px;border:1px solid #d7d7d7;box-shadow: 0 7px 9px 0 rgba(0, 0, 0, 0.07);background:#fff;padding:10px 0;}
.accd_wrap .accd_cont>li + li {margin-top:12px;}
.accd_wrap .accd_cont a {color: #747474;font-family: "Inter Display";font-size: 12px;font-weight: 800;letter-spacing: 0.24px;}
.accd_wrap .accd_cont a:hover {color:#B71C1C;text-decoration-line: underline;text-decoration-style: solid;text-decoration-skip-ink: none;text-decoration-thickness: auto;text-underline-offset: 25%; /* 3px */text-underline-position: from-font;}

.gnb_project_btn{display:flex;text-decoration:none;justify-content:flex-end;align-items:center;gap:10px;z-index:10}
.gnb_project_btn span{font-family:'Inter',sans-serif;font-weight:600;font-size:16px;letter-spacing:-0.32px;color:var(--color-text-dark);transition:color var(--transition-base);white-space:nowrap}
.gnb_project_btn_circle{display:flex;overflow:hidden;justify-content:center;align-items:center;width:42px;height:42px;border-radius:50%;background:var(--color-surface);transition:background-color var(--transition-base);}
.gnb_project_btn_arrow{will-change:transform,opacity;}
/* gnb theme — 헤더 아래 배경이 어두운 섹션(about 이후)을 지날 때 JS가 .gnb에 is_dark를 토글한다.
symbol(로고)은 라이트·다크 모두 빨간색 그대로 고정이라 테마와 무관하다 */
.gnb.is_dark .gnb_bar_line{background:var(--color-text-primary);}
.gnb.is_dark .gnb_logo{color:var(--color-text-primary);}
.gnb.is_dark .gnb_project_btn span{color:var(--color-text-primary);}
.gnb.is_dark .gnb_project_btn_circle{background:var(--color-text-primary);}
/* gnb_open이 열리면(흰 배경 드로어 위) is_dark 상태와 무관하게 gnb_menu_btn은 항상 #222로 보이게 강제한다 */
.gnb_menu_btn[aria-expanded="true"] .gnb_bar_line{background:var(--color-surface);}
.gnb_menu_btn[aria-expanded="true"] .gnb_logo{color:var(--color-surface);}
.gnb_menu_btn[aria-expanded="true"] .gnb_project_btn span{color:var(--color-text-dark);}
.gnb_project_btn:hover .gnb_project_btn_arrow{animation:gnb_arrow_loop_auto 5s infinite;}

/* gnb open */
body.is_locked{overflow:hidden;}
.gnb_open{display:flex;overflow:hidden;position:fixed;top:0;left:0;z-index:5;width:100%;height:100%;min-height:100dvh;visibility:hidden;opacity:0;transition:opacity var(--transition-base),visibility var(--transition-base);backdrop-filter: blur(3px);}
.gnb_open.is_active{visibility:visible;opacity:1;}
.gnb_open_panel{display:flex;overflow-y:auto;position:relative;flex-direction:column;width:35%;max-width:90%;height:100%;background:var(--color-white);will-change:transform;transform:translateX(-100%);transition:transform var(--transition-slow);}
.gnb_open_panel::before{content:'';display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:url('/main/images/common/noise.png') repeat;background-size:512px 512px;opacity:0.04;pointer-events:none;}
.gnb_open.is_active .gnb_open_panel{transform:translateX(0);}
.gnb_open_body{display:flex;flex:1;flex-direction:column;padding:145px 60px 60px;}

/* gnb open nav */
.gnb_open_list{display:flex;flex-direction:column;gap:40px;}
.gnb_open_list li{position:relative;}
.gnb_open_list li.has_sub{display:flex;align-items:flex-start;}
.gnb_open_link{display:block;width:135px;font-family:'Inter',sans-serif;font-weight:700;font-size:36px;line-height:0.78;letter-spacing:-1.44px;color:var(--color-text-dark);transition:opacity var(--transition-base);}
/*.gnb_open_list:hover .gnb_open_link:not(:hover),.gnb_open_list:focus-within .gnb_open_link:not(:focus){opacity:0.3;}
.gnb_open_list li.has_sub:hover>.gnb_open_link,.gnb_open_list li.has_sub:focus-within>.gnb_open_link{opacity:1;}*/
.gnb_open_list:focus-within .gnb_open_link:not(:focus){opacity:0.3;}
.gnb_open_list li.has_sub:focus-within>.gnb_open_link{opacity:1;}
.gnb_open_sublist{display:flex;position:absolute;top:10px;left:140px;z-index:10;width:140px;margin-left:70px;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;will-change:transform,opacity;transform:translateY(-8px);transition:opacity var(--transition-base),transform var(--transition-base),visibility var(--transition-base);}
.gnb_open_sublist::before{content:'';display:block;position:absolute;top:7px;left:-53px;width:53px;height:1px;background:var(--color-border);}
.gnb_open_sublist li{padding:20px 0;}
.gnb_open_sublist li:first-child{padding-top:0}
.gnb_open_sublist li::after{content:'';display:block;position:absolute;top:7px;left:-1px;width:1px;height:100%;background:var(--color-border);}
.gnb_open_sublist li:last-child::after{height:calc(50% - 7px)}
/*.gnb_open_list li.has_sub:hover>.gnb_open_sublist,.gnb_open_list li.has_sub:focus-within>.gnb_open_sublist,.gnb_open_list li.has_sub.is_active>.gnb_open_sublist{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}*/
.gnb_open_list li.has_sub:focus-within>.gnb_open_sublist,.gnb_open_list li.has_sub.is_active>.gnb_open_sublist{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}
.gnb_open_sublist a{display:block;position:relative;padding-left:30px;font-family:'Inter',sans-serif;font-weight:700;font-size:18px;line-height:0.78;letter-spacing:-0.72px;color:var(--color-text-dark);}
.gnb_open_sublist a::before{content:'';display:block;position:absolute;top:3px;left:-4px;z-index:1;width:8px;height:8px;border:1px solid var(--color-border);background:var(--color-white);}
.gnb_open_sublist a::after{content:'';display:block;position:absolute;top:50%;left:0;width:20px;height:1px;background:var(--color-border);}

/* gnb open links */
.gnb_open_links{display:flex;flex-direction:column;margin-top:80px;gap:10px;}
.gnb_open_util{display:flex;align-items:center;gap:10px;font-family:'Inter',sans-serif;font-weight:700;font-size:15px;letter-spacing:-0.3px;color:var(--color-text-dark);transition:color var(--transition-base);}
.gnb_open_util_company::before{background-image:url(/main/images/common/icon_gnb_company.svg);}
.gnb_open_util_insta::before{background-image:url(/main/images/common/icon_gnb_insta.svg);}
.gnb_open_util:hover{color:var(--color-accent-red);}
.gnb_open_util_company:hover::before{background-image:url(/main/images/common/icon_gnb_company_red.svg);}
.gnb_open_util_insta:hover::before{background-image:url(/main/images/common/icon_gnb_insta_red.svg);}

/* gnb open contact */
.gnb_open_contact{margin-top:auto;}

/* contact block — gnb open과 start a project 팝업이 공유하는 주소 영역 */
.contact_tel{font-family:'Inter',sans-serif;font-weight:800;font-size:24px;letter-spacing:-0.48px;color:var(--color-text-dark);}
.contact_address{margin-top:30px;font-family:'Pretendard',sans-serif;font-weight:500;font-size:14px;color:var(--color-text-dark);}
.contact_copy{margin-top:10px;font-family:'Inter',sans-serif;font-weight:500;font-size:12px;letter-spacing:-0.24px;color:var(--color-text-dark);}

/* project open — start a project 버튼으로 여는 문의 폼 팝업. gnb open과 같은 오버레이+패널
슬라이드 구조이되, 패널이 오른쪽에서 열린다 */
.project_open{display:flex;overflow:hidden;position:fixed;top:0;left:0;z-index:6;width:100%;height:100%;min-height:100dvh;justify-content:flex-end;visibility:hidden;opacity:0;transition:opacity var(--transition-base),visibility var(--transition-base);backdrop-filter:blur(3px);}
.project_open.is_active{visibility:visible;opacity:1;}
.project_open_panel{display:flex;overflow:hidden;position:relative;width:1200px;max-width:90%;height:100%;background:var(--color-white);will-change:transform;transform:translateX(100%);transition:transform var(--transition-slow);}
.project_open_panel::before,.alert_popup_panel::before{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:url('/main/images/common/noise.png') repeat;background-size:512px 512px;opacity:0.04;pointer-events:none;}
.project_open.is_active .project_open_panel{transform:translateX(0);}

/* start a project 버튼이 팝업 close 자리로 이동해 있는 동안(common.js가 gnb_inner에 토글) —
흰 배경 aside 위라 is_dark와 무관하게 항상 라이트(비다크) 모습으로 고정한다 */
.gnb_inner.is_moved .gnb_symbol{z-index:1;}
.gnb_inner.is_moved .gnb_project_btn{position:fixed;z-index:20;margin:0;transition:opacity var(--transition-fast);}
.gnb_inner.is_moved .gnb_project_btn span{color:var(--color-text-dark);}
.gnb_inner.is_moved .gnb_project_btn_circle{background:var(--color-surface);}

/* project open aside */
.project_open_aside{display:flex;overflow:hidden;position:relative;width:460px;flex-shrink:0;height:100%;padding:60px 80px;flex-direction:column;justify-content:space-between;}
.project_open_top{position:relative;}
.project_open_copy{display:flex;position:relative;margin-top:72px;flex-direction:column;gap:12px;}
.project_open_copy_tit{font-family:'Pretendard',sans-serif;font-weight:700;font-size:43px;line-height:1.3;letter-spacing:-2.15px;color:var(--color-text-dark);}
.project_open_copy_desc{font-family:'Pretendard',sans-serif;font-weight:500;font-size:15px;line-height:1.5;letter-spacing:-0.75px;color:var(--color-text-dark);}

/* project open form */
.project_open_form{display:flex;overflow-y:auto;position:relative;width:740px;flex-shrink:0;height:100%;padding:150px 80px 60px;flex-direction:column;gap:80px;}
.project_field{display:flex;flex-direction:column;gap:40px;}
.project_field_label{font-family:'Inter',sans-serif;font-weight:700;font-size:24px;line-height:1.5;letter-spacing:-0.96px;color:#353533;}

/* project open checkbox — 관심분야·제작유형 pill과 개인정보 동의 체크박스가 공유하는 기본 모양 */
.project_option input,.project_checkbox input{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0,0,0,0);white-space:nowrap;}
.project_option_box,.project_checkbox_box{display:block;width:26px;height:26px;border-radius:2px;background:var(--color-white) url('/main/images/common/check_ic.svg') no-repeat center/10px 7px;transition:background-color var(--transition-fast),border-color var(--transition-fast);}
.project_option input:not(:checked)~.project_option_box,.project_checkbox input:not(:checked)~.project_checkbox_box{background-image:none;}
.project_option input:checked~.project_option_box,.project_checkbox input:checked~.project_checkbox_box{border-color:var(--color-accent-red);background-color:var(--color-accent-red);}

/* project open options — 행간격 15px / 열간격 50px (Figma input_01: gap 50, counterAxis 15) */
.project_options{display:flex;flex-wrap:wrap;align-items:center;gap:15px 50px;}
.project_option{display:flex;align-items:center;gap:10px;cursor:pointer;}
.project_option_box{border:0.75px solid #CCCCCC;}
.project_option_label{font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-bg-alt);transition:color var(--transition-fast);}
.project_option input:checked~.project_option_label{color:var(--color-accent-red);}

/* start project chip — 실제 배포된 프로젝트 문의 패널 마크업은 project_option이 아니라 이 클래스명을 쓴다
(박스용 별도 span 없이 input 자체가 체크박스). sibling(~)으로 박스를 칠하는 project_option과 달리
input 자체에 배경·보더를 직접 줘서 위와 같은 모양(사각 체크박스 + 체크 아이콘)을 낸다 */
.start_project_chip{display:flex;align-items:center;gap:10px;cursor:pointer;font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-bg-alt);transition:color var(--transition-fast);}
.start_project_chip_input{appearance:none;-webkit-appearance:none;display:block;width:26px;height:26px;flex-shrink:0;border:0.75px solid #CCCCCC;border-radius:2px;background-color:var(--color-white);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);}
.start_project_chip_input:checked{border-color:var(--color-accent-red);background:var(--color-accent-red) url('/main/images/common/check_ic.svg') no-repeat center/10px 7px;}
.start_project_chip:has(.start_project_chip_input:checked){color:var(--color-accent-red);}

/* project open inputs */
.project_input{display:block;width:100%;height:50px;padding:12px;border:0.75px solid #DDDDDD;border-radius:2px;background:var(--color-white);font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-text-dark);}
.project_input::placeholder{color:#999999;}
.project_budget{display:flex;align-items:center;gap:15px;}
.project_budget_unit{font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-bg-alt);white-space:nowrap}
.project_row{display:flex;gap:15px;}

/* project open select */
.project_select{display:flex;position:relative;width:100%;}
.project_select_trigger{display:flex;justify-content:space-between;align-items:center;width:100%;height:50px;padding:12px 15px 12px 12px;border:0.75px solid #DDDDDD;border-radius:2px;background:var(--color-white);transition:border-color var(--transition-fast);}
.project_select_trigger[aria-expanded="true"]{border-color:var(--color-border-strong);}
.project_select_value{font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-border-strong);}
.project_select_arrow{transform:rotate(180deg);transition:transform var(--transition-base);}
.project_select_trigger[aria-expanded="true"] .project_select_arrow{transform:rotate(0deg);}
.project_select_list{display:flex;overflow-y:auto;position:absolute;top:calc(100% + 5px);left:0;z-index:10;width:100%;max-height:260px;padding:20px;flex-direction:column;border:1px solid #E5E5E5;border-radius:2px;background:var(--color-white);gap:22px;}
.project_select_list[hidden]{display:none;}
.project_select_option{font-family:'Pretendard',sans-serif;font-weight:500;font-size:15px;letter-spacing:-0.6px;color:var(--color-border-strong);cursor:pointer;transition:color var(--transition-fast);}
.project_select_option:hover,.project_select_option.is_selected{color:var(--color-accent-red);}

/* project open textarea */
.project_textarea_wrap{display:flex;flex-direction:column;gap:10px;}
.project_textarea{display:block;width:100%;height:120px;padding:12px 15px 12px 12px;border:0.75px solid #DDDDDD;border-radius:2px;background:var(--color-white);font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;line-height:1.4;letter-spacing:-1.12px;color:var(--color-text-dark);resize:none}
.project_textarea::placeholder{color:#999999;}

/* project open attach */
.project_attach{display:flex;justify-content:space-between;align-items:center;width:100%;height:60px;margin-top:11px;padding:0 10px 0 20px;border-radius:2px;background:rgba(188,182,170,0.15);gap:20px;}
.project_attach_info{display:flex;align-items:center;gap:20px;}
.project_attach_tit{font-family:'Pretendard',sans-serif;font-weight:700;font-size:16px;line-height:1.5;letter-spacing:-0.48px;color:var(--color-text-dark);}
.project_attach_file{display:flex;align-items:center;gap:1px;}
.project_attach_file[hidden]{display:none;}
.project_attach_filename{font-family:'Pretendard',sans-serif;font-weight:600;font-size:15px;line-height:1.5;letter-spacing:-0.45px;color:var(--color-text-dark);text-decoration:underline;}
.project_attach_remove{display:flex;}
.project_attach_btn{display:flex;justify-content:center;align-items:center;padding:12px;border-radius:1px;background:var(--color-text-dark);font-family:'Inter',sans-serif;font-weight:600;font-size:16px;letter-spacing:-0.64px;color:var(--color-white);cursor:pointer;gap:4px;}

/* ── 05 첨부(Figma input_05) — 박스: 라벨+안내 / 우측 파일리스트, 박스 아래: 전체폭 파일선택 버튼 ──
   .project_attach* 는 careers 지원서 패널도 공유하므로 문의 폼 하위로만 한정한다. */
.project_open_form .project_textarea_wrap{gap:11px;}
.project_open_form .project_attach{align-items:center;height:auto;min-height:60px;margin-top:0;padding:10px 10px 10px 20px;}
.project_open_form .project_attach_info{align-items:center;gap:10px;}
.project_attach_hint{font-family:'Pretendard',sans-serif;font-weight:500;font-size:14px;line-height:1.43;letter-spacing:-0.98px;color:#666666;}
.project_attach_files{display:flex;flex-direction:column;align-items:flex-end;max-width:320px;margin:0;padding:0;list-style:none;}
.project_attach_files:empty{display:none;}
.project_attach_files .project_attach_file{display:flex;align-items:center;gap:8px;max-width:100%;padding:4px 0;}
.project_attach_files .project_attach_filename{max-width:274px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500;font-size:14px;line-height:1.5;letter-spacing:-0.42px;}
.project_attach_files .project_attach_remove{display:flex;justify-content:center;align-items:center;flex-shrink:0;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:rgba(188,182,170,0.5);cursor:pointer;}
.project_open_form .project_attach_btn{width:100%;height:40px;padding:0 12px;}
/* 문의하기 버튼 — 캡차(디자인 input_08)를 없앴으므로 그 자리만큼 위로 올린다(폼 gap 80 → 60, Figma 필드 간격) */
.project_open_form .project_submit_btn{margin-top:-20px;}

/* project open terms */
.project_terms{display:flex;flex-direction:column;gap:20px;}
.project_row_wrap{display:flex;flex-direction:column;gap:15px;}

/* project open privacy */
.project_privacy_tit{margin-bottom:10px;font-family:'Pretendard',sans-serif;font-weight:700;font-size:16px;line-height:1.5;letter-spacing:-0.48px;color:var(--color-text-dark);}
.project_privacy_scroll{display:flex;width:100%;padding:20px 10px 20px 20px;flex-direction:column;justify-content:center;border-radius:2px;background:#F1F0EE;font-family:'Pretendard',sans-serif;font-weight:500;font-size:14px;line-height:1.5;letter-spacing:-0.7px;color:#444444;gap:10px;}
.project_privacy_inner{overflow-y:auto;max-height:100px;padding-right:10px;scrollbar-width:thin;scrollbar-color:var(--color-accent-red) #EEEEEE;}
.project_privacy_inner p:first-child{margin-bottom:10px;font-weight:600;color:var(--color-text-dark);}
.project_privacy_inner::-webkit-scrollbar{width:5px;}
.project_privacy_inner::-webkit-scrollbar-track{border-radius:50px;background:#EEEEEE;}
.project_privacy_inner::-webkit-scrollbar-thumb{border-radius:50px;background:var(--color-accent-red);}
.project_checkbox{display:flex;align-items:center;justify-content:flex-end;margin-top:16px;gap:12px;cursor:pointer;}
.project_checkbox_box{flex-shrink:0;border:1.5px solid #CCCCCC;}
.project_checkbox_label{font-family:'Pretendard',sans-serif;font-weight:600;font-size:16px;letter-spacing:-1.12px;color:var(--color-bg-dark);}

/* privacy agree input — 실제 배포 마크업은 project_checkbox_box span 없이 input 자체(.privacy_agree_input)가
   체크박스다(project_checkbox 래퍼·project_checkbox_label 텍스트는 그대로라 손대지 않는다). 위
   ".project_option input,.project_checkbox input" 숨김 규칙(클립 트릭)보다 특이도를 높여 되돌리고,
   project_checkbox_box와 동일한 사각 체크박스 + 체크 아이콘 모양을 input 자체에 직접 준다 */
.project_checkbox input.privacy_agree_input{position:static;overflow:visible;width:26px;height:26px;clip:auto;white-space:normal;appearance:none;-webkit-appearance:none;display:block;flex-shrink:0;border-radius:2px;border:1.5px solid #CCCCCC;background-color:var(--color-white);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);}
.project_checkbox input.privacy_agree_input:checked{border-color:var(--color-accent-red);background:var(--color-accent-red) url('/main/images/common/check_ic.svg') no-repeat center/10px 7px;}

/* project open submit */
.project_submit_btn{display:flex;justify-content:center;align-items:center;width:100%;padding:20px 25px 20px 30px;border-radius:2px;background:var(--color-accent-red);font-family:'Pretendard',sans-serif;font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-0.36px;text-transform:capitalize;color:var(--color-white);}

/* alert popup — 공용 알림 팝업(문의 완료 등) */
.alert_popup{display:flex;overflow:hidden;position:fixed;top:0;left:0;z-index:7;width:100%;height:100%;min-height:100dvh;justify-content:center;align-items:center;visibility:hidden;opacity:0;background:rgba(0,0,0,0.4);transition:opacity var(--transition-base),visibility var(--transition-base);backdrop-filter:blur(3px);}
.alert_popup.is_active{visibility:visible;opacity:1;}
.alert_popup_panel{display:flex;overflow:hidden;position:relative;width:762px;height:550px;max-width:90%;flex-direction:column;align-items:center;justify-content:center;padding:60px;border-radius:2px;background:var(--color-white);will-change:transform;transform:scale(0.95);transition:transform var(--transition-base);gap:20px;}
.alert_popup.is_active .alert_popup_panel{transform:scale(1);}
.alert_popup_tit{font-family:'Pretendard',sans-serif;font-weight:700;font-size:32px;letter-spacing:-1.28px;text-align:center;color:var(--color-text-dark);}
.alert_popup_desc{font-family:'Pretendard',sans-serif;font-weight:500;font-size:16px;line-height:1.5;letter-spacing:-0.48px;text-align:center;color:#67635F;}
.alert_popup_close{width:318px;}

/* privacy policy popup — 열림/닫힘 모션은 alert_popup(오버레이 페이드 + 패널 스케일)과 동일하게 재사용한다 */
.privacy_policy_popup{display:flex;overflow:hidden;position:fixed;top:0;left:0;z-index:7;width:100%;height:100%;min-height:100dvh;justify-content:center;align-items:center;visibility:hidden;opacity:0;background:rgba(0,0,0,0.4);transition:opacity var(--transition-base),visibility var(--transition-base);backdrop-filter:blur(3px);}
.privacy_policy_popup.is_active{visibility:visible;opacity:1;}
.privacy_policy_popup_panel{display:flex;overflow:hidden;position:relative;width:762px;max-width:90%;max-height:85vh;flex-direction:column;border-radius:2px;background:var(--color-white);will-change:transform;transform:scale(0.95);transition:transform var(--transition-base);}
.privacy_policy_popup.is_active .privacy_policy_popup_panel{transform:scale(1);}

/* privacy policy popup head — X 아이콘 옆에 CLOSE 텍스트 라벨이 함께 있는 Figma 디자인 그대로 */
.privacy_policy_popup_head{display:flex;flex-shrink:0;justify-content:flex-end;align-items:center;padding:22px;}
.privacy_policy_popup_close{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;}
.privacy_policy_popup_close span{font-family:'Inter',sans-serif;font-weight:800;font-size:20px;line-height:1.4;text-transform:uppercase;color:#333333;}
.privacy_policy_popup_close img{display:block;width:28px;height:28px;}

/* privacy policy popup body */
.privacy_policy_popup_body{overflow-y:auto;padding:0 60px 80px;}
.privacy_policy_popup_tit{font-family:'Pretendard',sans-serif;font-weight:700;font-size:32px;letter-spacing:-1.28px;color:var(--color-text-dark);}
.privacy_policy_popup_content{display:flex;flex-direction:column;padding-bottom:40px;}
.privacy_policy_popup_divider{margin-bottom:25px;height:2px;border:0;background:#333333;}
.privacy_policy_popup_lead{margin-bottom:30px;font-family:'Pretendard',sans-serif;font-weight:700;font-size:14px;line-height:1.5;letter-spacing:-0.7px;color:var(--color-text-dark);}

/* privacy policy popup article — 조항 제목과 표 사이는 15px, 조항 블록 사이는 30px(Figma 기준) */
.privacy_policy_popup_article{display:flex;flex-direction:column;gap:15px;}
.privacy_policy_popup_article + .privacy_policy_popup_article{margin-top:30px;}
.privacy_policy_popup_article_tit{font-family:'Pretendard',sans-serif;font-weight:500;font-size:14px;line-height:1.5;letter-spacing:-0.7px;color:#444444;}
.privacy_policy_popup_article_tit strong{font-weight:700;}

/* privacy policy popup table */
.privacy_policy_popup_table{width:100%;border-top:1px solid #D9D9D9;}
.privacy_policy_popup_table th{padding:15px 10px;border-bottom:1px solid #939393;background:#F3EFEF;font-family:'Pretendard',sans-serif;font-weight:700;font-size:14px;line-height:1.4;text-align:center;color:#000000;vertical-align:middle}
.privacy_policy_popup_table td{padding:15px 10px;border-bottom:1px solid #D9D9D9;font-family:'Pretendard',sans-serif;font-weight:500;font-size:14px;line-height:1.4;letter-spacing:-0.28px;color:#333333;vertical-align:middle;word-break:keep-all}
.privacy_policy_popup_table td:first-child{width:150px;padding:10px;text-align:center;}

/* privacy policy popup close btn — 하단 전체폭 닫기 버튼 */
.privacy_policy_popup_close_btn{display:flex;justify-content:center;flex-shrink:0;width:100%;padding:20px 25px 20px 30px;border:0;border-radius:2px;background:#000000;font-family:'Pretendard',sans-serif;font-weight:700;font-size:18px;letter-spacing:-0.36px;color:var(--color-white);cursor:pointer;transition:opacity var(--transition-base);}
.privacy_policy_popup_close_btn:hover{opacity:0.85;}

/* footer */
.footer_section{overflow:hidden;background:var(--color-bg-dark);}

/* footer marquee */
.footer_marquee{display:flex;overflow:hidden;height:120px;margin-bottom:36px}
.footer_marquee_track{display:flex;align-items:center;opacity:0.26;}
.footer_marquee_item{display:flex;align-items:center;flex-shrink:0;margin:0 27px;gap:15px;}
.footer_marquee_item::after{content:'';display:block;width:127px;height:127px;background:url(/main/images/common/icon_new_Link.svg) no-repeat center/contain;transition:background var(--transition-base)}
.footer_marquee_item span{font-family:'Inter display',sans-serif;font-weight:800;font-size:120px;line-height:1.2;letter-spacing:-3px;text-transform:uppercase;color:var(--color-text-primary);white-space:nowrap;transition:color var(--transition-base);}
.footer_marquee_track:hover{opacity:1}
.footer_marquee_track:hover .footer_marquee_item span{color:var(--color-accent-red);}
.footer_marquee_track:hover .footer_marquee_item::after{background-image:url(/main/images/common/icon_new_Link_red.svg);}

/* footer main */
.footer{display:flex;overflow:hidden;flex-direction:column;/*max-width:1920px;*/margin:0 auto;background:var(--color-bg-dark);}
.footer_inner{display:flex;position:relative;z-index:1;flex:1;padding:0 30px;gap:15px;}

/* footer nav */
.footer_nav{display:flex;width:538px;flex-direction:column;flex-shrink:0;gap:20px;}
.footer_col_tit{font-family:'Inter',sans-serif;font-weight:700;font-size:16px;line-height:1.23;color:rgba(243,243,239,0.5);}
.footer_nav_list{display:flex;width:458px;flex-direction:column;}
.footer_nav_list li{display:block;border-bottom:1px solid rgba(243,243,239,0.15);}
.footer_nav_list li:last-child{border-bottom:none;}
.footer_nav_list a{display:block;padding:10px 0;font-family:'Inter',sans-serif;font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-0.4px;color:var(--color-bg);background:url(/main/images/common/icon_footer_nav.svg) no-repeat calc(100% - 12px) 50%;transition:background-position var(--transition-base)}
.footer_nav_list a:hover{background-image:url(/main/images/common/icon_footer_nav_white.svg);background-position-x:100%}

/* footer contact */
.footer_contact{display:flex;flex-direction:column;flex:1;padding:0 40px;gap:30px;}
.footer_intro{display:flex;flex-direction:column;width:760px;}
.footer_intro_desc{font-family:'Inter',sans-serif;font-weight:600;font-size:21px;line-height:1.2;letter-spacing:-0.42px;color:var(--color-bg);}
.footer_intro_dl{display:flex;align-items:flex-end;gap:10px;font-family:'Inter',sans-serif;font-weight:700;font-size:46px;line-height:1.23;letter-spacing:-2.3px;color:var(--color-bg);transition:color var(--transition-base);}
.footer_intro_dl::after{content:'';display:block;flex-shrink:0;width:65px;height:65px;background:url(/main/images/common/icon_contact.svg) no-repeat center/contain;transition:background var(--transition-base)}
.footer_intro_dl:hover{color:var(--color-accent-red);}
.footer_intro_dl:hover::after{background-image:url(/main/images/common/icon_contact_red.svg);}
.footer_contact_info{display:flex;flex-direction:column;gap:12px;}
.footer_address{font-family:'Inter',sans-serif;font-weight:700;font-size:14px;line-height:1.45;color:var(--color-bg);}
.footer_contact_row{display:flex;align-items:center;gap:40px;}
.footer_contact_row a,.footer_contact_row span{font-family:'Inter',sans-serif;font-weight:700;font-size:14px;line-height:1.5;color:rgba(243,243,239,0.6);}
.footer_sns_btn{display:flex;}

/* footer sub */
.footer_sub{display:flex;position:relative;justify-content:space-between;align-items:flex-end;}
.footer_bg_text{position:absolute;bottom:-100px;left:30px;font-family:'Sofia Sans Extra Condensed',sans-serif;font-weight:900;font-size:487px;line-height:0.85;letter-spacing:-19.48px;text-transform:uppercase;color:#171717;}

/* footer photo */
.footer_photo_wrap{position:relative;width:505px;height:100%;will-change:transform;}
.footer_photo_wrap::after{content:'';display:block;position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background:rgba(0,0,0,0.2);}
.footer_photo_img{width:100%;height:100%;margin-top:30px;object-fit:cover;}
.footer_tagline{position:relative;z-index:2;font-family:'Inter',sans-serif;font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-0.36px;text-align:right;color:var(--color-text-secondary);}

/* footer bottom */
.footer_bottom{display:flex;position:relative;z-index:10;align-items:center;padding:20px 30px 48px;gap:30px;}
.footer_copy{font-family:var(--font-body);font-weight:500;font-size:14px;line-height:1.5;color:rgba(243,243,239,0.4);}
.footer_policy{display:flex;gap:30px;}
.footer_policy a{font-family:var(--font-body);font-weight:500;font-size:14px;line-height:1.5;color:rgba(243,243,239,0.4);}

/* keyframes */
@keyframes marquee_loop{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@keyframes gnb_arrow_loop_auto{
  0%{transform:translateX(0);opacity:1;animation-timing-function:cubic-bezier(0.55,0,1,0.45);}
  4.56%{transform:translateX(70px);opacity:0;animation-timing-function:steps(1,end);}
  4.8%{transform:translateX(-55px);opacity:0;animation-timing-function:cubic-bezier(0,0.55,0.45,1);}
  12%,100%{transform:translateX(0);opacity:1;}
}

/* gnb open nav hover — 1025px부터가 PC GNB. 1024px 이하는 모바일 GNB라 서브메뉴를 hover가 아니라 클릭(common.js가 붙이는 is_active)으로 여닫으므로,
hover로 여닫는 규칙과 hover dim은 이 블록에 모아 PC에서만 적용한다. is_active/:focus-within 규칙은 두 구간 공통이라 base에 그대로 둔다 */
@media only screen and (min-width:1025px){
  .gnb_open_list:hover .gnb_open_link:not(:hover){opacity:0.3;}
  .gnb_open_list li.has_sub:hover>.gnb_open_link{opacity:1;}
  .gnb_open_list li.has_sub:hover>.gnb_open_sublist{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}
}

/* 1920px~1025px 구간 — PC 디자인을 1920px 기준 비율 그대로 축소한다. px→vw 변환 대상만 오버라이드하고
나머지 선언(레이아웃 타입, 색상 등)은 위 PC 규칙을 그대로 따른다. 1px·2px 선 두께, border/outline/box-shadow는
비율 축소 대상에서 제외해 그대로 둔다 */
@media screen and (min-width:1025px) and (max-width:1920px){
  /* gnb */
  .gnb_inner{height:3.8542vw;padding:0 1.5625vw;}
  .gnb_menu_btn{gap:1.0417vw;}
  .gnb_symbol{width:2.6042vw;height:3.8542vw;margin-left:-1.3021vw;}
  .gnb_bar{width:1.25vw;height:0.6771vw;}
  .gnb_bar_line{width:1.25vw;}
  .gnb_bar_line_top{width:1.5625vw;}
  .gnb_bar_line_mid{top:0.3125vw;}
  .gnb_bar_line_bottom{top:0.625vw;width:1.4583vw;}
  .gnb_menu_btn[aria-expanded="true"] .gnb_bar_line_top{transform:translateY(0.3125vw) rotate(-45deg) scaleX(0.4);}
  .gnb_menu_btn[aria-expanded="true"] .gnb_bar_line_bottom{transform:translateY(-0.3125vw) rotate(45deg) scaleX(0.4);}
  .gnb_logo{font-size:1.0417vw;}
  .gnb_project_btn{gap:0.5208vw;}
  .gnb_project_btn span{font-size:0.8333vw;letter-spacing:-0.0167vw;}
  .gnb_project_btn_circle{width:2.1875vw;height:2.1875vw;}
  .gnb_project_btn_circle img{width:1.09375vw}

  /* gnb open */
  .gnb_open_panel{width:35vw;}
  .gnb_open_panel::before{background-size:26.6667vw 26.6667vw;}
  .gnb_open_body{padding:7.5521vw 3.125vw 3.125vw;}

  /* gnb open nav */
  .gnb_open_list{gap:2.0833vw;}
  .gnb_open_link{width:7.0313vw;font-size:1.875vw;letter-spacing:-0.075vw;}
  .gnb_open_sublist{top:0.5208vw;left:7.2917vw;width:7.2917vw;margin-left:3.6458vw;transform:translateY(-0.4167vw);}
  .gnb_open_sublist li{padding:1.0417vw 0;}
  .gnb_open_sublist::before{top:0.3646vw;left:-2.7604vw;width:2.7604vw;}
  .gnb_open_sublist::after{top:0.3646vw;left:-0.0521vw;height:5.7292vw;}
  .gnb_open_sublist a{padding-left:1.5625vw;font-size:0.9375vw;letter-spacing:-0.0375vw;}
  .gnb_open_sublist a::before{top:0.1563vw;left:-0.2083vw;width:0.4167vw;height:0.4167vw;}
  .gnb_open_sublist a::after{width:1.0417vw;}

  /* gnb open links */
  .gnb_open_links{margin-top:4.1667vw;gap:0.5208vw;}
  .gnb_open_util{gap:0.5208vw;font-size:0.7813vw;letter-spacing:-0.0156vw;}

  /* contact block */
  .contact_tel{font-size:1.25vw;letter-spacing:-0.025vw;}
  .contact_address{margin-top:1.5625vw;font-size:0.7292vw;}
  .contact_copy{margin-top:0.5208vw;font-size:0.625vw;letter-spacing:-0.0125vw;}

  /* project open */
  .project_open_panel{width:62.5vw;}
  .project_open_aside{width:23.9583vw;padding:3.125vw 4.1667vw;}
  .project_open_copy{margin-top:3.75vw;gap:0.625vw;}
  .project_open_copy_tit{font-size:clamp(23px,2.2396vw,43px);letter-spacing:-0.112vw;}
  .project_open_copy_desc{font-size:clamp(8px,0.7813vw,15px);letter-spacing:-0.0391vw;}

  /* project open form */
  .project_open_form{width:38.5417vw;padding:7.8125vw 4.1667vw 3.125vw;gap:4.1667vw;}
  .project_field{gap:2.0833vw;}
  .project_field_label{font-size:clamp(13px,1.25vw,24px);letter-spacing:-0.05vw;}

  /* project open options */
  .project_options{gap:0.7813vw 2.6042vw;}
  .project_option{gap:0.5208vw;}
  .project_option_box{width:1.3542vw;height:1.3542vw;background-size:0.5208vw 0.3646vw;}
  .project_option_label{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .start_project_chip{gap:0.5208vw;font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .start_project_chip_input{width:1.3542vw;height:1.3542vw;}
  .start_project_chip_input:checked{background-size:0.5208vw 0.3646vw;}

  /* project open inputs */
  .project_input{height:2.6042vw;padding:0.625vw;font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .project_budget{gap:0.7813vw;}
  .project_budget_unit{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .project_row{gap:0.7813vw;}

  /* project open select */
  .project_select_trigger{height:2.6042vw;padding:0.625vw 0.7813vw 0.625vw 0.625vw;}
  .project_select_value{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .project_select_list{top:calc(100% + 0.2604vw);max-height:13.5417vw;padding:1.0417vw;gap:1.1458vw;}
  .project_select_option{font-size:clamp(8px,0.7813vw,15px);letter-spacing:-0.0313vw;}

  /* project open textarea */
  .project_textarea_wrap{gap:0.5208vw;}
  .project_textarea{height:6.25vw;padding:0.625vw 0.7813vw 0.625vw 0.625vw;font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}

  /* project open attach */
  .project_attach{height:3.125vw;margin-top:0.5729vw;padding:0 0.5208vw 0 1.0417vw;gap:1.0417vw;}
  .project_attach_info{gap:1.0417vw;}
  .project_attach_tit{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.025vw;}
  .project_attach_filename{font-size:clamp(8px,0.7813vw,15px);letter-spacing:-0.0234vw;}
  .project_attach_btn{padding:0.625vw;font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0333vw;gap:0.2083vw;}

  /* 05 첨부 — 1920 기준 비율 스케일 */
  .project_open_form .project_textarea_wrap{gap:0.5729vw;}
  .project_open_form .project_attach{min-height:3.125vw;padding:0.5208vw 0.5208vw 0.5208vw 1.0417vw;}
  .project_open_form .project_attach_info{gap:0.5208vw;}
  .project_attach_hint{font-size:clamp(8px,0.7292vw,14px);letter-spacing:-0.051vw;}
  .project_attach_files{max-width:16.6667vw;}
  .project_attach_files .project_attach_file{gap:0.4167vw;padding:0.2083vw 0;}
  .project_attach_files .project_attach_filename{max-width:14.2708vw;font-size:clamp(8px,0.7292vw,14px);letter-spacing:-0.0219vw;}
  .project_attach_files .project_attach_remove{width:0.9375vw;height:0.9375vw;}
  .project_open_form .project_attach_btn{height:2.0833vw;padding:0 0.625vw;}

  /* project open terms */
  .project_terms{gap:1.0417vw;}
  .project_row_wrap{gap:0.7813vw;}

  /* project open privacy */
  .project_privacy_tit{margin-bottom:0.5208vw;font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.025vw;}
  .project_privacy_scroll{padding:1.0417vw 0.5208vw 1.0417vw 1.0417vw;gap:0.5208vw;font-size:clamp(7px,0.7292vw,14px);letter-spacing:-0.0365vw;}
  .project_privacy_inner{max-height:5.2083vw;padding-right:0.5208vw;}
  .project_privacy_inner p:first-child{margin-bottom:0.5208vw;}
  .project_privacy_inner::-webkit-scrollbar{width:0.2604vw;}
  .project_checkbox{margin-top:0.8333vw;gap:0.625vw;}
  .project_checkbox_box{width:1.3542vw;height:1.3542vw;background-size:0.5208vw 0.3646vw;}
  .project_checkbox_label{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.0583vw;}
  .privacy_agree_input{width:1.3542vw;height:1.3542vw;}
  .project_checkbox input.privacy_agree_input:checked{background-size:0.5208vw 0.3646vw;}

  /* project open submit */
  .project_submit_btn{padding:1.0417vw 1.3021vw 1.0417vw 1.5625vw;font-size:clamp(10px,0.9375vw,18px);letter-spacing:-0.0188vw;}

  /* alert popup */
  .alert_popup_panel{width:39.6875vw;height:28.6458vw;padding:3.125vw;gap:1.0417vw;}
  .alert_popup_tit{font-size:clamp(17px,1.6667vw,32px);letter-spacing:-0.0667vw;}
  .alert_popup_desc{font-size:clamp(9px,0.8333vw,16px);letter-spacing:-0.025vw;}
  .alert_popup_close{width:16.5625vw;}

  /* privacy policy popup */
  .privacy_policy_popup_panel{width:39.6875vw;}

  /* privacy policy popup head */
  .privacy_policy_popup_head{padding:1.1458vw;}
  .privacy_policy_popup_close{gap:0.5208vw;}
  .privacy_policy_popup_close span{font-size:clamp(11px,1.0417vw,20px);}
  .privacy_policy_popup_close img{width:1.4583vw;height:1.4583vw;}

  /* privacy policy popup body */
  .privacy_policy_popup_body{padding:0 3.125vw 4.1667vw;}
  .privacy_policy_popup_tit{font-size:clamp(17px,1.6667vw,32px);letter-spacing:-0.0667vw;}
  .privacy_policy_popup_content{padding-bottom:2.0833vw;}
  .privacy_policy_popup_divider{margin-bottom:1.3021vw;}
  .privacy_policy_popup_lead{margin-bottom:1.5625vw;font-size:clamp(7px,0.7292vw,14px);letter-spacing:-0.0365vw;}

  /* privacy policy popup article */
  .privacy_policy_popup_article{gap:0.7813vw;}
  .privacy_policy_popup_article + .privacy_policy_popup_article{margin-top:1.5625vw;}
  .privacy_policy_popup_article_tit{font-size:clamp(7px,0.7292vw,14px);letter-spacing:-0.0365vw;}

  /* privacy policy popup table */
  .privacy_policy_popup_table th{padding:0.7813vw 0.5208vw;font-size:clamp(7px,0.7292vw,14px);}
  .privacy_policy_popup_table td{padding:0.7813vw 0.5208vw;font-size:clamp(7px,0.7292vw,14px);letter-spacing:-0.0146vw;}
  .privacy_policy_popup_table td:first-child{width:7.8125vw;padding:0.5208vw;}

  /* privacy policy popup close btn */
  .privacy_policy_popup_close_btn{padding:1.0417vw 1.3021vw 1.0417vw 1.5625vw;font-size:clamp(10px,0.9375vw,18px);letter-spacing:-0.0188vw;}

  /* footer marquee */
  .footer_marquee{height:6.25vw;margin-bottom:3.3854vw;}
  .footer_marquee_item{margin-right:1.8229vw;gap:0.7813vw;}
  .footer_marquee_item::after{width:6.6146vw;height:6.6146vw;}
  .footer_marquee_item span{font-size:6.25vw;letter-spacing:-0.375vw;}

  /* footer main */
  .footer{max-width:100vw;}
  .footer_inner{padding:0 1.5625vw;gap:0.7813vw;}

  /* footer nav */
  .footer_nav{width:28.0208vw;gap:2.0833vw;}
  .footer_col_tit{font-size:0.8333vw;}
  .footer_nav_list{width:23.8542vw;}
  .footer_nav_list a{padding:0.7292vw 0;font-size:1.0417vw;letter-spacing:-0.0208vw;background-position:calc(100% - 0.625vw) 50%;}

  /* footer contact */
  .footer_contact{padding:0 2.0833vw;gap:2.6042vw;}
  .footer_intro{width:39.5833vw;}
  .footer_intro_desc{font-size:1.0938vw;letter-spacing:-0.0219vw;}
  .footer_intro_dl{gap:0.5208vw;font-size:2.3958vw;letter-spacing:-0.1198vw;}
  .footer_intro_dl::after{width:3.3854vw;height:3.3854vw;}
  .footer_contact_info{gap:0.625vw;}
  .footer_address{font-size:0.7292vw;}
  .footer_contact_row{gap:2.0833vw;}
  .footer_contact_row a,.footer_contact_row span{font-size:0.7292vw;}

  /* footer sub */
  .footer_bg_text{bottom:-5.2083vw;left:1.5625vw;font-size:25.3646vw;letter-spacing:-1.0146vw;}

  /* footer photo */
  .footer_photo_wrap{width:26.3021vw;}
  .footer_photo_img{margin-top:1.5625vw;}
  .footer_tagline{font-size:0.9375vw;letter-spacing:-0.0188vw;}

  /* footer bottom */
  .footer_bottom{padding:1.0417vw 1.5625vw 2.5vw;gap:2.6042vw;}
  .footer_copy{font-size:0.7292vw;}
  .footer_policy{gap:1.6667vw;}
  .footer_policy a{font-size:0.7292vw;}

  /* keyframes — 같은 이름의 keyframes는 이 구간에서 아래 정의가 우선 적용된다 */
  @keyframes gnb_arrow_loop_auto{
    0%{transform:translateX(0);opacity:1;animation-timing-function:cubic-bezier(0.55,0,1,0.45);}
    4.56%{transform:translateX(3.6458vw);opacity:0;animation-timing-function:steps(1,end);}
    4.8%{transform:translateX(-2.8646vw);opacity:0;animation-timing-function:cubic-bezier(0,0.55,0.45,1);}
    12%,100%{transform:translateX(0);opacity:1;}
  }
}


/* mobile (~1024px) */
@media (max-width:1024px){
  /* gnb */
  .gnb_inner{position:relative;z-index:10;height:56px;padding:20px 15px;}
  .gnb_logo{display:none;}
  .gnb_bar{width:27px;}
  .gnb_bar_line{width:20px;}
  .gnb_bar_line_top{width:27px;}
  .gnb_bar_line_bottom{width:24px;}
  .gnb_symbol{height:56px;}
  .gnb_symbol img{width:20px;height:auto;}
  .gnb_project_btn_circle{display:none;}
  .gnb_project_btn span{font-size:clamp(13px, 3.466vw, 16px);letter-spacing:-0.24px;text-align:right;}
  .gnb_open_panel{width:100%;max-width:100%}

  /* gnb open */
  .gnb_open{height:100dvh;min-height:720px;}
  .gnb_open_body{padding:89px 30px 35px;}

  /* gnb open nav */
  .gnb_open_list{gap:30px;}
  .gnb_open_link{width:90px;font-size:24px;letter-spacing:-0.96px;}
  .gnb_open_list.has_active_sub>li:not(.is_active)>.gnb_open_link{opacity:0.3;}
  .gnb_open_sublist{top:7px;left:95px;width:95px;margin-left:45px;gap:0;}
  .gnb_open_sublist::before{top:6px;left:-45px;width:45px;}
  .gnb_open_sublist::after{top:6px;height:75px;}
  .gnb_open_sublist a{padding-left:30px;font-size:13px;letter-spacing:-0.52px;}
  .gnb_open_sublist a::before{left:-3px;width:6px;height:6px;}
  .gnb_open_sublist a::after{top:calc(50% + 1px);left:3px;width:18px;}

  /* gnb open links */
  .gnb_open_links{margin-top:50px;gap:15px;}
  .gnb_open_util{font-size:14px;letter-spacing:-0.26px;}
  .gnb_open_util::before{width:26px;height:26px;}
  
  .gnb_inner .accd_wrap {display:none;}
  
  .gnb_open_body .accd_wrap{display:block;}
  .accd_wrap {margin-left:0;width: fit-content;}
  .accd_wrap .accd_head{padding:0;gap: 10px;font-size: 14px;color: var(--color-text-dark);font-weight: 700;transition: color var(--transition-base);}
  .accd_wrap .accd_head:after{transform: rotate(-135deg);margin-top: -1px;margin-left: -5px;border-color:#000;}
  .accd_wrap .accd_cont{top: 6px;left:auto;right: -86px;transform: translateX(0);width: 78px;padding: 13px 0;}

  /* contact block */
  .contact_tel{font-size:22px;letter-spacing:-0.44px;}
  .contact_address{margin-top:12px;font-size:12px;}
  .contact_copy{margin-top:5px;font-size:10px;letter-spacing:-0.2px;}

  /* project open — 모바일은 닫기/소개 → 폼 → 주소 순 한 줄 스크롤. project_open_aside를
  display:contents로 지워 자식을 panel의 flex item으로 끌어올리고 order로 재배치한다.
  이 영역은 vw 대신 px로 작업한다 */
  .project_open_panel{width:100%;max-width:100%;overflow-y:auto;flex-direction:column;}
  .project_open_aside{display:contents;}
  .project_open_top{order:1;padding:30px 20px;border-bottom:1px solid #E5E5E5;}
  .project_open_copy{margin-top:66px;gap:12px;}
  .project_open_copy_tit{font-size:28px;letter-spacing:-1.4px;}
  .project_open_copy_desc{font-size:14px;letter-spacing:-0.7px;}

  /* 모바일 gnb는 원(circle)을 숨기지만, 팝업 close 자리에서는 36px로 다시 보여준다 */
  .gnb_inner.is_moved .gnb_menu_btn,
  .gnb_inner.is_moved .gnb_symbol{display:none;}
  .gnb_inner.is_moved .gnb_project_btn_circle{display:flex;width:36px;height:36px;}
  .gnb_inner.is_moved .gnb_project_btn_arrow{width:18px;height:auto;}
  /* 스크롤하면 project_open_top이 화면 밖으로 사라지는데 Close 버튼(fixed)만 그 자리에 남아
  아래 콘텐츠와 겹치므로, 맨 위가 아니면 숨긴다(common.js가 스크롤에 따라 토글) */
  .gnb_inner.is_moved .gnb_project_btn.is_scrolled{opacity:0;pointer-events:none;}

  .project_open_form{overflow-y:visible;height:auto;width:100%;order:2;padding:40px 20px;gap:50px;}
  .project_field{gap:25px;}
  .project_field_label{font-size:17px;letter-spacing:-0.68px;}

  /* project open options — 2열 그리드로 줄바꿈 */
  .project_options{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:20px;width:100%;}
  /* 01. 관심 프로젝트 — 라벨이 긴 "기타 솔루션/기타 개발" 칩이 2열에선 깨져서 이 필드만 1열 */
  .project_open_form .project_field:first-child .project_options{grid-template-columns:1fr;}
  .project_option_box{width:24px;height:24px;}
  .project_option_label{font-size:15px;letter-spacing:-1.05px;}
  .start_project_chip_input{width:24px;height:24px;}
  .start_project_chip{font-size:15px;letter-spacing:-1.05px;}

  .project_input{height:45px;font-size:15px;letter-spacing:-1.05px;}
  .project_budget_unit{font-size:15px;letter-spacing:-1.05px;}
  .project_select_trigger{height:45px;}
  .project_select_value{font-size:15px;letter-spacing:-1.05px;}
  .project_textarea{height:200px;font-size:15px;letter-spacing:-1.05px;}

  /* project open attach — Select file 버튼이 위, 첨부된 회색 영역이 아래로 쌓이고,
  파일이 없으면 회색 영역 자체가 안 보인다(Figma mobile input_05) */
  .project_attach{flex-direction:column;align-items:stretch;height:auto;padding:0;background:none;gap:11px;}
  .project_attach_info{justify-content:space-between;order:2;height:60px;padding:0 20px;background:rgba(188,182,170,0.15);border-radius:2px;}
  .project_attach_btn{order:1;font-size:15px;}
  .project_attach:not(.has_file) .project_attach_info{display:none;}

  /* 05 첨부 — 모바일: 박스 안에서 라벨/리스트를 세로로, 파일선택 버튼은 박스 아래 전체폭 유지 */
  .project_open_form .project_attach{flex-direction:column;align-items:stretch;gap:10px;height:auto;min-height:0;padding:15px 20px;background:rgba(188,182,170,0.15);}
  .project_open_form .project_attach:not(.has_file) .project_attach_info{display:flex;}
  .project_open_form .project_attach_info{order:0;justify-content:flex-start;height:auto;padding:0;background:none;}
  .project_attach_files{align-items:stretch;max-width:100%;}
  .project_attach_files .project_attach_file{justify-content:space-between;}
  .project_attach_files .project_attach_filename{max-width:calc(100% - 26px);}
  .project_open_form .project_attach_btn{order:0;height:45px;font-size:15px;}
  .project_open_form .project_submit_btn{margin-top:0;}
  .project_attach_tit{font-size:15px;white-space:nowrap}
  .project_privacy_tit{font-size:15px;letter-spacing:-0.45px;}
  .project_checkbox_box{width:24px;height:24px;}
  .project_checkbox_label{font-size:15px;letter-spacing:-1.05px;}
  .privacy_agree_input{width:24px;height:24px;}

  .contact_block{order:3;display:flex;flex-direction:column;align-items:center;padding:30px 20px 50px;text-align:center;}

  .project_submit_btn{padding:18px 0;font-size:16px;letter-spacing:-0.32px;}

  /* alert popup — project_open과 같은 이유로 px로 작업 */
  .alert_popup_panel{width:345px;height:279px;padding:20px;gap:15px;}
  .alert_popup_tit{font-size:20px;letter-spacing:-0.8px;}
  .alert_popup_desc{font-size:14px;letter-spacing:-0.42px;}
  .alert_popup_close{width:214px;}

  /* footer marquee */
  .footer_marquee{height:auto;padding:20px 0;margin-bottom:0;}
  .footer_marquee_item{margin-right:15px;gap:5px}
  .footer_marquee_item::after{width:36px;height:36px;}
  .footer_marquee_item span{font-size:36px;line-height:1.2;letter-spacing:-2.16px;}

  /* footer main */
  .footer_inner{flex-direction:column;padding:30px 15px 0;gap:50px;}

  /* footer nav */
  .footer_nav{width:100%;gap:15px;}
  .footer_col_tit{font-size:12px;line-height:1.23;}
  .footer_nav_list{width:100%;}
  .footer_nav_list a{padding:12px 0;font-weight:600;font-size:18px;letter-spacing:-0.36px;}

  /* footer contact */
  .footer_contact{padding:0;gap:20px;}
  .footer_intro{width:100%;margin-top:10px;gap:5.33vw}
  .footer_intro_desc{font-weight:500;font-size:13px;letter-spacing:-0.26px;}
  .footer_intro_dl{display:block;font-size:30px;letter-spacing:-1.5px;}
  .footer_intro_dl span{display:inline;padding-right:10px}
  .footer_intro_dl::after{display:inline-block;width:28px;height:27px;}
  .footer_contact_info{margin-top:30px;gap:15px;}
  .footer_address{font-weight:500;font-size:15px;line-height:1.4;letter-spacing:-0.3px;}
  .footer_contact_row{flex-wrap:wrap;row-gap:2px;column-gap:10px;}
  .footer_contact_row a[href^="mailto"]{flex-basis:100%;}
  .footer_contact_row a,.footer_contact_row span{font-weight:600;font-size:12px;}
  .footer_sns_btn img{width:30px;height:30px;}

  /* footer sub */
  .footer_sub{flex-direction:column;align-items:stretch;margin-top:60px;}
  .footer_bg_text{bottom:-25px;left:-10px;font-size:clamp(130px, 34.6vw, 150px);letter-spacing:-5.2px;}

  /* footer photo */
  .footer_photo_wrap{order:1;width:100%;height:auto;padding:0 15px;}
  .footer_photo_wrap::after{display:none;}
  .footer_photo_img{display:none;}
  .footer_tagline{font-weight:600;text-align:left;font-size:12px;letter-spacing:-0.24px;}
  .footer_tagline_break{display:none;}

  /* footer bottom */
  .footer_bottom{display:block;order:2;padding:30px 15px}
  .footer_copy{font-weight:400;font-size:11px;letter-spacing:-0.22px;}
  .footer_policy{gap:8px;}
  .footer_policy a{font-weight:400;font-size:11px;letter-spacing:-0.22px;}
  .footer_policy li:not(:last-child)::after{content:'';display:inline-block;width:2px;height:2px;margin-left:8px;vertical-align:middle;border-radius:50%;background:rgba(243,243,239,0.4);}

}

/* 다국어 선택기 숨김 — 2026-08-03 요청. 되돌리려면 이 블록만 삭제 */
.accd_wrap.lang { display: none !important; }
