PageSourceSearch

https://seochowcf.or.kr/

html seochowcf.or.kr collected 2026-10-09 01:28:40 UTC 329,145 bytes, 8,626 lines download raw bytes

1<!doctype html>
2<html lang="ko">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10,user-scalable=yes">
6<meta name="HandheldFriendly" content="true">
7<meta name="format-detection" content="telephone=no">
8<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9<title>서초복지돌봄재단</title>
10<meta name="naver-site-verification" content="322325f98450eb864cad36c25285d9dcd9454750">
11<meta name="subject" content="서초복지돌봄재단">
12<meta name="description" content="서초구민 누구나 지역사회 안에서 돌봄을 누릴 수 있도록 상담, 돌봄연계, 복지서비스를 제공하는 서초복지돌봄재단 공식 홈페이지입니다.">
13<meta name="keywords" content="서초복지돌봄재단, 서초구 돌봄, 통합돌봄, 지역복지, 복지재단, 서초구 복지, 돌봄서비스">
14<meta name="robots" content="index,follow">
15<meta name="viewport" content="width=device-width, initial-scale=1.0">
16
17<meta property="og:type" content="website">
18<meta property="og:title" content="서초복지돌봄재단">
19<meta property="og:description" content="서초구민 누구나 지역사회 안에서 돌봄을 누릴 수 있도록 민·관을 잇는 통합돌봄의 중심">
20<meta property="og:image" content="https://seochowcf.or.kr/_img/img/SWCF/logo3.gif">
21<meta property="og:url" content="https://seochowcf.or.kr/">
22
23<meta name="twitter:card" content="summary">
24<meta name="twitter:title" content="서초복지돌봄재단">
25<meta name="twitter:description" content="소중한 일상을 살피는 서초복지돌봄재단">
26<meta name="twitter:domain" content="seochowcf.or.kr">
27
28<link rel="canonical" href="https://seochowcf.or.kr/">
29<title>서초복지돌봄재단</title>
30<!-- skin-css-anchor: 이 주석은 지우지 말 것 (주석 안에 title/link 태그 문자열을 쓰지 말 것).
31     그누보드 html_process 는 add_stylesheet() CSS 를 "title 닫는 태그 바로 뒤의 첫 link 태그" 뒤에 끼워넣는다.
32     아래 파비콘 link 태그가 title 바로 뒤에 오면 latest/위젯 스킨 CSS 가 공통 템하 CSS 보다 앞에 실려
33     .cardset .cardset-body{padding} 같은 공통 규칙에 져서 카드가 밀린다(2026-10-07 dws-scf TOTAL_BBS4 라벨 위로 뜸).
34     이 주석이 title 뒤를 막으면 패턴이 실패해 스킨 CSS 는 원래대로 head 끝(공통 CSS 뒤)에 실린다. -->
35 <!-- ✅ hreflang 태그 위치 -->
36 <link rel="alternate" hreflang="ko" href="https://seochowcf.or.kr/?lang=ko">
37<link rel="alternate" hreflang="en" href="https://seochowcf.or.kr/?lang=en">
38<link rel="alternate" hreflang="ja" href="https://seochowcf.or.kr/?lang=ja">
39<link rel="alternate" hreflang="zh" href="https://seochowcf.or.kr/?lang=zh">
40<link rel="alternate" hreflang="x-default" href="https://seochowcf.or.kr/">
41
42<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/css/mobile_shop.css?ver=2303229">
43<!--[if lte IE 8]>
44<script src="https://seochowcf.or.kr/js/html5.js"></script>
44
45<![endif]-->
46<script>
47// 자바스크립트에서 사용하는 전역변수 선언
48var g5_url       = "https://seochowcf.or.kr";
49var g5_bbs_url   = "https://seochowcf.or.kr/bbs";
50var g5_is_member = "";
51var g5_is_admin  = "";
52var g5_is_mobile = "1";
53var g5_bo_table  = "bbs_data";
54var g5_sca       = "";
55var g5_editor    = "";
56var g5_cookie_domain = "";
57var g5_theme_shop_url = "https://seochowcf.or.kr/theme/hayan/shop";
58var g5_shop_url = "https://seochowcf.or.kr/shop";
59
60
61</script>
61
62<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
63	
64<script src="https://seochowcf.or.kr/plugin/editor/summernote_lite/snl-view.js?v=20260907g" defer></script>
64
65	
66	
67<!-- 퀵메뉴 : 모바일 , 아코디언 메뉴 , 헤드 디자인에 따라 사용 여부 판단
68<script src="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/js/mobile_accmenu.js" type="text/javascript"></script>
68 
69<script src='https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/js/jquery.museum.js'></script>
69	 -->
70<!--
71헤드 스킨에 따라 사용여부 
72	
72<script type="text/javascript">
73jQuery(document).ready(function () {
74	jQuery("#jquery-accordion-menu").jqueryAccordionMenu();
75	
76});
77
78$(function(){	
79	$("#demo-list li").click(function(){
80		$("#demo-list li.active").removeClass("active")
81		$(this).addClass("active");
82	})	
83})	
84</script>
84
85
86
87-->
88<!-- 아이콘-->	
89
90	
91<!-- Unicons -->
92<link rel="stylesheet" href="https://unicons.iconscout.com/release/v4.2.0/css/line.css">
93<link rel="stylesheet" href="https://unicons.iconscout.com/release-pro/v4.2.0/css/solid.css?key=0b042860-cc91-11ea-ab4a-0242ac140003">
94<link rel="stylesheet" href="https://unicons.iconscout.com/release-pro/v4.2.0/css/thinline.css?key=0b042860-cc91-11ea-ab4a-0242ac140003">
95<script src="https://unicons.iconscout.com/release-pro/v4.2.0/script/monochrome/bundle.js?key=0b042860-cc91-11ea-ab4a-0242ac140003"></script>
95
96<!--외부 설정  -->	
97	
98	
99	
100	
101	<!-- 어도비 폰트(lkk2wzv) 하드코딩 제거(2026-06-12): 폰트관리 ko16(adobe-myungjo-std)/en7(neulis-neue)/en8(optique-display) 활성 체크 시에만 레지스트리가 로드 -->
102
103
104	
105	 <!-- jQuery 추가 -->
106 <!-- head_스킨에 달 선택 
107<script type="text/javascript">
108$(document).ready(function(){
109    $(window).on("scroll", function(){
110        if ($(window).scrollTop() > 50) { 
111            $("header").removeClass("large").addClass("small");
112        } else {
113            $("header").removeClass("small").addClass("large");
114        }
115    });
116});		
117</script>
117-->
118  
119<!--공통템하 js  style.css은 각 스킨에-->
120<link rel="stylesheet" href="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/css/templatehouse.css" />
121<link rel="stylesheet" href="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/css/setting.css" />
122<link rel="stylesheet" href="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/css/plugin.css" />
123	
124<link rel="stylesheet" href="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/css/all.css">
125<!-- 외부설정 우선순위 -->
126
127<!-- 어도비 폰트(mem2roj) 하드코딩 제거(2026-06-12): 폰트관리 ko9(hooncaramel)/ko15(seoul-hangang) 활성 체크 시에만 레지스트리가 로드 -->
128
129
130<!-- ★ 활성 폰트 @font-face / @import 출력 (필요한 폰트만 로딩) -->
131<link rel="stylesheet" href="/_themeCom/themeAsset/basic_resources/css/font/pretendard.css">
132
133<style>
134
135/* 구분 -----------------------------------*/
136
137/**** pc ****/	
138:root {
139
140
141--inner: 1440px;   /* pc  상단 메뉴 높이 , 삭제하기 */
142--inner-wide:calc(100% - 100px);   /* pc  와이드 양옆 최소 여백 , 삭제하기 */	
143	
144	
145--header-h: 100px;   /* pc  상단 메뉴 높이 */
146--header-h-open: 530px;   /* pc  상단  마우스 오버 높이 */	
147	
148
149--header-bg-default:rgba(255, 255, 255,0);   /* pc 상단 배경 디폴트 0.0 투명도 */
150--header-bg-opacity:rgba(255, 255, 255,0);   /* pc 상단 배경 디폴트 0.0 투명도 */
151--header-bg-scroll: rgba(255, 255, 255,1); /* pc 상단 배경 스크롤시 */
152--header-bg-line: 1px solid #eee; /* pc 상단  라인  */	
153	
154	
155	/* 로고  */	
156
157--logo-size-w:clamp(  107px,   calc(8.553vw + 165.789px),   214px) ;	
158	
159	
160--block-padding:30px 0px;
161	
162/* 로고  */	
163
164--logo-White: brightness(0) invert(1); /* 로고 화이트 : 필터 조절  */
165
166
167/* 상단 메뉴  */	
168/* --top1d-font-size: clamp(    18px,    1.875vw,    22px); 1뎁스 사이즈  */	
169	
170	
171 /* //////외국어 버전 대응 수정 ---------------------------------- */
172  --top1d-min-px: 18px;
173  --top1d-max-px: 22px;
174
175  /* 중간 지점(vw)도 변수화(원래 1.875vw) */
176  --top1d-vw: 1.875vw;
177
178  /* 언어별 배율(기본 1) */
179  --top1d-scale: 1;
180
181  /* 최종 폰트 크기: (min * scale) ~ (vw * scale) ~ (max * scale) */
182  --top1d-font-size: clamp(
183    calc(var(--top1d-min-px) * var(--top1d-scale)),
184    calc(var(--top1d-vw) * var(--top1d-scale)),
185    calc(var(--top1d-max-px) * var(--top1d-scale))
186  );
187
188  /* (선택) 자간/행간도 변수화 */
189  --top1d-letter: normal;
190  --top1d-lh: 1.2;	
191 /* //////외국어 버전 대응 수정 end ---------------------------------- */
192	
193	
194--top1d-font-color: #333; /* 1뎁스 디폴트 컬러 */	
195--top1d-font-color-opacity: #fff; /* 기본 배경이 투명일때 컬러 */		
196--top1d-font-color-point:var(--primary-500); /* 메뉴 포인트 컬러 */		
197--top1d-font-weight: 600; /* 1뎁스 두께  */	
198--top1d-margin-left: 3vw; /* 1뎁스 간격  */		
199--top1d-margin-right:  3vw; /* 1뎁스 간격  */		
200	
201	
202	
203	
204/* //////외국어 버전 대응 수정 ---------------------------------- */
205
206  --top1d-gap-base-x: 2vw;
207
208  /* 언어별 배율(기본 1) — 좌우를 따로 쓰고 싶으면 각각 조절 */
209  --top1d-gap-scale-left: 1;
210  --top1d-gap-scale-right: 1;
211
212  /* 최종 적용값 (언어배율 반영) */
213  --top1d-margin-left:  calc(var(--top1d-gap-base-x) * var(--top1d-gap-scale-left));
214  --top1d-margin-right: calc(var(--top1d-gap-base-x) * var(--top1d-gap-scale-right));
215	
216/* //////외국어 버전 대응 수정 end ---------------------------------- */
217	
218	
219	
220
221--top1d-over-min: clamp(120px, 7.895vw, 150px); /* 1뎁스 마우스 오버시 벌어짐 효과 , 최소사이즈 , 벌어짐 효과 없애겨 싶다면 auto */	
222--top1d-bg:  rgba(255, 255, 255, 0.9); /* 2뎁스 두께  */		
223		
224--top2d-font-size:   clamp(    11.9px,    1.875vw,   17px ); /* 2뎁스 사이즈  */	
225--top2d-font-color: #333; /* 2뎁스 디폴트 컬러 */		
226--top2d-font-color-point: #111; /*  메뉴 포인트 컬러 *  */		
227--top2d-font-weight: 400; /* 2뎁스 두께  */		
228--top2d-bg:  #111; /* 2뎁스 두께  */		
229	
230--top2d-pd: clamp(11px, 0.781vw, 15px) clamp(11px, 0.781vw, 15px) clamp(11px, 0.781vw, 15px) clamp(0px, 0.000vw, 0px);; /* 2뎁스 두께  */		
231--top2d-pd-hover:  clamp(11px, 0.781vw, 15px) clamp(0px, 0.000vw, 0px) clamp(11px, 0.781vw, 15px) clamp(11px, 0.781vw, 15px);; /* 2뎁스 두께  */		
232	
233	
234		
235--quick-menu-w:200px; /*  햄버거 메뉴 사이즈  */	
236
237--line-default: #333; /* 기본 배경이 투명일때 컬러 */			
238--line-opacity:  rgba(255, 255, 255,0.5); /* 기본 배경이 투명일때 컬러 */		
239
240	
241--gmenu-r-padding:0px;	
242	
243	
244
245
246/* ★ 폰트 CSS 변수 (활성 폰트만 출력) */
247 --ff-ko1: 'Pretendard', 'NanumSquare_ac', sans-serif;
248  --ff-ico: "Temha-Icon";
249
250  /* ★ 메인/서브 폰트 (사이트별 교체 가능 / 서브 '사용 안함' 시 메인을 따라감) */
251  --ff-main: 'Pretendard', 'NanumSquare_ac', sans-serif;
252  --ff-sub: var(--ff-main);
253
254
255/* 서브 메인 컬러 (main_color_switch off 시 Primary_color 사용) */
256--sub-color10:var(--primary);
257--sub-color20:var(--primary);
258--sub-color30:var(--primary);
259--sub-color40:var(--primary);
260--sub-color50:var(--primary);
261--sub-color60:var(--primary);
262
263/* 서브 포인트 컬러 (main_color_switch off 시 Primary_color 사용) */
264--sub-point-color10:var(--primary);
265--sub-point-color20:var(--primary);
266--sub-point-color30:var(--primary);
267--sub-point-color40:var(--primary);
268--sub-point-color50:var(--primary);
269--sub-point-color60:var(--primary);
270
271/*  인풋 셀렉트 박스 높이 */
272--h-com: 36px ;
273--from-tx :14px;		
274	
275	
276	
277--subtop-tx1:clamp(  49px,   calc(0.658vw + 13.368px),   70px);		
278--subtop-tx2:clamp(  15px,   calc(0.658vw + 13.368px),   30px) ;		
279--subtop-tx3:18px;		
280--subtop-h: 380px;	
281	
282	
283--subtop-tx1-color:#000000;		
284--subtop-tx2-color:#000000;		
285--subtop-tx3-color:#ffffff	;
286	
287--sub-body-color:#ffffff	;
288	
289	
290	/* SCROLL */
291::-webkit-scrollbar { width:5px; height: 5px;;  }
292/* 스크롤바의 width*/
293::-webkit-scrollbar-track { background-color: rgba(244,247,252,1.24); border-radius: 10px; }
294/* 스크롤바의 전체 배경색 */
295::-webkit-scrollbar-thumb { 
296    background: linear-gradient(to bottom, var(--primary), var(--primary)); border-radius: 10px; 
297}
298/* 스크롤바 색 */
299::-webkit-scrollbar-button { display: none; }
300
301		
302	
303 --main_sp_size:clamp(  40px,   7.813vw,    150px);	
304
305	 --sp-com:clamp(40px, 7.813vw, 100px);	
306
307	/*템하 inner 사이즈 선언*/
308 --container-lg:calc(1600px);	
309 --container-md:calc(1560px);	
310 --container-sm: calc(1440px);	
311
312}
313
314
315	
316:root {
317/*  메인 본문 타이틀 크기 최소값 | 비율 | 최대값 */	
318 --main_big_tit_size:clamp(  28px,   calc(0.263vw + 12.947px),   40px );
319 --main_big_stit_size:clamp(  14px,   calc(0.263vw + 12.947px),    20px);	
320	
321
322 /*  서브 본문 타이틀 최소값 | 비율 | 최대값 */		
323  --subtop-tit-size: clamp(31.5px, calc(1.125vw + 27.45px), 45px);
324    /*  대타이틀 */
325  --tit-lg-size:      clamp(28px, calc(1vw + 24.4px), 40px);
326  /*  중간 타이틀 */
327  --tit-md-size:      clamp(24.5px, calc(0.875vw + 21.35px), 35px);
328  /*  소타이틀 */
329  --tit-mds-size:     clamp(20.4px, calc(0.8vw + 17.52px), 30px);
330  /*  소형 텍스트 */
331  --tx-sm-size:       clamp(15.3px, calc(0.225vw + 14.49px), 18px);
332	}
333
334
335:root {
336/*  서브 블록 상단 여백 및 블록 간 여백 */
337 --sp-block-00:clamp(15px, 7.813vw, 30px);
338 --sp-block-01:clamp(25px, 7.813vw, 50px);
339 --sp-block-02:clamp(70px, 7.813vw, 100px);
340 --sp-block-03:clamp(70px, 7.813vw, 100px);
341 --sp-block-04:clamp(70px, 7.813vw, 100px);
342 --sp-block-05:clamp(70px, 7.813vw, 100px);
343 --sp-block-06:clamp(56px, 7.813vw, 80px);
344 --sp-block-07:clamp(42px, 7.813vw, 60px);
345 --sp-block-08:clamp(42px, 7.813vw, 60px);
346 --sp-block-09:clamp(42px, 7.813vw, 60px);
347 --sp-block-10:0px;
348 --sp-block-11:0px;
349 --sp-block-12:clamp(49px, 7.813vw, 70px);
350 --sp-block-13:clamp(70px, 7.813vw, 100px);
351 --sp-block-14:0px;
352 --sp-block-15:0px;
353 --sp-block-16:0px;
354 --sp-block-17:0px;
355 --sp-block-18:0px;
356 --sp-block-19:0px;
357 --sp-block-20:0px;
358
359
360	}
361
362
363/**** pc2 ****/
364@media all and (max-width:1280px) and (min-width:981px) {
365:root {		
366--inner: calc(100% - 40px);   /* 테이블  상단 메뉴 높이 */
367--inner-wide:calc(100% - 40px);   /* 테이블  와이드 양옆 최소 여백  */	
368--header-h: 100px;   /* pc  상단 메뉴 높이 */
369--header-h-open: 530px;   /* pc  상단  마우스 오버 높이 */	
370	
371/* 로고  */	
372
373/* 상단 메뉴  */		
374--top1d-font-size: 19px; /* 테블릿 1뎁스 사이즈  */		
375--top2d-font-size:14px; /* 테블릿 2뎁스 사이즈  */	 }
376}
377/**** 모바일 ****/
378@media only all and (max-width:980px) {
379:root {	
380--inner: calc(100% - 40px);   /* 모바일 상단 메뉴 높이 */
381--inner-wide:calc(100% - 40px);   /* 모바일  와이드 양옆 최소 여백  */	
382		
383--header-h: 60px;   /* 모바일  상단 메뉴 높이 */
384--header-h-open: 60px;   /*모바일  상단  마우스 오버 높이 */	
385	
386/* 로고  */	
387--logo-size-w:180px; /* 모바일 로고 사이즈  */	
388
389/* 상단 메뉴  */	
390--top1d-font-size: 14px; /* 모바일 1뎁스 사이즈  */		
391--top2d-font-size: 12px; /* 모바일 2뎁스 사이즈  */	}
392}
393/**** 모바일2 ****/
394@media only all and (max-width:400px) {
395	
396}
397/* 구분 //end -----------------------------------*/
398
399
400
401</style>
402<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_settingfile/setting_util.css">
403
404<style>
405.ff-ko1{font-family:var(--ff-ko1)!important}
406em.ff-ko1{font-family:var(--ff-ko1)!important}
407ul.ff-ko1 li{font-family:var(--ff-ko1)!important}
408ul.ff-ko1 li em{font-family:var(--ff-ko1)!important}
409</style>
410
411
412
413
414
415<style>
416/* 서브 레이아웃 관련  -----------------------------------*/
417
418/**** pc ****/
419:root {
420--sublayout-left-w:200px;/*skin/content/laout_lr/~ 왼쪽 영역 넓이 설정 */
421	
422}
423/* 구분 //end -----------------------------------*/
424
425
426	
427</style>
428
429
430<style>
431/* v폼크기 선언  -----------------------------------*/
432
433/**** pc ****/
434:root {
435--from-h: 36px;/* 입력폼, 셀렉트 박스 높이 */
436--from-tx: 14px;/* 입력폼, 셀렉트 박스 내부텍스트 크기*/
437--from-select-h: 36px;
438--from-select-tx: 14px;
439--from-date-h: 36px;
440--from-date-tx: 14px;
441--from-rd: 4px;
442--from-border: #d1d5db;
443--from-focus: var(--primary, #4f46e5);
444--from-chk: 18px;
445--from-rdo: 18px;
446--from-placeholder: #9ca3af;
447--from-textarea-fz: 14px;
448--from-textarea-rd: 4px;
449--from-select-rd: 4px;
450}
451
452/* ★ hycom 변수 + 폼 스타일 → setting_util.css로 이동됨 */
453
454	
455	/*컬러 우선 */
456:root{
457  --primary-50: #f1f9f6;
458  --primary-100: #d2ebe4;
459  --primary-200: #b2ded1;
460  --primary-300: #92d2bf;
461  --primary-400: #72c6ad;
462  --primary-500: #51ba9b;
463  --primary-600: #3b9a7e;
464  --primary-700: #2b745f;
465  --primary-800: #1b4e3f;
466  --primary-900: #0d261f;
467  --primary: var(--primary-500);
468  --primary-hover: #40a285;
469  --on-primary-50: #111111;
470  --on-primary-100: #111111;
471  --on-primary-200: #111111;
472  --on-primary-300: #111111;
473  --on-primary-400: #ffffff;
474  --on-primary-500: #ffffff;
475  --on-primary-600: #ffffff;
476  --on-primary-700: #ffffff;
477  --on-primary-800: #ffffff;
478  --on-primary-900: #ffffff;
479  --primary-op10: rgba(81, 186, 155, 0.1);
480  --primary-op20: rgba(81, 186, 155, 0.2);
481  --primary-op30: rgba(81, 186, 155, 0.3);
482  --primary-op40: rgba(81, 186, 155, 0.4);
483  --primary-op50: rgba(81, 186, 155, 0.5);
484  --primary-op60: rgba(81, 186, 155, 0.6);
485  --primary-op70: rgba(81, 186, 155, 0.7);
486  --primary-op80: rgba(81, 186, 155, 0.8);
487  --primary-op90: rgba(81, 186, 155, 0.9);
488
489  --secondary-50: #f0f4f9;
490  --secondary-100: #d1deee;
491  --secondary-200: #b2c8e3;
492  --secondary-300: #92b2d8;
493  --secondary-400: #729bce;
494  --secondary-500: #5185c5;
495  --secondary-600: #3569a8;
496  --secondary-700: #264e7e;
497  --secondary-800: #183354;
498  --secondary-900: #0b1828;
499  --secondary: var(--secondary-500);
500  --secondary-hover: #3b70b2;
501  --on-secondary-50: #111111;
502  --on-secondary-100: #111111;
503  --on-secondary-200: #111111;
504  --on-secondary-300: #ffffff;
505  --on-secondary-400: #ffffff;
506  --on-secondary-500: #ffffff;
507  --on-secondary-600: #ffffff;
508  --on-secondary-700: #ffffff;
509  --on-secondary-800: #ffffff;
510  --on-secondary-900: #ffffff;
511  --secondary-op10: rgba(81, 133, 197, 0.1);
512  --secondary-op20: rgba(81, 133, 197, 0.2);
513  --secondary-op30: rgba(81, 133, 197, 0.3);
514  --secondary-op40: rgba(81, 133, 197, 0.4);
515  --secondary-op50: rgba(81, 133, 197, 0.5);
516  --secondary-op60: rgba(81, 133, 197, 0.6);
517  --secondary-op70: rgba(81, 133, 197, 0.7);
518  --secondary-op80: rgba(81, 133, 197, 0.8);
519  --secondary-op90: rgba(81, 133, 197, 0.9);
520
521  --tertiary-50: #fceef4;
522  --tertiary-100: #f6cfe0;
523  --tertiary-200: #f2b0cc;
524  --tertiary-300: #ee91b8;
525  --tertiary-400: #eb70a4;
526  --tertiary-500: #e84f90;
527  --tertiary-600: #dd196c;
528  --tertiary-700: #a5104f;
529  --tertiary-800: #6b0933;
530  --tertiary-900: #300316;
531  --tertiary: var(--tertiary-500);
532  --tertiary-hover: #e32b79;
533  --on-tertiary-50: #111111;
534  --on-tertiary-100: #111111;
535  --on-tertiary-200: #111111;
536  --on-tertiary-300: #ffffff;
537  --on-tertiary-400: #ffffff;
538  --on-tertiary-500: #ffffff;
539  --on-tertiary-600: #ffffff;
540  --on-tertiary-700: #ffffff;
541  --on-tertiary-800: #ffffff;
542  --on-tertiary-900: #ffffff;
543  --tertiary-op10: rgba(232, 79, 144, 0.1);
544  --tertiary-op20: rgba(232, 79, 144, 0.2);
545  --tertiary-op30: rgba(232, 79, 144, 0.3);
546  --tertiary-op40: rgba(232, 79, 144, 0.4);
547  --tertiary-op50: rgba(232, 79, 144, 0.5);
548  --tertiary-op60: rgba(232, 79, 144, 0.6);
549  --tertiary-op70: rgba(232, 79, 144, 0.7);
550  --tertiary-op80: rgba(232, 79, 144, 0.8);
551  --tertiary-op90: rgba(232, 79, 144, 0.9);
552
553  --gray-50: #fafafa;
554  --gray-100: #f2f2f2;
555  --gray-200: #e6e6e6;
556  --gray-300: #d1d1d1;
557  --gray-400: #a6a6a6;
558  --gray-500: #737373;
559  --gray-600: #595959;
560  --gray-700: #454545;
561  --gray-800: #2e2e2e;
562  --gray-900: #1a1a1a;
563  --gray: var(--gray-500);
564  --gray-hover: #5f5f5f;
565  --on-gray-50: #111111;
566  --on-gray-100: #111111;
567  --on-gray-200: #111111;
568  --on-gray-300: #111111;
569  --on-gray-400: #ffffff;
570  --on-gray-500: #ffffff;
571  --on-gray-600: #ffffff;
572  --on-gray-700: #ffffff;
573  --on-gray-800: #ffffff;
574  --on-gray-900: #ffffff;
575  --gray-op10: rgba(115, 115, 115, 0.1);
576  --gray-op20: rgba(115, 115, 115, 0.2);
577  --gray-op30: rgba(115, 115, 115, 0.3);
578  --gray-op40: rgba(115, 115, 115, 0.4);
579  --gray-op50: rgba(115, 115, 115, 0.5);
580  --gray-op60: rgba(115, 115, 115, 0.6);
581  --gray-op70: rgba(115, 115, 115, 0.7);
582  --gray-op80: rgba(115, 115, 115, 0.8);
583  --gray-op90: rgba(115, 115, 115, 0.9);
584
585  --deep: #111827;
586  --deep-hover: #05070b;
587  --deep-op10: rgba(17, 24, 39, 0.1);
588  --deep-op20: rgba(17, 24, 39, 0.2);
589  --deep-op30: rgba(17, 24, 39, 0.3);
590  --deep-op40: rgba(17, 24, 39, 0.4);
591  --deep-op50: rgba(17, 24, 39, 0.5);
592  --deep-op60: rgba(17, 24, 39, 0.6);
593  --deep-op70: rgba(17, 24, 39, 0.7);
594  --deep-op80: rgba(17, 24, 39, 0.8);
595  --deep-op90: rgba(17, 24, 39, 0.9);
596  --red: #ef4444;
597  --red-hover: #ec1e1e;
598  --red-op10: rgba(239, 68, 68, 0.1);
599  --red-op20: rgba(239, 68, 68, 0.2);
600  --red-op30: rgba(239, 68, 68, 0.3);
601  --red-op40: rgba(239, 68, 68, 0.4);
602  --red-op50: rgba(239, 68, 68, 0.5);
603  --red-op60: rgba(239, 68, 68, 0.6);
604  --red-op70: rgba(239, 68, 68, 0.7);
605  --red-op80: rgba(239, 68, 68, 0.8);
606  --red-op90: rgba(239, 68, 68, 0.9);
607  --success: #10b981;
608  --success-hover: #0d9367;
609  --success-op10: rgba(16, 185, 129, 0.1);
610  --success-op20: rgba(16, 185, 129, 0.2);
611  --success-op30: rgba(16, 185, 129, 0.3);
612  --success-op40: rgba(16, 185, 129, 0.4);
613  --success-op50: rgba(16, 185, 129, 0.5);
614  --success-op60: rgba(16, 185, 129, 0.6);
615  --success-op70: rgba(16, 185, 129, 0.7);
616  --success-op80: rgba(16, 185, 129, 0.8);
617  --success-op90: rgba(16, 185, 129, 0.9);
618  --cancel: #a3a3a3;
619  --cancel-hover: #8f8f8f;
620  --cancel-op10: rgba(163, 163, 163, 0.1);
621  --cancel-op20: rgba(163, 163, 163, 0.2);
622  --cancel-op30: rgba(163, 163, 163, 0.3);
623  --cancel-op40: rgba(163, 163, 163, 0.4);
624  --cancel-op50: rgba(163, 163, 163, 0.5);
625  --cancel-op60: rgba(163, 163, 163, 0.6);
626  --cancel-op70: rgba(163, 163, 163, 0.7);
627  --cancel-op80: rgba(163, 163, 163, 0.8);
628  --cancel-op90: rgba(163, 163, 163, 0.9);
629  --darkgray: #374151;
630  --darkgray-hover: #272e39;
631  --darkgray-op10: rgba(55, 65, 81, 0.1);
632  --darkgray-op20: rgba(55, 65, 81, 0.2);
633  --darkgray-op30: rgba(55, 65, 81, 0.3);
634  --darkgray-op40: rgba(55, 65, 81, 0.4);
635  --darkgray-op50: rgba(55, 65, 81, 0.5);
636  --darkgray-op60: rgba(55, 65, 81, 0.6);
637  --darkgray-op70: rgba(55, 65, 81, 0.7);
638  --darkgray-op80: rgba(55, 65, 81, 0.8);
639  --darkgray-op90: rgba(55, 65, 81, 0.9);
640  --point: #f59e0b;
641  --point-hover: #cf8508;
642  --point-op10: rgba(245, 158, 11, 0.1);
643  --point-op20: rgba(245, 158, 11, 0.2);
644  --point-op30: rgba(245, 158, 11, 0.3);
645  --point-op40: rgba(245, 158, 11, 0.4);
646  --point-op50: rgba(245, 158, 11, 0.5);
647  --point-op60: rgba(245, 158, 11, 0.6);
648  --point-op70: rgba(245, 158, 11, 0.7);
649  --point-op80: rgba(245, 158, 11, 0.8);
650  --point-op90: rgba(245, 158, 11, 0.9);
651  --blue: #3b82f6;
652  --blue-hover: #1469f4;
653  --blue-op10: rgba(59, 130, 246, 0.1);
654  --blue-op20: rgba(59, 130, 246, 0.2);
655  --blue-op30: rgba(59, 130, 246, 0.3);
656  --blue-op40: rgba(59, 130, 246, 0.4);
657  --blue-op50: rgba(59, 130, 246, 0.5);
658  --blue-op60: rgba(59, 130, 246, 0.6);
659  --blue-op70: rgba(59, 130, 246, 0.7);
660  --blue-op80: rgba(59, 130, 246, 0.8);
661  --blue-op90: rgba(59, 130, 246, 0.9);
662}
663
664/* 유틸리티 예시 */
665.bg-primary-500{background:var(--primary-500); color:var(--on-primary-500)}
666.bg-secondary-500{background:var(--secondary-500); color:var(--on-secondary-500)}
667.bg-tertiary-500{background:var(--tertiary-500); color:var(--on-tertiary-500)}
668.bg-gray-500{background:var(--gray-500); color:var(--on-gray-500)}
669.text-primary-500{color:var(--primary-500)}
670.text-secondary-500{color:var(--secondary-500)}
671.text-tertiary-500{color:var(--tertiary-500)}
672.text-gray-500{color:var(--gray-500)}
673.btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:10px 14px;border:1px solid transparent;cursor:pointer}
674.btn-primary{background:var(--primary); color:#ffffff}
675.btn-primary:hover{background:var(--primary-hover)}
676.btn-secondary{background:var(--secondary); color:#ffffff}
677.btn-secondary:hover{background:var(--secondary-hover)}
678.btn-tertiary{background:var(--tertiary); color:#ffffff}
679.btn-tertiary:hover{background:var(--tertiary-hover)}
680.btn-gray{background:var(--gray); color:#ffffff}
681.btn-gray:hover{background:var(--gray-hover)}
682
683.btn-deep{background:var(--deep);color:#ffffff}
684.btn-deep:hover{background:var(--deep-hover)}
685.btn-red{background:var(--red);color:#ffffff}
686.btn-red:hover{background:var(--red-hover)}
687.btn-success{background:var(--success);color:#ffffff}
688.btn-success:hover{background:var(--success-hover)}
689.btn-cancel{background:var(--cancel);color:#ffffff}
690.btn-cancel:hover{background:var(--cancel-hover)}
691.btn-darkgray{background:var(--darkgray);color:#ffffff}
692.btn-darkgray:hover{background:var(--darkgray-hover)}
693.btn-point{background:var(--point);color:#ffffff}
694.btn-point:hover{background:var(--point-hover)}
695.btn-blue{background:var(--blue);color:#ffffff}
696.btn-blue:hover{background:var(--blue-hover)}
697
698</style>
699
700<style>
701/* ===== 쇼핑몰 리스트 설정 CSS 변수 ===== */
702:root {
703  --shop-grid-pc: 4;
704  --shop-grid-tablet: 3;
705  --shop-grid-mobile: 2;
706  --shop-grid-gap: 20px;
707
708  --shop-img-radius: 0px;
709  --shop-img-border-width: 0px;
710  --shop-img-border-color: #eee;
711  --shop-img-bg: #fff;
712  --shop-img-opacity: 1;
713  --shop-img-hover-opacity: 1;
714  --shop-img-hover-scale: 1;
715
716  --shop-title-size: 14px;
717  --shop-title-color: #333;
718  --shop-price-size: 15px;
719  --shop-price-color: #111;
720
721  --shop-icon-size: 16px;
722  --shop-cart-radius: 50px;
723  --shop-cart-size: 16px;
724  --shop-cart-bg: #333;
725  --shop-cart-icon-color: #fff;
726
727  --shop-search-radius: 50px;
728  --shop-search-size: 16px;
729  --shop-search-bg: #333;
730  --shop-search-icon-color: #fff;
731
732  --shop-label-size: 12px;
733  --shop-label-radius: 3px;
734  --shop-label-mt: 10px;
735  --shop-txt-overlay-pb: 20px;
736
737  --shop-cate-title-size: 22px;
738  --shop-cate-title-color: #222;
739  --shop-cate-title-align: left;
740  --shop-cate-title-mb: 20px;
741  --shop-cate-tab-align: left;
742  --shop-cate-tab-size: 13px;
743  --shop-cate-tab-px: 18px;
744  --shop-cate-tab-py: 7px;
745  --shop-cate-sub-mb: 20px;
746
747  /* 상세페이지 */
748  --shop-detail-img-ratio: 1fr;
749  --shop-detail-info-ratio: 1fr;
750  --shop-detail-gap: 100px;
751  --shop-detail-thumb-ratio: 1 / 1.16;
752  --shop-detail-sticky-top: 200px;
753  --shop-detail-thumb-fit: cover;
754}
755/* 상세페이지 썸네일 비율 직접 적용 */
756.hayanshop_detail .sit_pvi_single > a,
757.hayanshop_detail .sit_pvi_main,
758.hayanshop_detail .sit_pvi_slide,
759.sit_pvi_empty {
760  aspect-ratio: 1 / 1.16 !important;
761}
762/* 장바구니/상세보기 라운드 직접 적용 */
763.sct.sct_10 .sct_btn .btn_cart { border-radius: 50px !important; }
764.sct.sct_10 .sct_btn_search .btn_search { border-radius: 50px !important; }
765</style>
766
767<style>
768/* ===== 교육시스템 CSS 변수 ===== */
769:root {
770  --edu-grid-pc: 4;
771  --edu-grid-tablet: 3;
772  --edu-grid-mobile: 2;
773  --edu-grid-gap: 20px;
774  --edu-img-ratio: 16/9;
775  --edu-img-radius: 8px;
776  --edu-hz-img-width: 280px;
777  --edu-hz-txt-padding: 16px 24px;
778  --edu-badge-size: 12px;
779  --edu-badge-padding: 3px 10px;
780  --edu-badge-radius: 4px;
781  --edu-title-size: 16px;
782  --edu-title-color: #222;
783  --edu-cate-font-size: clamp(11px, calc(0.31vw + 10px), 13px);
784  --edu-cate-color: #888;
785  --edu-date-size: clamp(12px, calc(0.31vw + 11px), 14px);
786  --edu-date-color: #666;
787  --edu-meta-size: clamp(12px, calc(0.31vw + 11px), 14px);
788  --edu-meta-color: #888;
789  --edu-price-size: 15px;
790  --edu-price-color: var(--primary, #2196f3);
791  --edu-info-padding-boxed: 12px 14px 14px;
792  --edu-detail-img-ratio: 1fr;
793  --edu-detail-info-ratio: 1fr;
794  --edu-detail-booking-ratio: 1fr;
795  --edu-icon-color: var(--primary, #2196f3);
796  --edu-icon-line-color: #eee;
797  --edu-icon-line-width: 1px;
798  --edu-icon-padding: 8px 0;
799  --edu-cate-radius: 20px;
800  --edu-cate-tab-size: clamp(13px, calc(0.31vw + 12px), 15px);
801  --edu-cate-count-bg: var(--primary, #2196f3);
802  --edu-cate-count-color: #fff;
803  --edu-cate-count-size: 11px;
804  --edu-toolbar-bg: transparent;
805  --edu-toolbar-border-color: #eee;
806  --edu-toolbar-radius: 0px;
807  --edu-toolbar-padding: 0;
808  --edu-sort-size: clamp(12px, calc(0.31vw + 11px), 14px);
809  --edu-cate-padding: 8px 18px;
810  --edu-cate2-padding: 5px 14px;
811  --edu-cate2-style: pill;
812  --edu-cate2-radius: 16px;
813  --edu-cate2-tab-size: clamp(12px, calc(0.31vw + 11px), 14px);
814  --edu-cate2-count-bg: #eee;
815  --edu-cate2-count-color: #666;
816  --edu-cate2-count-size: 10px;
817  --edu-detail-gap: 30px;
818  --edu-detail-img-maxh: 500px;
819  --edu-detail-img-aspect: 4/3;
820  --edu-detail-title-size: 24px;
821  --edu-detail-teacher-size: 15px;
822  --edu-detail-cate-size: 12px;
823  --edu-detail-label-size: 13px;
824  --edu-detail-value-size: 14px;
825  --edu-detail-row-gap: 8px;
826  --edu-detail-label-width: 60px;
827  --edu-detail-label-gap: 0px;
828  --edu-detail-badge-color: var(--primary, #e74c3c);
829  --edu-detail-info-line: 1px;
830  --edu-detail-info-line-color: #eee;
831  --edu-detail-info-padding: 12px 0 0 0;
832  --edu-detail-tab-size: 14px;
833  --edu-detail-tab-padding: 12px 20px;
834  --edu-detail-tab-content-padding: 24px 0;
835  --edu-detail-badge-radius: 4px;
836}
837</style>
838
839<style>/* 3뎁스/탭 공통 CSS */
840/* 3뎁스/탭 공통 스타일 - 중앙정렬 */
841.hayan_tab_st1.tab_area .ht_list.tabs,
842.hayan_tab_st1 .ht_list {
843  display: flex !important;
844  flex-direction: row !important;
845  flex-wrap: nowrap !important;
846  gap: 10px;
847  justify-content: center;
848  padding-bottom: clamp(20px, calc(1.974vw + 12.105px), 50px);
849  overflow-x: auto;
850  -webkit-overflow-scrolling: touch;
851  scrollbar-width: none;
852}
853.hayan_tab_st1.tab_area .ht_list.tabs::-webkit-scrollbar,
854.hayan_tab_st1 .ht_list::-webkit-scrollbar {
855  display: none;
856}
857.hayan_tab_st1.tab_area .ht_list .ht_btn.tab,
858.hayan_tab_st1 .ht_list .ht_btn {
859  flex: 0 0 auto !important;
860  width: auto !important;
861  padding: 12px 24px !important;
862  background: #f5f5f5 !important;
863  border: 1px solid #e0e0e0 !important;
864  border-radius: 30px !important;
865  font-size: calc(var(--tx-sm-size) * 0.9) !important;
866  font-weight: 500 !important;
867  color: #555 !important;
868  cursor: pointer;
869  transition: all 0.2s;
870  white-space: nowrap !important;
871}
872.hayan_tab_st1 .ht_list .ht_btn p {
873  margin: 0 !important;
874  padding: 0 !important;
875  line-height: 1.2 !important;
876  font-size: inherit !important;
877}
878.hayan_tab_st1.tab_area .ht_list .ht_btn.tab:hover,
879.hayan_tab_st1 .ht_list .ht_btn:hover {
880  background: #eee !important;
881}
882.hayan_tab_st1.tab_area .ht_list .ht_btn.tab.active,
883.hayan_tab_st1.tab_area .ht_list .ht_btn.tab.on,
884.hayan_tab_st1 .ht_list .ht_btn.active,
885.hayan_tab_st1 .ht_list .ht_btn.on {
886  background: var(--dynamic-point-color, var(--primary)) !important;
887  border-color: var(--dynamic-point-color, var(--primary)) !important;
888  color: #fff !important;
889}</style>
890
891
892
893
894<!--lottie 마우스오버 재생/정지 (json-hover) — 동적 삽입/커스텀엘리먼트 지연 업그레이드까지 대응-->
895<script>
896(function () {
897  function jsonHoverInitOne(player) {
898    if (player.__jsonHoverInit) return;
899    player.__jsonHoverInit = true;
900    if (player.hasAttribute("autoplay")) player.removeAttribute("autoplay");
901    var stopIt = function () { try { player.stop(); } catch (e) {} };
902    // 데이터 로드/준비 완료 때마다 정지 (autoplay 잔재 차단)
903    player.addEventListener("load", stopIt);
904    player.addEventListener("ready", stopIt);
905    stopIt();
906    player.addEventListener("mouseenter", function () { try { player.play(); } catch (e) {} });
907    player.addEventListener("mouseleave", stopIt);
908    player.setAttribute("tabindex", "0");
909    player.addEventListener("focus", function () { try { player.play(); } catch (e) {} });
910    player.addEventListener("blur", stopIt);
911  }
912  function jsonHoverInitAll(root) {
913    var list = (root || document).querySelectorAll(".json-hover");
914    for (var i = 0; i < list.length; i++) jsonHoverInitOne(list[i]);
915  }
916  document.addEventListener("DOMContentLoaded", function () {
917    jsonHoverInitAll();
918    // lottie-player 컴포넌트가 늦게 정의된 경우: 업그레이드 직후 다시 정지
919    if (window.customElements && customElements.whenDefined) {
920      customElements.whenDefined("lottie-player").then(function () {
921        setTimeout(function () {
922          var list = document.querySelectorAll(".json-hover");
923          for (var i = 0; i < list.length; i++) { try { list[i].stop(); } catch (e) {} }
924        }, 0);
925      }).catch(function () {});
926    }
927    // 동적 삽입(인라인 편집/AJAX/스와이퍼 복제) 대응
928    if (window.MutationObserver && document.body) {
929      new MutationObserver(function (muts) {
930        for (var i = 0; i < muts.length; i++) {
931          var added = muts[i].addedNodes;
932          for (var j = 0; j < added.length; j++) {
933            var n = added[j];
934            if (n.nodeType !== 1) continue;
935            if (n.matches && n.matches(".json-hover")) jsonHoverInitOne(n);
936            if (n.querySelectorAll) jsonHoverInitAll(n);
937          }
938        }
939      }).observe(document.body, { childList: true, subtree: true });
940    }
941  });
942})();
943</script>
943
944
945<!-- ★ COM_TB 모바일 테이블: 세로 페이지 스크롤 허용 (tb_com.css의 pan-x만 적용 문제 오버라이드) -->
946<style>
947@media (max-width:1024px){
948  .COM_TB .table-wrap{ touch-action: pan-x pan-y; }
949}
950</style>
951
952
953		
954<!-- animate.css 포함 -->
955<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" />
956
957<!-- wow.min.js 포함 -->
958<script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js"></script>
958
959
960<script>
961  new WOW().init(); // 활성화
962</script>
962
963	
964	
965	
966<script>
967document.addEventListener("DOMContentLoaded", function () {
968    document.querySelectorAll(".setting_admin_btn").forEach(btn => {
969        let title = '';
970        if (btn.dataset.widget) {
971            title = '위젯: ' + (btn.dataset.title || btn.dataset.widget);
972        } else if (btn.dataset.content) {
973            title = '내용관리: ' + (btn.dataset.title || btn.dataset.content);
974        } else if (btn.dataset.board) {
975            title = '게시판: ' + (btn.dataset.title || btn.dataset.board);
976        } else if (btn.dataset.etc) {
977            title = '기타정보: ' + (btn.dataset.title || btn.dataset.etc);
978        }
979
980        btn.innerHTML = `
981            <lottie-player 
982                src="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/images/json/setting_icon.json"
983                background="transparent"
984                style="width:30px; height:30px;"
985                class="setting_admin_icon"
986                speed="1"
987                loop
988                autoplay>
989            </lottie-player>
990            <div class="tx">${title}</div>
991        `;
992    });
993});
994
995// 게시판 팝업 열기 함수
996function openBoardPopup(boardName) {
997    window.open('https://seochowcf.or.kr/adm2/widgetform.php?w=u&wid_id=' + boardName + '&adminpopup=on', 'myPopup', 'width=1000, height=800');
998}
999</script>
999
1000
1001
1002<!--구글 언어 선택 
1002<script type="text/javascript">
1003function googleTranslateElementInit() {
1004  new google.translate.TranslateElement({
1005    pageLanguage: 'ko',
1006    includedLanguages: 'en,ja,zh-CN,zh-TW,vi,th,es,fr,de,ru', // 원하는 언어코드만 설정 가능
1007    layout: google.translate.TranslateElement.InlineLayout.SIMPLE
1008  }, 'google_translate_element');
1009}
1010</script>
1010-->
1011<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1011
1012
1013	
1014<script>
1015(function(){
1016  var FORCE_ME_CODE = "";
1017  var FORCE_LANG    = "ko";
1018  var BO_MC_MAP = {"SWCF_3030":"3030","SWCF_3040":"3040","SWCF_4010":"4010","SWCF_4020":"4020","SWCF_4030":"4030","SWCF_5010":"5010","SWCF_5020":"5020","SWCF_5040":"5040","SWCF_4040":"4040","SWCF_4050":"4050","SWCF_5060":"5060","SWCF_3060":"3060","foundation":"5070"};
1019
1020  function sameOrigin(u){
1021    try{ var a=document.createElement('a'); a.href=u; return a.host===location.host && a.protocol===location.protocol; }catch(e){return false;}
1022  }
1023  function hasParam(url,k){ return new RegExp('[?&]'+k+'=').test(url); }
1024  function getParam(url,k){ var m=url.match(new RegExp('[?&]'+k+'=([^&#]*)')); return m ? decodeURIComponent(m[1]) : ''; }
1025  function appendParam(url,k,v){
1026    if(!v) return url; if(hasParam(url,k)) return url;
1027    var i=url.indexOf('#'), hash=''; if(i>=0){hash=url.slice(i); url=url.slice(0,i);}
1028    url += (url.indexOf('?')>=0?'&':'?') + encodeURIComponent(k)+'='+encodeURIComponent(v);
1029    return url+hash;
1030  }
1031  function massage(url){
1032    var out=url;
1033    // ★ me_code 결정: 1) 이미 있으면 유지, 2) FORCE_ME_CODE, 3) bo_table로 매핑 조회
1034    if(!hasParam(out,'me_code')){
1035      var mc = FORCE_ME_CODE;
1036      if(!mc){
1037        var bt = getParam(out,'bo_table');
1038        if(bt && BO_MC_MAP[bt]) mc = BO_MC_MAP[bt];
1039      }
1040      if(mc) out=appendParam(out,'me_code',mc);
1041    }
1042    if(FORCE_LANG) out=appendParam(out,'lang',FORCE_LANG);
1043    return out;
1044  }
1045  function patchLinks(){
1046    var as=document.getElementsByTagName('a');
1047    for(var i=0;i<as.length;i++){
1048      var a=as[i], h=a.getAttribute('href'); if(!h) continue;
1049      if(h.indexOf('mailto:')===0||h.indexOf('tel:')===0||h.indexOf('javascript:')===0) continue;
1050      var abs; try{abs=new URL(h,location.href).toString();}catch(e){continue;}
1051      if(!sameOrigin(abs)) continue;
1052      var nb=massage(abs);
1053      if(nb!==abs){ a.setAttribute('href',nb); }
1054    }
1055  }
1056  function ensureHidden(f,n,v){
1057    if(!v) return;
1058    var ex=f.querySelector('input[name="'+n+'"]');
1059    if(ex && ex.value) return;
1060    var i=document.createElement('input'); i.type='hidden'; i.name=n; i.value=v; f.appendChild(i);
1061  }
1062  function patchForms(){
1063    var forms=document.getElementsByTagName('form');
1064    for(var i=0;i<forms.length;i++){
1065      var f=forms[i];
1066      var act=f.getAttribute('action')||location.href;
1067      var abs; try{abs=new URL(act,location.href).toString();}catch(e){continue;}
1068      if(!sameOrigin(abs)) continue;
1069      ensureHidden(f,'me_code',FORCE_ME_CODE);
1070      ensureHidden(f,'lang',   FORCE_LANG);
1071      if((f.method||'').toLowerCase()==='get'){
1072        var nb=massage(abs); if(nb!==abs) f.setAttribute('action',nb);
1073      }
1074    }
1075  }
1076  if(document.readyState==='loading'){
1077    document.addEventListener('DOMContentLoaded',function(){patchLinks();patchForms();});
1078  }else{ patchLinks();patchForms(); }
1079})();
1080</script>
1080
1081
1082
1083
1084
1085<link rel="stylesheet" href="https://seochowcf.or.kr/js/font-awesome/css/font-awesome.min.css?ver=2303229">
1086<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_bbstab3/resources/css/style.css?ver=2303229">
1087<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/mobile/skin/latest/SWCF_totalnotice/resources/css/style.css?ver=2303229">
1088<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_3/resources/css/style.css?ver=2303229">
1089<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_7_1/resources/css/style.css?ver=2303229">
1090<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/mobile/skin/latest/SWCF_totalnotice2/resources/css/style.css?v=1791509319">
1091<style>.SWCF_totalnotice2 .card_img_wrap{display:none !important;}</style>
1092<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_7_2/resources/css/style.css?ver=2303229">
1093<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_5/resources/css/style.css?ver=2303229">
1094<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_5_in/resources/css/style.css?ver=2303229">
1095<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/MAIN_SWCF_6/resources/css/style.css?ver=2303229">
1096<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/EM/em_ftmenu_001/resources/css/style.css?ver=2303229">
1097<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/EM/em_free/resources/css/style.css?ver=2303229">
1098<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/EM/em_ftfamily/resources/css/style.css?ver=2303229">
1099<link rel="stylesheet" href="https://seochowcf.or.kr/data/widget/QUICK_floating/quick_2/resources/css/style.css?ver=2303229">
1100<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/mobile/skin/latest/hayan_popup1/resources/css/style.css?ver=2303229">
1101<script src="https://seochowcf.or.kr/js/jquery-1.12.4.min.js?ver=2304171"></script>
vendor: 1 bytes, line 1101
1101
1102<script src="https://seochowcf.or.kr/js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
vendor: 1 bytes, line 1102
1102
1103<script src="https://seochowcf.or.kr/js/common.js?ver=2304171"></script>
vendor: 1 bytes, line 1103
1103
1104<script src="https://seochowcf.or.kr/js/wrest.js?ver=2304171"></script>
vendor: 1 bytes, line 1104
1104
1105<script src="https://seochowcf.or.kr/js/placeholders.min.js?ver=2304171"></script>
vendor: 1 bytes, line 1105
1105
1106<script src="https://seochowcf.or.kr/js/modernizr.custom.70111.js?ver=2304171"></script>
1106
1107</head>
1108<body>
1109
1110
1111
1112	
1112<script>
1113// JS 함수: URL에 me_code 추가
1114function add_me_code(url) {
1115    var me_code = "";
1116    if (!me_code) return url;
1117    if (url.indexOf('me_code=') !== -1) return url;
1118
1119    var connector = url.indexOf('?') !== -1 ? '&' : '?';
1120    return url + connector + 'me_code=' + me_code;
1121}
1122</script>
1122
1123<!--컬러 강제 설정 
1123<script>
1124document.addEventListener("DOMContentLoaded", function () {
1125    const isColorSwitchOn = "no" === "yes";
1126    const depth1Code = "";  // ex) 1010 → 10
1127    const root = document.documentElement;
1128
1129    if (isColorSwitchOn) {
1130        // 현재 메뉴의 1뎁스 서브컬러를 프라이머리로 설정
1131        const subColorValue = getComputedStyle(root).getPropertyValue('--sub-color' + depth1Code).trim();
1132        if (subColorValue) {
1133            root.style.setProperty('--primary', subColorValue);
1134        }
1135    } else {
1136        root.style.setProperty('--primary', '#f37368');
1137    }
1138});
1139</script>
1139
1140-->
1141<script>
1142  const currentLang = 'ko';
1143</script>
vendor: 2 bytes, line 1143
1143
1144<script type="text/javascript">
1145$(document).ready(function(){
1146    $(window).on("scroll", function(){
1147        if ($(window).scrollTop() > 50) { 
1148            $("header").removeClass("large").addClass("small");
1149        } else {
1150            $("header").removeClass("small").addClass("large");
1151        }
1152    });
1153});		
1154</script>
1154
1155
1156
1157<script src="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/js/wing.js?v=1"></script>
1157
1158
1159
1160<!-- SCoreDream 하드코딩 제거(2026-06-12): 폰트관리(ko2) 활성 체크로 일원화 -->
1161
1162<!-- unicons v4.0.8 중복 제거(2026-06-12): head.sub.php 의 v4.2.0 line.css 전역 로드 -->
1163<link href="https://seochowcf.or.kr/theme/hayan/_head/COM_head_onlymenu/resources/css/style.css?v=1790119947" rel="stylesheet" />
1164<style>
1165/* ★ 사이트맵 설정 CSS 변수 오버라이드 */
1166:root {
1167  --sm-backdrop: rgba(15,18,23,0.95);
1168  --sm-gap: 24px;
1169  --sm-ink: #ffffff;
1170  --sm-ink-muted: #ffffff;
1171  --sm-hover: var(--primary);
1172}
1173/* ★ 바탕 컬러 (최하단 레이어) */
1174.gnb.sitemap .sm-backdrop {
1175  -webkit-backdrop-filter: saturate(1.1) blur(2px);
1176          backdrop-filter: saturate(1.1) blur(2px);
1177}
1178.gnb.sitemap:not(.sm-style2) .sm-close {
1179  top: 0px;
1180  right: 0px;
1181}
1182.gnb.sitemap .sm-close svg {
1183  width: 32px;
1184  height: 32px;
1185}
1186.gnb.sitemap .sm-panel .gnb.sm {
1187  padding: 16px;
1188}
1189.gnb.sitemap .sm-panel .gnb.sm .menu {
1190  grid-template-columns: repeat(5, 1fr);
1191}
1192.gnb.sitemap .sm-panel .gnb.sm .menu > .cell > .depth1 {
1193  font-size: 26px;
1194}
1195
1196
1197/* ★ 자유위젯 - 사이드 메뉴 하단 영역 (요소설정 '사이드' 체크 시) */
1198.gnb.sitemap .sm-panel .sm-free-area {
1199  margin-top: auto;            /* 메뉴 아래 빈 공간 활용해 하단으로 밀기 */
1200  width: 100%;
1201  padding: clamp(15px, 2vw, 30px) clamp(20px, 4vw, 40px);
1202  display: flex;
1203  flex-direction: column;
1204  gap: 12px;
1205}
1206.gnb.sitemap .sm-panel .sm-free-widget {
1207  width: 100%;
1208}
1209.gnb.sitemap .sm-panel .sm-free-widget * {
1210  color: #fff;
1211}
1212.gnb.sitemap .sm-panel .sm-free-widget svg {
1213  stroke: #fff;
1214}
1215
1216/* ★ dropdown2: 서브메뉴 최소 너비 */
1217/* ★ dropdown2: 오버 컬러 모드 */
1218/* ★ fullopen: 개별 메뉴 너비 */
1219/* ★ v4: 글로벌 메뉴 아이템 디바이스별 표시/숨김 + 순서 */
1220@media screen and (min-width: 1700px) { .gmenu-search-btn, .gmenu-item-search { display: none !important; } }
1221@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-search-btn, .gmenu-item-search { display: none !important; } }
1222@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-search-btn, .gmenu-item-search { display: none !important; } }
1223@media screen and (max-width: 767px) { .gmenu-search-btn, .gmenu-item-search { display: none !important; } }
1224@media screen and (min-width: 1700px) { .gmenu-search-btn, .gmenu-item-search { order: 1; } }
1225@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-search-btn, .gmenu-item-search { order: 1; } }
1226@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-search-btn, .gmenu-item-search { order: 1; } }
1227@media screen and (max-width: 767px) { .gmenu-search-btn, .gmenu-item-search { order: 1; } }
1228@media screen and (min-width: 1700px) { .lang-select-wrap { display: none !important; } }
1229@media screen and (min-width: 1024px) and (max-width: 1699px) { .lang-select-wrap { display: none !important; } }
1230@media screen and (min-width: 768px) and (max-width: 1023px) { .lang-select-wrap { display: none !important; } }
1231@media screen and (max-width: 767px) { .lang-select-wrap { display: none !important; } }
1232@media screen and (min-width: 1700px) { .lang-select-wrap { order: 2; } }
1233@media screen and (min-width: 1024px) and (max-width: 1699px) { .lang-select-wrap { order: 2; } }
1234@media screen and (min-width: 768px) and (max-width: 1023px) { .lang-select-wrap { order: 2; } }
1235@media screen and (max-width: 767px) { .lang-select-wrap { order: 2; } }
1236@media screen and (min-width: 1700px) { .gmenu-member-btns { display: none !important; } }
1237@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-member-btns { display: none !important; } }
1238@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-member-btns { display: none !important; } }
1239@media screen and (max-width: 767px) { .gmenu-member-btns { display: none !important; } }
1240@media screen and (min-width: 1700px) { .gmenu-member-btns { order: 3; } }
1241@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-member-btns { order: 3; } }
1242@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-member-btns { order: 3; } }
1243@media screen and (max-width: 767px) { .gmenu-member-btns { order: 3; } }
1244@media screen and (min-width: 1700px) { .gmenu-sns-group { display: none !important; } }
1245@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-sns-group { display: none !important; } }
1246@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-sns-group { display: none !important; } }
1247@media screen and (max-width: 767px) { .gmenu-sns-group { display: none !important; } }
1248@media screen and (min-width: 1700px) { .gmenu-sns-group { order: 4; } }
1249@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-sns-group { order: 4; } }
1250@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-sns-group { order: 4; } }
1251@media screen and (max-width: 767px) { .gmenu-sns-group { order: 4; } }
1252@media screen and (min-width: 768px) and (max-width: 1023px) { .sitemap { display: none !important; } }
1253@media screen and (max-width: 767px) { .sitemap { display: none !important; } }
1254@media screen and (min-width: 1700px) { .sitemap { order: 5; } }
1255@media screen and (min-width: 1024px) and (max-width: 1699px) { .sitemap { order: 5; } }
1256@media screen and (min-width: 768px) and (max-width: 1023px) { .sitemap { order: 5; } }
1257@media screen and (max-width: 767px) { .sitemap { order: 5; } }
1258@media screen and (min-width: 1700px) { .allmenu { display: none !important; } }
1259@media screen and (min-width: 1024px) and (max-width: 1699px) { .allmenu { display: none !important; } }
1260@media screen and (min-width: 1700px) { .allmenu { order: 6; } }
1261@media screen and (min-width: 1024px) and (max-width: 1699px) { .allmenu { order: 6; } }
1262@media screen and (min-width: 768px) and (max-width: 1023px) { .allmenu { order: 6; } }
1263@media screen and (max-width: 767px) { .allmenu { order: 6; } }
1264@media screen and (min-width: 1700px) { .popup-reopen-btn-wrap.pos-top { order: 7; } }
1265@media screen and (min-width: 1024px) and (max-width: 1699px) { .popup-reopen-btn-wrap.pos-top { order: 7; } }
1266@media screen and (min-width: 768px) and (max-width: 1023px) { .popup-reopen-btn-wrap.pos-top { order: 7; } }
1267@media screen and (max-width: 767px) { .popup-reopen-btn-wrap.pos-top { order: 7; } }
1268@media screen and (min-width: 1700px) { .sitemap { order: 1; } }
1269@media screen and (min-width: 768px) and (max-width: 1699px) { .sitemap { order: 1; } }
1270@media screen and (max-width: 767px) { .sitemap { order: 1; } }
1271@media screen and (min-width: 1700px) { .gmenu-free1-wrap.gmenu-free1-wrap { display: none !important; } }
1272@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-free1-wrap.gmenu-free1-wrap { display: none !important; } }
1273@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-free1-wrap.gmenu-free1-wrap { display: none !important; } }
1274@media screen and (max-width: 767px) { .gmenu-free1-wrap.gmenu-free1-wrap { display: none !important; } }
1275@media screen and (min-width: 1700px) { .gmenu-free1-wrap { order: 99; } }
1276@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-free1-wrap { order: 99; } }
1277@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-free1-wrap { order: 99; } }
1278@media screen and (max-width: 767px) { .gmenu-free1-wrap { order: 99; } }
1279@media screen and (min-width: 1700px) { .gmenu-free2-wrap.gmenu-free2-wrap { display: none !important; } }
1280@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-free2-wrap.gmenu-free2-wrap { display: none !important; } }
1281@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-free2-wrap.gmenu-free2-wrap { display: none !important; } }
1282@media screen and (max-width: 767px) { .gmenu-free2-wrap.gmenu-free2-wrap { display: none !important; } }
1283@media screen and (min-width: 1700px) { .gmenu-free2-wrap { order: 99; } }
1284@media screen and (min-width: 1024px) and (max-width: 1699px) { .gmenu-free2-wrap { order: 99; } }
1285@media screen and (min-width: 768px) and (max-width: 1023px) { .gmenu-free2-wrap { order: 99; } }
1286@media screen and (max-width: 767px) { .gmenu-free2-wrap { order: 99; } }
1287
1288/* ★ v4: 사이드 메뉴 글로벌 영역 스타일 */
1289.side-gmenu-area {
1290  padding: 15px 0;
1291  border-bottom: 1px solid rgba(255,255,255,0.1);
1292  display: flex;
1293  flex-wrap: wrap;
1294  gap: 12px;
1295  align-items: center;
1296}
1297.side-gmenu-area * {
1298  color: #fff !important;
1299}
1300.side-gmenu-area svg {
1301  stroke: #fff !important;
1302  fill: none !important;
1303}
1304.side-gmenu-btn {
1305  display: inline-flex;
1306  align-items: center;
1307  gap: 6px;
1308  padding: 8px 12px;
1309  background: rgba(255,255,255,0.1);
1310  border: none;
1311  border-radius: 6px;
1312  color: #fff;
1313  font-size: 13px;
1314  cursor: pointer;
1315  transition: background 0.2s;
1316  text-decoration: none;
1317}
1318.side-gmenu-btn:hover {
1319  background: rgba(255,255,255,0.2);
1320  color: #fff;
1321}
1322.side-gmenu-btn svg {
1323  width: 18px;
1324  height: 18px;
1325  stroke: #fff;
1326  fill: none;
1327}
1328.side-search-btn {
1329  background: rgba(102, 126, 234, 0.3);
1330}
1331.side-search-btn:hover {
1332  background: rgba(102, 126, 234, 0.5);
1333}
1334.side-lang-select {
1335  display: flex;
1336  align-items: center;
1337  gap: 4px;
1338}
1339.side-lang-btns {
1340  display: flex;
1341  gap: 4px;
1342}
1343.side-lang-btn {
1344  padding: 5px 10px;
1345  background: rgba(255,255,255,0.1);
1346  border: 1px solid rgba(255,255,255,0.3);
1347  border-radius: 4px;
1348  color: #fff;
1349  font-size: 12px;
1350  cursor: pointer;
1351  transition: all 0.2s;
1352}
1353.side-lang-btn:hover,
1354.side-lang-btn.active {
1355  background: rgba(255,255,255,0.25);
1356  border-color: rgba(255,255,255,0.5);
1357  color: #fff;
1358}
1359.side-member-btns {
1360  display: flex;
1361  gap: 8px;
1362  flex-wrap: wrap;
1363}
1364.side-sns-group {
1365  display: flex;
1366  gap: 8px;
1367}
1368.side-sns-group a {
1369  display: flex;
1370  align-items: center;
1371  justify-content: center;
1372  width: 36px;
1373  height: 36px;
1374  background: rgba(255,255,255,0.1);
1375  border-radius: 50%;
1376  color: #fff;
1377  transition: background 0.2s;
1378}
1379.side-sns-group a:hover {
1380  background: rgba(255,255,255,0.2);
1381}
1382.side-sns-group svg {
1383  width: 18px;
1384  height: 18px;
1385  stroke: currentColor;
1386  fill: none;
1387}
1388
1389/* 위젯 아이콘 버튼 (관리자용) */
1390.wg_icon_btn {
1391  position: absolute;
1392  top: 2px;
1393  right: 2px;
1394  width: 24px;
1395  height: 24px;
1396  padding: 4px;
1397  background: rgba(99, 102, 241, 0.9);
1398  border: none;
1399  border-radius: 4px;
1400  cursor: pointer;
1401  display: flex;
1402  align-items: center;
1403  justify-content: center;
1404  opacity: 0;
1405  transition: opacity 0.2s, background 0.2s;
1406  z-index: 100;
1407}
1408.wg_icon_btn svg { color: #fff; }
1409.wg_icon_btn:hover { background: rgba(79, 70, 229, 1); }
1410.admin_div:hover .wg_icon_btn,
1411.logo:hover .wg_icon_btn { opacity: 1; }
1412
1413/* 위젯 모달 오버레이 */
1414.wg_modal_overlay {
1415  position: fixed;
1416  top: 0; left: 0; right: 0; bottom: 0;
1417  background: rgba(0,0,0,0.6);
1418  z-index: 99999;
1419  display: flex;
1420  align-items: center;
1421  justify-content: center;
1422  opacity: 0;
1423  visibility: hidden;
1424  transition: opacity 0.25s, visibility 0.25s;
1425}
1426.wg_modal_overlay.active {
1427  opacity: 1;
1428  visibility: visible;
1429}
1430.wg_modal_box {
1431  background: #fff;
1432  border-radius: 8px;
1433  width: 95vw;
1434  max-width: 1200px;
1435  height: 90vh;
1436  max-height: 800px;
1437  display: flex;
1438  flex-direction: column;
1439  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
1440  transform: scale(0.95);
1441  transition: transform 0.25s;
1442}
1443.wg_modal_overlay.active .wg_modal_box {
1444  transform: scale(1);
1445}
1446.wg_modal_header {
1447  display: flex;
1448  justify-content: space-between;
1449  align-items: center;
1450  padding: 12px 16px;
1451  border-bottom: 1px solid #e5e7eb;
1452  background: #f9fafb;
1453  border-radius: 8px 8px 0 0;
1454}
1455.wg_modal_header h3 {
1456  margin: 0;
1457  font-size: 16px;
1458  font-weight: 600;
1459  color: #111827;
1460}
1461.wg_modal_close {
1462  background: none;
1463  border: none;
1464  font-size: 24px;
1465  cursor: pointer;
1466  color: #6b7280;
1467  padding: 4px 8px;
1468  line-height: 1;
1469  border-radius: 4px;
1470  transition: background 0.15s, color 0.15s;
1471}
1472.wg_modal_close:hover {
1473  background: #f3f4f6;
1474  color: #111827;
1475}
1476.wg_modal_body {
1477  flex: 1;
1478  overflow: hidden;
1479}
1480.wg_modal_body iframe {
1481  width: 100%;
1482  height: 100%;
1483  border: none;
1484}
1485
1486/* ===== 글로벌 메뉴 스타일 ===== */
1487/* 헤더 컨테이너 position 설정 (inner 절대위치 기준) */
1488.header > .contents-container {
1489  position: relative;
1490}
1491/* 상단 inner 영역 (position: inner) - contents-container 기준 절대위치 */
1492.gmenu-area-inner {
1493  position: absolute;
1494  top: var(--gmenu-inner-top, 5px);
1495  right: var(--gmenu-inner-right, 0px);
1496  display: flex;
1497  align-items: center;
1498  gap: 10px;
1499  z-index: 100;
1500}
1501/* 태블릿 (768~1699px) - PC처럼 상단 배치 유지 */
1502@media screen and (max-width: 1699px) and (min-width: 768px) {
1503  .header > .contents-container {
1504    position: relative; /* PC처럼 relative 유지 */
1505  }
1506  .gmenu-area-inner {
1507    position: absolute;
1508    top: var(--gmenu-inner-top, 5px);
1509    right: var(--gmenu-inner-right, 30px);
1510    transform: none;
1511    height: auto;
1512  }
1513}
1514/* 모바일 (~767px) */
1515@media screen and (max-width: 767px) {
1516  .header > .contents-container {
1517    position: static;
1518  }
1519  .header .head_inner {
1520    position: relative;
1521  }
1522  .gmenu-area-inner {
1523    position: absolute;
1524    top: 50%;
1525    transform: translateY(-50%);
1526    right: var(--gmenu-inner-right, 45px);
1527    height: auto;
1528    padding-right: 0; /* 모바일 우측 패딩 제거 */
1529  }
1530}
1531
1532/* 메뉴~햄버거 사이 영역 (position: between) */
1533.gmenu-area-between {
1534  display: flex;
1535  align-items: center;
1536  gap: 4px;
1537  margin-left: auto;
1538  margin-right: 15px;
1539}
1540
1541/* 글로벌 메뉴 버튼 공통 */
1542.gmenu-btn {
1543  display: inline-flex;
1544  align-items: center;
1545  justify-content: center;
1546  gap: 3px;
1547  padding: 6px 10px;
1548  font-size: var(--gmenu-font-size, 13px);
1549  font-weight: 500;
1550  color: var(--top1d-font-color, #333);
1551  background: transparent;
1552  border: 1px solid transparent;
1553  border-radius: 30px;
1554  cursor: pointer;
1555  transition: all 0.2s ease;
1556  white-space: nowrap;
1557}
1558.gmenu-btn:hover {
1559  background: rgba(0,0,0,0.05);
1560}
1561
1562/* 비투명 헤더 (서브페이지 기본) - 검정 텍스트/아이콘 (bg-color 제외) */
1563.header:not(.opacity):not(.bg-color) .gmenu-btn {
1564  color: #333 !important;
1565}
1566.header:not(.opacity):not(.bg-color) .gmenu-btn svg {
1567  stroke: #333 !important;
1568}
1569
1570/* 투명 헤더일때 글로벌 메뉴 색상 - 흰색 */
1571.header.opacity:not(.scrolled):not(.hovered) .gmenu-btn {
1572  color: var(--top1d-font-color-opacity, #fff);
1573}
1574.header.opacity:not(.scrolled):not(.hovered) .gmenu-btn svg {
1575  stroke: var(--top1d-font-color-opacity, #fff);
1576}
1577.header.opacity:not(.scrolled):not(.hovered) .gmenu-btn:hover {
1578  background: rgba(255,255,255,0.1);
1579}
1580
1581/* 투명 헤더 스크롤/호버 후 - 검정 텍스트/아이콘 */
1582.header.opacity.scrolled .gmenu-btn,
1583.header.opacity.hovered .gmenu-btn {
1584  color: #333;
1585}
1586.header.opacity.scrolled .gmenu-btn svg,
1587.header.opacity.hovered .gmenu-btn svg {
1588  stroke: #333;
1589}
1590
1591/* 아이콘 버튼 */
1592.gmenu-icon-btn {
1593  width: 36px;
1594  height: 36px;
1595  padding: 0;
1596  border-radius: 50%;
1597}
1598.gmenu-icon-btn svg {
1599  width: 18px;
1600  height: 18px;
1601}
1602
1603/* 언어 선택 박스 */
1604.lang-select-wrap {
1605  position: relative;
1606}
1607.lang-select-wrap .lang-btn {
1608line-height: 100% !important; min-height: 30px; position: relative; padding-right: 30px
1609}
1610/* ★ [2026-09-07] 화살표 = unicons 아이콘(uil-angle-down). 구형 삼각형(::after) 제거, 열리면 180도 회전 */
1611.lang-select-wrap .lang-btn::after { content: none; }
1612.lang-select-wrap .lang-btn .lang-arrow {
1613  position: absolute; right: 9px; top: 50%;
1614  transform: translateY(-50%);
1615  font-size: 16px; line-height: 1; color: currentColor;
1616  transition: transform 0.2s ease;
1617  pointer-events: none;
1618}
1619.lang-select-wrap.open .lang-btn .lang-arrow {
1620  transform: translateY(-50%) rotate(180deg);
1621}
1622/* ★ [2026-09-07] 언어 레이어가 열리면 글로벌 메뉴 영역을 햄버거(.sitemap z-index:102~103)보다 위로 */
1623.header .gmenu-area-inner.lang-open,
1624.header .gmenu-area-between.lang-open {
1625  z-index: 100000 !important;
1626}
1627.header .gmenu-area-between.lang-open { position: relative; }
1628.lang-select-wrap .lang-options {
1629  position: absolute;
1630  top: 100%;
1631  left: 0;
1632  min-width: 100%;
1633  background: #fff;
1634  border: 1px solid #ddd;
1635  border-radius: 4px;
1636  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
1637  opacity: 0;
1638  visibility: hidden;
1639  transform: translateY(-10px);
1640  transition: all 0.2s ease;
1641  z-index: 1000;
1642  list-style: none;
1643  padding: 4px 0;
1644  margin: 4px 0 0;
1645}
1646.lang-select-wrap.open .lang-options {
1647  opacity: 1;
1648  visibility: visible;
1649  transform: translateY(0);
1650}
1651.lang-select-wrap .lang-options li {
1652  padding: 8px 15px;
1653  font-size: 13px;
1654  color: #333;
1655  cursor: pointer;
1656  transition: all 0.15s ease;
1657}
1658.lang-select-wrap .lang-options li:hover {
1659  background: #333;
1660  color: #fff;
1661}
1662.lang-select-wrap .lang-options li.active {
1663  font-weight: 600;
1664  color: var(--primary-500, #4f46e5);
1665}
1666.lang-select-wrap .lang-options li.active:hover {
1667  color: #fff;
1668}
1669
1670/* ★ 구글 번역 스타일 */
1671.google-translate-wrap {
1672  display: flex;
1673  align-items: center;
1674}
1675.google-translate-wrap .goog-te-gadget {
1676  font-family: inherit !important;
1677  font-size: 13px !important;
1678}
1679/* ★ 커스텀 구글 번역 셀렉트 박스 스타일 */
1680.custom-translate-wrap {
1681  display: flex;
1682  align-items: center;
1683}
1684.custom-translate-select {
1685  appearance: none;
1686  -webkit-appearance: none;
1687  -moz-appearance: none;
1688  background-color: #fff;
1689  border: 1px solid rgba(0,0,0,0.05);
1690  border-radius: 4px;
1691  padding: 6px 32px 6px 12px;
1692  font-size: var(--gmenu-font-size, 13px);
1693  font-weight: 500;
1694  color: #333;
1695  cursor: pointer;
1696  outline: none;
1697  min-width: 90px;
1698  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
1699  transition: all 0.2s ease;
1700  /* Unicons angle-down 라인 아이콘 (SVG) */
1701  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
1702  background-repeat: no-repeat;
1703  background-position: right 8px center;
1704  background-size: 14px;
1705}
1706.custom-translate-select:hover {
1707  border-color: rgba(0,0,0,0.25);
1708  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
1709}
1710.custom-translate-select:focus {
1711  border-color: var(--primary-500, #4f46e5);
1712  box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.15);
1713  outline: 2px solid var(--primary-500, #4f46e5);
1714  outline-offset: 1px;
1715}
1716.custom-translate-select option {
1717  color: #333;
1718  background: #fff;
1719  padding: 8px;
1720}
1721/* 사이드 메뉴용 셀렉트 스타일 */
1722.side-translate-select {
1723  background-color: rgba(255,255,255,0.1);
1724  border-color: rgba(255,255,255,0.2);
1725  color: #fff;
1726  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
1727}
1728.side-translate-select:hover {
1729  background-color: rgba(255,255,255,0.15);
1730  border-color: rgba(255,255,255,0.3);
1731}
1732/* 사이드 메뉴 구글 번역 */
1733.side-lang-select .goog-te-gadget-simple {
1734  background: rgba(255,255,255,0.1) !important;
1735  border: 1px solid rgba(255,255,255,0.2) !important;
1736}
1737.side-lang-select .goog-te-gadget-simple .goog-te-menu-value,
1738.side-lang-select .goog-te-gadget-simple .goog-te-menu-value span {
1739  color: #fff !important;
1740}
1741
1742/* 투명 헤더 초기 상태 (스크롤/호버 전) - 흰색 텍스트 */
1743.header.opacity:not(.scrolled):not(.hovered) .lang-select-wrap .lang-btn,
1744.header.opacity:not(.scrolled):not(.hovered) .gmenu-area-inner .lang-btn,
1745.header.opacity:not(.scrolled):not(.hovered) .gmenu-area-between .lang-btn {
1746  color: #fff !important;
1747  border-color: rgba(255,255,255,0.3) !important;
1748}
1749/* 투명 헤더 초기 - 구글 번역 셀렉트 흰색 */
1750.header.opacity:not(.scrolled):not(.hovered) .custom-translate-select {
1751  color: #fff !important;
1752  background-color: rgba(255,255,255,0.1) !important;
1753  border-color: rgba(255,255,255,0.3) !important;
1754  box-shadow: none !important;
1755  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
1756}
1757/* 투명 헤더 스크롤/호버 후 - 검정 텍스트 */
1758.header.opacity.scrolled .lang-select-wrap .lang-btn,
1759.header.opacity.hovered .lang-select-wrap .lang-btn,
1760.header.opacity.scrolled .gmenu-area-inner .lang-btn,
1761.header.opacity.hovered .gmenu-area-inner .lang-btn,
1762.header.opacity.scrolled .gmenu-area-between .lang-btn,
1763.header.opacity.hovered .gmenu-area-between .lang-btn {
1764  color: #333 !important;
1765  border-color: rgba(0,0,0,0.05) !important;
1766}
1767/* 투명 헤더 스크롤/호버 후 - 구글 번역 셀렉트 검정 */
1768.header.opacity.scrolled .custom-translate-select,
1769.header.opacity.hovered .custom-translate-select {
1770  color: #333 !important;
1771  background-color: #fff !important;
1772  border-color: rgba(0,0,0,0.05) !important;
1773  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
1774  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewB
1774ox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
1775}
1776/* 비투명 헤더 (기본) - 검정 텍스트 (bg-color 제외) */
1777.header:not(.opacity):not(.bg-color) .lang-select-wrap .lang-btn,
1778.header:not(.opacity):not(.bg-color) .gmenu-area-inner .lang-btn,
1779.header:not(.opacity):not(.bg-color) .gmenu-area-between .lang-btn {
1780  color: #333 !important;
1781  border-color: rgba(0,0,0,0.05) !important;
1782}
1783
1784/* SNS 버튼 그룹 */
1785.gmenu-sns-group {
1786  display: flex;
1787  align-items: center;
1788  gap: 5px;
1789}
1790.gmenu-sns-group a {
1791  display: flex;
1792  align-items: center;
1793  justify-content: center;
1794  width: 30px;
1795  height: 30px;
1796  border-radius: 50%;
1797  transition: all 0.2s ease;
1798}
1799.gmenu-sns-group a:hover {
1800  background: rgba(0,0,0,0.05);
1801}
1802.gmenu-sns-group svg {
1803  width: 18px;
1804  height: 18px;
1805  transition: all 0.2s ease;
1806}
1807.gmenu-sns-group .wg_img1 {
1808  width: 100%;
1809  height: 100%;
1810  display: flex;
1811  align-items: center;
1812  justify-content: center;
1813}
1814.gmenu-sns-group .wg_img1 img {
1815  width: 100%;
1816  height: 100%;
1817  object-fit: contain;
1818}
1819
1820/* 자유위젯 wrap */
1821.gmenu-free1-wrap,
1822.gmenu-free2-wrap {
1823  display: flex !important;
1824  align-items: center !important;
1825  min-width: 0 !important;
1826}
1827.gmenu-free1-wrap *,
1828.gmenu-free2-wrap * {
1829  float: none !important;
1830}
1831.gmenu-free1-wrap .em_free,
1832.gmenu-free2-wrap .em_free {
1833  display: flex !important;
1834  align-items: center !important;
1835  width: auto !important;
1836  min-width: 0 !important;
1837  padding: 0 !important;
1838  margin: 0 !important;
1839}
1840.gmenu-free1-wrap .com_f,
1841.gmenu-free2-wrap .com_f {
1842  padding: 0 !important;
1843  margin: 0 !important;
1844}
1845.gmenu-free1-wrap .wg_side,
1846.gmenu-free2-wrap .wg_side {
1847  display: flex !important;
1848  align-items: center !important;
1849  width: auto !important;
1850  min-width: 0 !important;
1851  padding: 0 !important;
1852  margin: 0 !important;
1853}
1854.gmenu-free1-wrap .wg_box,
1855.gmenu-free2-wrap .wg_box {
1856  display: flex !important;
1857  align-items: center !important;
1858  gap: 6px;
1859  width: auto !important;
1860  min-width: 0 !important;
1861  padding: 0 !important;
1862  margin: 0 !important;
1863}
1864.gmenu-free1-wrap .wg_box_in,
1865.gmenu-free2-wrap .wg_box_in {
1866  display: flex !important;
1867  align-items: center !important;
1868  gap: 6px;
1869  width: auto !important;
1870  min-width: 0 !important;
1871  padding: 0 !important;
1872  margin: 0 !important;
1873  border: none !important;
1874  background: none !important;
1875}
1876.gmenu-free1-wrap .wg_img_box,
1877.gmenu-free2-wrap .wg_img_box {
1878  display: flex !important;
1879  align-items: center !important;
1880  width: auto !important;
1881  min-width: 0 !important;
1882}
1883.gmenu-free1-wrap .wg_txt_box,
1884.gmenu-free2-wrap .wg_txt_box {
1885  display: flex !important;
1886  align-items: center !important;
1887  white-space: nowrap !important;
1888  width: auto !important;
1889  min-width: 0 !important;
1890  font-size: var(--gmenu-font-size, 13px);
1891}
1892.gmenu-free1-wrap .sub_stit_box,
1893.gmenu-free2-wrap .sub_stit_box {
1894  display: none !important;
1895}
1896.gmenu-free1-wrap .wg_txt1,
1897.gmenu-free1-wrap .wg_txt2,
1898.gmenu-free1-wrap .wg_txt3,
1899.gmenu-free2-wrap .wg_txt1,
1900.gmenu-free2-wrap .wg_txt2,
1901.gmenu-free2-wrap .wg_txt3 {
1902  display: inline-flex !important;
1903  align-items: center !important;
1904  width: auto !important;
1905  min-width: 0 !important;
1906  white-space: nowrap !important;
1907}
1908.gmenu-free1-wrap .COM_tit,
1909.gmenu-free2-wrap .COM_tit {
1910  width: auto !important;
1911  min-width: 0 !important;
1912  display: inline-flex !important;
1913  align-items: center !important;
1914  gap: 5px;
1915  white-space: nowrap !important;
1916  margin: 0 !important;
1917  padding: 0 !important;
1918}
1919.gmenu-free1-wrap .contents-container,
1920.gmenu-free2-wrap .contents-container {
1921  max-width: none !important;
1922  width: auto !important;
1923  min-width: 0 !important;
1924  padding: 0 !important;
1925  margin: 0 !important;
1926}
1927.gmenu-sns-group .tooltip {
1928  display: none;
1929}
1930
1931/* 자유위젯 - 비투명 헤더 (기본: 검정) */
1932.header:not(.opacity):not(.bg-color) .gmenu-free1-wrap,
1933.header:not(.opacity):not(.bg-color) .gmenu-free2-wrap {
1934  color: #333 !important;
1935}
1936.header:not(.opacity):not(.bg-color) .gmenu-free1-wrap *,
1937.header:not(.opacity):not(.bg-color) .gmenu-free2-wrap * {
1938  color: inherit !important;
1939}
1940.header:not(.opacity):not(.bg-color) .gmenu-free1-wrap svg,
1941.header:not(.opacity):not(.bg-color) .gmenu-free2-wrap svg {
1942  stroke: #333 !important;
1943}
1944/* 자유위젯 - 투명 헤더 초기 (흰색) */
1945.header.opacity:not(.scrolled):not(.hovered) .gmenu-free1-wrap,
1946.header.opacity:not(.scrolled):not(.hovered) .gmenu-free2-wrap {
1947  color: var(--top1d-font-color-opacity, #fff) !important;
1948}
1949.header.opacity:not(.scrolled):not(.hovered) .gmenu-free1-wrap *,
1950.header.opacity:not(.scrolled):not(.hovered) .gmenu-free2-wrap * {
1951  color: inherit !important;
1952}
1953.header.opacity:not(.scrolled):not(.hovered) .gmenu-free1-wrap svg,
1954.header.opacity:not(.scrolled):not(.hovered) .gmenu-free2-wrap svg {
1955  stroke: var(--top1d-font-color-opacity, #fff) !important;
1956}
1957/* 자유위젯 - 투명 헤더 스크롤/호버 후 (검정) */
1958.header.opacity.scrolled .gmenu-free1-wrap,
1959.header.opacity.hovered .gmenu-free1-wrap,
1960.header.opacity.scrolled .gmenu-free2-wrap,
1961.header.opacity.hovered .gmenu-free2-wrap {
1962  color: #333 !important;
1963}
1964.header.opacity.scrolled .gmenu-free1-wrap *,
1965.header.opacity.hovered .gmenu-free1-wrap *,
1966.header.opacity.scrolled .gmenu-free2-wrap *,
1967.header.opacity.hovered .gmenu-free2-wrap * {
1968  color: inherit !important;
1969}
1970.header.opacity.scrolled .gmenu-free1-wrap svg,
1971.header.opacity.hovered .gmenu-free1-wrap svg,
1972.header.opacity.scrolled .gmenu-free2-wrap svg,
1973.header.opacity.hovered .gmenu-free2-wrap svg {
1974  stroke: #333 !important;
1975}
1976
1977/* 비투명 헤더 (서브페이지 기본) - SNS 아이콘 검정 (bg-color 제외) */
1978.header:not(.opacity):not(.bg-color) .gmenu-sns-group svg {
1979  fill: none !important;
1980  stroke: #333 !important;
1981}
1982
1983/* 투명 헤더 초기 상태 - SNS 아이콘 흰색 */
1984.header.opacity:not(.scrolled):not(.hovered) .gmenu-sns-group svg {
1985  fill: none !important;
1986  stroke: #fff !important;
1987}
1988.header.opacity:not(.scrolled):not(.hovered) .gmenu-sns-group a:hover {
1989  background: rgba(255,255,255,0.1);
1990}
1991
1992/* 투명 헤더 스크롤/호버 후 - SNS 아이콘 검정 */
1993.header.opacity.scrolled .gmenu-sns-group svg,
1994.header.opacity.hovered .gmenu-sns-group svg {
1995  fill: none !important;
1996  stroke: #333 !important;
1997}
1998
1999/* ★ v5: 햄버거 버튼 view 설정 - JSON 설정이 제어 */
2000/* .allmenu = 모바일 사이드메뉴 햄버거 - 기본 표시, JSON이 숨김 제어 */
2001.header .allmenu { display: block; }
2002
2003/* .sitemap = PC 전체메뉴 햄버거 - 기본 표시, JSON이 숨김 제어 */
2004.header > .header_right > .sitemap { display: block; }
2005
2006/* 기존 allmenu-pcview 클래스 호환 (JSON 미설정시 fallback) */
2007
2008/* 메뉴 렌더링 전 깜빡임 방지 */
2009.gnb.pc .menu:empty {
2010  min-height: 60px;
2011}
2012.gnb.pc .menu {
2013  opacity: 0;
2014  transition: opacity 0.15s ease;
2015}
2016.gnb.pc .menu.rendered,
2017.gnb.pc .menu:not(:empty) {
2018  opacity: 1;
2019}
2020
2021/* 글로벌 메뉴 표시/숨김 클래스 */
2022.gmenu-hide { display: none !important; }
2023
2024/* ===== 팝업 다시열기 버튼 (통합) ===== */
2025/* 기본: 숨김 (팝업이 닫힌 후에만 표시) */
2026.popup-reopen-btn-wrap {
2027  display: none;
2028}
2029.popup-reopen-btn-wrap.show {
2030  display: flex;
2031}
2032
2033/* 위치 1: 글로벌 메뉴 옆 (top) - 글로벌 메뉴 내부, 함께 스크롤 */
2034.popup-reopen-btn-wrap.pos-top {
2035  position: relative;
2036  display: none;
2037  margin-left: 8px;
2038}
2039.popup-reopen-btn-wrap.pos-top.show {
2040  display: flex;
2041}
2042
2043/* 위치 1 fallback: 글로벌 메뉴가 없을 때 상단 고정 */
2044.popup-reopen-btn-wrap.pos-top-fallback {
2045  position: fixed;
2046  top: 15px;
2047  right: 15px;
2048  margin-left: 0;
2049  z-index: 9999999;
2050}
2051
2052/* 위치 2: 브라우저 전체 고정 (fixed) - 동적 위치값 */
2053.popup-reopen-btn-wrap.pos-fixed {
2054  position: fixed;
2055  top: 35px;  right: 25px;      z-index: 9999999;
2056}
2057
2058/* inner(컨테이너) 안 고정 anchor: head_inner 를 기준으로 */
2059.head_inner { position: relative; }
2060/* 위치 3: inner(컨테이너) 안 고정 (absolute) - 같은 위치값을 컨테이너 기준으로 사용 */
2061.popup-reopen-btn-wrap.pos-absolute {
2062  position: absolute;
2063  top: 35px;  right: 25px;      z-index: 100;
2064}
2065
2066/* 팝업 다시열기 버튼 스타일 */
2067.popup-reopen-btn-head {
2068  display: inline-flex;
2069  align-items: center;
2070  gap: 5px;
2071  padding: 6px 14px;
2072  background: var(--point, #667eea);
2073  color: #fff !important;
2074  font-size: 13px;
2075  font-weight: 500;
2076  border: none;
2077  border-radius: 20px;
2078  cursor: pointer;
2079  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
2080  transition: all 0.2s ease;
2081  white-space: nowrap;
2082}
2083/* 버튼 크기 - 소 */
2084.popup-reopen-btn-head.size-small {
2085  padding: 6px 12px;
2086  font-size: 12px;
2087  gap: 4px;
2088  min-height: 32px;
2089}
2090.popup-reopen-btn-head.size-small em {
2091  min-width: 18px;
2092  height: 18px;
2093  font-size: 11px;
2094  padding: 0 5px;
2095}
2096/* 버튼 크기 - 중 (기본) */
2097.popup-reopen-btn-head.size-medium {
2098  padding: 6px 14px;
2099  font-size: 13px;
2100}
2101/* 버튼 크기 - 대 */
2102.popup-reopen-btn-head.size-large {
2103  padding: 8px 18px;
2104  font-size: 14px;
2105  gap: 6px;
2106}
2107.popup-reopen-btn-head.size-large em {
2108  min-width: 24px;
2109  height: 24px;
2110  font-size: 13px;
2111  padding: 0 8px;
2112}
2113/* 버튼 크기 - 자체(custom): 관리자 입력 패딩/텍스트크기/모서리 적용 */
2114.popup-reopen-btn-head.size-custom {
2115  padding: 8px 18px;  font-size: 14px;  border-radius: 20px;}
2116.popup-reopen-btn-head:hover {
2117  transform: translateY(-1px);
2118  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
2119}
2120.popup-reopen-btn-head em {
2121  display: inline-flex;
2122  align-items: center;
2123  justify-content: center;
2124  min-width: 20px;
2125  height: 20px;
2126  padding: 0 6px;
2127  background: rgba(255,255,255,0.25);
2128  border-radius: 10px;
2129  font-style: normal;
2130  font-size: 12px;
2131  font-weight: 600;
2132}
2133
2134/* 모바일 - top은 글로벌 메뉴 내에서 자연스럽게 배치 (fixed 해제) */
2135@media screen and (max-width: 1024px) {
2136  .popup-reopen-btn-wrap.pos-top {
2137    /* 글로벌 메뉴 안에 있으므로 position 그대로 유지 */
2138    position: relative !important;
2139    top: auto !important;
2140    right: auto !important;
2141    left: auto !important;
2142    bottom: auto !important;
2143    margin-left: 0 !important;
2144  }
2145  /* fallback (글로벌 메뉴 없을 때)만 상단 중앙 고정 */
2146  .popup-reopen-btn-wrap.pos-top-fallback {
2147    position: fixed !important;
2148    top: 8px !important;
2149    left: 0 !important;
2150    right: 0 !important;
2151    bottom: auto !important;
2152    justify-content: center !important;
2153    z-index: 9999999 !important;
2154    pointer-events: none !important;
2155  }
2156  .popup-reopen-btn-wrap.pos-top-fallback .popup-reopen-btn-head {
2157    pointer-events: auto !important;
2158  }
2159  /* fixed는 모바일 설정값 사용 */
2160  .popup-reopen-btn-wrap.pos-fixed {
2161    top: 8px !important;    right: auto !important;    bottom: auto !important;    left: auto !important;      }
2162    /* absolute(inner 고정)도 모바일 설정값 사용 (값 없으면 PC값 유지) */
2163  .popup-reopen-btn-wrap.pos-absolute {
2164    top: 8px !important;              }
2165    }
2166
2167/* ★ 로고 전환: 위젯에 업로드된 이미지 사용 (filter 제거) */
2168/* 투명 배경 → logo-initial (항목1 이미지2) 표시 */
2169/* 흰색 배경 → logo-default (항목1 이미지1) 표시 */
2170
2171/* 투명 헤더 초기 상태에서 로고 전환 */
2172.header.opacity:not(.scrolled):not(.hovered) .logo img.logo-default { opacity: 0; }
2173.header.opacity:not(.scrolled):not(.hovered) .logo img.logo-initial { opacity: 1; }
2174.header.opacity.scrolled .logo img.logo-default,
2175.header.opacity.hovered .logo img.logo-default { opacity: 1; }
2176.header.opacity.scrolled .logo img.logo-initial,
2177.header.opacity.hovered .logo img.logo-initial { opacity: 0; }
2178
2179/* ===== 듀얼 로고 ===== */
2180.header .logo.logo-dual { display: flex; align-items: center; flex-direction: row-reverse; }
2181.header .logo.logo-dual.logo-dual-reverse { flex-direction: row; }
2182.logo-divider { width: 1px; height: 24px; background: rgba(0,0,0,0.12); margin: 0 12px; flex-shrink: 0; align-self: center; }
2183.logo-second { display: inline-flex; align-items: center; position: relative; }
2184.logo-second img,
2185.logo-second .logo-default img,
2186.logo-second .logo-initial img { max-height: var(--header-logo-width, 180px); width: auto; height: auto; }
2187.logo-second > img.logo-default,
2188.logo-second > .logo-default { position: relative; transition: opacity 0.3s ease; }
2189.logo-second > img.logo-initial,
2190.logo-second > .logo-initial { position: absolute; top: 50%; left: 0; transform: translateY(-50%); transition: opacity 0.3s ease; opacity: 0; }
2191.header.opacity:not(.scrolled):not(.hovered) .logo-divider { background: rgba(255,255,255,0.3); }
2192.header.opacity:not(.scrolled):not(.hovered) .logo-second .logo-default { opacity: 0; }
2193.header.opacity:not(.scrolled):not(.hovered) .logo-second .logo-initial { opacity: 1; }
2194.header.opacity.scrolled .logo-second .logo-default,
2195.header.opacity.hovered .logo-second .logo-default { opacity: 1; }
2196.header.opacity.scrolled .logo-second .logo-initial,
2197.header.opacity.hovered .logo-second .logo-initial { opacity: 0; }
2198/* 로고 영역 wg_edit_img 오버라이드 - 호버해도 위치 변화 없음 */
2199h1.logo .wg_edit_img { display: inline !important; }
2200h1.logo .wg_edit_img:hover { box-shadow: none !important; background-color: transparent !important; }
2201h1.logo.admin_div .wg_edit_img::before { display: none !important; }
2202h1.logo img.wg_edit_img.logo-default { position: relative !important; }
2203h1.logo img.wg_edit_img.logo-initial { position: absolute !important; }
2204
2205/* ===== 투명 헤더: 1뎁스 메뉴 색상 ===== */
2206/* 투명 헤더 초기 상태 - 메뉴 흰색 */
2207.header.opacity:not(.scrolled):not(.hovered) .gnb.pc > .menu > li > a,
2208.header.opacity:not(.scrolled):not(.hovered) .gnb.tablet1 > .menu > li > a,
2209.header.opacity:not(.scrolled):not(.hovered) .gnb.tablet2 > .menu > li > a {
2210  -webkit-text-fill-color: #fff !important;
2211  color: #fff !important;
2212}
2213/* 투명 헤더 스크롤/호버 후 - 메뉴 검정 */
2214.header.opacity.scrolled .gnb.pc > .menu > li > a,
2215.header.opacity.hovered .gnb.pc > .menu > li > a,
2216.header.opacity.scrolled .gnb.tablet1 > .menu > li > a,
2217.header.opacity.hovered .gnb.tablet1 > .menu > li > a,
2218.header.opacity.scrolled .gnb.tablet2 > .menu > li > a,
2219.header.opacity.hovered .gnb.tablet2 > .menu > li > a {
2220  -webkit-text-fill-color: var(--menu1d_color, #333) !important;
2221  color: var(--menu1d_color, #333) !important;
2222}
2223/* 비투명 헤더 - 메뉴 검정 (bg-color 제외) */
2224.header:not(.opacity):not(.bg-color) .gnb.pc > .menu > li > a,
2225.header:not(.opacity):not(.bg-color) .gnb.tablet1 > .menu > li > a,
2226.header:not(.opacity):not(.bg-color) .gnb.tablet2 > .menu > li > a {
2227  -webkit-text-fill-color: var(--menu1d_color, #333) !important;
2228  color: var(--menu1d_color, #333) !important;
2229}
2230
2231/* ===== 투명 헤더: 햄버거 버튼 색상 ===== */
2232/* 투명 헤더 초기 상태 - 햄버거 바 흰색 */
2233.header.opacity:not(.scrolled):not(.hovered) .btn-allmenu .bar {
2234  background-color: #fff !important;
2235}
2236/* 투명 헤더 스크롤/호버 후 - 햄버거 바 검정 */
2237.header.opacity.scrolled .btn-allmenu .bar,
2238.header.opacity.hovered .btn-allmenu .bar {
2239  background-color: var(--menu1d_color, #333) !important;
2240}
2241/* 비투명 헤더 - 햄버거 바 검정 (bg-color 제외) */
2242.header:not(.opacity):not(.bg-color) .btn-allmenu .bar {
2243  background-color: var(--menu1d_color, #333) !important;
2244}
2245
2246/* ===== 햄버거 메뉴 모션 ===== */
2247
2248
2249
2250.gmenu-btn .gmenu-custom-icon {
2251  display: inline-flex;
2252  align-items: center;
2253  justify-content: center;
2254  color: inherit;
2255}
2256/* 커스텀 아이콘 안의 <img> 는 폰트크기 기준으로 정렬 */
2257.gmenu-btn .gmenu-custom-icon img {
2258  display: block;
2259  width: 18px;
2260  height: auto;
2261}
2262.gmenu-btn .gmenu-custom-icon i,
2263.gmenu-btn .gmenu-custom-icon svg {
2264  line-height: 1;
2265}
2266
2267/* ===== 글로벌 메뉴 버튼 스타일 변형 ===== */
2268/* 아이콘 SVG 기본 */
2269.gmenu-btn svg,
2270.gmenu-btn .gmenu-icon {
2271  width: 18px;
2272  height: 18px;
2273  flex-shrink: 0;
2274}
2275.gmenu-btn .gmenu-text {
2276  margin-left: 5px;
2277}
2278
2279/* 아이콘만 (icon) */
2280.header.gmenu-style-icon .gmenu-btn .gmenu-text { display: none; }
2281.header.gmenu-style-icon .gmenu-btn { padding: 8px; border-radius: 50%; }
2282
2283/* 텍스트만 (text) */
2284.header.gmenu-style-text .gmenu-btn svg,
2285.header.gmenu-style-text .gmenu-btn .gmenu-icon { display: none; }
2286.header.gmenu-style-text .gmenu-btn .gmenu-text { margin-left: 0; }
2287
2288/* 아이콘+텍스트 (icon_text) - 둘다 표시, 기본값 */
2289.header.gmenu-style-icon_text .gmenu-btn svg,
2290.header.gmenu-style-icon_text .gmenu-btn .gmenu-icon { display: inline-flex; }
2291.header.gmenu-style-icon_text .gmenu-btn .gmenu-text { display: inline; }
2292
2293/* 멤버 버튼 그룹 - 가로 배열 */
2294.gmenu-member-btns {
2295  display: flex;
2296  flex-direction: row;
2297  align-items: center;
2298  gap: 2px;
2299}
2300/* ★ 텍스트만 버전: 메뉴 사이 구분점 (2번째부터) */
2301.header.gmenu-style-text .gmenu-member-btns .gmenu-btn {
2302  position: relative;
2303}
2304.header.gmenu-style-text .gmenu-member-btns .gmenu-btn:not(:first-child)::before {
2305  content: '';
2306  position: absolute;
2307  left: -4px;
2308  top: 50%;
2309  transform: translateY(-50%);
2310  width: 3px;
2311  height: 3px;
2312  border-radius: 50%;
2313  background-color: #ccc;
2314}
2315/* 투명 헤더 초기 상태: 구분점 흰색 */
2316.header.opacity:not(.scrolled):not(.hovered).gmenu-style-text .gmenu-member-btns .gmenu-btn:not(:first-child)::before {
2317  background-color: rgba(255,255,255,0.5);
2318}
2319/* 컬러 배경 헤더: 구분점 흰색 */
2320.header.bg-color.gmenu-style-text .gmenu-member-btns .gmenu-btn:not(:first-child)::before {
2321  background-color: rgba(255,255,255,0.5);
2322}
2323
2324/* ★ 쇼핑몰 그룹 드롭다운 스타일 */
2325.gmenu-member-dropdown {
2326  position: relative;
2327}
2328.gmenu-member-trigger {
2329  display: flex;
2330  align-items: center;
2331  gap: 4px;
2332  padding: 4px 8px 4px 4px;
2333  background: transparent;
2334  border: none;
2335  cursor: pointer;
2336  border-radius: 20px;
2337  transition: all 0.2s ease;
2338}
2339.gmenu-member-trigger:hover {
2340  background: rgba(0,0,0,0.05);
2341}
2342.member-avatar {
2343  display: flex;
2344  align-items: center;
2345  justify-content: center;
2346  width: 28px;
2347  height: 28px;
2348  border-radius: 50%;
2349  background: linear-gradient(135deg, var(--point-color, #667eea) 0%, color-mix(in srgb, var(--point-color, #667eea) 70%, #000) 100%);
2350  color: #fff;
2351  font-size: 13px;
2352  font-weight: 600;
2353}
2354.member-arrow {
2355  font-size: 18px;
2356  color: var(--top1d-font-color, #333);
2357  transition: transform 0.2s ease;
2358}
2359.gmenu-member-dropdown.open .member-arrow {
2360  transform: rotate(180deg);
2361}
2362.gmenu-member-dropdown-menu {
2363  position: absolute;
2364  top: 100%;
2365  right: 0;
2366  min-width: 140px;
2367  background: #fff;
2368  border-radius: 8px;
2369  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
2370  opacity: 0;
2371  visibility: hidden;
2372  transform: translateY(8px);
2373  transition: all 0.2s ease;
2374  z-index: 1000;
2375  padding: 6px 0;
2376  margin-top: 4px;
2377}
2378.gmenu-member-dropdown.open .gmenu-member-dropdown-menu {
2379  opacity: 1;
2380  visibility: visible;
2381  transform: translateY(0);
2382}
2383.dropdown-menu-item {
2384  display: block;
2385  padding: 10px 16px;
2386  color: #333;
2387  font-size: 13px;
2388  text-decoration: none;
2389  transition: background 0.15s ease;
2390}
2391.dropdown-menu-item:hover {
2392  background: #f5f5f5;
2393  color: #333;
2394}
2395.dropdown-menu-divider {
2396  height: 1px;
2397  background: #eee;
2398  margin: 6px 0;
2399}
2400.dropdown-menu-item.logout-item {
2401  color: #e74c3c;
2402}
2403.dropdown-menu-item.logout-item:hover {
2404  background: #fef2f2;
2405}
2406
2407/* 투명 헤더 드롭다운 트리거 */
2408.header.opacity:not(.scrolled):not(.hovered) .gmenu-member-trigger:hover {
2409  background: rgba(255,255,255,0.15);
2410}
2411.header.opacity:not(.scrolled):not(.hovered) .member-arrow {
2412  color: #fff;
2413}
2414/* 컬러 배경 헤더 드롭다운 트리거 */
2415.header.bg-color .gmenu-member-trigger:hover {
2416  background: rgba(255,255,255,0.15);
2417}
2418.header.bg-color .member-arrow {
2419  color: #fff;
2420}
2421
2422/* 검색 버튼 스타일 개선 */
2423.gmenu-search-btn {
2424  width: 36px;
2425  height: 36px;
2426  display: flex;
2427  align-items: center;
2428  justify-content: center;
2429  border-radius: 50%;
2430  background: transparent;
2431  border: none;
2432  cursor: pointer;
2433  transition: all 0.2s ease;
2434  aspect-ratio: 1 / 1;
2435}
2436.gmenu-search-btn:hover {
2437  background: rgba(0,0,0,0.05);
2438}
2439.gmenu-search-btn svg {
2440  width: 20px;
2441  height: 20px;
2442  stroke: var(--top1d-font-color, #333);
2443  fill: none;
2444  stroke-width: 2;
2445  transition: stroke 0.2s ease;
2446}
2447
2448/* 비투명 헤더 (서브페이지 기본) - 검색 아이콘 검정 (bg-color 제외) */
2449.header:not(.opacity):not(.bg-color) .gmenu-search-btn svg {
2450  stroke: #333 !important;
2451}
2452
2453/* 투명 헤더에서 검색 아이콘 흰색 */
2454.header.opacity:not(.scrolled):not(.hovered) .gmenu-search-btn svg {
2455  stroke: var(--top1d-font-color-opacity, #fff);
2456}
2457.header.opacity:not(.scrolled):not(.hovered) .gmenu-search-btn:hover {
2458  background: rgba(255,255,255,0.1);
2459}
2460
2461/* 투명 헤더 스크롤/호버 후 - 검색 아이콘 검정 */
2462.header.opacity.scrolled .gmenu-search-btn svg,
2463.header.opacity.hovered .gmenu-search-btn svg {
2464  stroke: #333;
2465}
2466
2467/* ===== 비투명 헤더 종합 스타일 (서브페이지 기본) - bg-color 제외 ===== */
2468/* 서브페이지에서 opacity 클래스 없을 때 모든 아이콘/텍스트 검정 강제 (bg-color 제외) */
2469header.header:not(.opacity):not(.bg-color) .gmenu-btn,
2470header.header:not(.opacity):not(.bg-color) .gmenu-area-inner .gmenu-btn,
2471header.header:not(.opacity):not(.bg-color) .gmenu-area-between .gmenu-btn,
2472header.header:not(.opacity):not(.bg-color) .gmenu-member-btns .gmenu-btn {
2473  color: #333 !important;
2474}
2475header.header:not(.opacity):not(.bg-color) .gmenu-btn svg,
2476header.header:not(.opacity):not(.bg-color) .gmenu-area-inner svg,
2477header.header:not(.opacity):not(.bg-color) .gmenu-area-between svg,
2478header.header:not(.opacity):not(.bg-color) .gmenu-sns-group svg,
2479header.header:not(.opacity):not(.bg-color) .gmenu-search-btn svg {
2480  stroke: #333 !important;
2481  fill: none !important;
2482}
2483header.header:not(.opacity):not(.bg-color) .lang-btn,
2484header.header:not(.opacity):not(.bg-color) .lang-select-wrap .lang-btn {
2485  color: #333 !important;
2486  border-color: rgba(0,0,0,0.15) !important;
2487}
2488
2489/* ===== 검색 오버레이 스타일 ===== */
2490.search-overlay {
2491  position: fixed;
2492  top: 0;
2493  left: 0;
2494  right: 0;
2495  bottom: 0;
2496  background: rgba(0, 0, 0, 0.92);
2497  z-index: 2147483647;
2498  display: flex;
2499  align-items: center;
2500  justify-content: center;
2501  opacity: 0;
2502  visibility: hidden;
2503  transition: opacity 0.3s ease, visibility 0.3s ease;
2504}
2505.search-overlay.active {
2506  opacity: 1;
2507  visibility: visible;
2508}
2509.search-overlay-close {
2510  position: absolute;
2511  top: 30px;
2512  right: 30px;
2513  width: 50px;
2514  height: 50px;
2515  background: transparent;
2516  border: none;
2517  cursor: pointer;
2518  display: flex;
2519  align-items: center;
2520  justify-content: center;
2521  transition: transform 0.2s ease;
2522}
2523.search-overlay-close:hover {
2524  transform: rotate(90deg);
2525}
2526.search-overlay-close svg {
2527  width: 32px;
2528  height: 32px;
2529  stroke: #fff;
2530  stroke-width: 2;
2531}
2532.search-overlay-content {
2533  width: 90%;
2534  max-width: 700px;
2535  text-align: center;
2536}
2537.search-overlay-title {
2538  color: #fff;
2539  font-size: 14px;
2540  font-weight: 400;
2541  letter-spacing: 2px;
2542  text-transform: uppercase;
2543  margin-bottom: 30px;
2544  opacity: 0.7;
2545}
2546.search-overlay-form {
2547  position: relative;
2548  display: flex;
2549  align-items: center;
2550  border-bottom: 2px solid rgba(255, 255, 255, 0.3);
2551  padding-bottom: 10px;
2552}
2553.search-overlay-form input[type="text"] {
2554  flex: 1;
2555  background: transparent !important;
2556  background-color: transparent !important;
2557  border: none !important;
2558  outline: none !important;
2559  box-shadow: none !important;
2560  color: #fff !important;
2561  font-size: clamp(20px, 4vw, 32px);
2562  font-weight: 300;
2563  padding: 10px 0;
2564  padding-right: 50px;
2565}
2566.search-overlay-form input[type="text"]:focus {
2567  background: transparent !important;
2568  background-color: transparent !important;
2569  border: none !important;
2570  outline: none !important;
2571  box-shadow: none !important;
2572  border-bottom: 2px solid #fff !important;
2573}
2574.search-overlay-form input[type="text"]::placeholder {
2575  color: rgba(255, 255, 255, 0.5);
2576}
2577.search-overlay-form button[type="submit"] {
2578  position: absolute;
2579  right: 0;
2580  top: 50%;
2581  transform: translateY(-50%);
2582  background: transparent;
2583  border: none;
2584  cursor: pointer;
2585  padding: 10px;
2586}
2587.search-overlay-form button[type="submit"] svg {
2588  width: 28px;
2589  height: 28px;
2590  stroke: #fff;
2591  stroke-width: 2;
2592}
2593.search-overlay-form button[type="submit"]:hover svg {
2594  stroke: var(--primary-500, #4f46e5);
2595}
2596/* 검색 오버레이 열릴 때 body 스크롤 방지 */
2597body.search-open {
2598  overflow: hidden;
2599}
2600</style>
2601<script>
2602  // 관리자모드에서 입력한 메뉴를 기반으로 생성된 MENU
2603  var MENU = [{"text":"재단소개","href":"/bbs/content.php?co_id=SWCF_1010&lang=ko&me_code=1010","target":"_self","children":[{"text":"인사말","href":"/bbs/content.php?co_id=SWCF_1010&lang=ko&me_code=1010","target":"_self"},{"text":"미션과 비전","href":"/bbs/content.php?co_id=SWCF_1020&lang=ko&me_code=1020","target":"_self"},{"text":"설립목적 및 연혁","href":"/bbs/content.php?co_id=SWCF_1030&lang=ko&me_code=1030","target":"_self"},{"text":"조직 구성도","href":"/bbs/content.php?co_id=SWCF_104010&lang=ko&me_code=104010","target":"_self","children":[{"text":"이사회","href":"/bbs/content.php?co_id=SWCF_104010&lang=ko&me_code=104010","target":"_self"},{"text":"조직 및 직원","href":"/bbs/content.php?co_id=SWCF_104020&lang=ko&me_code=104020","target":"_self"}]},{"text":"CI 소개","href":"/bbs/content.php?co_id=SWCF_1050&lang=ko&me_code=1050","target":"_self"},{"text":"찾아오시는 길","href":"/bbs/content.php?co_id=SWCF_1060&lang=ko&me_code=1060","target":"_self"}]},{"text":"사업안내","href":"/bbs/content.php?co_id=SWCF_2010&lang=ko&me_code=2010","target":"_self","children":[{"text":"서초형 복지돌봄","href":"/bbs/content.php?co_id=SWCF_2010&lang=ko&me_code=2010","target":"_self"},{"text":"복지사각지대","href":"/bbs/content.php?co_id=SWCF_2020&lang=ko&me_code=2020","target":"_self"},{"text":"기부나눔문화","href":"/bbs/content.php?co_id=SWCF_2030&lang=ko&me_code=2030","target":"_self"},{"text":"네트워크 구축","href":"/bbs/content.php?co_id=SWCF_2040&lang=ko&me_code=2040","target":"_self"},{"text":"지역복지 역량","href":"/bbs/content.php?co_id=SWCF_2050&lang=ko&me_code=2050","target":"_self"},{"text":"사회복지시설지원","href":"/bbs/content.php?co_id=SWCF_2060&lang=ko&me_code=2060","target":"_self"}]},{"text":"기부와 나눔","href":"/bbs/content.php?co_id=SWCF_3010&lang=ko&me_code=3010","target":"_self","children":[{"text":"기부안내","href":"/bbs/content.php?co_id=SWCF_3010&lang=ko&me_code=3010","target":"_self"},{"text":"기부신청","href":"/bbs/write.php?bo_table=SWCF_3060&lang=ko&me_code=3060","target":"_self"},{"text":"모금현황","href":"/bbs/board.php?bo_table=SWCF_3030&lang=ko&me_code=3030","target":"_self"},{"text":"기부금 사용 현황","href":"/bbs/board.php?bo_table=SWCF_3040&lang=ko&me_code=3040","target":"_self"},{"text":"사회공헌파트너","href":"/bbs/content.php?co_id=SWCF_3050&lang=ko&me_code=3050","target":"_self"}]},{"text":"소통과 알림","href":"/bbs/board.php?bo_table=SWCF_4010&lang=ko&me_code=4010","target":"_self","children":[{"text":"재단소식","href":"/bbs/board.php?bo_table=SWCF_4010&lang=ko&me_code=4010","target":"_self"},{"text":"공지사항","href":"/bbs/board.php?bo_table=SWCF_4020&lang=ko&me_code=4020","target":"_self"},{"text":"채용공지","href":"/bbs/board.php?bo_table=SWCF_4030&lang=ko&me_code=4030","target":"_self"},{"text":"언론보도","href":"/bbs/board.php?bo_table=SWCF_4040&lang=ko&me_code=4040","target":"_self"},{"text":"사진갤러리","href":"/bbs/board.php?bo_table=SWCF_4050&lang=ko&me_code=4050","target":"_self"}]},{"text":"공개행정","href":"/bbs/board.php?bo_table=SWCF_5010&lang=ko&me_code=5010","target":"_self","children":[{"text":"경영공시","href":"/bbs/board.php?bo_table=SWCF_5010&lang=ko&me_code=5010","target":"_self"},{"text":"업무추진비","href":"/bbs/board.php?bo_table=SWCF_5020&lang=ko&me_code=5020","target":"_self"},{"text":"모금/기부금 사용 내역","href":"/bbs/board.php?bo_table=SWCF_5040&lang=ko&me_code=5040","target":"_self"},{"text":"수의계약","href":"/bbs/board.php?bo_table=SWCF_5060&lang=ko&me_code=5060","target":"_self"},{"text":"인권경영","href":"/bbs/board.php?bo_table=foundation&lang=ko&me_code=5070","target":"_self"}]}];
2604</script>
2604
2605
2606<!-- (추가) JS에서도 방어: 렌더링 직전에 target 정규화 -->
2607<script>
2608function normalizeTargetJS(t){
2609  if(!t) return '';
2610  t = String(t).trim().toLowerCase();
2611  if (t === 'self')  return '_self';
2612  if (t === 'blank' || t === '_new') return '_blank';
2613  if (t === '_self' || t === '_blank' || t === '_parent' || t === '_top') return t;
2614  return ''; // 이상한 값은 제거
2615}
2616</script>
2616
2617
2618<style>
2619/* ★ 헤더 JSON 설정 CSS 변수 */
2620:root {
2621  --header-h: 120px;
2622  --header-h-tablet1: 120px;
2623  --header-h-tablet2: 80px;
2624  --header-h-mo: 60px;
2625  --header-padding-top: 0px;
2626  --header-right-gap: clamp(20px, calc(1.316vw + 14.737px), 40px);
2627  --gmenu-inner-top: 5px;
2628  --gmenu-inner-right: 0px;
2629  --gmenu-font-size: 13px;
2630  --logo-margin-top: 0px;
2631  --header-logo-width: 200px;
2632  --header-logo-width-pc: 200px;
2633  --header-logo-width-mo: 120px;
2634  --wide-padding-left: 20px;
2635  --wide-padding-right: 20px;
2636  --header-bg-color: #333333;
2637  --header-bg-color-rgb: 51,51,51;
2638  --header-bg-opacity: 0.85;
2639  --header-bg-blur: 10px;
2640  --header-white-opacity: 0.85;
2641  --header-white-blur: 10px;
2642  --header-white-rgb: 255,255,255;
2643  --header-white-opacity-scrolled: 0.85;
2644  /* 메뉴 설정 (새 변수명 + 기존 호환) */
2645  --menu-gap: 40px;
2646  --top1d-margin-right: 40px;
2647  --menu-gap-tablet1: 40px;
2648  --menu-gap-tablet2: 40px;
2649  --submenu-width: 200px;
2650  --submenu-gap: 0px;
2651  --depth1-font-size: clamp(15px, calc(0.00547 * 100vw + 13.25px), 22px);
2652  --top1d-font-size: clamp(15px, calc(0.00547 * 100vw + 13.25px), 22px);
2653  --depth2-font-size: clamp(13px, calc(0.00313 * 100vw + 12px), 17px);
2654  --top2d-font-size: clamp(13px, calc(0.00313 * 100vw + 12px), 17px);
2655}
2656/* 태블릿1 (1024~1699px) */
2657@media screen and (max-width: 1699px) and (min-width: 1024px) {
2658  :root {
2659    --header-h: 120px;
2660    --header-padding-top: 0px;
2661    --gmenu-inner-top: 5px;
2662    --gmenu-inner-right: 30px;
2663    --gmenu-font-size: 13px;
2664    --logo-margin-top: 0px;
2665    --header-logo-width: 160px;
2666  }
2667}
2668/* 태블릿2 (768~1023px) */
2669@media screen and (max-width: 1023px) and (min-width: 768px) {
2670  :root {
2671    --header-h: 80px;
2672    --header-padding-top: 0px;
2673    --gmenu-inner-top: 5px;
2674    --gmenu-inner-right: 30px;
2675    --gmenu-font-size: 12px;
2676    --logo-margin-top: 0px;
2677    --header-logo-width: 140px;
2678  }
2679}
2680/* 모바일 (~767px) */
2681@media screen and (max-width: 767px) {
2682  :root {
2683    --header-h: 60px;
2684    --header-padding-top: 0px;
2685    --gmenu-inner-right: 45px;
2686    --gmenu-font-size: 12px;
2687    --header-logo-width: 120px;
2688  }
2689}
2690
2691/* ★ 와이드 모드 좌우 패딩 */
2692.header > .contents-container.container-100 {
2693  padding-left: var(--wide-padding-left, 20px);
2694  padding-right: var(--wide-padding-right, 20px);
2695}
2696
2697/* ★ 메뉴 표시/숨김 (디바이스별) - PC:1700+, 태블릿1:1024~1700, 태블릿2:768~1023, 모바일:~767 */
2698@media screen and (max-width: 1023px) and (min-width: 768px) {
2699  .header .gnb_wrap, .header .gnb { display: none !important; }
2700}
2701@media screen and (max-width: 767px) {
2702  .header .gnb_wrap, .header .gnb { display: none !important; }
2703}
2704
2705
2706/* ★ 메뉴 폰트 크기 & 간격 (실제 HTML 구조에 맞춤) */
2707.head_inner .gnb.pc > .menu > li > a,
2708.head_inner .gnb.tablet1 > .menu > li > a,
2709.head_inner .gnb.tablet2 > .menu > li > a,
2710.head_inner .gnb.mo > .menu > li > a {
2711  font-size: var(--top1d-font-size) !important;
2712}
2713.head_inner .gnb.pc > .menu,
2714.head_inner .gnb.tablet1 > .menu,
2715.head_inner .gnb.tablet2 > .menu,
2716.head_inner .gnb.mo > .menu {
2717  gap: var(--top1d-margin-right);
2718}
2719/* ★ 메뉴 사이 간격 브레이크포인트별 적용 (JS가 .gnb 에 pc/tablet1/tablet2 부착)
2720   비워두면 PHP 단계에서 상위값(태블릿2<태블릿1<PC) 이 들어가므로 항상 유효 */
2721.head_inner .gnb.tablet1 > .menu { gap: var(--menu-gap-tablet1, var(--top1d-margin-right)); }
2722.head_inner .gnb.tablet2 > .menu { gap: var(--menu-gap-tablet2, var(--top1d-margin-right)); }
2723.gnb.pc .menu > li > .sublist .subitem a,
2724.gnb.tablet1 .menu > li > .sublist .subitem a,
2725.gnb.tablet2 .menu > li > .sublist .subitem a,
2726.gnb.mo .menu > li > .sublist .subitem a {
2727  font-size: var(--top2d-font-size) !important;
2728}
2729.gnb.pc .menu > li > .sublist,
2730.gnb.tablet1 .menu > li > .sublist,
2731.gnb.tablet2 .menu > li > .sublist,
2732.gnb.mo .menu > li > .sublist {
2733  min-width: var(--submenu-width);
2734}
2735
2736/* ★ 서브메뉴 개별 너비 */
2737
2738/* ★ 1뎁스↔2뎁스 간격 */
2739.gnb.pc .menu > li > .sublist,
2740.gnb.tablet1 .menu > li > .sublist,
2741.gnb.tablet2 .menu > li > .sublist,
2742.gnb.mo .menu > li > .sublist {
2743  margin-top: var(--submenu-gap, 0px);
2744}
2745
2746
2747/* 로고 크기 적용 - 디바이스별 CSS 변수 사용 */
2748.header .logo img {
2749  max-width: var(--header-logo-width, 180px);
2750}
2751
2752/* ★ 로고 2개 겹침 처리 (모든 페이지) */
2753.header .logo {
2754  position: relative;
2755  margin-top: var(--logo-margin-top, 0px);
2756}
2757/* 두 로고 이미지 모두 동일한 위치에 겹치도록 설정 */
2758.header .logo > a { position: relative; display: inline-flex; align-items: center; }
2759.header .logo img.logo-default {
2760  position: relative;
2761  transition: opacity 0.3s ease;
2762}
2763.header .logo img.logo-initial {
2764  position: absolute;
2765  top: 0;
2766  left: 0;
2767  height: 100%;
2768  width: auto;
2769  transition: opacity 0.3s ease;
2770}
2771
2772/* 서브 페이지: opacity 방식 전환 (기본 - 흰색 배경용) */
2773body:not(.is-main) .header .logo img {
2774  transition: opacity 0.3s ease;
2775}
2776body:not(.is-main) .header .logo img.logo-default {
2777  opacity: 1;
2778}
2779body:not(.is-main) .header .logo img.logo-initial {
2780  opacity: 0;
2781}
2782/* 서브 페이지: 컬러 배경(1-4)일 때 logo-initial 표시 */
2783body:not(.is-main) .header.bg-color .logo img.logo-default {
2784  opacity: 0;
2785}
2786body:not(.is-main) .header.bg-color .logo img.logo-initial {
2787  opacity: 1;
2788}
2789
2790/* 메인 페이지: display 방식 유지 (기존 style.css와 호환) */
2791body.is-main .header .logo img.logo-default,
2792body.is-main .header .logo img.logo-initial {
2793  transition: none;
2794}
2795
2796/* ★ 연합 서브메인 로고: 1장만 출력하고 filter로 흰↔검 전환 (union-sub-logo)
2797   - 스크롤 전(투명 헤더): 흰색 (filter)
2798   - 스크롤/hover: 원본 색(검정) */
2799.header .logo .union-sub-logo {
2800  opacity: 1 !important;            /* 서브페이지 기본 토글 무시: 항상 보이게 */
2801  transition: filter 0.3s ease, color 0.3s ease;
2802}
2803/* 이미지 로고: 스크롤 전 흰색 filter */
2804.header .logo img.union-sub-logo {
2805  filter: var(--logo-White);
2806}
2807.header.scrolled .logo img.union-sub-logo,
2808.header.hovered .logo img.union-sub-logo,
2809.header.bg-color .logo img.union-sub-logo {
2810  filter: none;                    /* 스크롤·hover·컬러배경: 원본 검정 */
2811}
2812/* 텍스트 로고(span): 스크롤 전 흰 글씨 → 스크롤·hover 시 원본 색 */
2813.header .logo span.union-sub-logo,
2814.header .logo span.union-sub-logo * {
2815  color: #fff !important;
2816}
2817.header.scrolled .logo span.union-sub-logo,
2818.header.hovered .logo span.union-sub-logo,
2819.header.bg-color .logo span.union-sub-logo,
2820.header.scrolled .logo span.union-sub-logo *,
2821.header.hovered .logo span.union-sub-logo *,
2822.header.bg-color .logo span.union-sub-logo * {
2823  color: inherit !important;
2824}
2825
2826/* ★ 메뉴 정렬 */
2827/* 왼쪽 정렬: 로고 바로 옆에 메뉴 */
2828.header.menu-left .head_inner {
2829  justify-content: flex-start;
2830}
2831.header.menu-left .header_right {
2832  flex: 1;
2833  justify-content: flex-start;
2834}
2835.header.menu-left .gnb.pc {
2836  margin-left: clamp(20px, 3vw, 50px);
2837  margin-right: auto;
2838}
2839
2840/* 중앙 정렬: 화면 중앙에 메뉴 */
2841.header.menu-center .head_inner {
2842  position: relative;
2843}
2844.header.menu-center .gnb.pc {
2845  position: absolute;
2846  left: 50%;
2847  top: 0;
2848  height: 100%;
2849  transform: translateX(-50%);
2850  z-index: 1;
2851  pointer-events: none; /* 하위 요소 클릭 방해 방지 */
2852}
2853.header.menu-center .gnb.pc .menu {
2854  justify-content: center;
2855  pointer-events: auto; /* 메뉴 아이템은 클릭 가능 */
2856}
2857/* 중앙 정렬시 header_right: gnb가 absolute로 빠지므로 나머지를 우측 정렬 */
2858.header.menu-center .header_right {
2859  justify-content: flex-end !important;
2860}
2861/* 중앙 정렬시 로고/햄버거/사이트맵 버튼은 메뉴 위에 표시 */
2862.header.menu-center .logo {
2863  position: relative;
2864  z-index: 10;
2865}
2866.header.menu-center .allmenu,
2867.header.menu-center .sitemap {
2868  position: relative;
2869  z-index: 10; /* 메뉴 위에 표시 */
2870}
2871/* 중앙 정렬시 between 영역도 메뉴 위에 표시 */
2872.header.menu-center .gmenu-area-between {
2873  position: relative;
2874  z-index: 10;
2875}
2876/* inner 글로벌메뉴는 이미 absolute 배치 — z-index만 보강 */
2877.header.menu-center .gmenu-area-inner {
2878  z-index: 10;
2879}
2880
2881/* ★ 사이드바 좌측 모드: 모바일 전용 (햄버거 좌측, 로고 중앙, 글로벌 우측) */
2882@media (max-width: 1200px) {
2883  .header.sidebar-left .head_inner {
2884    position: relative;
2885    justify-content: center;
2886  }
2887  /* 햄버거를 header 기준으로 좌측 배치 (fixed 사용) */
2888  .header.sidebar-left .allmenu {
2889    position: fixed !important;
2890    left: 15px !important;
2891    right: auto !important;
2892    top: calc(var(--header-h, 60px) / 2);
2893    transform: translateY(-50%);
2894    z-index: 1000;
2895  }
2896  .header.sidebar-left .logo {
2897    margin: 0 auto;
2898  }
2899  .header.sidebar-left .header_right {
2900    position: static;
2901  }
2902  .header.sidebar-left .header_right .gnb.pc,
2903  .header.sidebar-left .header_right .gnb {
2904    display: none !important;
2905  }
2906  /* 글로벌 메뉴 영역은 우측에 배치 */
2907  .header.sidebar-left .gmenu-area-between {
2908    position: fixed !important;
2909    right: 15px !important;
2910    left: auto !important;
2911    top: calc(var(--header-h, 60px) / 2);
2912    transform: translateY(-50%);
2913    z-index: 1000;
2914  }
2915}
2916
2917/* ★ 투명 배경 헤더 (1-1, 1-2 타입) - JSON 설정 기반 */
2918.header.opacity {
2919  background-color: transparent !important;
2920}
2921/* 투명 배경: 스크롤/호버 시 흰색 배경 (투명도/블러) */
2922.header.opacity.scrolled,
2923.header.opacity.hovered {
2924  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity-scrolled, var(--header-white-opacity, 0.85))) !important;
2925  backdrop-filter: blur(var(--header-white-blur, 10px));
2926  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
2927}
2928/* ★ 메인 페이지: 스크롤/호버 시 흰색 배경 (body.is-main 우선순위 높임) */
2929body.is-main .header.opacity.scrolled,
2930body.is-main .header.opacity.hovered {
2931  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity-scrolled, var(--header-white-opacity, 0.85))) !important;
2932  backdrop-filter: blur(var(--header-white-blur, 10px));
2933  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
2934}
2935
2936/* 투명 배경: 흰색 로고/텍스트/아이콘 (logo-white 클래스) */
2937.header.logo-white .gnb.pc > .menu > li > a,
2938.header.logo-white .gnb.tablet1 > .menu > li > a,
2939.header.logo-white .gnb.tablet2 > .menu > li > a {
2940  -webkit-text-fill-color: #fff !important;
2941  color: #fff !important;
2942}
2943.header.logo-white .btn-allmenu .bar {
2944  background-color: #fff !important;
2945}
2946.header.logo-white .gmenu-btn {
2947  color: #fff !important;
2948}
2949.header.logo-white .gmenu-btn svg,
2950.header.logo-white .gmenu-search-btn svg,
2951.header.logo-white .gmenu-sns-group svg {
2952  stroke: #fff !important;
2953}
2954.header.logo-white .lang-select-wrap .lang-btn {
2955  color: #fff !important;
2956  border-color: rgba(255,255,255,0.3) !important;
2957}
2958/* 투명 배경: 로고 이미지 (logo-initial 표시) - opacity 방식 */
2959.header.logo-white .logo img.logo-default { opacity: 0; }
2960.header.logo-white .logo img.logo-initial { opacity: 1; }
2961
2962/* 투명 배경 스크롤/호버 후: 원래 색상으로 복귀 */
2963.header.opacity.scrolled .gnb.pc > .menu > li > a,
2964.header.opacity.hovered .gnb.pc > .menu > li > a,
2965.header.opacity.scrolled .gnb.tablet1 > .menu > li > a,
2966.header.opacity.hovered .gnb.tablet1 > .menu > li > a,
2967.header.opacity.scrolled .gnb.tablet2 > .menu > li > a,
2968.header.opacity.hovered .gnb.tablet2 > .menu > li > a {
2969  -webkit-text-fill-color: var(--menu1d_color) !important;
2970  color: var(--menu1d_color) !important;
2971}
2972.header.opacity.scrolled .btn-allmenu .bar,
2973.header.opacity.hovered .btn-allmenu .bar {
2974  background-color: var(--menu1d_color) !important;
2975}
2976.header.opacity.scrolled .gmenu-btn,
2977.header.opacity.hovered .gmenu-btn {
2978  color: var(--menu1d_color) !important;
2979}
2980.header.opacity.scrolled .gmenu-btn svg,
2981.header.opacity.hovered .gmenu-btn svg,
2982.header.opacity.scrolled .gmenu-search-btn svg,
2983.header.opacity.hovered .gmenu-search-btn svg {
2984  stroke: var(--menu1d_color) !important;
2985}
2986.header.opacity.scrolled .lang-select-wrap .lang-btn,
2987.header.opacity.hovered .lang-select-wrap .lang-btn {
2988  color: var(--menu1d_color) !important;
2989  border-color: rgba(51,51,51,0.3) !important;
2990}
2991/* 스크롤/호버 후 로고 전환 (logo-default 표시) - opacity 방식 */
2992.header.opacity.scrolled .logo img.logo-default,
2993.header.opacity.hovered .logo img.logo-default { opacity: 1; }
2994.header.opacity.scrolled .logo img.logo-initial,
2995.header.opacity.hovered .logo img.logo-initial { opacity: 0; }
2996
2997/* ★ 흰색 배경 헤더 (1-3 타입) - 투명도/블러 적용 */
2998.header.bg-white {
2999  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity, 0.85)) !important;
3000  backdrop-filter: blur(var(--header-white-blur, 10px));
3001  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
3002}
3003.header.bg-white.scrolled,
3004.header.bg-white.hovered,
3005/* ★ bg-white 헤더는 스크롤 JS가 scrolled 클래스를 안 붙임(opacity/bg-color만) → 전 헤더 공통으로 붙는 .bg 기준 적용 */
3006.header.bg-white.bg {
3007  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity-scrolled, var(--header-white-opacity, 0.85))) !important;
3008  backdrop-filter: blur(var(--header-white-blur, 10px));
3009  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
3010}
3011/* ★ cover 모드 스티키 헤더 = "스크롤 후" 상태 그 자체 — scrolled/bg 클래스가 안 붙으므로 항상 스크롤 후 투명도 적용 */
3012.header.header-sticky.bg-white {
3013  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity-scrolled, var(--header-white-opacity, 0.85))) !important;
3014}
3015/* 흰색 배경(1-3): 로고 전환 (logo-default 표시) - 배경이 흰색이므로 기본 로고 */
3016.header.bg-white .logo img.logo-default {
3017  opacity: 1 !important;
3018  display: block !important;
3019}
3020.header.bg-white .logo img.logo-initial {
3021  opacity: 0 !important;
3022  display: none !important;
3023}
3024
3025/* ★ 흰색 배경(1-3): 메뉴 색상 검은색 (PC, 태블릿1, 태블릿2 모두) */
3026.header.bg-white .gnb.pc > .menu > li > a,
3027.header.bg-white .gnb.tablet1 > .menu > li > a,
3028.header.bg-white .gnb.tablet2 > .menu > li > a,
3029.header.bg-white .gnb.mo > .menu > li > a {
3030  -webkit-text-fill-color: var(--menu1d_color, #333) !important;
3031  color: var(--menu1d_color, #333) !important;
3032}
3033
3034/* ★ 흰색 배경(1-3): 햄버거 버튼 바 검은색 */
3035.header.bg-white .btn-allmenu .bar {
3036  background-color: var(--menu1d_color, #333) !important;
3037}
3038
3039/* ★ 흰색 배경(1-3): 글로벌 메뉴 버튼/아이콘 검은색 */
3040.header.bg-white .gmenu-btn,
3041.header.bg-white .gmenu-area-inner .gmenu-btn,
3042.header.bg-white .gmenu-area-between .gmenu-btn {
3043  color: var(--menu1d_color, #333) !important;
3044}
3045.header.bg-white .gmenu-btn svg,
3046.header.bg-white .gmenu-search-btn svg,
3047.header.bg-white .gmenu-sns-group svg,
3048.header.bg-white .gmenu-area-inner svg,
3049.header.bg-white .gmenu-area-between svg {
3050  stroke: var(--menu1d_color, #333) !important;
3051}
3052.header.bg-white .lang-select-wrap .lang-btn,
3053.header.bg-white .gmenu-area-inner .lang-btn,
3054.header.bg-white .gmenu-area-between .lang-btn {
3055  color: var(--menu1d_color, #333) !important;
3056  border-color: rgba(0,0,0,0.2) !important;
3057}
3058
3059/* ★ 1-1 ~ 1-3 공통: hover/scroll 시 흰색 배경 (투명도/블러 적용) */
3060.header.header-type-11.hovered,
3061.header.header-type-11.scrolled,
3062.header.header-type-12.hovered,
3063.header.header-type-12.scrolled,
3064.header.header-type-13.hovered,
3065.header.header-type-13.scrolled {
3066  background-color: rgba(var(--header-white-rgb, 255,255,255), var(--header-white-opacity-scrolled, var(--header-white-opacity, 0.85))) !important;
3067  backdrop-filter: blur(var(--header-white-blur, 10px));
3068  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
3069}
3070
3071
3072/* ★ 컬러 배경 헤더 (1-4 타입) */
3073.header.bg-color {
3074  background-color: rgba(var(--header-bg-color-rgb, 51,51,51), var(--header-bg-opacity, 0.85)) !important;
3075  backdrop-filter: blur(var(--header-bg-blur, 10px));
3076  -webkit-backdrop-filter: blur(var(--header-bg-blur, 10px));
3077}
3078.header.bg-color.scrolled,
3079.header.bg-color.hovered {
3080  background-color: rgba(var(--header-bg-color-rgb, 51,51,51), var(--header-bg-opacity, 0.85)) !important;
3081  backdrop-filter: blur(var(--header-bg-blur, 10px));
3082  -webkit-backdrop-filter: blur(var(--header-bg-blur, 10px));
3083}
3084
3085/* 컬러 배경(1-4): 기본 상태에서 글로벌 메뉴 흰색 */
3086.header.bg-color .gmenu-btn,
3087.header.bg-color .gmenu-area-inner .gmenu-btn,
3088.header.bg-color .gmenu-area-between .gmenu-btn {
3089  color: #fff !important;
3090}
3091.header.bg-color .gmenu-btn svg,
3092.header.bg-color .gmenu-search-btn svg,
3093.header.bg-color .gmenu-sns-group svg,
3094.header.bg-color .gmenu-area-inner svg,
3095.header.bg-color .gmenu-area-between svg {
3096  stroke: #fff !important;
3097}
3098.header.bg-color .lang-select-wrap .lang-btn,
3099.header.bg-color .gmenu-area-inner .lang-btn,
3100.header.bg-color .gmenu-area-between .lang-btn {
3101  color: #fff !important;
3102  border-color: rgba(255,255,255,0.3) !important;
3103}
3104/* 컬러 배경(1-4): 기본 상태에서 메뉴/햄버거 흰색 (PC, 태블릿, 모바일 모두) */
3105/* 평상시 (모든 상태 공통 base) — 헤더 전체 hover(.hovered)/스크롤(.scrolled) 시 검정 반전도 여기서 off색으로 막음 */
3106.header.bg-color .gnb.pc > .menu > li > a,
3107.header.bg-color .gnb.tablet1 > .menu > li > a,
3108.header.bg-color .gnb.tablet2 > .menu > li > a,
3109.header.bg-color .gnb.mo > .menu > li > a,
3110html body .head_inner .header.bg-color.hovered .gnb.pc > .menu > li > a,
3111html body .head_inner .header.bg-color.scrolled .gnb.pc > .menu > li > a,
3112html body .head_inner .header.bg-color.hovered .gnb.tablet1 > .menu > li > a,
3113html body .head_inner .header.bg-color.scrolled .gnb.tablet1 > .menu > li > a,
3114html body .head_inner .header.bg-color.hovered .gnb.tablet2 > .menu > li > a,
3115html body .head_inner .header.bg-color.scrolled .gnb.tablet2 > .menu > li > a {
3116  background: none !important;
3117  background-image: none !important;
3118  -webkit-text-fill-color: #fff !important;
3119  color: #fff !important;
3120}
3121/* ★ 개별 1뎁스 메뉴 hover 시 = 호버색 (지정 없으면 off색과 동일) */
3122html body .head_inner .header.bg-color .gnb.pc > .menu > li.cell:hover > a,
3123html body .head_inner .header.bg-color .gnb.pc > .menu > li:hover > a,
3124html body .head_inner .header.bg-color .gnb.pc > .menu > li:focus-within > a {
3125  background: none !important;
3126  background-image: none !important;
3127  -webkit-text-fill-color: #fff !important;
3128  color: #fff !important;
3129}
3130.header.bg-color .btn-allmenu .bar {
3131  background-color: #fff !important;
3132}
3133
3134/* 컬러 배경: 흰색 테마 (로고, 텍스트, 아이콘) - PC, 태블릿, 모바일 모두 */
3135.header.theme-white .gnb.pc > .menu > li > a,
3136.header.theme-white .gnb.tablet1 > .menu > li > a,
3137.header.theme-white .gnb.tablet2 > .menu > li > a,
3138.header.theme-white .gnb.mo > .menu > li > a {
3139  -webkit-text-fill-color: #fff !important;
3140  color: #fff !important;
3141}
3142.header.theme-white .btn-allmenu .bar {
3143  background-color: #fff !important;
3144}
3145.header.theme-white .gmenu-btn {
3146  color: #fff !important;
3147}
3148.header.theme-white .gmenu-btn svg,
3149.header.theme-white .gmenu-search-btn svg,
3150.header.theme-white .gmenu-sns-group svg {
3151  stroke: #fff !important;
3152}
3153.header.theme-white .lang-select-wrap .lang-btn {
3154  color: #fff !important;
3155  border-color: rgba(255,255,255,0.3) !important;
3156}
3157/* 컬러 배경(1-4): 로고 전환 (logo-initial 표시) - opacity 방식 */
3158.header.theme-white .logo img.logo-default { opacity: 0; }
3159.header.theme-white .logo img.logo-initial { opacity: 1; }
3160
3161/* 컬러 배경: 스크롤/호버 후에도 동일 유지 (PC, 태블릿, 모바일 모두) */
3162.header.bg-color.scrolled .gnb.pc > .menu > li > a,
3163.header.bg-color.hovered .gnb.pc > .menu > li > a,
3164.header.bg-color.scrolled .gnb.tablet1 > .menu > li > a,
3165.header.bg-color.hovered .gnb.tablet1 > .menu > li > a,
3166.header.bg-color.scrolled .gnb.tablet2 > .menu > li > a,
3167.header.bg-color.hovered .gnb.tablet2 > .menu > li > a,
3168.header.bg-color.scrolled .gnb.mo > .menu > li > a,
3169.header.bg-color.hovered .gnb.mo > .menu > li > a {
3170  -webkit-text-fill-color: #fff !important;
3171  color: #fff !important;
3172}
3173.header.bg-color.scrolled .btn-allmenu .bar,
3174.header.bg-color.hovered .btn-allmenu .bar {
3175  background-color: #fff !important;
3176}
3177.header.bg-color.scrolled .gmenu-btn,
3178.header.bg-color.hovered .gmenu-btn {
3179  color: #fff !important;
3180}
3181.header.bg-color.scrolled .gmenu-btn svg,
3182.header.bg-color.hovered .gmenu-btn svg,
3183.header.bg-color.scrolled .gmenu-search-btn svg,
3184.header.bg-color.hovered .gmenu-search-btn svg {
3185  stroke: #fff !important;
3186}
3187.header.bg-color.scrolled .lang-select-wrap .lang-btn,
3188.header.bg-color.hovered .lang-select-wrap .lang-btn {
3189  color: #fff !important;
3190  border-color: rgba(255,255,255,0.3) !important;
3191}
3192/* 컬러 배경 스크롤/호버: 로고 전환 (1-4 타입은 항상 컬러 배경이므로 logo-initial 유지) - opacity 방식 */
3193.header.bg-color.scrolled .logo img.logo-default,
3194.header.bg-color.hovered .logo img.logo-default { opacity: 0 !important; }
3195.header.bg-color.scrolled .logo img.logo-initial,
3196.header.bg-color.hovered .logo img.logo-initial { opacity: 1 !important; }
3197/* 컬러 배경 스크롤/호버: 로고 구분선 + 세컨드 로고 */
3198.header.bg-color.scrolled .logo-divider { background: rgba(255,255,255,0.3) !important; }
3199.header.bg-color.scrolled .logo-second .logo-default { opacity: 0 !important; }
3200.header.bg-color.scrolled .logo-second .logo-initial { opacity: 1 !important; }
3201
3202/* ★ 스티키 헤더: 본체 backdrop-filter 완전 제거 → ::before로 분리 */
3203#gnb-sticky,
3204#gnb-sticky.bg,
3205#gnb-sticky.bg-white,
3206#gnb-sticky.bg-white.bg,
3207#gnb-sticky.bg-white.hovered,
3208#gnb-sticky.bg-white.scrolled,
3209#gnb-sticky.bg-color,
3210#gnb-sticky.bg-color.bg,
3211#gnb-sticky.bg-color.hovered,
3212#gnb-sticky.bg-color.scrolled,
3213#gnb-sticky.hovered,
3214#gnb-sticky.scrolled {
3215  -webkit-backdrop-filter: none !important;
3216  backdrop-filter: none !important;
3217  position: relative;
3218}
3219#gnb-sticky > * { position: relative; z-index: 1; }
3220#gnb-sticky::before {
3221  content: ''; position: absolute; inset: 0; z-index: 0;
3222  -webkit-backdrop-filter: blur(var(--header-white-blur, 10px));
3223          backdrop-filter: blur(var(--header-white-blur, 10px));
3224  pointer-events: none;
3225}
3226#gnb-sticky.bg-color::before {
3227  -webkit-backdrop-filter: blur(var(--header-bg-blur, 10px));
3228          backdrop-filter: blur(var(--header-bg-blur, 10px));
3229}
3230</style>
3231<header class="header opacity logo-white header-type-11 allmenu-pcview gmenu-style-text gm-between" id="gnb" role="banner">
3232  	<!-- ✅ 스킵링크 (접근성) -->
3233<style>.skiplinks{position:fixed;top:0;left:0;width:0;height:0;overflow:visible;z-index:2147483647;margin:0;padding:0;border:0}.skiplink{position:fixed;top:-9999px;left:10px;padding:10px 14px;background:#fff;color:#000;font-weight:700;text-decoration:none;border-radius:0 0 8px 8px;z-index:2147483647;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.3)}.skiplink:focus{top:0}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}</style>
3234<nav class="skiplinks" aria-label="본문 바로가기">
3235  <a class="skiplink" href="#main">본문으로 바로가기</a>
3236  <a class="skiplink" href="#gnb">주요 메뉴로 바로가기</a>
3237  <a class="skiplink" href="#google_translate_element">언어선택으로 바로가기</a>
3238  <a class="skiplink" href="#footer">하단으로 바로가기</a>
3239</nav>
3240
3241  <div class="contents-container   container-md contentContainer">
3242
3243
3244<div class="Display_com FD_row F_sbc head_inner">
3245      <h1 class="logo"> <!-- 상단 로고 영역-->
3246        <a href="https://seochowcf.or.kr/index.php">
3247                        <!-- 메인: 로고 2개 (항목1=스크롤/hover시, 항목2=첫등장시) -->
3248        <img src="/data/widget/1766809493_0_0.png" class="logo-default" alt="서초복지돌봄재단">        <img src="/data/widget/1766809249_0_1.png" class="logo-initial" alt="서초복지돌봄재단">                </a>
3249                        <!-- //상단 로고 영역-->
3250      </h1>
3251            <style>
3252      /* ★ 글로벌 메뉴 보조요소 앞/뒤 순서 (inner/between 공통). 회원메뉴/ì»
3252¤ìŠ¤í…€=0 기준 */
3253      .gmenu-area-inner, .gmenu-area-between { }
3254      .gmenu-area-inner > .lang-select-wrap, .gmenu-area-between > .lang-select-wrap { order: -1; }
3255      .gmenu-area-inner > .gmenu-member-btns, .gmenu-area-between > .gmenu-member-btns { order: 0; }
3256      .gmenu-area-inner > .gmenu-btn-custom, .gmenu-area-between > .gmenu-btn-custom { order: 0; }
3257      .gmenu-area-inner > .gmenu-search-btn, .gmenu-area-between > .gmenu-search-btn { order: 1; }
3258      .gmenu-area-inner > .gmenu-item-popup-btn, .gmenu-area-between > .gmenu-item-popup-btn { order: 1; }
3259      </style>
3260      
3260<script>var _activeLangCodes = ["ko","en","jp","cn"];</script>
3260
3261            
3261<script>var _langMenuLinks = []; var _langBoardMap = [];</script>
3261
3262
3263      
3264      <div class="header_right Display_com FD_row F_sbc GG_5">
3265        <!-- PC 상단 메뉴 -->
3266        <nav class="gnb " id="gnb-main" aria-label="주 메뉴">
3267                              <style>#menu-pc:not(.rendered){display:none !important}</style>
3268          <ul class="menu" id="menu-pc"><li class="cell has-sub"><a class="depth1" href="/bbs/content.php?co_id=SWCF_1010&amp;lang=ko&amp;me_code=1010" target="_self">재단소개</a><ul class="sublist"><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_1010&amp;lang=ko&amp;me_code=1010" target="_self">인사말</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_1020&amp;lang=ko&amp;me_code=1020" target="_self">미션과 비전</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_1030&amp;lang=ko&amp;me_code=1030" target="_self">설립목적 및 연혁</a></li><li class="subitem has-sub"><a class="depth2" href="/bbs/content.php?co_id=SWCF_104010&amp;lang=ko&amp;me_code=104010" target="_self">조직 구성도</a><ul class="sublist"><li class="subitem"><a class="depth3" href="/bbs/content.php?co_id=SWCF_104010&amp;lang=ko&amp;me_code=104010" target="_self">이사회</a></li><li class="subitem"><a class="depth3" href="/bbs/content.php?co_id=SWCF_104020&amp;lang=ko&amp;me_code=104020" target="_self">조직 및 직원</a></li></ul></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_1050&amp;lang=ko&amp;me_code=1050" target="_self">CI 소개</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_1060&amp;lang=ko&amp;me_code=1060" target="_self">찾아오시는 길</a></li></ul></li><li class="cell has-sub"><a class="depth1" href="/bbs/content.php?co_id=SWCF_2010&amp;lang=ko&amp;me_code=2010" target="_self">사업안내</a><ul class="sublist"><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2010&amp;lang=ko&amp;me_code=2010" target="_self">서초형 복지돌봄</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2020&amp;lang=ko&amp;me_code=2020" target="_self">복지사각지대</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2030&amp;lang=ko&amp;me_code=2030" target="_self">기부나눔문화</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2040&amp;lang=ko&amp;me_code=2040" target="_self">네트워크 구축</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2050&amp;lang=ko&amp;me_code=2050" target="_self">지역복지 역량</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_2060&amp;lang=ko&amp;me_code=2060" target="_self">사회복지시설지원</a></li></ul></li><li class="cell has-sub"><a class="depth1" href="/bbs/content.php?co_id=SWCF_3010&amp;lang=ko&amp;me_code=3010" target="_self">기부와 나눔</a><ul class="sublist"><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_3010&amp;lang=ko&amp;me_code=3010" target="_self">기부안내</a></li><li class="subitem"><a class="depth2" href="/bbs/write.php?bo_table=SWCF_3060&amp;lang=ko&amp;me_code=3060" target="_self">기부신청</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_3030&amp;lang=ko&amp;me_code=3030" target="_self">모금현황</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_3040&amp;lang=ko&amp;me_code=3040" target="_self">기부금 사용 현황</a></li><li class="subitem"><a class="depth2" href="/bbs/content.php?co_id=SWCF_3050&amp;lang=ko&amp;me_code=3050" target="_self">사회공헌파트너</a></li></ul></li><li class="cell has-sub"><a class="depth1" href="/bbs/board.php?bo_table=SWCF_4010&amp;lang=ko&amp;me_code=4010" target="_self">소통과 알림</a><ul class="sublist"><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_4010&amp;lang=ko&amp;me_code=4010" target="_self">재단소식</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_4020&amp;lang=ko&amp;me_code=4020" target="_self">공지사항</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_4030&amp;lang=ko&amp;me_code=4030" target="_self">채용공지</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_4040&amp;lang=ko&amp;me_code=4040" target="_self">언론보도</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_4050&amp;lang=ko&amp;me_code=4050" target="_self">사진갤러리</a></li></ul></li><li class="cell has-sub"><a class="depth1" href="/bbs/board.php?bo_table=SWCF_5010&amp;lang=ko&amp;me_code=5010" target="_self">공개행정</a><ul class="sublist"><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_5010&amp;lang=ko&amp;me_code=5010" target="_self">경영공시</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_5020&amp;lang=ko&amp;me_code=5020" target="_self">업무추진비</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_5040&amp;lang=ko&amp;me_code=5040" target="_self">모금/기부금 사용 내역</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=SWCF_5060&amp;lang=ko&amp;me_code=5060" target="_self">수의계약</a></li><li class="subitem"><a class="depth2" href="/bbs/board.php?bo_table=foundation&amp;lang=ko&amp;me_code=5070" target="_self">인권경영</a></li></ul></li></ul>
3269        </nav>
3270
3271                <!-- 글로벌 메뉴 (between 위치: 메뉴~햄버거 사이) -->
3272        <div class="gmenu-area-between" id="gmenuBetween">
3273                    
3274                    
3275                    
3276                              <button type="button" class="gmenu-search-btn" id="headerSearchBtnBetween" title="검색">
3277            <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
3278          </button>
3279          
3280                    
3281                    
3282                            </div>
3283        
3284<!-- 햄버거 버튼 -->
3285        <div class="allmenu">
3286          <button class="btn-allmenu" id="menuToggle" aria-label="메뉴 열기/닫기" aria-expanded="false"> <span class="bar"></span> <span class="bar"></span> <span class="bar"></span> </button>
3287        </div>
3288        <!-- 사이트맵 버튼 -->
3289        <div class="sitemap"> 
3290          <!-- 사이트맵 토글 버튼 -->
3291          <button class="btn-allmenu" id="sitemapToggle" aria-label="사이트맵 열기/닫기" aria-expanded="false"> <span class="bar"></span><span class="bar"></span><span class="bar"></span> </button>
3292        </div>
3293        
3294        <!-- 전체 사이트맵 오버레이 -->
3295        <div class="gnb sitemap " id="sitemapLayer" aria-hidden="true">
3296          <div class="sm-backdrop" id="sitemapBackdrop" aria-hidden="true"></div>
3297                    <div class="sm-panel" role="dialog" aria-modal="true" aria-labelledby="sitemapTitle">
3298            <div class="sm-head">
3299                            <h2 id="sitemapTitle" class="visually-hidden">사이트맵</h2>
3300                            <button type="button" class="sm-close" id="sitemapClose" aria-label="닫기">
3301                                <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
3302                              </button>
3303            </div>
3304
3305            
3306            <!-- 메뉴 -->
3307            <nav class="gnb sm" aria-label="사이트맵">
3308              <ul class="menu" id="menu-sitemap">
3309              </ul>
3310            </nav>
3311
3312                        
3313                      </div>
3314        </div>
3315                
3316      </div>
3317    </div>
3318  </div>
3319
3320</header>
3321
3322
3323
3324
3325
3326<!-- 우측 슬라이드 메뉴 (개선) -->
3327<style>
3328/* 개선된 사이드 메뉴 스타일 */
3329.side-menu.side-default {
3330  width: 320px;
3331  max-width: 85vw;
3332  background: #1a1a1a;
3333}
3334.side-menu.side-default .side-menu-inner {
3335  padding: 0;
3336  background: #1a1a1a;
3337  display: flex;
3338  flex-direction: column;
3339  height: 100%;
3340}
3341.side-menu.side-default .close-btn {
3342  position: absolute;
3343  top: 15px;
3344  right: 15px;
3345  z-index: 10;
3346  color: #fff;
3347  font-size: 28px;
3348  background: none;
3349  border: none;
3350  cursor: pointer;
3351  opacity: 0.7;
3352  transition: opacity 0.2s;
3353}
3354.side-menu.side-default .close-btn:hover {
3355  opacity: 1;
3356}
3357
3358/* 회원 헤더 */
3359.side-default-header {
3360  background: linear-gradient(135deg, var(--point-color, #667eea) 0%, color-mix(in srgb, var(--point-color, #667eea) 70%, #000) 100%);
3361  color: #fff;
3362  padding: 20px 20px 15px;
3363  flex-shrink: 0;
3364}
3365.side-default-header .user-info {
3366  display: flex;
3367  align-items: center;
3368  gap: 12px;
3369}
3370.side-default-header .user-avatar {
3371  width: 50px;
3372  height: 50px;
3373  border-radius: 50%;
3374  background: rgba(255,255,255,0.2);
3375  display: flex;
3376  align-items: center;
3377  justify-content: center;
3378  font-size: 20px;
3379  font-weight: 600;
3380}
3381.side-default-header .user-name {
3382  font-size: 16px;
3383  font-weight: 600;
3384}
3385.side-default-header .user-level {
3386  font-size: 12px;
3387  opacity: 0.8;
3388  margin-top: 2px;
3389}
3390
3391/* 퀵 메뉴 (아이콘 버튼 - 가로 배열) */
3392.side-default-quick {
3393  display: flex;
3394  justify-content: space-around;
3395  padding: 15px 10px;
3396  background: #222;
3397  border-bottom: 1px solid #333;
3398  flex-shrink: 0;
3399}
3400.side-default-quick.items-2 { justify-content: center; gap: 40px; }
3401.side-default-quick.items-3 { justify-content: space-around; }
3402.side-default-quick.items-4 { justify-content: space-around; }
3403
3404.side-default-quick a {
3405  display: flex;
3406  flex-direction: column;
3407  align-items: center;
3408  gap: 6px;
3409  color: #ccc;
3410  text-decoration: none;
3411  font-size: 11px;
3412  transition: color 0.2s;
3413  min-width: 60px;
3414}
3415.side-default-quick a:hover {
3416  color: var(--point-color, #667eea);
3417}
3418.side-default-quick a svg {
3419  width: 22px;
3420  height: 22px;
3421}
3422
3423/* 검색 영역 */
3424.side-default-search {
3425  padding: 15px;
3426  background: #222;
3427  border-bottom: 1px solid #333;
3428}
3429.side-default-search-form {
3430  display: flex;
3431  align-items: center;
3432  border: 1px solid #444;
3433  border-radius: 8px;
3434  background: #1a1a1a;
3435  overflow: hidden;
3436  transition: border-color 0.2s;
3437}
3438.side-default-search-form:focus-within {
3439  border-color: var(--point-color, #667eea);
3440}
3441.side-default-search-input {
3442  flex: 1;
3443  padding: 12px 15px;
3444  border: none;
3445  background: transparent;
3446  color: #fff;
3447  font-size: 14px;
3448  outline: none;
3449}
3450.side-default-search-input::placeholder {
3451  color: #666;
3452}
3453.side-default-search-btn {
3454  width: 44px;
3455  height: 44px;
3456  background: transparent;
3457  border: none;
3458  cursor: pointer;
3459  display: flex;
3460  align-items: center;
3461  justify-content: center;
3462  color: #888;
3463  transition: color 0.2s;
3464}
3465.side-default-search-btn:hover {
3466  color: var(--point-color, #667eea);
3467}
3468.side-default-search-btn svg {
3469  width: 20px;
3470  height: 20px;
3471}
3472
3473/* 언어 선택 */
3474.side-default-lang {
3475  padding: 10px 15px;
3476  background: #222;
3477  border-bottom: 1px solid #333;
3478}
3479.side-default-lang .side-translate-select {
3480  width: 100%;
3481  padding: 10px;
3482  background: #1a1a1a;
3483  border: 1px solid #444;
3484  border-radius: 6px;
3485  color: #ccc;
3486  font-size: 13px;
3487}
3488.side-default-lang .side-lang-btns {
3489  display: flex;
3490  flex-wrap: wrap;
3491  gap: 8px;
3492}
3493.side-default-lang .side-lang-btn {
3494  padding: 8px 12px;
3495  background: #333;
3496  border: none;
3497  border-radius: 4px;
3498  color: #ccc;
3499  font-size: 12px;
3500  cursor: pointer;
3501  transition: all 0.2s;
3502}
3503.side-default-lang .side-lang-btn:hover,
3504.side-default-lang .side-lang-btn.active {
3505  background: var(--primary, #667eea);
3506  color: #fff;
3507}
3508
3509/* SNS 영역 */
3510.side-default-sns {
3511  padding: 15px;
3512  background: #222;
3513  border-bottom: 1px solid #333;
3514  display: flex;
3515  justify-content: center;
3516  gap: 10px;
3517}
3518.side-default-sns .icon_btn,
3519.side-default-sns .sns_icon {
3520  width: 36px;
3521  height: 36px;
3522  display: flex;
3523  align-items: center;
3524  justify-content: center;
3525  border: none;
3526  border-radius: 50%;
3527  color: #fff;
3528  transition: all 0.2s;
3529}
3530.side-default-sns .icon_btn svg,
3531.side-default-sns .icon_btn img,
3532.side-default-sns .wg_img1 svg,
3533.side-default-sns .wg_img1 img,
3534.side-default-sns .sns_icon svg,
3535.side-default-sns .sns_icon img {
3536  filter: brightness(0) invert(1);
3537}
3538.side-default-sns .icon_btn:hover,
3539.side-default-sns .sns_icon:hover {
3540  background: var(--point-color, #667eea);
3541  border-color: var(--point-color, #667eea);
3542  color: #fff;
3543}
3544
3545/* 메뉴 영역 */
3546.side-default-nav {
3547  flex: 1;
3548  overflow-y: auto;
3549  padding: 10px 15px;
3550}
3551.side-default-nav .gnb.mo {
3552  background: transparent;
3553}
3554.side-default-nav .gnb.mo .menu {
3555  padding: 0 5px;
3556}
3557
3558/* 구글 번역 숨김 */
3559.side-default #gt-mobile {
3560  display: none;
3561}
3562
3563/* ★ [2026-09-23] 헤드박스 숨김 시 X 버튼 자리 확보 */
3564.side-menu.side-default.no-header .side-menu-inner { padding-top: 48px; }
3565/* ★ SNS 아이콘 스타일 circle = 원본 컬러 유지 + 흰 원형 정가운데 (기본 invert 는 위 filter 규칙 그대로) */
3566.side-default-sns.sns-circle .icon_btn { background: #fff; }
3567.side-default-sns.sns-circle .icon_btn svg,
3568.side-default-sns.sns-circle .icon_btn img,
3569.side-default-sns.sns-circle .wg_img1 svg,
3570.side-default-sns.sns-circle .wg_img1 img { filter: none; }
3571.side-default-sns.sns-circle .icon_btn .wg_img1 { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
3572.side-default-sns.sns-circle .icon_btn .wg_img1 img { width: auto; max-width: 20px !important; max-height: 20px !important; }
3573.side-default-sns.sns-circle .icon_btn i { color: #333; font-size: 18px; }
3574.side-default-sns.sns-circle .icon_btn:hover { background: #fff; transform: translateY(-2px); }
3575/* circle: 감싸는 배경·라인 제거 + 아이콘 사이 간격 (위젯 .em_topsns 가 gap 0 이라 래퍼에 직접) */
3576.side-default-sns.sns-circle { background: transparent; border-bottom: none; }
3577.side-default-sns.sns-circle .em_topsns { gap: 10px; }
3578/* ★ SNS 위치 below_menu = 메뉴 리스트 바로 아래(스크롤 흐름 안) */
3579.side-default-nav .side-default-sns.sns-below { background: transparent; border-bottom: none; margin-top: 10px; padding: 15px 0; }
3580/* ★ SNS 위치 bottom = 사이드바 맨 하단 고정 (메뉴만 스크롤, 작은 화면은 dvh + 안전영역으로 안 잘리게). 배경·라인 없음 */
3581.side-menu.side-default.sns-bottom { height: 100vh; height: 100dvh; }
3582.side-default-sns.sns-fixed-bottom { flex-shrink: 0; background: transparent; border: none; padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px)); }
3583</style>
3584
3585<div class="side-menu side-default" id="sideMenu" aria-hidden="true">
3586  <div class="side-menu-inner">
3587    <button class="close-btn" id="closeMenu" aria-label="메뉴 닫기">&times;</button>
3588
3589        <!-- 회원 정보 헤더 -->
3590    <div class="side-default-header">
3591      <div class="user-info">
3592        <div class="user-avatar">
3593                      서                  </div>
3594        <div>
3595                      <div class="user-name">서초복지돌봄재단</div>
3596            <div class="user-level">방문해주셔서 감사합니다</div>
3597                  </div>
3598      </div>
3599    </div>
3600
3601    
3602    <!-- 퀵 메뉴 (아이콘 가로 배열) -->
3603    
3604    <!-- 검색 -->
3605    
3606    <!-- 언어선택 -->
3607    
3608    <!-- SNS (위치 top = 기존 자리) -->
3609    
3610    <!-- 구글 번역 (숨김) -->
3611    <div id="gt-mobile" lang="ko" aria-label="언어 선택" role="navigation"></div>
3612
3613    <!-- 메뉴 -->
3614    <div class="side-default-nav">
3615      <nav class="gnb mo">
3616        <ul class="menu" id="menu-mo">
3617        </ul>
3618      </nav>
3619                </div>
3620          </div>
3621</div>
3622<!-- //우측 슬라이드 메뉴 -->
3623
3624<div class="popup-reopen-btn-wrap pos-fixed" id="popupReopenBtnWrap">
3625  <button type="button" class="popup-reopen-btn-head size-medium" id="popupReopenBtn" title="팝업 다시보기">
3626    팝업 <em id="popupReopenCount">0</em>
3627  </button>
3628</div>
3629
3630<!-- 팝업 다시열기 버튼 제어 스크립트 -->
3631<script>
3632(function(){
3633  // 전역 변수 설정 (latest 스킨에서 접근 가능)
3634  window.POPUP_REOPEN_CONFIG = {
3635    position: 'fixed',
3636    wrapId: 'popupReopenBtnWrap',
3637    btnId: 'popupReopenBtn',
3638    countId: 'popupReopenCount'
3639  };
3640
3641  // 팝업 개수 업데이트 함수 (latest 스킨에서 호출)
3642  window.updatePopupReopenCount = function(count) {
3643    var countEl = document.getElementById(window.POPUP_REOPEN_CONFIG.countId);
3644    if (countEl) countEl.textContent = count;
3645  };
3646
3647  // 팝업 다시열기 버튼 표시 함수 (latest 스킨에서 호출)
3648  window.showPopupReopenBtn = function() {
3649    var wrap = document.getElementById(window.POPUP_REOPEN_CONFIG.wrapId);
3650    if (wrap) wrap.classList.add('show');
3651  };
3652
3653  // 팝업 다시열기 버튼 숨김 함수 (latest 스킨에서 호출)
3654  window.hidePopupReopenBtn = function() {
3655    var wrap = document.getElementById(window.POPUP_REOPEN_CONFIG.wrapId);
3656    if (wrap) wrap.classList.remove('show');
3657  };
3658
3659  // 팝업 다시열기 버튼 클릭 이벤트
3660  document.addEventListener('DOMContentLoaded', function() {
3661    var btn = document.getElementById(window.POPUP_REOPEN_CONFIG.btnId);
3662    if (!btn) return;
3663
3664    btn.addEventListener('click', function() {
3665      // 전역 함수 호출 (latest 스킨에서 정의)
3666      if (typeof window.reopenAllPopups === 'function') {
3667        window.reopenAllPopups();
3668        window.hidePopupReopenBtn();
3669      }
3670    });
3671  });
3672})();
3673</script>
3673
3674
3675<script>
3676(function() {
3677  var header = document.querySelector('.header');
3678  if (!header) return;
3679  var isMain = true;
3680
3681  // ★ 헤더 스크롤 그림자 설정
3682    var scrollShadow = '';
3683  var scrollMode = 'unified';
3684
3685  // ★ 동적 체크 함수 (스크롤/호버 시점에 현재 클래스 확인)
3686  function checkOpacity() { return header.classList.contains('opacity'); }
3687  function checkBgWhite() { return header.classList.contains('bg-white'); }
3688  function checkBgColor() { return header.classList.contains('bg-color'); }
3689
3690  // 메인 페이지면 body에 is-main 클래스 추가
3691  if (isMain) {
3692    document.body.classList.add('is-main');
3693  }
3694
3695  // ★ cover 모드: 스크롤 핸들러는 initCoverSticky 이후에 등록됨
3696  if (scrollMode === 'cover') {
3697    // ★ cover 모드: 스크롤/호버 핸들러는 initCoverSticky()에서 등록
3698    // primary 헤더의 hover (투명 모드일 때)
3699    if (checkOpacity() || checkBgColor()) {
3700      header.addEventListener('mouseenter', function() { header.classList.add('hovered'); });
3701      header.addEventListener('mouseleave', function(e) {
3702        if (header.classList.contains('horiz-submenu-open')) return;
3703        header.classList.remove('hovered');
3704      });
3705    }
3706
3707  } else {
3708    // ★ unified 모드: 기존 스크롤/호버 로직 (변경 없음)
3709
3710    // ★ bg-white(1-3)일 때 기존 인라인 스타일 제거 (CSS 변수로 처리)
3711    if (checkBgWhite()) {
3712      header.style.removeProperty('background-color');
3713      header.style.removeProperty('backdrop-filter');
3714      header.style.removeProperty('-webkit-backdrop-filter');
3715    }
3716
3717    // ★ unified 페이지 독립설정: 스크롤 전/후 레이아웃 클래스 교체 (배경 모드와 무관하게 sy>50 기준)
3718    var pgMode = header.classList.contains('unified-pg');
3719    var pgBefore = (header.getAttribute('data-pg-before') || '').split(' ').filter(
3719Boolean);
3720    var pgAfter = (header.getAttribute('data-pg-after') || '').split(' ').filter(Boolean);
3721    var pgState = null;
3722    function applyPgState(scrolled) {
3723      if (!pgMode || pgState === scrolled) return;
3724      pgState = scrolled;
3725      var add = scrolled ? pgAfter : pgBefore;
3726      var rem = scrolled ? pgBefore : pgAfter;
3727      rem.forEach(function(c) { if (add.indexOf(c) < 0) header.classList.remove(c); });
3728      add.forEach(function(c) { header.classList.add(c); });
3729      if (scrolled) header.classList.add('pg-scrolled'); else header.classList.remove('pg-scrolled');
3730    }
3731
3732    // 스크롤 이벤트 - scrolled 클래스 + 배경색 제어
3733    function onScrollHandler() {
3734      var sy = window.scrollY || window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
3735      var curOpacity = checkOpacity();
3736      var curBgWhite = checkBgWhite();
3737      var curBgColor = checkBgColor();
3738      applyPgState(sy > 50);
3739
3740      if (sy > 50) {
3741        header.classList.add('bg');
3742        if (curOpacity || curBgColor) header.classList.add('scrolled');
3743        if ((isMain || curOpacity) && !curBgWhite && !curBgColor) {
3744          header.style.setProperty('background-color', 'rgba(255,255,255,1)', 'important');
3745          header.style.setProperty('backdrop-filter', 'blur(10px)', 'important');
3746          header.style.setProperty('-webkit-backdrop-filter', 'blur(10px)', 'important');
3747        }
3748        if (curBgColor) {
3749          header.style.removeProperty('background-color');
3750          header.style.removeProperty('backdrop-filter');
3751          header.style.removeProperty('-webkit-backdrop-filter');
3752        }
3753        if (scrollShadow) {
3754          header.style.setProperty('box-shadow', scrollShadow, 'important');
3755        }
3756      } else {
3757        header.classList.remove('bg');
3758        if (curOpacity || curBgColor) header.classList.remove('scrolled');
3759        if ((isMain || curOpacity) && !curBgWhite && !curBgColor) {
3760          header.style.removeProperty('background-color');
3761          header.style.removeProperty('backdrop-filter');
3762          header.style.removeProperty('-webkit-backdrop-filter');
3763        }
3764        if (scrollShadow) {
3765          header.style.removeProperty('box-shadow');
3766        }
3767      }
3768    }
3769    window.addEventListener('scroll', onScrollHandler, true);
3770    document.addEventListener('scroll', onScrollHandler, true);
3771    // ★ 새로고침 시 이미 스크롤된 상태면 레이아웃 클래스만 즉시 반영 (배경 인라인 스타일은 건드리지 않음)
3772    if (pgMode) applyPgState((window.scrollY || window.pageYOffset || document.documentElement.scrollTop || 0) > 50);
3773    // ★ 구글 번역 폴링
3774    var _gtScrollPoll = null;
3775    function startGoogleTranslatePoll() {
3776      if (_gtScrollPoll) return;
3777      _gtScrollPoll = setInterval(onScrollHandler, 200);
3778    }
3779    if (window.MutationObserver) {
3780      new MutationObserver(function(mutations) {
3781        if (document.documentElement.classList.contains('translated-ltr') ||
3782            document.documentElement.classList.contains('translated-rtl')) {
3783          startGoogleTranslatePoll();
3784        }
3785      }).observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });
3786    }
3787    if (document.documentElement.classList.contains('translated-ltr') ||
3788        document.documentElement.classList.contains('translated-rtl')) {
3789      startGoogleTranslatePoll();
3790    }
3791
3792    // ★ hover 이벤트: opacity + bg-color 모드 모두 적용
3793    if (checkOpacity() || checkBgColor()) {
3794      header.addEventListener('mouseenter', function() {
3795        header.classList.add('hovered');
3796      });
3797      header.addEventListener('mouseleave', function(e) {
3798        if (header.classList.contains('horiz-submenu-open')) return;
3799        header.classList.remove('hovered');
3800      });
3801    }
3802  } // end unified mode
3803})();
3804</script>
3804
3805<!-- 언어 선택 스크립트 -->
3806<script>
3807(function(){
3808  // 새로운 HTML 구조에 맞게 수정
3809  var wrap = document.getElementById('langSelectWrap');
3810  var btn  = document.getElementById('currentLangBtn');
3811  var list = document.getElementById('langOptions');
3812  if(!btn || !list || !wrap) return;
3813
3814  var items = [].slice.call(list.querySelectorAll('[role="menuitem"]'));
3815  if(!items.length) return;
3816
3817  var justOpened = false;
3818
3819  // ★ [2026-09-07] 레이어 열림 동안 글로벌 메뉴 영역을 햄버거보다 위로 (CSS .lang-open)
3820  var area = wrap.closest ? wrap.closest('.gmenu-area-inner, .gmenu-area-between') : null;
3821  function openMenu(){
3822    wrap.classList.add('open');
3823    if (area) area.classList.add('lang-open');
3824    btn.setAttribute('aria-expanded','true');
3825    list.setAttribute('aria-hidden','false');
3826    justOpened = true;
3827    setTimeout(function(){ justOpened = false; }, 150);
3828  }
3829  function closeMenu(){
3830    wrap.classList.remove('open');
3831    if (area) area.classList.remove('lang-open');
3832    btn.setAttribute('aria-expanded','false');
3833    list.setAttribute('aria-hidden','true');
3834  }
3835  function isOpen(){ return wrap.classList.contains('open'); }
3836  function toggleMenu(){ isOpen() ? closeMenu() : openMenu(); }
3837
3838  // 버튼 클릭
3839  btn.addEventListener('click', function(e){
3840    e.stopPropagation();
3841    toggleMenu();
3842  });
3843
3844  // ★ 게시판 언어 전환: bo_table 접미사 교체
3845  function switchBoardLang(boTable, targetLang) {
3846    var codes = (typeof _activeLangCodes !== 'undefined') ? _activeLangCodes : [];
3847    var suffixes = codes.filter(function(c){ return c !== 'ko'; });
3848    if (!suffixes.length) return boTable;
3849    var regex = new RegExp('_(' + suffixes.join('|') + ')$', 'i');
3850    var base = boTable.replace(regex, '');
3851    return (targetLang === 'ko') ? base : base + '_' + targetLang;
3852  }
3853
3854  // ★ [2026-09-07] 언어 전환 URL 결정 — me_code 는 항상 유지 (지우면 서브페이지가 "없는 게시판"→메인으로 튕김)
3855  //   1) me_code 있고 메뉴에 그 언어 링크(_langMenuLinks)가 있으면:
3856  //      같은 게시판 → 현재 URL 유지(lang만 변경, wr_id 유지) / 다른 게시판 → 그 게시판 목록 / 게시판 아닌 페이지 → 메뉴 링크
3857  //   2) 그 외 게시판 페이지: 언어별 게시판(_en 등)이 실제로 존재할 때만(_langBoardMap) 전환, 없으면 같은 게시판 유지
3858  function buildLangUrl(lang) {
3859    var url = new URL(window.location.href);
3860    var meCode  = url.searchParams.get('me_code');
3861    var boTable = url.searchParams.get('bo_table');
3862    var links = (typeof _langMenuLinks !== 'undefined' && _langMenuLinks) ? _langMenuLinks : {};
3863    var bmap  = (typeof _langBoardMap  !== 'undefined' && _langBoardMap)  ? _langBoardMap  : {};
3864
3865    if (meCode && links[lang]) {
3866      var t = new URL(links[lang], window.location.origin);
3867      var tBo = t.searchParams.get('bo_table');
3868      if (boTable && tBo) {
3869        if (tBo !== boTable) {
3870          url.searchParams.set('bo_table', tBo);
3871          url.searchParams.delete('wr_id');
3872          url.searchParams.delete('page');
3873        }
3874        url.searchParams.set('lang', lang);
3875        return url.toString();
3876      }
3877      if (!boTable && t.pathname === url.pathname
3878          && (t.searchParams.get('co_id') || '') === (url.searchParams.get('co_id') || '')) {
3879        url.searchParams.set('lang', lang);
3880        return url.toString();
3881      }
3882      t.searchParams.set('lang', lang);
3883      if (!t.searchParams.get('me_code')) t.searchParams.set('me_code', meCode);
3884      return t.toString();
3885    }
3886
3887    if (boTable) {
3888      if (Object.keys(bmap).length) {
3889        var mapped = bmap[lang] || '';
3890        if (mapped && mapped !== boTable) {
3891          url.searchParams.set('bo_table', mapped);
3892          url.searchParams.delete('wr_id');
3893          url.searchParams.delete('page');
3894        }
3895      } else {
3896        var newBoTable = switchBoardLang(boTable, lang);
3897        if (newBoTable !== boTable) {
3898          url.searchParams.set('bo_table', newBoTable);
3899          url.searchParams.delete('wr_id');
3900        }
3901      }
3902    }
3903    url.searchParams.set('lang', lang);
3904    return url.toString();
3905  }
3906
3907  // 목록 아이템 클릭 - 언어 변경
3908  items.forEach(function(item){
3909    item.addEventListener('click', function(e){
3910      e.stopPropagation();
3911      var lang = this.getAttribute('data-lang');
3912      if(lang){
3913        window.location.href = buildLangUrl(lang);
3914      }
3915      closeMenu();
3916    });
3917  });
3918
3919  // 바깥 클릭시 닫기
3920  document.addEventListener('click', function(e){
3921    if(justOpened) return;
3922    if(!wrap.contains(e.target)){
3923      closeMenu();
3924    }
3925  });
3926
3927  // ESC 키 닫기
3928  document.addEventListener('keydown', function(e){
3929    if(e.key === 'Escape' && isOpen()) closeMenu();
3930  });
3931
3932  // 키보드 네비게이션
3933  btn.addEventListener('keydown', function(e){
3934    if(e.key === 'ArrowDown'){
3935      e.preventDefault();
3936      if(!isOpen()) openMenu();
3937      items[0].focus();
3938    }
3939  });
3940
3941  list.addEventListener('keydown', function(e){
3942    var i = items.indexOf(document.activeElement);
3943    if(e.key === 'ArrowDown'){
3944      e.preventDefault();
3945      items[(i+1) % items.length].focus();
3946    } else if(e.key === 'ArrowUp'){
3947      e.preventDefault();
3948      items[(i-1+items.length) % items.length].focus();
3949    } else if(e.key === 'Escape'){
3950      e.preventDefault();
3951      closeMenu();
3952      btn.focus();
3953    } else if(e.key === 'Enter' || e.key === ' '){
3954      e.preventDefault();
3955      document.activeElement.click();
3956    } else if(e.key === 'Tab'){
3957      if(e.shiftKey && document.activeElement === items[0]){
3958        e.preventDefault();
3959        closeMenu();
3960        btn.focus();
3961      } else if(!e.shiftKey && document.activeElement === items[items.length-1]){
3962        closeMenu();
3963      }
3964    }
3965  });
3966})();
3967</script>
vendor: 1 bytes, line 3967
3967
3968<script>
3969/* =========================================================
3970   GNB 통합 스크립트 (언어 셀렉트 + PC/MO + 사이드메뉴 + 사이트맵)
3971   - 전제: 전역에 MENU 배열이 선언되어 있음 (없으면 경고만 출력)
3972   - PC:   <ul id="menu-pc">
3973   - MO:   <ul id="menu-mo">
3974   - 사이드: #menuToggle(버튼), #sideMenu(패널), #closeMenu(닫기)
3975   - 사이트맵: #sitemapToggle(버튼, 선택), #sitemapLayer(오버레이),
3976               #sitemapBackdrop(배경), #sitemapClose(닫기), <ul id="menu-sitemap">
3977   ========================================================= */
3978(function () {
3979
3980  document.addEventListener('DOMContentLoaded', function () {
3981    /* ---------- 엘리먼트 캐시 ---------- */
3982    var menuToggle = document.getElementById('menuToggle');
3983    var sideMenu   = document.getElementById('sideMenu');
3984    var closeMenu  = document.getElementById('closeMenu');
3985    var pcMenuRoot = document.getElementById('menu-pc'); // UL
3986    var moMenuRoot = document.getElementById('menu-mo'); // UL
3987
3988    /* 사이트맵 요소 */
3989    var smToggle   = document.getElementById('sitemapToggle');   // 버튼(선택)
3990    var smLayer    = document.getElementById('sitemapLayer');    // 오버레이
3991    var smClose    = document.getElementById('sitemapClose');    // 닫기 버튼
3992    var smBackdrop = document.getElementById('sitemapBackdrop'); // ë°°ê²½
3993    var smRoot     = document.getElementById('menu-sitemap');    // UL
3994
3995    /* ---------- 사이드메뉴(햄버거) ---------- */
3996    initSideMenu(menuToggle, sideMenu, closeMenu);
3997
3998    /* ---------- 메뉴 렌더(데이터 → DOM) ---------- */
3999    if (typeof window.MENU !== 'undefined' && Array.isArray(window.MENU)) {
4000      if (pcMenuRoot) {
4001        renderMenu(MENU, pcMenuRoot, { idPrefix: 'pc', single: false });
4002        pcMenuRoot.classList.add('rendered');
4003      }
4004      if (moMenuRoot) {
4005        renderMenu(MENU, moMenuRoot, { idPrefix: 'mo', single: true  });
4006        moMenuRoot.classList.add('rendered');
4007      }
4008      if (smRoot) {
4009        renderMenu(MENU, smRoot, { idPrefix: 'sm', single: false });
4010        expandAllForSitemap(smRoot, false); // 사이트맵 펼침 (style2 3뎁스 토글이면 3뎁스만 접음)
4011              }
4012      /* ---------- GNB 뷰포트 클래스 동적 전환 (메뉴 초기화보다 먼저!) ---------- */
4013      initGnbViewportClass();
4014
4015      // ★ cover 모드: 메뉴 렌더링 완료 후 sticky 헤더 클론
4016      if (typeof window.initCoverSticky === 'function') {
4017        window.initCoverSticky();
4018      }
4019      // ★ 가로 하위메뉴 초기화 (PC 메뉴 렌더링 후)
4020      if (typeof window.initHorizSubmenu === 'function') {
4021        window.initHorizSubmenu();
4022      }
4023      // ★ 가로 하위 접근성 메뉴 초기화 (PC 메뉴 렌더링 후)
4024      if (typeof window.initHorizA11ySubmenu === 'function') {
4025        window.initHorizA11ySubmenu();
4026      }
4027      // ★ 전체 하위메뉴 펼침 초기화 (PC 메뉴 렌더링 후)
4028      if (typeof window.initFullopenSubmenu === 'function') {
4029        window.initFullopenSubmenu();
4030      }
4031      // ★ 드롭다운2 Rolling Text 초기화 (PC 메뉴 렌더링 후)
4032      if (typeof window.initRollingText === 'function') {
4033        window.initRollingText();
4034      }
4035    } else {
4036      console.warn('[GNB] MENU 배열이 없습니다. 메뉴 렌더를 건너뜁니다.');
4037    }
4038
4039    /* ---------- PC 전용: 터치 1회 열기 ---------- */
4040    initPcTouchOpen();
4041
4042    /* ---------- 사이트맵 오버레이 ---------- */
4043    initSitemap(smToggle, smLayer, smClose, smBackdrop, smRoot);
4044  });
4045
4046  /* =========================================================
4047     GNB 뷰포트 기반 클래스 동적 전환
4048     - PC: 1700px 이상
4049     - Tablet1: 1024px ~ 1700px
4050     - Tablet2: 768px ~ 1023px
4051     - Mobile: 767px 이하
4052     ========================================================= */
4053  function initGnbViewportClass() {
4054    var gnb = document.getElementById('gnb-main');
4055    if (!gnb) return;
4056
4057    var deviceClasses = ['pc', 'tablet1', 'tablet2', 'mo'];
4058
4059    function updateGnbClass() {
4060      var w = window.innerWidth;
4061      var newClass = '';
4062
4063      if (w >= 1700) {
4064        newClass = 'pc';
4065      } else if (w >= 1024) {
4066        newClass = 'tablet1';
4067      } else if (w >= 768) {
4068        newClass = 'tablet2';
4069      } else {
4070        newClass = 'mo';
4071      }
4072
4073      // 기존 디바이스 클래스 제거
4074      for (var i = 0; i < deviceClasses.length; i++) {
4075        gnb.classList.remove(deviceClasses[i]);
4076      }
4077      // 새 클래스 추가
4078      gnb.classList.add(newClass);
4079    }
4080
4081    // 초기 실행
4082    updateGnbClass();
4083
4084    // 리사이즈 시 업데이트 (디바운스 적용)
4085    var resizeTimer;
4086    window.addEventListener('resize', function() {
4087      clearTimeout(resizeTimer);
4088      resizeTimer = setTimeout(updateGnbClass, 100);
4089    });
4090  }
4091
4092  /* =========================================================
4093     사이드메뉴(햄버거)
4094     - leaf(하위 없는 링크) 클릭 시 자동 닫기
4095     ========================================================= */
4096  function initSideMenu(menuToggle, sideMenu, closeMenu){
4097    if (!menuToggle || !sideMenu) return;
4098
4099    function lockScroll(on){ document.documentElement.style.overflow = on ? 'hidden' : ''; }
4100
4101    function openSide(){
4102      menuToggle.classList.add('active');
4103      sideMenu.classList.add('active');
4104      menuToggle.setAttribute('aria-expanded','true');
4105      sideMenu.setAttribute('aria-hidden','false');
4106      lockScroll(true);
4107      var first = sideMenu.querySelector('a,button');
4108      if (first) first.focus();
4109      sideMenu.addEventListener('keydown', trapFocusSide);
4110    }
4111    function trapFocusSide(e){
4112      if(e.key!=='Tab')return;
4113      var focusable=sideMenu.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])');
4114      if(!focusable.length)return;
4115      var first=focusable[0],last=focusable[focusable.length-1];
4116      if(e.shiftKey){if(document.activeElement===first){e.preventDefault();last.focus();}}
4117      else{if(document.activeElement===last){e.preventDefault();first.focus();}}
4118    }
4119    function closeSide(){
4120      sideMenu.removeEventListener('keydown', trapFocusSide);
4121      menuToggle.classList.remove('active');
4122      sideMenu.classList.remove('active');
4123      menuToggle.setAttribute('aria-expanded','false');
4124      sideMenu.setAttribute('aria-hidden','true');
4125      lockScroll(false);
4126      menuToggle.focus();
4127    }
4128
4129    menuToggle.addEventListener('click', function(e){
4130      e.stopPropagation();
4131      if (menuToggle.classList.contains('active')) closeSide(); else openSide();
4132    });
4133
4134    if (closeMenu){
4135      closeMenu.addEventListener('click', function(e){ e.stopPropagation(); closeSide(); });
4136    }
4137
4138    // 내부 클릭: 전파 막고, leaf면 닫기
4139    sideMenu.addEventListener('click', function(e){
4140      e.stopPropagation();
4141      var a = e.target.closest && e.target.closest('a');
4142      if (!a) return;
4143      var li = a.closest('li');
4144      var isHasSub = li && li.classList.contains('has-sub');
4145      if (!isHasSub) closeSide();
4146    });
4147
4148    // 바깥 클릭/ESC 닫기
4149    document.addEventListener('click', function(){ if (sideMenu.classList.contains('active')) closeSide(); });
4150    document.addEventListener('keydown', function(e){ if (e.key==='Escape') closeSide(); });
4151  }
4152
4153  /* =========================================================
4154     메뉴 렌더러 (ES5 / ID 충돌 방지 / 현재경로 자동 펼침 / 아코디언 지원)
4155     ========================================================= */
4156  function renderMenu(menu, root, opts) {
4157    opts = opts || {};
4158    var prefix = opts.idPrefix || ('inst-' + Math.random().toString(36).substr(2,5));
4159    var single = !!opts.single;
4160
4161    // 비우기
4162    while (root.firstChild) root.removeChild(root.firstChild);
4163
4164    var counter = 0;
4165    function nextId() {
4166      counter++;
4167      var n = counter < 10 ? '0' + counter : counter;
4168      return 'm-' + prefix + '-' + n;
4169    }
4170
4171    function make(items, depth) {
4172      var ul = document.createElement('ul');
4173      ul.className = (depth === 1 ? 'menu' : 'sublist');
4174      var hasActiveInUl = false;
4175
4176      for (var i = 0; i < items.length; i++) {
4177        var it = items[i];
4178        if (it.use === false) continue;
4179
4180        var li = document.createElement('li');
4181        li.className = (depth === 1 ? 'cell' : 'subitem');
4182        var hasChildren = it.children && it.children.length;
4183        if (hasChildren) li.className += ' has-sub';
4184
4185        var a = document.createElement('a');
4186        a.className = 'depth' + depth;
4187        a.href = it.href || '#';
4188        // (변경) target을 렌더링 직전에 정규화
4189        if (it.target) {
4190          var tgt = normalizeTargetJS(it.target);
4191          if (tgt) a.setAttribute('target', tgt);
4192        }
4193        if (it.rel) a.setAttribute('rel', it.rel);
4194        a.appendChild(document.createTextNode(it.text || ''));
4195
4196        var active = (it.href && it.href === location.pathname);
4197        if (active) a.setAttribute('aria-current', 'page');
4198
4199        if (hasChildren) {
4200          var id = nextId();
4201
4202          var inp = document.createElement('input');
4203          inp.type = 'checkbox';
4204          inp.id = id;
4205          inp.className = 'acc';
4206          inp.hidden = true;
4207			
4208          var lb = document.createElement('label');
4209          lb.htmlFor = id;
4210          lb.className = 'acc-toggle';
4211          lb.innerHTML = '<span class="visually-hidden">하위메뉴 열기/닫기</span>';
4212          lb.setAttribute('aria-expanded', inp.checked ? 'true' : 'false');
4213
4214          var child = make(it.children, depth + 1);
4215
4216          if (child.hasActive) inp.checked = true;
4217
4218          function syncAria(input, label) {
4219            label.setAttribute('aria-expanded', input.checked ? 'true' : 'false');
4220          }
4221          syncAria(inp, lb);
4222
4223          inp.addEventListener('change', (function (input, label) {
4224            return function () {
4225              syncAria(input, label);
4226              if (single && input.checked) {
4227                var parentUL = input.parentNode && input.parentNode.parentNode;
4228                if (!parentUL) return;
4229                var lis = parentUL.children;
4230                for (var j = 0; j < lis.length; j++) {
4231                  var li2 = lis[j];
4232                  if (li2 !== input.parentNode) {
4233                    var sibInp = li2.querySelector('input.acc');
4234                    var sibLabel = li2.querySelector('label.acc-toggle');
4235                    if (sibInp) sibInp.checked = false;
4236                    if (sibLabel && sibInp) syncAria(sibInp, sibLabel);
4237                  }
4238                }
4239              }
4240            };
4241          })(inp, lb));
4242
4243          li.appendChild(inp);
4244          li.appendChild(a);
4245          li.appendChild(lb);
4246          li.appendChild(child.ul);
4247          hasActiveInUl = hasActiveInUl || active || child.hasActive;
4248        } else {
4249          li.appendChild(a);
4250          hasActiveInUl = hasActiveInUl || active;
4251        }
4252
4253        ul.appendChild(li);
4254      }
4255
4256      return { ul: ul, hasActive: hasActiveInUl };
4257    }
4258
4259    var built = make(menu, 1);
4260    // root(UL)에 직접 자식만 붙임
4261    root.className = 'menu';
4262    var frag = document.createDocumentFragment();
4263    while (built.ul.firstChild) frag.appendChild(built.ul.firstChild);
4264    root.appendChild(frag);
4265  }
4266
4267  /* =========================================================
4268     PC 전용: 터치 1회 열기(같은 li 내 다른 링크 포커스 호환)
4269     ========================================================= */
4270  function initPcTouchOpen(){
4271    var items = document.querySelectorAll('#menu-pc > li.cell');
4272    if (!items.length) return;
4273
4274    for (var i=0;i<items.length;i++){
4275      (function(li){
4276        var a = li.querySelector(':scope > a');
4277        if (!a) return;
4278
4279        a.addEventListener('touchstart', function(e){
4280          var isOpen = li.classList.contains('open');
4281          for (var k=0;k<items.length;k++){ if (items[k]!==li) items[k].classList.remove('open'); }
4282          if (!isOpen) { e.preventDefault(); li.classList.add('open'); }
4283        }, { passive:false });
4284
4285        li.addEventListener('mouseleave', function(){ li.classList.remove('open'); });
4286        li.addEventListener('focusin', function(){
4287          for (var k=0;k<items.length;k++){ if (items[k]!==li) items[k].classList.remove('open'); }
4288          li.classList.add('open');
4289        });
4290        li.addEventListener('focusout', function(e){
4291          if (!li.contains(e.relatedTarget)) li.classList.remove('open');
4292        });
4293      })(items[i]);
4294    }
4295
4296    document.addEventListener('click', function(e){
4297      if (!e.target.closest || !e.target.closest('#menu-pc')) {
4298        var opens = document.querySelectorAll('#menu-pc > li.cell.open');
4299        for (var i=0;i<opens.length;i++) opens[i].classList.remove('open');
4300      }
4301    });
4302  }
4303
4304  /* =========================================================
4305     사이트맵: 항상 펼침 처리 (체크박스/라벨 상태 동기화)
4306     ========================================================= */
4307  function expandAllForSitemap(rootEl, depth3Collapsed){
4308    if (!rootEl) return;
4309    var inputs = rootEl.querySelectorAll('input.acc');
4310    for (var i=0;i<inputs.length;i++){
4311      var inp = inputs[i];
4312      // ★ depth3 접힘 모드: sublist(2뎁스 하위=3뎁스) 안의 토글은 접고, 그 외(2뎁스)는 펼침
4313      var isDepth3 = depth3Collapsed && inp.closest && inp.closest('.sublist');
4314      inp.checked = isDepth3 ? false : true;
4315      var lb = inp.parentNode ? inp.parentNode.querySelector(':scope > label.acc-toggle') : null;
4316      if (lb) lb.setAttribute('aria-expanded', inp.checked ? 'true' : 'false');
4317    }
4318  }
4319
4320  /* =========================================================
4321     사이트맵 오버레이
4322     ========================================================= */
4323  function initSitemap(toggleBtn, layer, closeBtn, backdrop, root){
4324    if (!layer || !root) return; // 버튼은 없어도 동작
4325
4326    // ★ header 안에 있으면 backdrop-filter 때문에 position:fixed가 깨짐 → body로 이동
4327    if (layer.closest('header')) {
4328      document.body.appendChild(layer);
4329    }
4330
4331    function lockScroll(on){ document.documentElement.style.overflow = on ? 'hidden' : ''; }
4332    function trapFocusMap(e){
4333      if(e.key!=='Tab')return;
4334      var panel=layer.querySelector('.sm-panel')||layer;
4335      var focusable=panel.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]),[tabindex]:not([tabindex="-1"])');
4336      if(!focusable.length)return;
4337      var first=focusable[0],last=focusable[focusable.length-1];
4338      if(e.shiftKey){if(document.activeElement===first){e.preventDefault();last.focus();}}
4339      else{if(document.activeElement===last){e.preventDefault();first.focus();}}
4340    }
4341    function openMap(){
4342      layer.classList.add('active');
4343      layer.setAttribute('aria-hidden','false');
4344      if (toggleBtn){ toggleBtn.classList.add('active'); toggleBtn.setAttribute('aria-expanded','true'); }
4345
4346      lockScroll(true);
4347      var first = layer.querySelector('a,button,[tabindex]:not([tabindex="-1"])');
4348      if (first) first.focus();
4349      layer.addEventListener('keydown', trapFocusMap);
4350    }
4351    function closeMap(){
4352      layer.removeEventListener('keydown', trapFocusMap);
4353      layer.classList.remove('active');
4354      layer.setAttribute('aria-hidden','true');
4355      if (toggleBtn){ toggleBtn.classList.remove('active'); toggleBtn.setAttribute('aria-expanded','false'); toggleBtn.focus(); }
4356      lockScroll(false);
4357    }
4358
4359    if (toggleBtn){
4360      toggleBtn.addEventListener('click', function(e){
4361        e.stopPropagation();
4362        layer.classList.contains('active') ? closeMap() : openMap();
4363      });
4364    }
4365    if (closeBtn){
4366      closeBtn.addEventListener('click', function(e){ e.stopPropagation(); closeMap(); });
4367    }
4368    if (backdrop){
4369      backdrop.addEventListener('click', function(){ closeMap(); });
4370    }
4371
4372    // 패널 바깥(검은 배경/패널 여백) 클릭 시 닫기
4373    layer.addEventListener('click', function(e){
4374      if (!e.target.closest('.sm-panel')) closeMap();
4375    });
4376
4377    // 링크 클릭 시 닫기(사이트맵은 전체 닫기)
4378    root.addEventListener('click', function(e){
4379      var a = e.target.closest && e.target.closest('a');
4380      if (a) closeMap();
4381    });
4382
4383    // ESC 닫기
4384    document.addEventListener('keydown', function(e){
4385      if (e.key === 'Escape' && layer.classList.contains('active')) closeMap();
4386    });
4387
4388    // 외부 호출용(디버그)
4389    window.openSitemap  = openMap;
4390    window.closeSitemap = closeMap;
4391  }
4392
4393})();
4394</script>
4394
4395
4396
4397<!-- .wg_edit_img Shift+클릭 시 <a> 태그 새창 열기 방지 -->
4398
4399<!-- 위젯 아이콘 클릭 핸들러 (일반: 팝업, Shift+클릭: 모달) -->
4400
4401<!-- 검색 오버레이 -->
4402<div class="search-overlay" id="searchOverlay" aria-hidden="true" role="dialog" aria-modal="true" aria-label="검색">
4403  <button type="button" class="search-overlay-close" id="searchOverlayClose" aria-label="닫기">
4404    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
4405      <line x1="18" y1="6" x2="6" y2="18"></line>
4406      <line x1="6" y1="6" x2="18" y2="18"></line>
4407    </svg>
4408  </button>
4409  <div class="search-overlay-content">
4410    <div class="search-overlay-title">SEARCH</div>
4411    <form action="https://seochowcf.or.kr/bbs/search.php" method="get" class="search-overlay-form" id="searchOverlayForm">
4412      <input type="hidden" name="sfl" value="wr_subject||wr_content">
4413      <input type="hidden" name="sop" value="and">
4414      <input type="text" name="stx" id="searchOverlayInput" placeholder="검색어를 입력하세요" autocomplete="off" required>
4415      <button type="submit" aria-label="검색">
4416        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round">
4417          <circle cx="11" cy="11" r="8"></circle>
4418          <path d="m21 21-4.3-4.3"></path>
4419        </svg>
4420      </button>
4421    </form>
4422  </div>
4423</div>
4424
4425<!-- 검색 오버레이 스크립트 -->
4426<script>
4427(function(){
4428  var overlay = document.getElementById('searchOverlay');
4429  var closeBtn = document.getElementById('searchOverlayClose');
4430  var input = document.getElementById('searchOverlayInput');
4431  var form = document.getElementById('searchOverlayForm');
4432
4433  // 검색 버튼 (inner 위치 또는 between 위치)
4434  var searchBtns = document.querySelectorAll('#headerSearchBtn, #headerSearchBtnBetween, .gmenu-search-btn');
4435
4436  if (!overlay) return;
4437
4438  function trapFocusSearch(e){
4439    if(e.key!=='Tab')return;
4440    var focusable=overlay.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]),[tabindex]:not([tabindex="-1"])');
4441    if(!focusable.length)return;
4442    var first=focusable[0],last=focusable[focusable.length-1];
4443    if(e.shiftKey){if(document.activeElement===first){e.preventDefault();last.focus();}}
4444    else{if(document.activeElement===last){e.preventDefault();first.focus();}}
4445  }
4446
4447  function openSearch() {
4448    overlay.classList.add('active');
4449    overlay.setAttribute('aria-hidden', 'false');
4450    document.body.classList.add('search-open');
4451    overlay.addEventListener('keydown', trapFocusSearch);
4452    // 입력 필드에 포커스
4453    setTimeout(function() {
4454      if (input) input.focus();
4455    }, 100);
4456  }
4457
4458  function closeSearch() {
4459    overlay.removeEventListener('keydown', trapFocusSearch);
4460    overlay.classList.remove('active');
4461    overlay.setAttribute('aria-hidden', 'true');
4462    document.body.classList.remove('search-open');
4463    // 입력값 초기화
4464    if (input) input.value = '';
4465    // 포커스 복귀
4466    var btn = document.querySelector('#headerSearchBtn, #headerSearchBtnBetween, .gmenu-search-btn');
4467    if (btn) btn.focus();
4468  }
4469
4470  // 검색 버튼 클릭
4471  searchBtns.forEach(function(btn) {
4472    btn.addEventListener('click', function(e) {
4473      e.preventDefault();
4474      e.stopPropagation();
4475      openSearch();
4476    });
4477  });
4478
4479  // 닫기 버튼 클릭
4480  if (closeBtn) {
4481    closeBtn.addEventListener('click', function(e) {
4482      e.preventDefault();
4483      closeSearch();
4484    });
4485  }
4486
4487  // 배경 클릭 시 닫기
4488  overlay.addEventListener('click', function(e) {
4489    if (e.target === overlay) {
4490      closeSearch();
4491    }
4492  });
4493
4494  // ESC 키로 닫기
4495  document.addEventListener('keydown', function(e) {
4496    if (e.key === 'Escape' && overlay.classList.contains('active')) {
4497      closeSearch();
4498    }
4499  });
4500
4501  // 폼 제출 시 빈 검색어 방지
4502  if (form) {
4503    form.addEventListener('submit', function(e) {
4504      if (!input || !input.value.trim()) {
4505        e.preventDefault();
4506        if (input) input.focus();
4507      }
4508    });
4509  }
4510
4511  // 전역 함수로 노출
4512  window.openSearchOverlay = openSearch;
4513  window.closeSearchOverlay = closeSearch;
4514})();
4515</script>
4515
4516
4517<!-- ★ v4: 사이드 메뉴 글로벌 버튼 스크립트 -->
4518<script>
4519(function(){
4520  // 사이드 검색 버튼
4521  var sideSearchBtn = document.getElementById('sideSearchBtn');
4522  if (sideSearchBtn) {
4523    sideSearchBtn.addEventListener('click', function() {
4524      // 사이드 메뉴 닫기
4525      var sideMenu = document.getElementById('sideMenu');
4526      if (sideMenu) {
4527        sideMenu.classList.remove('active');
4528        sideMenu.setAttribute('aria-hidden', 'true');
4529        document.body.classList.remove('menu-open');
4530      }
4531      // 검색 오버레이 열기
4532      if (typeof window.openSearchOverlay === 'function') {
4533        window.openSearchOverlay();
4534      }
4535    });
4536  }
4537
4538  // 사이드 언어 버튼
4539  var sideLangBtns = document.querySelectorAll('.side-lang-btn');
4540  sideLangBtns.forEach(function(btn) {
4541    btn.addEventListener('click', function() {
4542      var langCode = this.dataset.lang;
4543      if (langCode) {
4544        // 언어 변경 (세션 기반 또는 URL 파라미터)
4545        window.location.href = 'https://seochowcf.or.kr/?lang=' + langCode;
4546      }
4547    });
4548  });
4549})();
4550</script>
4550
4551
4552
4553<!-- ★ 쇼핑몰 그룹 드롭다운 토글 (구글번역 조건과 무관) -->
4554<script>
4555document.addEventListener('DOMContentLoaded', function() {
4556  var dropdowns = document.querySelectorAll('.gmenu-member-dropdown');
4557  if (!dropdowns.length) return;
4558
4559  dropdowns.forEach(function(dropdown) {
4560    var trigger = dropdown.querySelector('.gmenu-member-trigger');
4561    if (!trigger) return;
4562
4563    trigger.addEventListener('click', function(e) {
4564      e.preventDefault();
4565      e.stopPropagation();
4566      // 다른 드롭다운 닫기
4567      dropdowns.forEach(function(other) {
4568        if (other !== dropdown) other.classList.remove('open');
4569      });
4570      dropdown.classList.toggle('open');
4571    });
4572  });
4573
4574  // 외부 클릭 시 드롭다운 닫기
4575  document.addEventListener('click', function(e) {
4576    if (!e.target.closest('.gmenu-member-dropdown')) {
4577      dropdowns.forEach(function(d) { d.classList.remove('open'); });
4578    }
4579  });
4580});
4581</script>
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592      
4592<script src="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/js/wing.js?v=2"></script>
4592
4593
4594  <!-- 배너 -->
4595  
4596<!-- Swiper CSS (CDN fallback) -->
4597<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
4598<!-- MAIN_TOP_TOTAL CSS -->
4599<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_top/MAIN_TOP_TOTAL/resources/css/style.css" />
4600<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_top/MAIN_TOP_TOTAL/sw_1/resources/css/style.css" />
4601    <link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_top/MAIN_TOP_TOTAL/control_sets/ctrl_progress_bar/style.css" />
4602    <link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_top/MAIN_TOP_TOTAL/decorations/scroll_indicator/skins/scroll_bar/style.css" />
4603
4604<style>
4605.MAIN_TOP_TOTAL {
4606    position: relative;
4607    width: 100%;
4608    overflow: hidden;
4609    background-color: #000000;
4610    }
4611.MAIN_TOP_TOTAL .slide_bg {
4612    opacity: 0.9;
4613}
4614.MAIN_TOP_TOTAL .slide_wrap {
4615    position: relative;
4616    width: 100%;
4617    height: 100vh;
4618}
4619/* 외부 배경색 영역이 슬라이드 높이를 항상 따라가도록 min-height 동기화 (fade 효과/absolute로 부모가 자식 높이를 못 받는 경우 대비) */
4620.MAIN_TOP_TOTAL { min-height: 100vh; }
4621@media screen and (max-width: 1024px) {
4622    .MAIN_TOP_TOTAL .slide_wrap {
4623        height: 100vh;    }
4624    .MAIN_TOP_TOTAL { min-height: 100vh; }}
4625@media screen and (max-width: 768px) {
4626    .MAIN_TOP_TOTAL .slide_wrap {
4627        height: 100vh;    }
4628    .MAIN_TOP_TOTAL { min-height: 100vh; }}
4629        /* 텍스트 가로 정렬 */
4630.MAIN_TOP_TOTAL .slide_text_wrap.text_align_left { text-align: left; }
4631.MAIN_TOP_TOTAL .slide_text_wrap.text_align_center { text-align: center; }
4632.MAIN_TOP_TOTAL .slide_text_wrap.text_align_right { text-align: right; }
4633/* 텍스트 세로 정렬 */
4634.MAIN_TOP_TOTAL .slide_text_wrap { align-items: center; padding-top: 0; padding-bottom: 0; }.MAIN_TOP_TOTAL .slide_text_inner { transform: none; }.MAIN_TOP_TOTAL .slide_txt > .txt_content { display: block; width: 100%; }
4635/* 텍스트 등장 애니메이션 */
4636.MAIN_TOP_TOTAL .slide_txt {
4637    opacity: 0;
4638    transform: translateY(50px);    transition: opacity 0.8s ease, transform 0.8s ease;
4639}
4640.MAIN_TOP_TOTAL .swiper-slide-active .slide_txt {
4641    opacity: 1;
4642    transform: translateY(0);}
4643.MAIN_TOP_TOTAL .swiper-slide-active .slide_txt1 { transition-delay: 0.1s; }
4644.MAIN_TOP_TOTAL .swiper-slide-active .slide_txt2 { transition-delay: 0.2s; }
4645.MAIN_TOP_TOTAL .swiper-slide-active .slide_txt3 { transition-delay: 0.3s; }
4646.MAIN_TOP_TOTAL .swiper-slide-active .slide_txt4 { transition-delay: 0.4s; }
4647.MAIN_TOP_TOTAL .swiper-slide-active .slide_link_wrap { transition-delay: 0.5s; }
4648.MAIN_TOP_TOTAL .slide_btn_group { flex-direction: row; gap: 10px; justify-content: flex-start; }
4649.MAIN_TOP_TOTAL .slide_btn_group { transform: translateY(50px); transition: opacity 0.8s ease, transform 0.8s ease; }
4650.MAIN_TOP_TOTAL .swiper-slide-active .slide_btn_group { transform: translateY(0); transition-delay: 0.5s; }
4651/* 슬라이드 효과 */
4652/* 이미지 가로값 */
4653.MAIN_TOP_TOTAL .slide_img_wrap img {
4654    width: clamp(200px, calc(15.625vw + 150px), 400px);
4655    height: auto;
4656}
4657
4658/* ★ 비디오 포스터 — 로드 후 자동 페이드아웃 */
4659.MAIN_TOP_TOTAL .video_poster_wrap {
4660    position: relative;
4661    overflow: hidden;
4662}
4663.MAIN_TOP_TOTAL .video_poster {
4664    position: absolute;
4665    top: 0;
4666    left: 0;
4667    width: 100%;
4668    height: 100%;
4669    background-size: cover;
4670    background-position: center;
4671    background-repeat: no-repeat;
4672    opacity: 1;
4673    transition: opacity 0.3s ease-out;
4674    z-index: 10;
4675    pointer-events: none;
4676}
4677/* iframe 로드되면 포스터 페이드아웃 */
4678.MAIN_TOP_TOTAL .video_poster_wrap iframe {
4679    position: relative;
4680    z-index: 2;
4681}
4682/* ★ 첫 슬라이드는 포스터 즉시 숨김 */
4683.MAIN_TOP_TOTAL .swiper-slide:nth-child(1) .video_poster {
4684    opacity: 0 !important;
4685    pointer-events: none;
4686}
4687
4688/* ★ 포스터 자동 페이드아웃: 즉시 시작 후 0.4초 페이드 (지연 없음) */
4689.MAIN_TOP_TOTAL .video_poster {
4690    animation: fadeOutPoster 0.4s ease-out 0s forwards;
4691}
4692
4693@keyframes fadeOutPoster {
4694    0% { opacity: 1; }
4695    99% { opacity: 0; }
4696    100% { opacity: 0; display: none; }
4697}
4698
4699/* ★ Vimeo 썸네일 오버레이: 기본은 보임, .thumb-fade 부여 시 천천히 사라짐 */
4700.MAIN_TOP_TOTAL .vimeo_thumb {
4701    opacity: 1;
4702}
4703.MAIN_TOP_TOTAL .vimeo_thumb.thumb-fade {
4704    animation: fadeOutPoster 2s ease-out 2.5s forwards;
4705}
4706
4707/* 첫 슬라이드는 포스터 즉시 숨김 */
4708.MAIN_TOP_TOTAL .swiper-slide:nth-child(1) .video_poster {
4709    animation: none !important;
4710    opacity: 0 !important;
4711}
4712/* 컨트롤 영역 - 슬라이드 위에 오버레이 (텍스트 영역보다 아래) */
4713.MAIN_TOP_TOTAL .control_wrap {
4714    position: absolute;
4715    top: 0;
4716    left: 0;
4717    right: 0;
4718    bottom: 0;
4719    pointer-events: none;
4720    z-index: 5;
4721    overflow: visible;
4722}
4723.MAIN_TOP_TOTAL .control_wrap .contents-container {
4724    position: relative;
4725    height: 100%;
4726    overflow: visible;
4727    pointer-events: none;
4728}
4729.MAIN_TOP_TOTAL .control_wrap .control_inner {
4730    position: relative;
4731    height: 100%;
4732    overflow: visible;
4733    pointer-events: none;
4734}
4735
4736/* ===== 화살표 위치 스타일 ===== */
4737.MAIN_TOP_TOTAL .arrows_wrap {
4738    pointer-events: none;
4739    display: flex;
4740    position: absolute;
4741    top: 0; right: 30px; bottom: 30px; left: 30px;
4742    z-index: 20;
4743    box-sizing: border-box;
4744    --arrow-size: 24px;
4745    --arrow-icon-size: 24px;
4746    justify-content: space-between;
4747    align-items: center;
4748}
4749/* 화살표 버튼 위치 초기화 (flex 레이아웃용) */
4750.MAIN_TOP_TOTAL .arrows_wrap .swiper-button-prev,
4751.MAIN_TOP_TOTAL .arrows_wrap .swiper-button-next {
4752    pointer-events: auto;
4753    position: static !important;
4754    margin: 0 !important;
4755    top: auto !important;
4756    left: auto !important;
4757    right: auto !important;
4758}
4759
4760/* ===== 화살표 반응형 (태블릿) ===== */
4761
4762/* ===== 화살표 반응형 (모바일) ===== */
4763
4764/* ===== 파츠 화면별 출력 여부 (화살표/페이징/플레이바 × PC/태블릿/모바일) =====
4765   ★ 2026-09-04 파츠/데코 탭 "출력" 행. PC=show/hide, 태블릿·모바일 ''=PC동일. 숨김이면 해당 화면대에서 display:none.
4766   브레이크포인트는 파츠 반응형과 동일 (PC ≥1281 / 태블릿 768~1280 / 모바일 ≤767) */
4767
4768/* ===== 페이징 위치 스타일 ===== */
4769.MAIN_TOP_TOTAL .pagination_wrap {
4770    pointer-events: none;
4771    display: flex;
4772    position: absolute;
4773    z-index: 20;
4774    box-sizing: border-box;
4775    top: 0; right: 0; bottom: 30px; left: 0;
4776    justify-content: center;
4777    align-items: flex-end;
4778}
4779/* Swiper 기본 absolute 리셋 → flex 레이아웃 참여 */
4780.MAIN_TOP_TOTAL .pagination_wrap .swiper-pagination {
4781    pointer-events: auto;
4782    position: static !important;
4783    width: auto !important;
4784    bottom: auto !important;
4785    left: auto !important;
4786    top: auto !important;
4787    margin: 0 !important;
4788}
4789
4790/* ===== 페이징 반응형 (태블릿) ===== */
4791
4792/* ===== 페이징 반응형 (모바일) ===== */
4793
4794/* ===== 플레이바 위치 스타일 ===== */
4795.MAIN_TOP_TOTAL .playbar_wrap {
4796    pointer-events: none;
4797    position: absolute;
4798    z-index: 20;
4799    box-sizing: border-box;
4800    display: flex;
4801    justify-content: center;
4802    align-items: flex-end;
4803    top: auto;
4804    right: 0;
4805    bottom: 0px;
4806    left: 0px;
4807}
4808.MAIN_TOP_TOTAL .playbar_wrap .playbar_inner {
4809    pointer-events: auto;
4810}
4811
4812/* ===== 플레이바 반응형 (태블릿) ===== */
4813
4814/* ===== 플레이바 반응형 (모바일) ===== */
4815
4816/* ===== 검색박스 데코 위치 ===== */
4817
4818/* ===== 데코레이션 Inner 래퍼 ===== */
4819.MAIN_TOP_TOTAL .deco_wrap {
4820    position: absolute;
4821    top: 0; left: 0; right: 0; bottom: 0;
4822    z-index: 30;
4823    pointer-events: none;
4824}
4825.MAIN_TOP_TOTAL .deco_wrap .contents-container {
4826    height: 100%;
4827}
4828.MAIN_TOP_TOTAL .deco_wrap .deco_inner {
4829    position: relative;
4830    width: 100%;
4831    height: 100%;
4832}
4833
4834/* ===== 데코레이션 위치 스타일 ===== */
4835.MAIN_TOP_TOTAL .deco_scroll_indicator {
4836    position: absolute;
4837    z-index: 30;
4838    box-sizing: border-box;
4839    display: flex;
4840    flex-direction: column;
4841    align-items: center;
4842    top: auto;
4843    bottom: 30px;
4844    left: 50%;
4845    transform: translateX(-50%);    pointer-events: none;
4846}
4847/* ===== 스크롤 인디케이터 반응형 (태블릿) ===== */
4848/* ===== 스크롤 인디케이터 반응형 (모바일) ===== */
4849
4850
4851
4852/* ===== 토탈(세트) 스킨 위치 스타일 ===== */
4853.MAIN_TOP_TOTAL .control_set {
4854    top: auto;
4855    bottom: 200px;
4856    left: 0;
4857    right: auto;
4858}
4859
4860
4861
4862.MAIN_TOP_TOTAL .slide_bg {
4863    overflow: hidden;
4864}
4865/* 영상 wrapper div: 컨테이너 커버 (min-width + min-height로 빈공간 방지) */
4866.MAIN_TOP_TOTAL .slide_bg > div {
4867    padding: 0 !important;
4868    position: absolute !important;
4869    top: 50% !important;
4870    left: 50% !important;
4871    width: auto !important;
4872    height: auto !important;
4873    min-width: 100%;
4874    min-height: 100%;
4875    aspect-ratio: 16/9;
4876    transform: translate(-50%, -50%) !important;
4877}
4878/* iframe: wrapper 안에서 100% 채움 */
4879.MAIN_TOP_TOTAL .slide_bg iframe {
4880    position: absolute !important;
4881    top: 0 !important;
4882    left: 0 !important;
4883    width: 100% !important;
4884    height: 100% !important;
4885    border: 0 !important;
4886    pointer-events: none;
4887}
4888/* ★ 0927 add-only: 대체이미지 <video>(mp4 직접 재생) — iframe 과 같이 슬라이드 전체 커버 */
4889.MAIN_TOP_TOTAL .slide_bg > video {
4890    position: absolute;
4891    top: 0;
4892    left: 0;
4893    width: 100%;
4894    height: 100%;
4895    object-fit: cover;
4896    object-position: center;
4897    display: block;
4898    pointer-events: none;
4899}
4900/* iframe 직접 삽입 시 (wrapper 없음): 컨테이너 커버 */
4901.MAIN_TOP_TOTAL .slide_bg > iframe {
4902    top: 50% !important;
4903    left: 50% !important;
4904    width: auto !important;
4905    height: auto !important;
4906    min-width: 100%;
4907    min-height: 100%;
4908    aspect-ratio: 16/9;
4909    transform: translate(-50%, -50%) !important;
4910}
4911@media screen and (max-width: 1024px) {
4912    .MAIN_TOP_TOTAL .slide_bg > div {
4913        min-height: 130% !important;
4914    }
4915    .MAIN_TOP_TOTAL .slide_bg > iframe {
4916        min-height: 130% !important;
4917    }
4918}
4919
4920</style>
4921
4922
4923
4924<div class="MAIN_TOP_TOTAL" data-widget-id="MAIN_TOP">
4925            <!-- 슬라이드 영역 -->
4926    <div class="slide_wrap">
4927        
4928<div class="swiper sw_1_swiper" style="--btn-color:#fff;--btn-radius:50px;--btn-gap:15px;--btn-img-top:0;--btn-img-left:0;--btn-font-weight:600;--btn-bg-opacity:1;">
4929    <div class="swiper-wrapper">
4930                                <div class="swiper-slide">
4931                        <!-- 배경 이미지 (대체이미지 지원) -->
4932                                    <div class="slide_bg ">
4933                <img src='/_img/img/SWCF/MAIN_01_n.webp' alt='이미지'/>            </div>
4934                                    
4935            <!-- 텍스트 영역 -->
4936            <div class="slide_text_wrap text_align_left">
4937                <div class="contents-container container-md contentContainer">
4938                    <div class="slide_text_inner">
4939                                                                                                <div class="slide_txt slide_txt2" data-swiper-parallax="-900">
4940                                                        <span class="txt_content"><div class="COM_tit f_lg scale-15 text-left w700 primary letter-05 lh110 mb_30">돌봄이 필요한 순간<br><em class="c-white">지역이 먼저 연결됩니다</em></div></span>
4941                                                    </div>
4942                                                <div class="slide_txt slide_txt3" data-swiper-parallax="-1000">
4943                                                        <span class="txt_content"><div class="COM_tit f_sm scale-12 text-left w500 black letter-05 lh140 b">서초복지돌봄재단은<br>
4944누구나 지역사회 안에서 돌봄을 누릴 수 있도록<br>
4945민·관을 잇는 통합돌봄의 중심이 됩니다.</div></span>
4946                                                    </div>
4947                        
4948                                            </div>
4949                </div>
4950            </div>
4951        </div>
4952                        <div class="swiper-slide">
4953                        <!-- 배경 이미지 (대체이미지 지원) -->
4954                                    <div class="slide_bg ">
4955                <img src='/_img/img/SWCF/MAIN_02_n.webp' alt='이미지'/>            </div>
4956                                    
4957            <!-- 텍스트 영역 -->
4958            <div class="slide_text_wrap text_align_left">
4959                <div class="contents-container container-md contentContainer">
4960                    <div class="slide_text_inner">
4961                                                                                                <div class="slide_txt slide_txt2" data-swiper-parallax="-900">
4962                                                        <span class="txt_content"><div class="COM_tit f_lg scale-15 text-left w700 primary letter-05 lh110 mb_30">서초구 통합돌봄<em class="c-white">의 컨트롤타워 </em></div></span>
4963                                                    </div>
4964                                                <div class="slide_txt slide_txt3" data-swiper-parallax="-1000">
4965                                                        <span class="txt_content"><div class="COM_tit f_sm scale-12 text-left w500  letter-05 lh140 b white">다양해진 복지 수요에 대응하는<br>
4966공공 인프라 확충과 민·관 협력의 중심</div></span>
4967                                                    </div>
4968                        
4969                                            </div>
4970                </div>
4971            </div>
4972        </div>
4973                        <div class="swiper-slide">
4974                        <!-- 배경 이미지 (대체이미지 지원) -->
4975                                    <div class="slide_bg ">
4976                <img src='/_img/img/SWCF/MAIN_03_n.webp' alt='이미지'/>            </div>
4977                                    
4978            <!-- 텍스트 영역 -->
4979            <div class="slide_text_wrap text_align_left">
4980                <div class="contents-container container-md contentContainer">
4981                    <div class="slide_text_inner">
4982                                                                                                <div class="slide_txt slide_txt2" data-swiper-parallax="-900">
4983                                                        <span class="txt_content"><div class="COM_tit f_lg scale-15 text-left w700 black letter-05 lh110 mb_30"><em class="c-primary">지속가능한 돌봄, </em><br>데이터로 연결하다.</div>
4984
4985</span>
4986                                                    </div>
4987                                                <div class="slide_txt slide_txt3" data-swiper-parallax="-1000">
4988                                                        <span class="txt_content"><div class="COM_tit f_sm scale-12 text-left w500 black letter-05 lh140">데이터 기반 통합돌봄 체계로<br>
4989일상 속 실질적인 복지 지원을 실현합니다.</div></span>
4990                                                    </div>
4991                        
4992                                            </div>
4993                </div>
4994            </div>
4995        </div>
4996                    </div>
4997</div>
4998    </div>
4999
5000    <!-- 컨트롤 영역 -->
5001    <div class="control_wrap control_center">
5002                    <!-- 토탈(세트) 스킨 모드 (slide_control_set OFF면 패키지 전체 미출력) -->
5003            
5004            <div class="contents-container container-md contentContainer">
5005                <div class="control_inner">
5006                                            <div class="control_set ctrl_progress_bar" data-delay="3000">
5007    <div class="ctrl_inner">
5008        <!-- 슬라이드별 프로그레스 페이징 -->
5009        <div class="ctrl_paging">
5010                        <div class="paging_item active">
5011                <span class="paging_num">01</span>
5012                <div class="paging_bar"><div class="paging_progress"></div></div>
5013            </div>
5014                        <div class="paging_item">
5015                <span class="paging_num">02</span>
5016                <div class="paging_bar"><div class="paging_progress"></div></div>
5017            </div>
5018                        <div class="paging_item">
5019                <span class="paging_num">03</span>
5020                <div class="paging_bar"><div class="paging_progress"></div></div>
5021            </div>
5022                    </div>
5023
5024        <!-- 화살표 + 재생버튼 -->
5025        <div class="ctrl_buttons">
5026            <button type="button" class="ctrl_btn btn_prev" aria-label="이전"><i class="uil uil-angle-left"></i></button>
5027            <button type="button" class="ctrl_btn btn_next" aria-label="다음"><i class="uil uil-angle-right"></i></button>
5028            <button type="button" class="ctrl_btn btn_pause" aria-label="정지"><span class="pause_bar"></span><span class="pause_bar"></span></button>
5029            <button type="button" class="ctrl_btn btn_play" aria-label="재생" style="display:none;"><i class="uil uil-play"></i></button>
5030        </div>
5031    </div>
5032</div>
5033                                    </div>
5034            </div>
5035            </div>
5036
5037    <!-- 데코레이션 영역 -->
5038        <div class="deco_wrap">
5039        <div class="contents-container container-md contentContainer">
5040            <div class="deco_inner">
5041                <div class="deco_scroll_indicator skin_scroll_bar">
5042    <div class="scroll_text">SCROLL</div>
5043    <div class="scroll_bar">
5044        <span class="scroll_inner_bar"></span>
5045    </div>
5046</div>
5047                                            </div>
5048        </div>
5049    </div>
5050    </div>
5051
5052<!-- Swiper JS (CDN) -->
5053<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
5053
5054<!-- Swiper 초기화 스크립트 -->
5055<script>
5056document.addEventListener('DOMContentLoaded', function() {
5057    var swiperEl = document.querySelector('.MAIN_TOP_TOTAL .swiper');
5058
5059    
5060    if (typeof Swiper !== 'undefined' && document.querySelector('.MAIN_TOP_TOTAL .swiper')) {
5061        var slideCount = 3;
5062
5063        // ★ Lazy iframe 활성화 헬퍼 함수
5064        // 현재 슬라이드의 data-src iframe을 실제 src로 복원 (lazy loading)
5065        function _activateLazyIframe(slideEl) {
5066            if (!slideEl) return;
5067            // ★ 이 슬라이드가 활성화되는 시점에 썸네일 fade-out 시작 (슬라이드별 독립 타이밍)
5068            var _thumbs = slideEl.querySelectorAll('.vimeo_thumb');
5069            _thumbs.forEach(function(t) { t.classList.add('thumb-fade'); });
5070            var lazyIframes = slideEl.querySelectorAll('iframe[data-src]');
5071            lazyIframes.forEach(function(iframe) {
5072                var dataSrc = iframe.getAttribute('data-src');
5073                if (dataSrc && iframe.src !== dataSrc) {
5074                    // iframe의 src를 실제 URL로 설정 (Vimeo/YouTube 로드 시작)
5075                    iframe.src = dataSrc;
5076                    iframe.classList.add('loaded');
5077
5078                    // ★ Vimeo/YouTube 로드 후 포스터 페이드아웃
5079                    // (load 이벤트 대신 readystatechange 모니터링)
5080                    var checkInterval = setInterval(function() {
5081                        try {
5082                            // iframe이 실제로 렌더링되었는지 확인
5083                            var iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
5084                            if (iframeDoc && iframeDoc.readyState === 'complete') {
5085                                clearInterval(checkInterval);
5086                                var posterWrap = iframe.closest('.video_poster_wrap');
5087                                if (posterWrap) {
5088                                    var poster = posterWrap.querySelector('.video_poster');
5089                                    if (poster) {
5090                                        poster.style.opacity = '0';
5091                                    }
5092                                }
5093                            }
5094                        } catch(e) {
5095                            // CORS 제약으로 contentDocument 접근 불가 → 시간 기반 처리
5096                            // 2초 후 자동으로 포스터 페이드아웃
5097                            if (!iframe.classList.contains('vimeo-ready')) {
5098                                setTimeout(function() {
5099                                    var posterWrap = iframe.closest('.video_poster_wrap');
5100                                    if (posterWrap) {
5101                                        var poster = posterWrap.querySelector('.video_poster');
5102                                        if (poster && poster.style.opacity !== '0') {
5103                                            poster.style.opacity = '0';
5104                                        }
5105                                    }
5106                                }, 2000);
5107                                iframe.classList.add('vimeo-ready');
5108                                clearInterval(checkInterval);
5109                            }
5110                        }
5111                    }, 200);
5112                }
5113            });
5114        }
5115
5116                // 토탈 스킨 모드
5117        var mainTopSwiper = new Swiper('.MAIN_TOP_TOTAL .swiper', {
5118            loop: slideCount > 1,
5119            slidesPerView: 1,
5120            spaceBetween: 0,
5121            effect: 'slide',
5122                        speed: 800,
5123            // 터치/스와이프 설정 (최고관리자: 인라인편집 우선, 일반: 터치 활성)
5124            allowTouchMove: true,
5125            simulateTouch: true,
5126            touchRatio: 1,
5127            touchAngle: 45,
5128            grabCursor: true,
5129            threshold: 5,
5130            autoplay: {delay: 3000, disableOnInteraction: false, pauseOnMouseEnter: true},
5131            pagination: false,
5132            on: {
5133                init: function() {
5134                    updateProgressbar(this);
5135                    initControlSet(this);
5136                    // ★ 초기 슬라이드 lazy iframe 활성화
5137                    _activateLazyIframe(this.slides[this.activeIndex]);
5138                },
5139                slideChangeTransitionStart: function() {
5140                    updateProgressbar(this);
5141                    // ★ 슬라이드 변경 시 lazy iframe 활성화
5142                    _activateLazyIframe(this.slides[this.activeIndex]);
5143                },
5144                autoplayStart: function() {
5145                    var controlSet = document.querySelector('.MAIN_TOP_TOTAL .control_set');
5146                    if (controlSet) controlSet.classList.add('autoplay_running');
5147                    updateProgressbar(this);
5148                },
5149                autoplayStop: function() {
5150                    var controlSet = document.querySelector('.MAIN_TOP_TOTAL .control_set');
5151                    if (controlSet) controlSet.classList.remove('autoplay_running');
5152                                        document.querySelectorAll('.MAIN_TOP_TOTAL .ctrl_progress_bar .paging_progress').forEach(function(p) { p.classList.remove('running'); p.style.width = '0%'; });
5153                                    }
5154            }
5155        });
5156        
5157        // 첫 번째 슬라이드 인터랙션 보장 (loop 모드 DOM 재구성 후)
5158        setTimeout(function() {
5159            var active = document.querySelector('.MAIN_TOP_TOTAL .swiper-slide-active');
5160            if (active) {
5161                active.style.pointerEvents = 'auto';
5162                active.style.zIndex = '1';
5163                // 내부 텍스트/버튼 영역 reflow 강제
5164                var textWrap = active.querySelector('.slide_text_wrap');
5165                if (textWrap) void textWrap.offsetHeight;
5166            }
5167        }, 150);
5168
5169        
5170        
5171        // 프로그레스바 업데이트 (슬라이드 변경 시마다 리셋)
5172        function updateProgressbar(swiper) {
5173                        // 토탈 스킨 모드
5174            var controlSet = document.querySelector('.MAIN_TOP_TOTAL .control_set');
5175                        // ctrl_progress_bar - 슬라이드별 프로그레스 바 업데이트
5176            var pagingItems = document.querySelectorAll('.MAIN_TOP_TOTAL .ctrl_progress_bar .paging_item');
5177            var realIdx = swiper.realIndex !== undefined ? swiper.realIndex : swiper.activeIndex;
5178            pagingItems.forEach(function(item, i) {
5179                item.classList.remove('active');
5180                var prog = item.querySelector('.paging_progress');
5181                if (prog) {
5182                    prog.classList.remove('running');
5183                    prog.style.width = '0%';
5184                }
5185            });
5186            if (pagingItems[realIdx]) {
5187                pagingItems[realIdx].classList.add('active');
5188                if (swiper.autoplay.running) {
5189                    var prog = pagingItems[realIdx].querySelector('.paging_progress');
5190                    if (prog) {
5191                        prog.style.width = '';
5192                        void prog.offsetWidth;
5193                        prog.classList.add('running');
5194                    }
5195                }
5196            }
5197                                }
5198
5199                // 토탈 스킨 초기화
5200        function initControlSet(swiper) {
5201            var controlSet = document.querySelector('.MAIN_TOP_TOTAL .control_set');
5202            var btnPrev = document.querySelector('.MAIN_TOP_TOTAL .ctrl_btn.btn_prev');
5203            var btnNext = document.querySelector('.MAIN_TOP_TOTAL .ctrl_btn.btn_next');
5204            var btnPlay = document.querySelector('.MAIN_TOP_TOTAL .ctrl_btn.btn_play');
5205            var btnPause = document.querySelector('.MAIN_TOP_TOTAL .ctrl_btn.btn_pause');
5206
5207            if (btnPrev) {
5208                btnPrev.addEventListener('click', function() { swiper.slidePrev(); });
5209            }
5210            if (btnNext) {
5211                btnNext.addEventListener('click', function() { swiper.slideNext(); });
5212            }
5213            if (btnPlay && btnPause) {
5214                btnPlay.addEventListener('click', function() {
5215                    swiper.autoplay.start();
5216                    btnPlay.style.display = 'none';
5217                    btnPause.style.display = 'flex';
5218                    if (controlSet) controlSet.classList.add('autoplay_running');
5219                    updateProgressbar(swiper);
5220                });
5221                btnPause.addEventListener('click', function() {
5222                    swiper.autoplay.stop();
5223                    btnPause.style.display = 'none';
5224                    btnPlay.style.display = 'flex';
5225                    if (controlSet) controlSet.classList.remove('autoplay_running');
5226                });
5227            }
5228            // 초기 상태
5229            if (controlSet && swiper.autoplay.running) {
5230                controlSet.classList.add('autoplay_running');
5231                if (btnPlay) btnPlay.style.display = 'none';
5232                if (btnPause) btnPause.style.display = 'flex';
5233            }
5234
5235                        // 프로그레스 바 페이징 클릭 이벤트
5236            var pagingItems = document.querySelectorAll('.MAIN_TOP_TOTAL .ctrl_progress_bar .paging_item');
5237            pagingItems.forEach(function(item, i) {
5238                item.addEventListener('click', function() {
5239                    swiper.slideToLoop(i);
5240                });
5241            });
5242            // autoplay delay를 CSS 변수로 전달
5243            var delay = controlSet ? controlSet.getAttribute('data-delay') : null;
5244            if (delay) {
5245                controlSet.style.setProperty('--swiper-autoplay-delay', delay + 'ms');
5246            }
5247                    }
5248        
5249        
5250        
5251        
5252        // YouTube 포스터 fade out (iframe 로드 완료 시)
5253        function initYoutubePoster() {
5254            document.querySelectorAll('.MAIN_TOP_TOTAL .yt_poster_wrap').forEach(function(wrap) {
5255                var iframe = wrap.querySelector('iframe[src*="youtube"]');
5256                var poster = wrap.querySelector('.video_poster');
5257                if (!iframe || !poster) return;
5258                iframe.addEventListener('load', function() {
5259                    setTimeout(function() {
5260                        poster.classList.add('loaded');
5261                    }, 800);
5262                });
5263            });
5264        }
5265
5266        
5267        // YouTube 포스터 초기화 (Vimeo 유무와 무관하게 독립 동작)
5268        if (document.querySelector('.MAIN_TOP_TOTAL .yt_poster_wrap')) {
5269            initYoutubePoster();
5270        }
5271
5272    } else {
5273        console.warn('Swiper library not found. Please include Swiper JS.');
5274    }
5275
5276    });
5277</script>
5277
5278
5279    <div id="block-container">
5280    <div class="block_box view" id="block_1">
5281<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_02/resources/css/style.css" />
5282
5283<div class="MAIN_02" id="" style="overflow-x: hidden ;z-index: 99; background-color: #FFF">
5284 
5285
5286
5287<div class="MAIN_bbstab3 MAIN_bbstab3 com_f " style="position: relative;">
5288
5289  <div class="contents-container container-md contentContainer">
5290
5291    <!-- 전체 설정 뱃지 (position absolute 우측 상단) -->
5292    
5293    <!-- 데코 영역 LEFT - 이미지 (왼쪽 확장용) -->
5294    
5295    <!-- 위젯 본문 (탭 영역) - z-index 높게, 데코 영역 위에 표시 -->
5296    <div class="tab_content_wrap" style="position: relative; z-index: 1;">
5297    
5298
5299<div class="sub_stit sub_stit2"><div class="COM_tit f_lg scale-12 text-center w500 lh110 mb_10">서초복지돌봄재단의 <em class="w800">오늘과 내일</em>을 전합니다.</div></div><div class="sub_stit sub_stit3"><div class="COM_tit f_sm  scale-12 gray666 text-center w500 letter-05 lh120">재단의 주요 소식부터 복지 정책, 사업 추진 현황까지 구민 여러분과 공유합니다.</div></div>
5300<style>
5301/* 숨김 보장 — 기능 필수 */
5302[hidden]{display:none !important;}
5303</style>
5304
5305<div class="tab_area tabs-wrapper scroll-mask bbs-tab-wrapper" style="--dynamic-bg-color: var(--sub-color10);">
5306
5307
5308  <button class="arrow left" type="button" onclick="scrollTabs_bbstabs_6ac8434705e93(-1)" aria-label="이전 탭 보기"><i class="uis uis-angle-left"></i></button>
5309
5310  <!-- 탭 리스트 -->
5311  <div class="tabs scroll-hidden"
5312       id="tabsContainer_bbstabs_6ac8434705e93"
5313       role="tablist"
5314       aria-label="게시판 탭"
5315       aria-orientation="horizontal">
5316          <div class="tab-wrapper">
5317        <button
5318          class="tab tab-all on"          id="bbstabs_6ac8434705e93_tab_0"
5319          type="button"
5320          role="tab"
5321          aria-selected="true"
5322          aria-controls="bbstabs_6ac8434705e93_panel_0"
5323          tabindex="0"
5324          data-index="0">
5325          <span class="tab-label">전체</span>
5326                            </button>
5327              </div>
5328          <div class="tab-wrapper">
5329        <button
5330          class="tab has-label-color"
5331          id="bbstabs_6ac8434705e93_tab_1"
5332          type="button"
5333          role="tab"
5334          aria-selected="false"
5335          aria-controls="bbstabs_6ac8434705e93_panel_1"
5336          tabindex="-1"
5337          data-index="1"
5338          data-label-color="" style="--tab-label-color: var(--primary, #333);">
5339          <span class="tab-label">재단소식</span>
5340                    <a href="/bbs/board.php?bo_table=SWCF_4010" class="morebtn" onclick="event.stopPropagation();"><i class="uis uis-plus-circle"></i></a>
5341                  </button>
5342              </div>
5343          <div class="tab-wrapper">
5344        <button
5345          class="tab has-label-color"
5346          id="bbstabs_6ac8434705e93_tab_2"
5347          type="button"
5348          role="tab"
5349          aria-selected="false"
5350          aria-controls="bbstabs_6ac8434705e93_panel_2"
5351          tabindex="-1"
5352          data-index="2"
5353          data-label-color="" style="--tab-label-color: var(--primary, #333);">
5354          <span class="tab-label">언론보도</span>
5355                    <a href="/bbs/board.php?bo_table=SWCF_4040" class="morebtn" onclick="event.stopPropagation();"><i class="uis uis-plus-circle"></i></a>
5356                  </button>
5357              </div>
5358      </div>
5359
5360  <button class="arrow right" type="button" onclick="scrollTabs_bbstabs_6ac8434705e93(1)" aria-label="다음 탭 보기"><i class="uis uis-angle-right"></i></button>
5361
5362      <div
5363      class="tab-content bbs-tab-content active"
5364      id="bbstabs_6ac8434705e93_panel_0"
5365      role="tabpanel"
5366      aria-labelledby="bbstabs_6ac8434705e93_tab_0"
5367            tabindex="-1"
5368      data-index="0"
5369      data-loaded="1">
5370
5371      <div class="bbs_swiper_wrap">
5372        <div class="content-swiper">
5373          <div class="swiper-wrapper">
5374          <div class="swiper-slide SWCF_totalnotice">
5375  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=195" class="card_item">
5376    <!-- 이미지 영역 -->
5377    <div class="card_img_wrap">
5378      <div class="card_img">
5379        <div class="card_img_inner">
5380          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-3067735022_1791339790.2957_800x0.jpg" alt="[10월의 한편시네마 안내]">
5381        </div>
5382      </div>
5383      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5384    </div>
5385    <!-- 텍스트 영역 -->
5386    <div class="card_info">
5387      <span class="card_label">재단소식</span>
5388      <strong class="card_title">[10월의 한편시네마 안내]</strong>
5389      <p class="card_desc"></p>
5390    </div>
5391  </a>
5392</div>
5393<div class="swiper-slide SWCF_totalnotice">
5394  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=193" class="card_item">
5395    <!-- 이미지 영역 -->
5396    <div class="card_img_wrap">
5397      <div class="card_img">
5398        <div class="card_img_inner">
5399          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-3067735022_1791338784.0898_800x0.jpg" alt="2026년 주민참여복지아카데미 2회 「나눌 수 없는 사람은 없다…">
5400        </div>
5401      </div>
5402      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5403    </div>
5404    <!-- 텍스트 영역 -->
5405    <div class="card_info">
5406      <span class="card_label">재단소식</span>
5407      <strong class="card_title">2026년 주민참여복지아카데미 2회 「나눌 수 없는 사람은 없다…</strong>
5408      <p class="card_desc">「나눌 수 없는 사람은 없다」주민참여복지아카데미 2회 운영&nbsp;서초복지돌봄재단은 10월 6일(화), 지역주민과 함께하는「2026 주민참여복…</p>
5409    </div>
5410  </a>
5411</div>
5412<div class="swiper-slide SWCF_totalnotice">
5413  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4040&amp;wr_id=63" class="card_item">
5414    <!-- 이미지 영역 -->
5415    <div class="card_img_wrap">
5416      <div class="card_img">
5417        <div class="card_img_inner">
5418          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-4f1300c1f98dfebe7f5de826fcbae861_1791271537_165_800x0.jpg" alt="[서울신문 외 4곳] 독거노인 건강 지키는 서초 &#039;AI 반려로봇…">
5419        </div>
5420      </div>
5421      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5422    </div>
5423    <!-- 텍스트 영역 -->
5424    <div class="card_info">
5425      <span class="card_label">언론보도</span>
5426      <strong class="card_title">[서울신문 외 4곳] 독거노인 건강 지키는 서초 'AI 반려로봇…</strong>
5427      <p class="card_desc">독거노인 건강 지키는 서초 'AI 반려로봇'&nbsp;| 12월까지 스마트 통합돌봄 시범 운영서울 서초구(구청장 전성수)는 올 12월까지 'AI…</p>
5428    </div>
5429  </a>
5430</div>
5431<div class="swiper-slide SWCF_totalnotice">
5432  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=191" class="card_item">
5433    <!-- 이미지 영역 -->
5434    <div class="card_img_wrap">
5435      <div class="card_img">
5436        <div class="card_img_inner">
5437          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-aeb45c208b0113cb7709837d0d569b12_1790829666_7816_800x0.jpg" alt="[LOUNGE FOR US : 라운지 4 어스] &#039;세대 통합 공…">
5438        </div>
5439      </div>
5440      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5441    </div>
5442    <!-- 텍스트 영역 -->
5443    <div class="card_info">
5444      <span class="card_label">재단소식</span>
5445      <strong class="card_title">[LOUNGE FOR US : 라운지 4 어스] '세대 통합 공…</strong>
5446      <p class="card_desc">[LOUNGE FOR US : 라운지4어스] 세대를 잇는 따뜻한 만남, 함께 만드는 공간나눔아이들의 웃음소리와 어르신들의 따뜻한 이야기가 「라운…</p>
5447    </div>
5448  </a>
5449</div>
5450<div class="swiper-slide SWCF_totalnotice">
5451  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=189" class="card_item">
5452    <!-- 이미지 영역 -->
5453    <div class="card_img_wrap">
5454      <div class="card_img">
5455        <div class="card_img_inner">
5456          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-93f2e226da22726a6c55729e476a60a5_1790828665_3266_800x0.jpg" alt="2026년 제3차 서초구 나눔네트워크 지역위원회 개최">
5457        </div>
5458      </div>
5459      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5460    </div>
5461    <!-- 텍스트 영역 -->
5462    <div class="card_info">
5463      <span class="card_label">재단소식</span>
5464      <strong class="card_title">2026년 제3차 서초구 나눔네트워크 지역위원회 개최</strong>
5465      <p class="card_desc">2026년 제3차 서초구 나눔네트워크 지역위원회 개최서초복지돌봄재단은 서초구 사랑의열매 나눔네트워크사업을 통해 지역 내 모금과 배분이 선순환되는…</p>
5466    </div>
5467  </a>
5468</div>
5469<div class="swiper-slide SWCF_totalnotice">
5470  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=187" class="card_item">
5471    <!-- 이미지 영역 -->
5472    <div class="card_img_wrap">
5473      <div class="card_img">
5474        <div class="card_img_inner">
5475          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-f11110f886a26e6fb8c193631334cb99_1790821494_9711_800x0.jpg" alt="2026년 주민참여복지아카데미 1회 「기후위기와 우리의 미래」 …">
5476        </div>
5477      </div>
5478      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5479    </div>
5480    <!-- 텍스트 영역 -->
5481    <div class="card_info">
5482      <span class="card_label">재단소식</span>
5483      <strong class="card_title">2026년 주민참여복지아카데미 1회 「기후위기와 우리의 미래」 …</strong>
5484      <p class="card_desc">2026년 주민참여복지아카데미 1회 「기후위기와 우리의 미래」 운영&nbsp;서초복지돌봄재단은 주민들이 우리 동네와 지역사회에 조금 더 관심을 …</p>
5485    </div>
5486  </a>
5487</div>
5488<div class="swiper-slide SWCF_totalnotice">
5489  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4040&amp;wr_id=61" class="card_item">
5490    <!-- 이미지 영역 -->
5491    <div class="card_img_wrap">
5492      <div class="card_img">
5493        <div class="card_img_inner">
5494          <img src="https://seochowcf.or.kr/data/editor/2610/thumb-aeb45c208b0113cb7709837d0d569b12_1790818063_9183_800x0.jpg" alt="[서초구소식지 10월호] &#039;착한 서초코인&#039;, 쌓이는 혜택 이어지…">
5495        </div>
5496      </div>
5497      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5498    </div>
5499    <!-- 텍스트 영역 -->
5500    <div class="card_info">
5501      <span class="card_label">언론보도</span>
5502      <strong class="card_title">[서초구소식지 10월호] '착한 서초코인', 쌓이는 혜택 이어지…</strong>
5503      <p class="card_desc">&nbsp;출처: 서초구청&nbsp;https://www.seocho.go.kr/site/seocho/main.do&nbsp;</p>
5504    </div>
5505  </a>
5506</div>
5507<div class="swiper-slide SWCF_totalnotice">
5508  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=185" class="card_item">
5509    <!-- 이미지 영역 -->
5510    <div class="card_img_wrap">
5511      <div class="card_img">
5512        <div class="card_img_inner">
5513          <img src="https://seochowcf.or.kr/data/editor/2609/thumb-5db3bfa414c009caff4b0adea69b87b1_1790569804_1936_800x0.jpg" alt="나눔네트워크 배분 온(溫)나눔 8월 소식 ㅣ 서초에 번지는 따뜻…">
5514        </div>
5515      </div>
5516      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5517    </div>
5518    <!-- 텍스트 영역 -->
5519    <div class="card_info">
5520      <span class="card_label">재단소식</span>
5521      <strong class="card_title">나눔네트워크 배분 온(溫)나눔 8월 소식 ㅣ 서초에 번지는 따뜻…</strong>
5522      <p class="card_desc">&nbsp; #서초구 #나눔네트워크 #나눔소식 #8월의기록 #서초복지 #따뜻한동행 #기부현황</p>
5523    </div>
5524  </a>
5525</div>
5526<div class="swiper-slide SWCF_totalnotice">
5527  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=183" class="card_item">
5528    <!-- 이미지 영역 -->
5529    <div class="card_img_wrap">
5530      <div class="card_img">
5531        <div class="card_img_inner">
5532          <img src="https://seochowcf.or.kr/data/editor/2609/thumb-e6516be9629c9e8d2e6d9435a51b1794_1790569146_5342_800x0.jpg" alt="2026년 사회복지 종사자 힐링 동아리 지원사업 [번아웃(Bur…">
5533        </div>
5534      </div>
5535      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5536    </div>
5537    <!-- 텍스트 영역 -->
5538    <div class="card_info">
5539      <span class="card_label">재단소식</span>
5540      <strong class="card_title">2026년 사회복지 종사자 힐링 동아리 지원사업 [번아웃(Bur…</strong>
5541      <p class="card_desc">신한은행과 함께하는 사회복지 종사자 힐링 동아리 지원사업 8월 카드뉴스: 서초복지커넥티드</p>
5542    </div>
5543  </a>
5544</div>
5545<div class="swiper-slide SWCF_totalnotice">
5546  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4010&amp;wr_id=181" class="card_item">
5547    <!-- 이미지 영역 -->
5548    <div class="card_img_wrap">
5549      <div class="card_img">
5550        <div class="card_img_inner">
5551          <img src="https://seochowcf.or.kr/data/editor/2609/thumb-e6516be9629c9e8d2e6d9435a51b1794_1790569009_2162_800x0.jpg" alt="2026년 사회복지 종사자 힐링 동아리 지원사업 [번아웃(Bur…">
5552        </div>
5553      </div>
5554      <span class="card_more"><i class="uil uil-arrow-right"></i></span>
5555    </div>
5556    <!-- 텍스트 영역 -->
5557    <div class="card_info">
5558      <span class="card_label">재단소식</span>
5559      <strong class="card_title">2026년 사회복지 종사자 힐링 동아리 지원사업 [번아웃(Bur…</strong>
5560      <p class="card_desc">신한은행과 함께하는 사회복지 종사자 힐링 동아리 지원사업 7월 카드뉴스: 쉼표&nbsp;</p>
5561    </div>
5562  </a>
5563</div>
5564
5565          </div>
5566        </div>
5567  <!--      <div class="swiper-nav-bottom">
5568          <div class="swiper-button-prev"></div>
5569          <div class="swiper-button-next"></div>
5570          <div class="swiper-scrollbar"></div>
5571        </div>-->
5572      </div>
5573    </div>
5574      <div
5575      class="tab-content bbs-tab-content"
5576      id="bbstabs_6ac8434705e93_panel_1"
5577      role="tabpanel"
5578      aria-labelledby="bbstabs_6ac8434705e93_tab_1"
5579      hidden      tabindex="-1"
5580      data-index="1"
5581      data-loaded="0">
5582
5583      <div class="bbs_swiper_wrap">
5584        <div class="content-swiper">
5585          <div class="swiper-wrapper">
5586          <div class="swiper-slide lazy-placeholder"><div class="loading-spinner"></div></div>          </div>
5587        </div>
5588 <!--       <div class="swiper-nav-bottom">
5589          <div class="swiper-button-prev"></div>
5590          <div class="swiper-button-next"></div>
5591          <div class="swiper-scrollbar"></div>
5592        </div>-->
5593      </div>
5594    </div>
5595      <div
5596      class="tab-content bbs-tab-content"
5597      id="bbstabs_6ac8434705e93_panel_2"
5598      role="tabpanel"
5599      aria-labelledby="bbstabs_6ac8434705e93_tab_2"
5600      hidden      tabindex="-1"
5601      data-index="2"
5602      data-loaded="0">
5603
5604      <div class="bbs_swiper_wrap">
5605        <div class="content-swiper">
5606          <div class="swiper-wrapper">
5607          <div class="swiper-slide lazy-placeholder"><div class="loading-spinner"></div></div>          </div>
5608        </div>
5609 <!--       <div class="swiper-nav-bottom">
5610          <div class="swiper-button-prev"></div>
5611          <div class="swiper-button-next"></div>
5612          <div class="swiper-scrollbar"></div>
5613        </div>-->
5614      </div>
5615    </div>
5616  </div>
5617
5618<!-- Lazy Load용 탭 데이터 -->
5619<script>
5620window.bbsTabData_bbstabs_6ac8434705e93 = [{"bbs":"SWCF_totalnotice@@@SWCF_4010,SWCF_4040","loaded":true},{"bbs":"SWCF_totalnotice@@@SWCF_4010","loaded":false},{"bbs":"SWCF_totalnotice@@@SWCF_4040","loaded":false}];
5621</script>
5621
5622
5623<style>
5624/* 로딩 스피너 */
5625.lazy-placeholder {
5626  display: flex;
5627  justify-content: center;
5628  align-items: center;
5629  min-height: 40px;
5630  width: 100%;
5631}
5632.loading-spinner {
5633  width: 40px;
5634aspect-ratio:1 / 1;
5635  border-radius: 50%;
5636  animation: spin 1s linear infinite;
5637}
5638@keyframes spin {
5639  0% { transform: rotate(0deg); }
5640  100% { transform: rotate(360deg); }
5641}
5642</style>
5643
5644<script>
5645// 좌우 스크롤 버튼
5646function scrollTabs_bbstabs_6ac8434705e93(dir) {
5647  var c = document.getElementById('tabsContainer_bbstabs_6ac8434705e93');
5648  if (!c) return;
5649  var amt = 120;
5650  if (typeof c.scrollBy === 'function') {
5651    c.scrollBy({left: dir * amt, behavior: 'smooth'});
5652  } else {
5653    c.scrollLeft += dir * amt;
5654  }
5655}
5656
5657// 모바일 터치 스크롤 지원
5658(function() {
5659  var container = document.getElementById('tabsContainer_bbstabs_6ac8434705e93');
5660  if (!container) return;
5661
5662  var startX = 0;
5663  var scrollLeft = 0;
5664  var isDown = false;
5665
5666  container.addEventListener('touchstart', function(e) {
5667    isDown = true;
5668    startX = e.touches[0].pageX - container.offsetLeft;
5669    scrollLeft = container.scrollLeft;
5670  }, {passive: true});
5671
5672  container.addEventListener('touchmove', function(e) {
5673    if (!isDown) return;
5674    var x = e.touches[0].pageX - container.offsetLeft;
5675    var walk = (x - startX) * 1.5;
5676    container.scrollLeft = scrollLeft - walk;
5677  }, {passive: true});
5678
5679  container.addEventListener('touchend', function() {
5680    isDown = false;
5681  }, {passive: true});
5682})();
5683
5684document.addEventListener('DOMContentLoaded', function(){
5685  var uid       = "bbstabs_6ac8434705e93";
5686  var container = document.getElementById('tabsContainer_' + uid);
5687  if (!container) return;
5688
5689  var tabs = Array.prototype.slice.call(container.querySelectorAll('[role="tab"]'));
5690  if (!tabs.length) return;
5691
5692  var panels = tabs.map(function(tab){
5693    var id = tab.getAttribute('aria-controls');
5694    return id ? document.getElementById(id) : null;
5695  }).filter(function(p){ return !!p; });
5696
5697  function firstFocusable(el){
5698    if(!el) return null;
5699    var sel = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';
5700    var n = el.querySelectorAll(sel);
5701    return n.length ? n[0] : null;
5702  }
5703
5704  function ensureTabVisible(tabEl){
5705    if(!tabEl) return;
5706    // 탭 컨테이너 내에서만 스크롤 (페이지 전체 밀림 방지)
5707    var tabsContainer = document.getElementById('tabsContainer_' + uid);
5708    if (!tabsContainer) return;
5709
5710    var tabWrapper = tabEl.closest('.tab-wrapper') || tabEl;
5711    var containerRect = tabsContainer.getBoundingClientRect();
5712    var tabRect = tabWrapper.getBoundingClientRect();
5713
5714    // 탭이 컨테이너 밖에 있는지 체크
5715    if (tabRect.left < containerRect.left) {
5716      // 왼쪽으로 벗어남 - 왼쪽으로 스크롤
5717      var scrollAmount = tabRect.left - containerRect.left - 20;
5718      tabsContainer.scrollBy({left: scrollAmount, behavior: 'smooth'});
5719    } else if (tabRect.right > containerRect.right) {
5720      // 오른쪽으로 벗어남 - 오른쪽으로 스크롤
5721      var scrollAmount = tabRect.right - containerRect.right + 20;
5722      tabsContainer.scrollBy({left: scrollAmount, behavior: 'smooth'});
5723    }
5724  }
5725
5726  function setSelected(tabEl, on){
5727    tabEl.classList.toggle('on', !!on);
5728    tabEl.setAttribute('aria-selected', on ? 'true' : 'false');
5729    tabEl.setAttribute('tabindex', on ? '0' : '-1');
5730  }
5731
5732  function showPanel(panelEl, on){
5733    if (on) { panelEl.removeAttribute('hidden'); panelEl.classList.add('active'); }
5734    else { panelEl.setAttribute('hidden',''); panelEl.classList.remove('active'); }
5735  }
5736
5737  function buildURL(n1){
5738    try { var u = new URL(location.href); u.searchParams.set('tabon', n1); return u.toString(); }
5739    catch(e){ var q=location.search.replace(/([?&])tabon=\d+/,'').replace(/^\?$/,''); var sep=q?'&':''; return location.pathname+'?'+q+sep+'tabon='+n1+location.hash; }
5740  }
5741
5742  function pushURL(n1){ if (history && history.pushState) history.pushState({tabon:n1},'',buildURL(n1)); }
5743  function replaceURL(n1){ if (history && history.replaceState) history.replaceState({tabon:n1},'',buildURL(n1)); }
5744
5745  // Swiper 초기화 함수
5746  function initSwiper(panelEl) {
5747    var swiperContainer = panelEl.querySelector('.content-swiper');
5748    if (!swiperContainer) return;
5749
5750    // 로딩 플레이스홀더가 있으면 초기화 안함
5751    if (swiperContainer.querySelector('.lazy-placeholder')) return;
5752
5753    // 빈 슬라이드 감지 - :has() 미지원 브라우저용 클래스 추가
5754    var swiperWrap = panelEl.querySelector('.bbs_swiper_wrap');
5755    var emptySlide = swiperContainer.querySelector('.empty-slide');
5756    if (swiperWrap && emptySlide) {
5757      swiperWrap.classList.add('has-empty-slide');
5758      return; // 빈 슬라이드면 Swiper 초기화 안함
5759    }
5760
5761    // 이미 초기화된 Swiper가 있으면 업데이트만 수행
5762    if (swiperContainer.swiper) {
5763      setTimeout(function() {
5764        swiperContainer.swiper.update();
5765      }, 50);
5766      return;
5767    }
5768
5769    if (typeof Swiper !== 'undefined') {
5770      var swiper = new Swiper(swiperContainer, {
5771        slidesPerView: 4,
5772        slidesPerGroup: 1,
5773        spaceBetween: 24,
5774        speed: 400,
5775        observer: true,
5776        observeParents: true,
5777        watchSlidesProgress: true,
5778        resistanceRatio: 0,
5779        navigation: {
5780          prevEl: panelEl.querySelector('.swiper-button-prev'),
5781          nextEl: panelEl.querySelector('.swiper-button-next'),
5782        },
5783        scrollbar: {
5784          el: panelEl.querySelector('.swiper-scrollbar'),
5785          draggable: true,
5786          hide: false,
5787          snapOnRelease: true
5788        },
5789        breakpoints: {
5790          0: { slidesPerView: 1, slidesPerGroup: 1, spaceBetween: 15 },
5791          768: { slidesPerView: 3, slidesPerGroup: 1, spaceBetween: 20 },
5792          1024: { slidesPerView: 4, slidesPerGroup: 1, spaceBetween: 24 }
5793        },
5794        on: {
5795          init: function() {
5796            var self = this;
5797            setTimeout(function() {
5798              self.update();
5799            }, 100);
5800          }
5801        }
5802      });
5803    }
5804  }
5805
5806  // AJAX로 탭 콘텐츠 로드
5807  function loadTabContent(panelEl, idx, callback) {
5808    var tabData = window['bbsTabData_' + uid];
5809    if (!tabData || !tabData[idx]) {
5810      if (callback) callback();
5811      return;
5812    }
5813
5814    var bbs = tabData[idx].bbs;
5815    if (!bbs || bbs.indexOf('@@@') === -1) {
5816      if (callback) callback();
5817      return;
5818    }
5819
5820    var parts = bbs.split('@@@');
5821    if (parts.length !== 2) {
5822      if (callback) callback();
5823      return;
5824    }
5825
5826    var skin = parts[0].trim();
5827    var boards = parts[1].trim();
5828
5829    // AJAX 요청
5830    var xhr = new XMLHttpRequest();
5831    xhr.open('POST', '/theme/hayan/mobile/skin/board/hayan_total/ajax_latest_load.php', true);
5832    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
5833    xhr.onreadystatechange = function() {
5834      if (xhr.readyState === 4) {
5835        var swiperWrapper = panelEl.querySelector('.swiper-wrapper');
5836        if (swiperWrapper) {
5837          if (xhr.status === 200 && xhr.responseText) {
5838            swiperWrapper.innerHTML = xhr.responseText;
5839          } else {
5840            swiperWrapper.innerHTML = '<div class="swiper-slide"><p class="empty_li">콘텐츠를 불러올 수 없습니다.</p></div>';
5841          }
5842        }
5843        panelEl.setAttribute('data-loaded', '1');
5844        if (callback) callback();
5845      }
5846    };
5847    xhr.send('skin=' + encodeURIComponent(skin) + '&boards=' + encodeURIComponent(boards));
5848  }
5849
5850  // 핵심: 활성화
5851  function activateByIndex(idx, opts){
5852    opts = opts || {};
5853    if (idx < 0 || idx >= tabs.length) idx = 0;
5854
5855    for (var i=0;i<tabs.length;i++) setSelected(tabs[i], i===idx);
5856    for (var j=0;j<panels.length;j++) showPanel(panels[j], j===idx);
5857
5858    // 활성화된 패널 처리
5859    if (panels[idx]) {
5860      var isLoaded = panels[idx].getAttribute('data-loaded') === '1';
5861
5862      if (!isLoaded) {
5863        // 아직 로드되지 않은 탭 - AJAX로 로드
5864        loadTabContent(panels[idx], idx, function() {
5865          initSwiper(panels[idx]);
5866        });
5867      } else {
5868        // 이미 로드된 탭 - Swiper만 초기화
5869        initSwiper(panels[idx]);
5870      }
5871    }
5872
5873    if (opts.updateURL === 'push') pushURL(idx+1);
5874    else if (opts.updateURL === 'replace') replaceURL(idx+1);
5875
5876    if (!opts.skipScroll) ensureTabVisible(tabs[idx]);
5877
5878    if (!opts.skipFocus) {
5879      if (opts.moveFocusToPanel) {
5880        var f = firstFocusable(panels[idx]); (f || panels[idx]).focus();
5881      } else {
5882        tabs[idx].focus();
5883      }
5884    }
5885  }
5886
5887  // 이벤트 바인딩
5888  tabs.forEach(function(tab, i){
5889    tab.addEventListener('click', function(){ activateByIndex(i, {updateURL:'push'}); });
5890    tab.addEventListener('keydown', function(ev){
5891      var key = ev.key || ev.keyCode, str = (typeof key === 'string');
5892      if (key===37 || (str && key==='ArrowLeft')) {
5893        var p = (i-1+tabs.length)%tabs.length; tabs[p].focus(); ensureTabVisible(tabs[p]); ev.preventDefault();
5894      } else if (key===39 || (str && key==='ArrowRight')) {
5895        var n = (i+1)%tabs.length; tabs[n].focus(); ensureTabVisible(tabs[n]); ev.preventDefault();
5896      } else if (key===36 || (str && key==='Home')) {
5897        tabs[0].focus(); ensureTabVisible(tabs[0]); ev.preventDefault();
5898      } else if (key===35 || (str && key==='End')) {
5899        tabs[tabs.length-1].focus(); ensureTabVisible(tabs[tabs.length-1]); ev.preventDefault();
5900      } else if (key===13 || key===32 || (str && (key==='Enter' || key===' '))) {
5901        activateByIndex(i, {updateURL:'push', moveFocusToPanel:true}); ev.preventDefault();
5902      }
5903    });
5904  });
5905
5906  // 뒤/앞으로 복원
5907  window.addEventListener('popstate', function(e){
5908    var n1 = 0;
5909    if (e && e.state && typeof e.state.tabon !== 'undefined') n1 = parseInt(e.state.tabon, 10);
5910    else {
5911      try { var u=new URL(location.href); n1 = parseInt(u.searchParams.get('tabon') || '0',10); } catch(_){}
5912    }
5913    if (!isNaN(n1) && n1>0 && n1<=tabs.length) activateByIndex(n1-1, {skipScroll:false});
5914  });
5915
5916  // 초기 진입
5917  (function init(){
5918    var idx = 0;
5919    var hasTabon = false;
5920    try {
5921      var u = new URL(location.href);
5922      var t = parseInt(u.searchParams.get('tabon') || '0', 10);
5923      hasTabon = u.searchParams.has('tabon');
5924      if (!isNaN(t) && t>0 && t<=tabs.length) idx = t-1;
5925      else {
5926        for (var i=0;i<tabs.length;i++){ if (tabs[i].getAttribute('aria-selected')==='true'){ idx=i; break; } }
5927      }
5928    } catch(e){}
5929
5930    activateByIndex(idx, hasTabon ? {updateURL:'replace'} : {skipScroll:true, skipFocus:true});
5931
5932    if (hasTabon) {
5933      window.addEventListener('load', function(){
5934        var active = 0;
5935        for (var i=0;i<tabs.length;i++){ if (tabs[i].getAttribute('aria-selected')==='true'){ active=i; break; } }
5936        ensureTabVisible(tabs[active]);
5937      });
5938    }
5939  })();
5940});
5941</script>
5941
5942    </div>
5943
5944  </div>
5945
5946  <!-- 데코 영역 RIGHT - 텍스트 (오른쪽 확장용) - contents-container 밖 -->
5947  
5948</div>
5949</div>
5950<script src="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_02/resources/js/style.js"></script>
5950
5951</div><div class="block_box view" id="block_2">
5952<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_03/resources/css/style.css" />
5953
5954<div class="MAIN_03" id="" style="overflow-x: hidden ;z-index: 99; background-color: #FFF">
5955 <div class="MAIN_SWCF_3 MAIN_SWCF_3 com_f " id="ID_MAIN_SWCF_3">
5956  <div class="contents-container container-full">
5957
5958      <!-- 위젯 구간-->
5959
5960<div class="slide-area">
5961  <div class="swiper">
5962    <div class="swiper-wrapper">
5963                  <div class="swiper-slide">
5964                <div class="imageset">
5965                    <span class="imageset-alt imageset-alt-pc"><img src='/data/widget/img/1781704182_0_0.webp' alt='이미지'/></span>
5966        </div>
5967                <div class="textset">
5968          <strong class="textset-tit">Connecting Local <br>
5969Welfare Resources</strong>
5970          <div class="textset-wrap">
5971            <span class="textset-subtit h3">전 세대를 아우르는 개방형 복지 커뮤니티</span>
5972            <p class="textset-desc">지역 내 다양한 복지자원을 유기적으로 연계하여
5973돌봄이 개인이나 특정 기관에 머무르지 않고<br>
5974
5975지역사회 전체에서 작동하는 돌봄 생태계를 조성합니다.</p>
5976          </div>
5977        </div>
5978      </div>
5979                  <div class="swiper-slide">
5980                <div class="imageset">
5981                    <span class="imageset-alt imageset-alt-pc"><img src='/data/widget/img/1781704273_1_0.webp' alt='이미지'/></span>
5982        </div>
5983                <div class="textset">
5984          <strong class="textset-tit">Data-Driven Integrated <br>
5985Care Support</strong>
5986          <div class="textset-wrap">
5987            <span class="textset-subtit h3">복지 데이터를 기반으로 한 통합돌봄 지원체계를 구축</span>
5988            <p class="textset-desc">분절된 복지 정보를 연계·분석해
5989대상자 중심의 맞춤형 돌봄이 가능하도록 하고,<br>
5990
5991지속가능한 복지 정책 수립과 서비스 개선을 통해
5992지역사회 전체의 돌봄 역량을 강화합니다.</p>
5993          </div>
5994        </div>
5995      </div>
5996                </div>
5997    <div class="swiper-control">
5998      <div class="paging">
5999        <span class="curr"></span>
6000        <span class="blind">페이지</span>
6001        <div class="swiper-pagination"></div>
6002        <span class="blind">전체</span>
6003        <span class="total"></span>
6004      </div>
6005      <div class="btn-wrap">
6006        <button type="button" class="btn-prev ff-ico ti-chevron-left">
6007          <span class="blind">이전</span>
6008        </button>
6009        <button type="button" class="btn-next ff-ico ti-chevron-right">
6010          <span class="blind">다음</span>
6011        </button>
6012        <div class="swiper-progress">
6013          <button type="button" class="pause active ff-ico ti-pause-rect">
6014            <span class="blind">정지</span>
6015          </button>
6016          <button type="button" class="play ff-ico ti-play-rect">
6017            <span class="blind">재생</span>
6018          </button>
6019        </div>
6020      </div>
6021    </div>
6022  </div>
6023</div>
6024	  <!-- //위젯 구간-->
6025</div>
6026</div>
6027<script src="https://seochowcf.or.kr/data/widget/MAIN_SWCF_3/resources/js/style.js"></script>
6027
6028</div>
6029<script src="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_03/resources/js/style.js"></script>
6029
6030</div><div class="block_box view" id="block_3">
6031<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_07/resources/css/style.css" />
6032<div class="MAIN_07">
6033	  <div class="contents-container container-md  contentContainer ">
6034        <div class="grid_in">
6035  <div class="fl">
6036    
6037
6038
6039<div class="MAIN_SWCF_7_1 MAIN_SWCF_7_1 com_f " style="position: relative;">
6040
6041    <!-- 전체 설정 뱃지 (position absolute 우측 상단) -->
6042    
6043    <!-- 데코 영역 LEFT - 이미지 (왼쪽 확장용) -->
6044    
6045    <!-- 위젯 본문 (탭 영역) - z-index 높게, 데코 영역 위에 표시 -->
6046    <div class="tab_content_wrap" style="position: relative; z-index: 1;">
6047    
6048
6049
6050<style>
6051/* 숨김 보장 — 기능 필수 */
6052[hidden]{display:none !important;}
6053</style>
6054
6055<!-- 상단 탭 + 하단 콘텐츠 레이아웃 -->
6056<div class="bbstab2-layout" style="--dynamic-bg-color: var(--sub-color10);">
6057
6058  <!-- 상단: 탭 + 더보기 -->
6059  <div class="bbstab2-header">
6060    <!-- 탭 리스트 (가로 배치) -->
6061    <div class="bbstab2-tabs"
6062         id="tabsContainer_bbstabs2_6ac8434730845"
6063         role="tablist"
6064         aria-label="게시판 탭"
6065         aria-orientation="horizontal">
6066              <div class="tab-wrapper">
6067          <button
6068            class="tab on"
6069            id="bbstabs2_6ac8434730845_tab_0"
6070            type="button"
6071            role="tab"
6072            aria-selected="true"
6073            aria-controls="bbstabs2_6ac8434730845_panel_0"
6074            tabindex="0"
6075            data-index="0">
6076            <span class="tab-label">공지사항 </span>
6077          </button>
6078                  </div>
6079              <div class="tab-wrapper">
6080          <button
6081            class="tab"
6082            id="bbstabs2_6ac8434730845_tab_1"
6083            type="button"
6084            role="tab"
6085            aria-selected="false"
6086            aria-controls="bbstabs2_6ac8434730845_panel_1"
6087            tabindex="-1"
6088            data-index="1">
6089            <span class="tab-label">채용공지</span>
6090          </button>
6091                  </div>
6092          </div>
6093
6094    <!-- 더보기 링크 (우측) -->
6095        <div class="bbstab2-more" id="gotoArea_bbstabs2_6ac8434730845">
6096      <a href="/bbs/board.php?bo_table=SWCF_4020">
6097        <span class="more-text">더보기</span>
6098        <span class="more-icon"><i class="uil uil-plus"></i></span>
6099      </a>
6100    </div>
6101  </div>
6102
6103  <!-- 하단: 게시물 리스트 -->
6104  <div class="bbstab2-content">
6105          <div
6106        class="tab-content bbs-tab-content active"
6107        id="bbstabs2_6ac8434730845_panel_0"
6108        role="tabpanel"
6109        aria-labelledby="bbstabs2_6ac8434730845_tab_0"
6110                tabindex="-1"
6111        data-index="0">
6112
6113        <div class="bbs_list_wrap">
6114          <div class="SWCF_totalnotice2" data-skin-version="v2-no-thumb">
6115  <div class="notice_layout">
6116    <!-- 왼쪽: 첫번째 항목 이미지 카드 -->
6117    <div class="notice_left">
6118            <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4020&amp;wr_id=69" class="card_item">
6119        <!-- 썸네일 영역 제거됨 -->
6120        <!-- 오른쪽: 날짜 + 텍스트 -->
6121        <div class="card_info">
6122          <div class="card_date">
6123            <span class="date_day">01</span>
6124            <span class="date_slash">/</span>
6125            <span class="date_ym">2026.10</span>
6126          </div>
6127          <div class="card_text">
6128            <strong class="card_title">서초구 어르신 가족돌봄실태 및 복지수요 조사 …</strong>
6129            <p class="card_desc">서초구 어르신 가족돌봄실태 및 복지수요 조사 참여 안내서초복지돌봄재단에서는 서초구 어르신의 돌봄 실태와 복지…</p>
6130          </div>
6131        </div>
6132      </a>
6133          </div>
6134
6135    <!-- 오른쪽: 나머지 항목 텍스트 리스트 -->
6136    <div class="notice_right">
6137      <ul class="notice_list">
6138                <li class="notice_item">
6139          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4020&amp;wr_id=67">
6140            <div class="item_date">
6141              <span class="date_day">14</span>
6142              <span class="date_ym">2026.09</span>
6143            </div>
6144            <div class="item_text">
6145              <strong class="item_title">내 손으로 만드는 서초복지 '2026년 주민참…</strong>
6146              <p class="item_desc">공지사항</p>
6147            </div>
6148          </a>
6149        </li>
6150                <li class="notice_item">
6151          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4020&amp;wr_id=65">
6152            <div class="item_date">
6153              <span class="date_day">11</span>
6154              <span class="date_ym">2026.09</span>
6155            </div>
6156            <div class="item_text">
6157              <strong class="item_title">2026년 방배마을이음단 (방배마음단) 단원 …</strong>
6158              <p class="item_desc">공지사항</p>
6159            </div>
6160          </a>
6161        </li>
6162                <li class="notice_item">
6163          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4020&amp;wr_id=63">
6164            <div class="item_date">
6165              <span class="date_day">02</span>
6166              <span class="date_ym">2026.09</span>
6167            </div>
6168            <div class="item_text">
6169              <strong class="item_title">제2차 서초복지돌봄재단 이사회 회의록 공개</strong>
6170              <p class="item_desc">공지사항</p>
6171            </div>
6172          </a>
6173        </li>
6174                      </ul>
6175    </div>
6176  </div>
6177</div>
6178        </div>
6179      </div>
6180          <div
6181        class="tab-content bbs-tab-content"
6182        id="bbstabs2_6ac8434730845_panel_1"
6183        role="tabpanel"
6184        aria-labelledby="bbstabs2_6ac8434730845_tab_1"
6185        hidden        tabindex="-1"
6186        data-index="1">
6187
6188        <div class="bbs_list_wrap">
6189          <div class="SWCF_totalnotice2" data-skin-version="v2-no-thumb">
6190  <div class="notice_layout">
6191    <!-- 왼쪽: 첫번째 항목 이미지 카드 -->
6192    <div class="notice_left">
6193            <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4030&amp;wr_id=23" class="card_item">
6194        <!-- 썸네일 영역 제거됨 -->
6195        <!-- 오른쪽: 날짜 + 텍스트 -->
6196        <div class="card_info">
6197          <div class="card_date">
6198            <span class="date_day">27</span>
6199            <span class="date_slash">/</span>
6200            <span class="date_ym">2026.03</span>
6201          </div>
6202          <div class="card_text">
6203            <strong class="card_title">방배4동 느티나무쉼터 사회복지사 채용 합격자 …</strong>
6204            <p class="card_desc">방배4동 느티나무쉼터에 많은 관심 가져주셔서 진심으로 감사드립니다.지원해주신 모든 분들의 건승과 발전을 기원…</p>
6205          </div>
6206        </div>
6207      </a>
6208          </div>
6209
6210    <!-- 오른쪽: 나머지 항목 텍스트 리스트 -->
6211    <div class="notice_right">
6212      <ul class="notice_list">
6213                <li class="notice_item">
6214          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4030&amp;wr_id=21">
6215            <div class="item_date">
6216              <span class="date_day">24</span>
6217              <span class="date_ym">2026.03</span>
6218            </div>
6219            <div class="item_text">
6220              <strong class="item_title">방배4동 느티나무쉼터 사회복지사 서류 심사 결…</strong>
6221              <p class="item_desc">채용공지</p>
6222            </div>
6223          </a>
6224        </li>
6225                <li class="notice_item">
6226          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4030&amp;wr_id=19">
6227            <div class="item_date">
6228              <span class="date_day">24</span>
6229              <span class="date_ym">2026.03</span>
6230            </div>
6231            <div class="item_text">
6232              <strong class="item_title">★서초복지돌봄재단 직원(사원) 채용 최종 합격…</strong>
6233              <p class="item_desc">채용공지</p>
6234            </div>
6235          </a>
6236        </li>
6237                <li class="notice_item">
6238          <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4030&amp;wr_id=17">
6239            <div class="item_date">
6240              <span class="date_day">18</span>
6241              <span class="date_ym">2026.03</span>
6242            </div>
6243            <div class="item_text">
6244              <strong class="item_title">★서초복지돌봄재단 직원(사원) 채용 서류심사 …</strong>
6245              <p class="item_desc">채용공지</p>
6246            </div>
6247          </a>
6248        </li>
6249                      </ul>
6250    </div>
6251  </div>
6252</div>
6253        </div>
6254      </div>
6255      </div>
6256
6257</div>
6258
6259<!-- 구분선 -->
6260<div class="bbstab2-divider"></div>
6261
6262<script>
6263document.addEventListener('DOMContentLoaded', function(){
6264  var uid       = "bbstabs2_6ac8434730845";
6265  var container = document.getElementById('tabsContainer_' + uid);
6266  var gotoArea  = document.getElementById('gotoArea_' + uid);
6267  if (!container) return;
6268
6269  var tabs = Array.prototype.slice.call(container.querySelectorAll('[role="tab"]'));
6270  if (!tabs.length) return;
6271
6272  var panels = tabs.map(function(tab){
6273    var id = tab.getAttribute('aria-controls');
6274    return id ? document.getElementById(id) : null;
6275  }).filter(function(p){ return !!p; });
6276
6277  // 탭별 바로가기 데이터
6278  var gotoLinks = ["\/bbs\/board.php?bo_table=SWCF_4020","\/bbs\/board.php?bo_table=SWCF_4030"];
6279  var gotoTitles = ["\uacf5\uc9c0\uc0ac\ud56d ","\ucc44\uc6a9\uacf5\uc9c0"];
6280
6281  function setSelected(tabEl, on){
6282    tabEl.classList.toggle('on', !!on);
6283    tabEl.setAttribute('aria-selected', on ? 'true' : 'false');
6284    tabEl.setAttribute('tabindex', on ? '0' : '-1');
6285  }
6286
6287  function showPanel(panelEl, on){
6288    if (on) { panelEl.removeAttribute('hidden'); panelEl.classList.add('active'); }
6289    else { panelEl.setAttribute('hidden',''); panelEl.classList.remove('active'); }
6290  }
6291
6292  // 더보기 영역 업데이트
6293  function updateGotoArea(idx) {
6294    if (!gotoArea) return;
6295    var link = gotoLinks[idx] || '';
6296
6297    if (link) {
6298      gotoArea.innerHTML = '<a href="' + link + '">' +
6299        '<span class="more-text">더보기</span>' +
6300        '<span class="more-icon"><i class="uil uil-plus"></i></span>' +
6301        '</a>';
6302      gotoArea.style.display = '';
6303    } else {
6304      gotoArea.innerHTML = '';
6305      gotoArea.style.display = 'none';
6306    }
6307  }
6308
6309  function buildURL(n1){
6310    try { var u = new URL(location.href); u.searchParams.set('tabon', n1); return u.toString(); }
6311    catch(e){ var q=location.search.replace(/([?&])tabon=\d+/,'').replace(/^\?$/,''); var sep=q?'&':''; return location.pathname+'?'+q+sep+'tabon='+n1+location.hash; }
6312  }
6313
6314  function pushURL(n1){ if (history && history.pushState) history.pushState({tabon:n1},'',buildURL(n1)); }
6315  function replaceURL(n1){ if (history && history.replaceState) history.replaceState({tabon:n1},'',buildURL(n1)); }
6316
6317  // 핵심: 활성화
6318  function activateByIndex(idx, opts){
6319    opts = opts || {};
6320    if (idx < 0 || idx >= tabs.length) idx = 0;
6321
6322    for (var i=0;i<tabs.length;i++) setSelected(tabs[i], i===idx);
6323    for (var j=0;j<panels.length;j++) showPanel(panels[j], j===idx);
6324
6325    // 바로가기 영역 업데이트
6326    updateGotoArea(idx);
6327
6328    if (opts.updateURL === 'push') pushURL(idx+1);
6329    else if (opts.updateURL === 'replace') replaceURL(idx+1);
6330
6331    if (!opts.skipFocus) {
6332      tabs[idx].focus();
6333    }
6334  }
6335
6336  // 이벤트 바인딩
6337  tabs.forEach(function(tab, i){
6338    tab.addEventListener('click', function(){ activateByIndex(i, {updateURL:'push'}); });
6339    tab.addEventListener('keydown', function(ev){
6340      var key = ev.key || ev.keyCode, str = (typeof key === 'string');
6341      // 가로 탭이므로 좌/우 화살표 사용
6342      if (key===37 || (str && key==='ArrowLeft')) {
6343        var p = (i-1+tabs.length)%tabs.length; tabs[p].focus(); ev.preventDefault();
6344      } else if (key===39 || (str && key==='ArrowRight')) {
6345        var n = (i+1)%tabs.length; tabs[n].focus(); ev.preventDefault();
6346      } else if (key===36 || (str && key==='Home')) {
6347        tabs[0].focus(); ev.preventDefault();
6348      } else if (key===35 || (str && key==='End')) {
6349        tabs[tabs.length-1].focus(); ev.preventDefault();
6350      } else if (key===13 || key===32 || (str && (key==='Enter' || key===' '))) {
6351        activateByIndex(i, {updateURL:'push'}); ev.preventDefault();
6352      }
6353    });
6354  });
6355
6356  // 뒤/앞으로 복원
6357  window.addEventListener('popstate', function(e){
6358    var n1 = 0;
6359    if (e && e.state && typeof e.state.tabon !== 'undefined') n1 = parseInt(e.state.tabon, 10);
6360    else {
6361      try { var u=new URL(location.href); n1 = parseInt(u.searchParams.get('tabon') || '0',10); } catch(_){}
6362    }
6363    if (!isNaN(n1) && n1>0 && n1<=tabs.length) activateByIndex(n1-1, {});
6364  });
6365
6366  // 초기 진입
6367  (function init(){
6368    var idx = 0;
6369    var hasTabon = false;
6370    try {
6371      var u = new URL(location.href);
6372      var t = parseInt(u.searchParams.get('tabon') || '0', 10);
6373      hasTabon = u.searchParams.has('tabon');
6374      if (!isNaN(t) && t>0 && t<=tabs.length) idx = t-1;
6375      else {
6376        for (var i=0;i<tabs.length;i++){ if (tabs[i].getAttribute('aria-selected')==='true'){ idx=i; break; } }
6377      }
6378    } catch(e){}
6379
6380    activateByIndex(idx, hasTabon ? {updateURL:'replace'} : {skipFocus:true});
6381  })();
6382});
6383</script>
6383
6384    </div>
6385
6386
6387
6388  <!-- 데코 영역 RIGHT - 텍스트 (오른쪽 확장용) - contents-container 밖 -->
6389  
6390</div>
6391    
6392  </div>
6393          <div class="fr">
6394            
6395
6396
6397
6398<div class="MAIN_SWCF_7_2 MAIN_SWCF_7_2 com_f " id="ID_MAIN_SWCF_7_2" style="height: 100%;">
6399
6400	      <!-- 위젯 구간-->
6401
6402<div class="slider_inner">
6403  <div class="swiper">
6404    <div class="swiper-wrapper">
6405                        <div class="swiper-slide">
6406                <!-- 배경 이미지 -->
6407        <div class="slide-bg">
6408                    <img src="/data/widget/img/1779784555_0_0.jpg" alt="슬라이드 이미지" />
6409                  </div>
6410        <!-- 텍스트 영역 -->
6411        <div class="slide-text">
6412                                            </div>
6413        <!-- 링크 아이콘 (우측 하단) -->
6414              </div>
6415                  <div class="swiper-slide">
6416                <!-- 배경 이미지 -->
6417        <div class="slide-bg">
6418                    <img src="/data/widget/img/1779844033_1_0.jpg" alt="슬라이드 이미지" />
6419                  </div>
6420        <!-- 텍스트 영역 -->
6421        <div class="slide-text">
6422                                            </div>
6423        <!-- 링크 아이콘 (우측 하단) -->
6424              </div>
6425                  <div class="swiper-slide">
6426                <!-- 배경 이미지 -->
6427        <div class="slide-bg">
6428                    <img src="/data/widget/img/1779784555_2_0.jpg" alt="슬라이드 이미지" />
6429                  </div>
6430        <!-- 텍스트 영역 -->
6431        <div class="slide-text">
6432                                            </div>
6433        <!-- 링크 아이콘 (우측 하단) -->
6434              </div>
6435                </div>
6436  </div>
6437  <!-- 네비게이션 화살표 -->
6438  <div class="swiper-button-prev"></div>
6439  <div class="swiper-button-next"></div>
6440</div>
6441	  <!-- //위젯 구간-->
6442	  </div>
6443<script src="https://seochowcf.or.kr/data/widget/MAIN_SWCF_7_2/resources/js/style.js"></script>
6443 
6444            </div>
6445        </div>
6446		  	</div>
6447</div>
6448
6449<script src="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_07/resources/js/style.js"></script>
6449
6450</div><div class="block_box view" id="block_4">
6451<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_05/resources/css/style.css" />
6452<div class="MAIN_05">
6453<!-- <div class="bg"><img src="/data/widget/" alt=""/></div>
6454-->
6455 <div class="MAIN_SWCF_5 MAIN_SWCF_5 com_f " id="ID_MAIN_SWCF_5">
6456  <div class="contents-container container-md  contentContainer ">
6457      <!-- 위젯 구간 -->
6458
6459
6460<div class="list-group">
6461    <!-- hover 시 전체 배경에 표시될 이미지들 (img_pc[항목][2]) -->
6462    <div class="bg-wrap">
6463                <div class="bg-img1">
6464            <img src="/data/widget/1766928706_1_1.png" alt="" />
6465        </div>
6466                <div class="bg-img2">
6467            <img src="/data/widget/1766928706_2_1.png" alt="" />
6468        </div>
6469                <div class="bg-img3">
6470            <img src="/data/widget/1766928706_3_1.png" alt="" />
6471        </div>
6472                <div class="bg-img4">
6473            <img src="/data/widget/1766928706_4_1.png" alt="" />
6474        </div>
6475            </div>
6476
6477    <ul class="list-area">
6478                        <li class="list-item item1">
6479            <a href="/bbs/content.php?co_id=SWCF_3010&lang=ko&me_code=3010" class="cardset">
6480                <!-- 기본 이미지 (j=1) -->
6481                <picture class="cardset-img">
6482                    <source srcset="/data/widget/1766939667_mo_1_0.png" media="(max-width: 992px)" />
6483                    <img src="/data/widget/1766928706_1_0.png" alt="" class="cardset-img" />
6484                </picture>
6485                <div class="cardset-body">
6486                    <strong class="h5 cardset-tit">후원안내</strong>
6487                    <p class="cardset-desc">서초복지돌봄재단의 후원은
6488돌봄이 필요한 이웃을 위한 통합돌봄 사업과
6489지속가능한 복지 지원으로 이어집니다.
6490소중한 참여는 지역사회 전체를 잇는 힘이 됩니다.</p>
6491                </div>
6492            </a>
6493        </li>
6494                        <li class="list-item item2">
6495            <a href="/bbs/board.php?bo_table=SWCF_3030&me_code=3030&lang=ko" class="cardset">
6496                <!-- 기본 이미지 (j=1) -->
6497                <picture class="cardset-img">
6498                    <source srcset="/data/widget/1766939693_mo_2_0.png" media="(max-width: 992px)" />
6499                    <img src="/data/widget/1766928706_2_0.png" alt="" class="cardset-img" />
6500                </picture>
6501                <div class="cardset-body">
6502                    <strong class="h5 cardset-tit">모금현황</strong>
6503                    <p class="cardset-desc">재단은 후원금의 모금 현황을
6504정확하고 투명하게 공개하여
6505후원자 여러분의 신뢰에 보답하고,
6506공익 목적에 맞는 운영을 이어갑니다.</p>
6507                </div>
6508            </a>
6509        </li>
6510                        <li class="list-item item3">
6511            <a href="/bbs/board.php?bo_table=SWCF_3040&lang=ko&me_code=3040" class="cardset">
6512                <!-- 기본 이미지 (j=1) -->
6513                <picture class="cardset-img">
6514                    <source srcset="/data/widget/1766939736_mo_3_0.png" media="(max-width: 992px)" />
6515                    <img src="/data/widget/1766928706_3_0.png" alt="" class="cardset-img" />
6516                </picture>
6517                <div class="cardset-body">
6518                    <strong class="h5 cardset-tit">배분현황</strong>
6519                    <p class="cardset-desc">모금된 후원금은
6520재단의 돌봄 사업과 복지 지원을 위해
6521공정한 기준에 따라 배분되며,
6522배분 결과와 사용 내역은 투명하게 공개됩니다.</p>
6523                </div>
6524            </a>
6525        </li>
6526                        <li class="list-item item4">
6527            <a href="/bbs/content.php?co_id=SWCF_3050&me_code=3050&lang=ko" class="cardset">
6528                <!-- 기본 이미지 (j=1) -->
6529                <picture class="cardset-img">
6530                    <source srcset="/data/widget/1766939736_mo_4_0.png" media="(max-width: 992px)" />
6531                    <img src="/data/widget/1766928706_4_0.png" alt="" class="cardset-img" />
6532                </picture>
6533                <div class="cardset-body">
6534                    <strong class="h5 cardset-tit">사회공헌파트너</strong>
6535                    <p class="cardset-desc">나눔문화를 선도하는 착한 기업,<br>믿을 수 있는 나눔경영 파트너, <br>서초복지돌봄재단이 함께 합니다.</p>
6536                </div>
6537            </a>
6538        </li>
6539            </ul>
6540</div>
6541
6542	  <!-- //위젯 구간-->
6543</div>
6544</div>
6545<script src="https://seochowcf.or.kr/data/widget/MAIN_SWCF_5/resources/js/style.js"></script>
6545
6546	<div class="MAIN_SWCF_5_in MAIN_SWCF_5_in com_f " id="ID_MAIN_SWCF_5_in">
6547	
6548	  <div class="contents-container container-md  contentContainer ">
6549
6550	  
6551      <!-- 위젯 구간 (sticky를 위해 contents-container 제거) -->
6552
6553
6554<div class="textset">
6555    <!-- 좌측: 타이틀 영역 -->
6556    <div class="textset-tit">
6557        <h2 class="h1">CONNECTED CARE</h2>
6558        <strong class="h6 textset-subtit">사회공헌파트너</strong>
6559        <p class="textset-desc">모금된 후원금은 재단의 돌봄 사업과 복지 지원을 위해<br>공정한 기준에 따라 배분되며, 배분 결과와 사용 내역은 투명하게 공개됩니다.</p>
6560    </div>
6561
6562    <!-- 우측: 파트너 스와이퍼 -->
6563    <div class="textset-wrap">
6564        <div class="partner-swiper-container" data-count="7">
6565            <div class="swiper partner-swiper">
6566                <div class="swiper-wrapper">
6567                                                            <div class="swiper-slide">
6568                                                <a href="https://www.seocho.go.kr" class="partner-item" target="_blank">
6569                            <img src="/data/widget/img/1778484220_0_0.jpg" alt="파트너 1" class=""/>
6570                        </a>
6571                                            </div>
6572                                                            <div class="swiper-slide">
6573                                                <a href="https://www.hdc-labs.com/" class="partner-item" target="_blank">
6574                            <img src="/data/widget/img/1778484220_1_0.jpg" alt="파트너 2" class=""/>
6575                        </a>
6576                                            </div>
6577                                                            <div class="swiper-slide">
6578                                                <a href="https://eyeonce.com/" class="partner-item" target="_blank">
6579                            <img src="/data/widget/img/1778572269_2_0.jpg" alt="파트너 3" class=""/>
6580                        </a>
6581                                            </div>
6582                                                            <div class="swiper-slide">
6583                                                <a href="https://www.shinhan.com" class="partner-item" target="_blank">
6584                            <img src="/data/widget/img/1778572269_3_0.jpg" alt="파트너 4" class=""/>
6585                        </a>
6586                                            </div>
6587                                                            <div class="swiper-slide">
6588                                                <a href="http://www.scpa.or.kr/" class="partner-item" target="_blank">
6589                            <img src="/data/widget/img/1787127339_4_0.jpg" alt="파트너 5" class=""/>
6590                        </a>
6591                                            </div>
6592                                                            <div class="swiper-slide">
6593                                                <a href="https://www.cilantro.co.kr/" class="partner-item" target="_blank">
6594                            <img src="/data/widget/img/1787127379_5_0.jpg" alt="파트너 6" class=""/>
6595                        </a>
6596                                            </div>
6597                                                            <div class="swiper-slide">
6598                                                <a href="https://chest.or.kr/base.do" class="partner-item" target="_blank">
6599                            <img src="/data/widget/img/1787127414_6_0.jpg" alt="파트너 7" class=""/>
6600                        </a>
6601                                            </div>
6602                                    </div>
6603            </div>
6604                        <!-- 네비게이션 화살표 -->
6605            <div class="partner-swiper-prev"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg></div>
6606            <div class="partner-swiper-next"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div>
6607                    </div>
6608    </div>
6609</div><!-- //textset -->
6610
6611	  <!-- //위젯 구간-->
6612		
6613</div>
6614</div>
6615<script src="https://seochowcf.or.kr/_themeCom/themeAsset/hy01/js/plugins/swiper.js"></script>
vendor: 2 bytes, line 6615
6615
6616<script src="https://seochowcf.or.kr/data/widget/MAIN_SWCF_5_in/resources/js/style.js"></script>
6616
6617	</div>
6618
6619<script src="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_05/resources/js/style.js"></script>
6619
6620</div><div class="block_box view" id="block_5">
6621<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_06/resources/css/style.css" />
6622<div class="MAIN_06">
6623 <div class="MAIN_SWCF_6 MAIN_SWCF_6 com_f " id="ID_MAIN_SWCF_6">
6624  <div class="contents-container container-md contentContainer">
6625      <!-- 위젯 구간 -->
6626
6627<div class="contents-inner">
6628    <!-- 헤더 섹션 -->
6629    <div class="spgx-header">
6630        <div class="spgx-header-inner">
6631            <div class="spgx-textset">
6632                <span class="spgx-subtit">SUPPORT FOR PUBLIC CARE</span>
6633                <h2 class="spgx-title">공익을 위한 동행,돌봄이 필요한 이웃을 위한 실질적인 지원</h2>
6634                <p class="spgx-desc">서초복지돌봄재단의 후원은 돌봄이 필요한 이웃을 위한 실질적인 지원으로 이어집니다.<br>모든 후원은 투명한 절차와 기준에 따라 운영되며, 지속가능한 복지 지원으로 이어집니다.</p>
6635            </div>
6636        </div>
6637    </div>
6638
6639    <!-- 비디오 갤러리 -->
6640    <div class="contents-group">
6641        <!-- 좌측: 큰 비디오 2개 (항목 1, 2) -->
6642        <div class="contents-left">
6643            <div class="video-group">
6644                                                <div class="videoset">
6645                    <div class="videoset-button">
6646                        <picture>
6647                            <source media="(max-width:992px)" srcset="/data/widget/1767774507_0_0.jpg" />
6648                            <img src="/data/widget/1767774507_0_0.jpg" alt="썸네일 1" class="videoset-img" />
6649                        </picture>
6650                        <!-- 텍스트 오버레이 -->
6651                        <div class="videoset-text">
6652                            <strong class="videoset-title"><div class="COM_tit f_mds scale-10 text-left w700 white letter-15 lh120">정확한 진단 통합돌봄</div></strong>
6653                            <p class="videoset-desc"><div class="COM_tit f_sm scale-08 text-left w400 white letter-15 lh130">분절된 서비스를 하나로 잇는 돌봄<br>다양한 복지사업과 서비스를 연계해 생애 전반을 아우르는<br>통합돌봄 체계를 구축합니다.</div></p>
6654                        </div>
6655                    </div>
6656                                    </div>
6657                                                <div class="videoset">
6658                    <div class="videoset-button">
6659                        <picture>
6660                            <source media="(max-width:992px)" srcset="/data/widget/1767774518_1_0.jpg" />
6661                            <img src="/data/widget/1767774518_1_0.jpg" alt="썸네일 2" class="videoset-img" />
6662                        </picture>
6663                        <!-- 텍스트 오버레이 -->
6664                        <div class="videoset-text">
6665                            <strong class="videoset-title"><div class="COM_tit f_mds scale-10 text-left w700 white letter-15 lh120">진심 어린 소통 데이터 기반</div></strong>
6666                            <p class="videoset-desc"><div class="COM_tit f_sm scale-08 text-left w400 white letter-15 lh130">근거로 설계하는 맞춤형 돌봄<br>
6667복지 데이터를 기반으로 대상자 중심의 돌봄을 설계하고<br>
6668효과적인 지원을 실현합니다.</div></p>
6669                        </div>
6670                    </div>
6671                                    </div>
6672                            </div>
6673        </div>
6674
6675        <!-- 우측: 작은 비디오 2개 (항목 3, 4) -->
6676        <div class="contents-right">
6677            <div class="video-group">
6678                                                <div class="videoset">
6679                    <div class="videoset-button">
6680                        <picture>
6681                            <source media="(max-width:992px)" srcset="/data/widget/1767774531_2_0.jpg" />
6682                            <img src="/data/widget/1767774531_2_0.jpg" alt="썸네일 3" class="videoset-img" />
6683                        </picture>
6684                        <!-- 텍스트 오버레이 -->
6685                        <div class="videoset-text">
6686                            <strong class="videoset-title"><div class="COM_tit f_mds scale-10 text-left w700 white letter-15 lh120">진심 어린 소통 데이터 기반</div></strong>
6687                            <p class="videoset-desc"><div class="COM_tit f_sm scale-08 text-left w400 white letter-15 lh130">근거로 설계하는 맞춤형 돌봄<br>
6688복지 데이터를 기반으로 대상자 중심의 돌봄을 설계하고<br>
6689효과적인 지원을 실현합니다.</div></p>
6690                        </div>
6691                    </div>
6692                                    </div>
6693                                                <div class="videoset">
6694                    <div class="videoset-button">
6695                        <picture>
6696                            <source media="(max-width:992px)" srcset="/data/widget/1767774544_3_0.jpg" />
6697                            <img src="/data/widget/1767774544_3_0.jpg" alt="썸네일 4" class="videoset-img" />
6698                        </picture>
6699                        <!-- 텍스트 오버레이 -->
6700                        <div class="videoset-text">
6701                            <strong class="videoset-title"><div class="COM_tit f_mds scale-10 text-left w700 white letter-15 lh120">지속적인 케어 공공 인프라</div></strong>
6702                            <p class="videoset-desc"><div class="COM_tit f_sm scale-08 text-left w400 white letter-15 lh130">신뢰받는 돌봄의 기반 공공 인프라 확충과<br>
6703민관 협력을 통해 안정적인 돌봄 전달체계를 강화합니다.</div></p>
6704                        </div>
6705                    </div>
6706                                    </div>
6707                            </div>
6708        </div>
6709    </div>
6710</div>
6711      <!-- //위젯 구간-->
6712  </div>
6713</div>
6714<script src="https://seochowcf.or.kr/data/widget/MAIN_SWCF_6/resources/js/style.js"></script>
6714
6715	</div>
6716
6717<script src="https://seochowcf.or.kr/theme/hayan/_main_block/MAIN_06/resources/js/style.js"></script>
6717
6718</div>  </div>
6719  
6720  
6721<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/_footer/FOOTER_TOTAL/resources/css/style.css?v=1789964705" />
6722
6723
6724<!-- [FT-TOPBAR DEBUG] json=EXISTS path=/home/dws_host009/www/data/wing/footer_settings.json | is_main=Y show_topbar=N show_custom2=N | GET[me_code]=[(no-get)] GLOBALS[me_code]=[] resolved=[] | margin_top=[] mt_matched=N mt_rows=0 | base_mb=[] tmb_rows=0 -->
6725<style>.FOOTER_TOTAL.FOOTER_TOTAL {--ft-sns-size: 30px;--ft-sns-gap: 10px;--ft-sns-filter: brightness(0) invert(1);--ft-sns-deco-color: #fff;--ft-sns-deco-line: rgba(255,255,255,.45);--ft-logo-height: 3.5rem;--ft-pad-top: 2.4rem;--ft-pad-bottom: 2.4rem;--ft-topline-color: #dadaed;--ft-topline-spacing: 20px;--ft-custom-box-width: auto;--ft-custom-position: absolute;--ft-custom-top: 70px;--ft-custom-right: 0px;--ft-mo-custom-order: 99;--ft-mo-order-menu: 1;--ft-mo-order-logo: 2;--ft-mo-order-text: 3;--ft-mo-order-right: 4;}</style><style>.ft-menu-band {--ft-sns-size: 30px;--ft-sns-gap: 10px;--ft-sns-filter: brightness(0) invert(1);--ft-sns-deco-color: #fff;--ft-sns-deco-line: rgba(255,255,255,.45);--ft-logo-height: 3.5rem;--ft-pad-top: 2.4rem;--ft-pad-bottom: 2.4rem;--ft-topline-color: #dadaed;--ft-topline-spacing: 20px;--ft-custom-box-width: auto;--ft-custom-position: absolute;--ft-custom-top: 70px;--ft-custom-right: 0px;--ft-mo-custom-order: 99;--ft-mo-order-menu: 1;--ft-mo-order-logo: 2;--ft-mo-order-text: 3;--ft-mo-order-right: 4;}</style>
6726
6727
6728
6729
6730<div class="FOOTER_TOTAL  ft-mo-custom-flow   " data-footer-theme="black">
6731    <div class="footer-container container-md contentContainer ">
6732
6733        <!-- ★ 레이아웃: layout_1 -->
6734        <div class="footer-wrap ft-layout_1">
6735
6736            <div class="footer-left">
6737                                <ul class="footer-menulist ">
6738                    
6739<li class="footer-menulink">
6740            <span class="setting_icon">이메일 무단수집 거부 </span>
6741      </li>
6742
6743
6744<li class="footer-menulink">
6745            <a href="/bbs/content.php?co_id=All_USE_1020&me_code=7020&lang=ko">
6746            <span class="setting_icon">개인정보처리방침</span>
6747            </a>
6748      </li>
6749
6750
6751<!------ //관리자 버튼 ( 위젯 폼 연결) ----------->                                    </ul>
6752                                
6753                
6754                <div class="indiv">
6755                                                            <h2 class="footer-logo ">
6756                                                <a href="https://seochowcf.or.kr/index.php">
6757                                                        <img src="/data/widget/1766809493_0_0.png" class="" alt="">
6758                                                    </a>
6759                                                                    </h2>
6760                    
6761                                        <div class="set" style="display:flex; justify-content:flex-start; align-items:center; flex-direction:row; box-sizing:border-box; gap:10px">
6762                                                                                <a href="https://seochowcf.or.kr/bbs/login.php" class="setting_icon">관리자모드 <i class="uis uis-setting"></i></a>
6763                                                                                                                                                </div>
6764                                    </div>
6765
6766                
6767                                <div class="footer-txtgroup ">
6768                    
6769
6770
6771<div class="em_free  em_address com_f "  ><!--boxinfo_AD  : sk_홈위젯파일명 -->
6772
6773
6774	  
6775    <!-- 위젯 구간-->
6776
6777<div class="wg_side ">
6778<div class="sub_stit_box">
6779  
6780
6781
6782</div>
6783
6784
6785<div class="wg_box " data-widget-id="em_address">
6786
6787  <!--반복문 시작-->
6788
6789    <div class="wg_box_in ">
6790    <div class="wg_img_box">
6791<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
6792
6793
6794
6795
6796
6797<!--// 이미지 1~5 삽입 end -->
6798</div>
6799<div class="wg_txt_box">
6800<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
6801<div class="wg_txt1">서초복지돌봄재단 우)06563 서울특별시 서초구 방배중앙로 118, 서
6801초시니어플라자 4-5층<Br>
6802대표번호 : 02-6925-5881 대표자 : 박준기 등록번호 : 170-82-00907</div>
6803<!--//텍스트 반복 끝-->
6804</div>
6805    </div>
6806    <!--//반복문 끝-->
6807    </div>
6808</div>
6809	  <!-- //위젯 구간-->
6810
6811	  
6812</div>
6813                </div>
6814
6815                            </div>
6816
6817                        <div class="footer-right ft-right-row">
6818                
6819                                            <ul class="footer-snslist " style="order:1;">
6820                    
6821
6822
6823<div class="em_free  LB_ftsns com_f "  ><!--boxinfo_AD  : sk_홈위젯파일명 -->
6824
6825
6826	  
6827    <!-- 위젯 구간-->
6828
6829<div class="wg_side ">
6830<div class="sub_stit_box">
6831  
6832
6833
6834</div>
6835
6836
6837<div class="wg_box " data-widget-id="LB_ftsns">
6838
6839  <!--반복문 시작-->
6840
6841    <a href="https://www.instagram.com/seochowcf/?utm_source=ig_web_button_share_sheet" target='_blank' class="wg_box_in ">
6842    <div class="wg_img_box">
6843<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
6844
6845  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
6846    <div id="img_6ac843474309e_wrap" class="wg_img1">
6847          <img src='/_img/svg/SNS/SET1_instagram.svg' alt='이미지'/>      </div>
6848  
6849
6850
6851
6852<!--// 이미지 1~5 삽입 end -->
6853</div>
6854<div class="wg_txt_box">
6855<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
6856<!--//텍스트 반복 끝-->
6857</div>
6858    </a>
6859    <!--//반복문 끝-->
6860    <!--반복문 시작-->
6861
6862    <a href="https://www.facebook.com/profile.php?id=61589115189159#" target='_blank' class="wg_box_in ">
6863    <div class="wg_img_box">
6864<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
6865
6866  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
6867    <div id="img_6ac843474386d_wrap" class="wg_img1">
6868          <img src='/_img/svg/SNS/SET1_facebook.svg' alt='이미지'/>      </div>
6869  
6870
6871
6872
6873<!--// 이미지 1~5 삽입 end -->
6874</div>
6875<div class="wg_txt_box">
6876<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
6877<!--//텍스트 반복 끝-->
6878</div>
6879    </a>
6880    <!--//반복문 끝-->
6881    <!--반복문 시작-->
6882
6883    <a href="https://pf.kakao.com/_BQxnTX" target='_blank' class="wg_box_in ">
6884    <div class="wg_img_box">
6885<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
6886
6887  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
6888    <div id="img_6ac8434744085_wrap" class="wg_img1">
6889          <img src='/_img/svg/SNS/SET1_ch.svg' alt='이미지'/>      </div>
6890  
6891
6892
6893
6894<!--// 이미지 1~5 삽입 end -->
6895</div>
6896<div class="wg_txt_box">
6897<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
6898<!--//텍스트 반복 끝-->
6899</div>
6900    </a>
6901    <!--//반복문 끝-->
6902    </div>
6903</div>
6904	  <!-- //위젯 구간-->
6905
6906	  
6907</div>
6908                                    </ul>
6909                
6910                                <div class="selectset selectset-sm" style="order:2;">
6911                    <div class="selectset-area ">
6912                        
6913<button class="selectset-toggle " type="button"><span>관련서비스     </span></button>
6914
6915<ul class="selectset-list">
6916	
6917 <!---------------------------------------------------------------------------------------->
6918    <!----------------------------- 반복 구간시작  -------------------------------------------->
6919	
6920	  <li class="selectset-item">
6921            <a class="selectset-link" href="#" target="_blank">
6922             <span>서초관련 사이트</span>
6923            </a>
6924          </li>
6925	
6926  <!----------------------------- //반복 구간시작  -------------------------------------------->
6927    <!----------------------------- 반복 구간시작  -------------------------------------------->
6928	
6929	  <li class="selectset-item">
6930            <a class="selectset-link" href="#" target="_blank">
6931             <span>서초관련 사이트</span>
6932            </a>
6933          </li>
6934	
6935  <!----------------------------- //반복 구간시작  -------------------------------------------->
6936  	
6937<!------ 컨텐츠 없을때 ----------->	
6938  <!------ //컨텐츠 없을때 ----------->	
6939<!---------------------------------------------------------------------------------------->
6940</ul>
6941
6942                                            </div>
6943                </div>
6944                
6945                                <div class="footer-custom-box " style="order:3;">
6946                    <style data-widget-css="FT_custom_1"> .FT_custom_1 .wg_box {
6947  display: flex;
6948  gap: clamp(15px, calc(1.17vw + 11.25px), 30px);
6949  align-items: center;
6950}
6951.FT_custom_1 .wg_txt_box {
6952  display: none;
6953}
6954.FT_custom_1 .wg_img1 img {
6955  height: 30px;
6956  width: auto;
6957} </style>
6958
6959
6960
6961<div class="em_free  FT_custom_1 com_f "  ><!--boxinfo_AD  : sk_홈위젯파일명 -->
6962
6963
6964	  
6965    <!-- 위젯 구간-->
6966
6967<div class="wg_side ">
6968<div class="sub_stit_box">
6969  
6970
6971
6972</div>
6973
6974
6975<div class="wg_box " data-widget-id="FT_custom_1">
6976
6977  <!--반복문 시작-->
6978
6979    <a href="https://www.seocho.go.kr/" target='_blank' class="wg_box_in ">
6980    <div class="wg_img_box">
6981<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
6982
6983  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
6984    <div id="img_6ac8434747d54_wrap" class="wg_img1">
6985          <img src='/_img/img/SWCF/logo1.jpg' alt='이미지'/>      </div>
6986  
6987
6988
6989
6990<!--// 이미지 1~5 삽입 end -->
6991</div>
6992<div class="wg_txt_box">
6993<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
6994<div class="wg_txt1">s</div>
6995<!--//텍스트 반복 끝-->
6996</div>
6997    </a>
6998    <!--//반복문 끝-->
6999    <!--반복문 시작-->
7000
7001    <a href="https://www.acrc.go.kr/" target='_blank' class="wg_box_in ">
7002    <div class="wg_img_box">
7003<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
7004
7005  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
7006    <div id="img_6ac8434748523_wrap" class="wg_img1">
7007          <img src='/_img/img/SWCF/logo2.jpg' alt='이미지'/>      </div>
7008  
7009
7010
7011
7012<!--// 이미지 1~5 삽입 end -->
7013</div>
7014<div class="wg_txt_box">
7015<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
7016<!--//텍스트 반복 끝-->
7017</div>
7018    </a>
7019    <!--//반복문 끝-->
7020    <!--반복문 시작-->
7021
7022    <a href="https://www.nts.go.kr/" target='_blank' class="wg_box_in ">
7023    <div class="wg_img_box">
7024<!-- 이미지 1~5 삽입 (widget_img.php에서 직접 편집 속성 처리) -->
7025
7026  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
7027    <div id="img_6ac8434748d82_wrap" class="wg_img1">
7028          <img src='/_img/img/SWCF/logo3.jpg' alt='이미지'/>      </div>
7029  
7030
7031
7032
7033<!--// 이미지 1~5 삽입 end -->
7034</div>
7035<div class="wg_txt_box">
7036<!--텍스트 반복 시작 (텍스트는 div로 래핑하여 레이아웃 영향 최소화) -->
7037<!--//텍스트 반복 끝-->
7038</div>
7039    </a>
7040    <!--//반복문 끝-->
7041    </div>
7042</div>
7043	  <!-- //위젯 구간-->
7044
7045	  
7046</div>
7047                                    </div>
7048                            </div>
7049
7050        </div>
7051    </div>
7052</div>
7053
7054<!-- ★ 메뉴 모달 (동적 생성) -->
7055</div>
7056</div>
7057
7058
7059<style>
7060/* 플로팅 래퍼 - 클릭 통과 */
7061.quick_floating_wrap {
7062    pointer-events: none;
7063}
7064/* 플로팅 위치 오버라이드 */
7065.quick_floating_wrap .quick_floating {
7066    position: fixed;
7067    z-index: 99999;
7068    pointer-events: none;
7069}
7070/* 내부 클릭 가능 요소 */
7071.quick_floating_wrap .quick_floating .quick-area,
7072.quick_floating_wrap .quick_floating .menu-list,
7073.quick_floating_wrap .quick_floating .quick-menu,
7074.quick_floating_wrap .quick_floating .btn-wrap,
7075.quick_floating_wrap .quick_floating .contents-container > * {
7076    pointer-events: auto;
7077}
7078
7079/* floating_quick 위치 */
7080.quick_floating_wrap .quick_floating.floating_quick {
7081    right: 50px; left: auto; bottom: 50px; top: auto; transform: none;}
7082</style>
7083
7084<div class="quick_floating_wrap">
7085
7086
7087<div class="quick_floating quick_2 floating_quick " id="quick_2_floating_quick">
7088
7089
7090<div class="contents-container" style="--q2-circle: clamp(45px, calc(1.172vw + 41.25px), 60px); --q2-icon: 30px; --q2-font-size: clamp(14px, calc(0.313vw + 13px), 18px); --q2-font-color: #ffffff; --q2-font-weight: 600; --q2-bg-off: #ffffff; --q2-icon-off: #222222; --q2-bg-hover: #51ba9b; --q2-icon-hover: #ffffff; --q2-top-bg-off: #5c5c5c; --q2-top-icon-off: #fafafa; --q2-top-bg-hover: #51ba9b; --q2-top-icon-hover: #ffffff; --q2-top-border-off: #5c5c5c">
7091  
7092  <ul class="menu-list">
7093        <li class="menu-item">
7094            <a class="menu-asset" href="https://www.seocho.go.kr" target="_blank">
7095        <div class="wg_img_box">
7096          
7097  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
7098    <div id="img_6ac843474af46_wrap" class="wg_img1">
7099          <img src='/_img/svg/SNS/SET1_home.svg' alt='이미지'/>      </div>
7100          </div>
7101        <span class="">서초구청 바로가기</span>
7102      </a>
7103          </li>
7104        <li class="menu-item">
7105            <a class="menu-asset" href="/bbs/write.php?bo_table=SWCF_3060&lang=ko&me_code=3060" >
7106        <div class="wg_img_box">
7107          
7108  <!-- 모바일 이미지가 없는 경우 PC 이미지를 공통으로 사용 -->
7109    <div id="img_6ac843474b0ee_wrap" class="wg_img1">
7110          <img src='/_img/svg/line_icon/icon_love.svg' alt='이미지'/>      </div>
7111          </div>
7112        <span class="">기부하기</span>
7113      </a>
7114          </li>
7115    
7116    
7117    <!-- 상단 이동 버튼 (고정) -->
7118    <li class="menu-item">
7119      <button type="button" class="btn-top">
7120        <i class="uil uil-arrow-up"></i>
7121        <span class="blind">상단으로이동</span>
7122      </button>
7123    </li>
7124  </ul>
7125</div>
7126
7127</div>
7128<script src="https://seochowcf.or.kr/data/widget/QUICK_floating/quick_2/resources/js/style.js"></script>
7128
7129</div>
7130
7131<!-- 공통 모달 컨테이너 -->
7132<div id="floating_modal_container"></div>
7133
7134<!-- 공통 게시판 폼 모달 -->
7135<div class="floating_board_modal" id="floating_board_modal">
7136    <div class="floating_board_overlay" onclick="closeFloatingBoardModal()"></div>
7137    <div class="floating_board_content">
7138        <div class="floating_board_header">
7139            <h4 id="floating_board_title">문의하기</h4>
7140            <button type="button" class="btn_close" onclick="closeFloatingBoardModal()">&times;</button>
7141        </div>
7142        <div class="floating_board_body">
7143            <form id="floating_board_form" onsubmit="return submitFloatingBoard(event)">
7144                <input type="hidden" name="bo_table" id="flt_bo_table" value="">
7145                <div id="floating_board_fields"></div>
7146                <div class="floating_board_agree">
7147                    <label>
7148                        <input type="checkbox" name="agree" required>
7149                        <span>개인정보 수집 및 이용에 동의합니다</span>
7150                    </label>
7151                </div>
7152                <div class="floating_board_submit">
7153                    <button type="submit" class="btn_submit">문의하기</button>
7154                </div>
7155            </form>
7156        </div>
7157    </div>
7158</div>
7159
7160<style>
7161/* 공통 모달 스타일 */
7162.floating_common_modal {
7163    display: none;
7164    position: fixed;
7165    top: 0;
7166    left: 0;
7167    right: 0;
7168    bottom: 0;
7169    background: rgba(0,0,0,0.6);
7170    z-index: 999999;
7171    align-items: center;
7172    justify-content: center;
7173    pointer-events: auto;
7174}
7175.floating_common_modal.active {
7176    display: flex;
7177}
7178.floating_common_modal .modal_content {
7179    width: 90%;
7180    max-width: 500px;
7181    max-height: 80vh;
7182    background: #fff;
7183    border-radius: 12px;
7184    overflow: hidden;
7185    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
7186}
7187.floating_common_modal .modal_header {
7188    padding: 16px 20px;
7189    background: var(--primary, #4075bd);
7190    color: #fff;
7191    display: flex;
7192    justify-content: space-between;
7193    align-items: center;
7194}
7195.floating_common_modal .modal_header h4 {
7196    margin: 0;
7197    font-size: 16px;
7198    font-weight: 600;
7199}
7200.floating_common_modal .modal_header .btn_close {
7201    background: none;
7202    border: none;
7203    color: #fff;
7204    font-size: 24px;
7205    cursor: pointer;
7206    line-height: 1;
7207}
7208.floating_common_modal .modal_body {
7209    padding: 20px;
7210    max-height: calc(80vh - 60px);
7211    overflow-y: auto;
7212}
7213
7214/* 게시판 폼 모달 */
7215.floating_board_modal {
7216    display: none;
7217    position: fixed;
7218    top: 0;
7219    left: 0;
7220    right: 0;
7221    bottom: 0;
7222    z-index: 999999;
7223    pointer-events: auto;
7224}
7225.floating_board_modal.active {
7226    display: block;
7227}
7228.floating_board_overlay {
7229    position: absolute;
7230    top: 0;
7231    left: 0;
7232    right: 0;
7233    bottom: 0;
7234    background: rgba(0,0,0,0.6);
7235}
7236.floating_board_content {
7237    position: absolute;
7238    top: 50%;
7239    left: 50%;
7240    transform: translate(-50%, -50%);
7241    width: 90%;
7242    max-width: 420px;
7243    background: #fff;
7244    border-radius: 12px;
7245    overflow: hidden;
7246    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
7247}
7248.floating_board_header {
7249    padding: 16px 20px;
7250    background: var(--primary, #4075bd);
7251    color: #fff;
7252    display: flex;
7253    justify-content: space-between;
7254    align-items: center;
7255}
7256.floating_board_header h4 {
7257    margin: 0;
7258    font-size: 16px;
7259    font-weight: 600;
7260}
7261.floating_board_header .btn_close {
7262    background: none;
7263    border: none;
7264    color: #fff;
7265    font-size: 24px;
7266    cursor: pointer;
7267    line-height: 1;
7268}
7269.floating_board_body {
7270    padding: 20px;
7271    max-height: calc(80vh - 120px);
7272    overflow-y: auto;
7273}
7274.floating_board_field {
7275    margin-bottom: 15px;
7276}
7277.floating_board_field label {
7278    display: block;
7279    font-size: 13px;
7280    font-weight: 500;
7281    color: #333;
7282    margin-bottom: 6px;
7283}
7284.floating_board_field label .required {
7285    color: #dc2626;
7286    font-size: 14px;
7287    vertical-align: middle;
7288}
7289.floating_board_field input,
7290.floating_board_field textarea {
7291    width: 100%;
7292    padding: 10px 12px;
7293    border: 1px solid #ddd;
7294    border-radius: 6px;
7295    font-size: 14px;
7296    transition: border-color 0.2s;
7297}
7298.floating_board_field input:focus,
7299.floating_board_field textarea:focus {
7300    outline: none;
7301    border-color: var(--primary, #4075bd);
7302}
7303.floating_board_field textarea {
7304    min-height: 100px;
7305    resize: vertical;
7306}
7307.floating_board_agree {
7308    margin: 15px 0;
7309    font-size: 13px;
7310}
7311.floating_board_agree label {
7312    display: flex;
7313    align-items: center;
7314    gap: 8px;
7315    cursor: pointer;
7316}
7317.floating_board_agree input {
7318    width: 18px;
7319    height: 18px;
7320}
7321.floating_board_submit {
7322    margin-top: 20px;
7323}
7324.floating_board_submit .btn_submit {
7325    width: 100%;
7326    padding: 14px;
7327    background: var(--primary, #4075bd);
7328    color: #fff;
7329    border: none;
7330    border-radius: 8px;
7331    font-size: 15px;
7332    font-weight: 600;
7333    cursor: pointer;
7334    transition: background 0.2s;
7335}
7336.floating_board_submit .btn_submit:hover {
7337    opacity: 0.9;
7338}
7339</style>
7340
7341<script>
7342(function() {
7343    // 모달 저장소 (다중 모달 지원)
7344    var floatingModals = {};
7345
7346    // DOM 로드 후 실행
7347    $(function() {
7348        // 모든 플로팅 위젯의 링크 처리
7349        $('.quick_floating_wrap').on('click', 'a[href^="#modal"], button[data-href^="#modal"]', function(e) {
7350            e.preventDefault();
7351            var href = $(this).attr('href') || $(this).data('href');
7352            var modalId = href.replace('#', '');
7353            openFloatingModal(modalId, $(this));
7354        });
7355
7356        // 게시판 연동 링크 처리 (cs1_modal 스킨은 자체 핸들러 사용)
7357        $('.quick_floating_wrap').on('click', 'a[href^="#board:"], button[data-href^="#board:"]', function(e) {
7358            if ($(this).hasClass('cs1-btn-contact') || $(this).hasClass('cs2-btn-contact') || $(this).closest('.cs1-wrap').length || $(this).closest('.cs2-wrap').length) return;
7359            e.preventDefault();
7360            var href = $(this).attr('href') || $(this).data('href');
7361            openFloatingBoardModal(href);
7362        });
7363
7364        // TOP 버튼 처리
7365        $('.quick_floating_wrap').on('click', 'a[href="#top"], button[data-href="#top"]', function(e) {
7366            e.preventDefault();
7367            $('html, body').animate({ scrollTop: 0 }, 500);
7368        });
7369
7370        // ESC 키로 모달 닫기
7371        $(document).on('keydown', function(e) {
7372            if (e.key === 'Escape') {
7373                closeAllFloatingModals();
7374                closeFloatingBoardModal();
7375            }
7376        });
7377    });
7378
7379    // 모달 열기 (다중 지원)
7380    window.openFloatingModal = function(modalId, $trigger) {
7381        var $container = $('#floating_modal_container');
7382
7383        // 이미 열린 모달이면 닫기
7384        if (floatingModals[modalId] && floatingModals[modalId].hasClass('active')) {
7385            floatingModals[modalId].removeClass('active');
7386            return;
7387        }
7388
7389        // 모달 내용 찾기 (같은 wg_box_in 내의 txt2)
7390        var $boxIn = $trigger.closest('.wg_box_in');
7391        var content = '';
7392        var title = '';
7393
7394        // txt2에서 모달 내용 가져오기
7395        var $txt2 = $boxIn.find('.wg_txt2');
7396        if ($txt2.length) {
7397            content = $txt2.html();
7398        }
7399
7400        // 제목은 txt1에서
7401        var $txt1 = $boxIn.find('.wg_txt1');
7402        if ($txt1.length) {
7403            title = $txt1.text().trim();
7404        }
7405
7406        if (!content) {
7407            console.warn('Modal content not found for:', modalId);
7408            return;
7409        }
7410
7411        // 모달이 없으면 생성
7412        if (!floatingModals[modalId]) {
7413            var modalHtml = '<div class="floating_common_modal" data-modal-id="' + modalId + '">' +
7414                '<div class="modal_content">' +
7415                '<div class="modal_header">' +
7416                '<h4>' + (title || '안내') + '</h4>' +
7417                '<button type="button" class="btn_close" onclick="closeFloatingModal(\'' + modalId + '\')">&times;</button>' +
7418                '</div>' +
7419                '<div class="modal_body">' + content + '</div>' +
7420                '</div>' +
7421                '</div>';
7422
7423            $container.append(modalHtml);
7424            floatingModals[modalId] = $container.find('[data-modal-id="' + modalId + '"]');
7425
7426            // 오버레이 클릭으로 닫기
7427            floatingModals[modalId].on('click', function(e) {
7428                if ($(e.target).is(floatingModals[modalId])) {
7429                    closeFloatingModal(modalId);
7430                }
7431            });
7432        }
7433
7434        // 모달 열기
7435        floatingModals[modalId].addClass('active');
7436    };
7437
7438    // 특정 모달 닫기
7439    window.closeFloatingModal = function(modalId) {
7440        if (floatingModals[modalId]) {
7441            floatingModals[modalId].removeClass('active');
7442        }
7443    };
7444
7445    // 모든 모달 닫기
7446    window.closeAllFloatingModals = function() {
7447        for (var id in floatingModals) {
7448            floatingModals[id].removeClass('active');
7449        }
7450    };
7451
7452    // 게시판 폼 모달 열기
7453    window.openFloatingBoardModal = function(href) {
7454        // #board:게시판ID:필드매핑 파싱
7455        var parts = href.replace('#board:', '').split(':');
7456        var boTable = parts[0];
7457        var fieldMapping = parts[1] || '';
7458
7459        if (!boTable) {
7460            alert('게시판 ID가 지정되지 않았습니다.');
7461            return;
7462        }
7463
7464        // 기본 필드 (필드매핑이 없을 경우)
7465        var defaultFields = [
7466            { label: '성함', name: 'wr_name', type: 'text', required: true },
7467            { label: '연락처', name: 'wr_1', type: 'tel', required: true },
7468            { label: '이메일', name: 'wr_email', type: 'email', required: false },
7469            { label: '문의내용', name: 'wr_content', type: 'textarea', required: true }
7470        ];
7471
7472        var fields = defaultFields;
7473
7474        // 커스텀 필드 매핑 파싱 (라벨=필드명,라벨=필드명)
7475        if (fieldMapping && fieldMapping !== 'all') {
7476            fields = [];
7477            var mappings = fieldMapping.split(',');
7478            mappings.forEach(function(mapping) {
7479                var pair = mapping.split('=');
7480                if (pair.length === 2) {
7481                    var label = pair[0].trim();
7482                    var fieldName = pair[1].trim();
7483                    var type = 'text';
7484                    var required = true;
7485
7486                    // 필드명에 따른 타입 추론
7487                    if (fieldName === 'wr_content' || fieldName === 'content') type = 'textarea';
7488                    else if (fieldName.indexOf('email') !== -1) type = 'email';
7489                    else if (fieldName.indexOf('tel') !== -1 || fieldName.indexOf('phone') !== -1) type = 'tel';
7490
7491                    // 필드명 변환
7492                    if (fieldName === 'name') fieldName = 'wr_name';
7493                    else if (fieldName === 'email') fieldName = 'wr_email';
7494                    else if (fieldName === 'content') fieldName = 'wr_content';
7495                    else if (fieldName === 'subject') fieldName = 'wr_subject';
7496
7497                    fields.push({ label: label, name: fieldName, type: type, required: required });
7498                }
7499            });
7500        }
7501
7502        // 폼 필드 생성
7503        var fieldsHtml = '';
7504        fields.forEach(function(field) {
7505            var inputHtml = '';
7506            if (field.type === 'textarea') {
7507                inputHtml = '<textarea name="' + field.name + '" placeholder="' + field.label + '을(를) 입력해주세요"' + (field.required ? ' required' : '') + '></textarea>';
7508            } else {
7509                inputHtml = '<input type="' + field.type + '" name="' + field.name + '" placeholder="' + field.label + '을(를) 입력해주세요"' + (field.required ? ' required' : '') + '>';
7510            }
7511
7512            fieldsHtml += '<div class="floating_board_field">' +
7513                '<label>' + field.label + (field.required ? ' <span class="required">*</span>' : '') + '</label>' +
7514                inputHtml +
7515                '</div>';
7516        });
7517
7518        $('#flt_bo_table').val(boTable);
7519        $('#floating_board_fields').html(fieldsHtml);
7520        $('#floating_board_modal').addClass('active');
7521    };
7522
7523    // 게시판 폼 모달 닫기
7524    window.closeFloatingBoardModal = function() {
7525        $('#floating_board_modal').removeClass('active');
7526        $('#floating_board_form')[0].reset();
7527    };
7528
7529    // 게시판 글쓰기 제출
7530    window.submitFloatingBoard = function(e) {
7531        e.preventDefault();
7532
7533        var $form = $('#floating_board_form');
7534        var $btn = $form.find('.btn_submit');
7535        var boTable = $('#flt_bo_table').val();
7536
7537        if (!boTable) {
7538            alert('게시판 정보가 없습니다.');
7539            return false;
7540        }
7541
7542        // 필수 필드 검증
7543        var hasName = false;
7544        $form.find('input[name="wr_name"]').each(function() {
7545            if ($(this).val().trim()) hasName = true;
7546        });
7547
7548        if (!hasName) {
7549            alert('성함을 입력해주세요.');
7550            return false;
7551        }
7552
7553        // 동의 체크 확인
7554        if (!$form.find('input[name="agree"]').is(':checked')) {
7555            alert('개인정보 수집 및 이용에 동의해주세요.');
7556            return false;
7557        }
7558
7559        // 버튼 비활성화 (중복 제출 방지)
7560        $btn.prop('disabled', true).text('처리중...');
7561
7562        var formData = $form.serializeArray();
7563        var postData = {
7564            bo_table: boTable
7565        };
7566
7567        formData.forEach(function(item) {
7568            if (item.name !== 'agree') {
7569                postData[item.name] = item.value;
7570            }
7571        });
7572
7573        // 제목 자동 생성 (없으면)
7574        if (!postData.wr_subject) {
7575            postData.wr_subject = '[플로팅문의] ' + (postData.wr_name || '문의');
7576        }
7577
7578        // AJAX 글쓰기 (별도 처리 파일)
7579        $.ajax({
7580            url: '/_themeCom/_chiefadmin/floating_board_ajax.php',
7581            type: 'POST',
7582            data: postData,
7583            dataType: 'json',
7584            success: function(res) {
7585                $btn.prop('disabled', false).text('문의하기');
7586                if (res.success) {
7587                    alert(res.message || '문의가 접수되었습니다.');
7588                    closeFloatingBoardModal();
7589                } else {
7590                    alert(res.message || '문의 접수에 실패했습니다.');
7591                }
7592            },
7593            error: function(xhr, status, error) {
7594                $btn.prop('disabled', false).text('문의하기');
7595                console.error('Error:', xhr.responseText);
7596                alert('문의 접수 중 오류가 발생했습니다.');
7597            }
7598        });
7599
7600        return false;
7601    };
7602})();
7603</script>
7603
7604
7605<!--공통템하 js  style.js은 각 스킨에--> 
7606<script src="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/js/setting.js"></script>
7606 
7607<script src="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/js/plugin.js"></script>
7607 
7608<script src="https://seochowcf.or.kr/_themeCom/themeAsset/temha_resources/js/templatehouse.js"></script>
7608 
7609<script src="https://seochowcf.or.kr/_themeCom/themeAsset/basic_resources/js/lottie-player.js"></script>
vendor: 2 bytes, line 7609
7609
7610<script>
7611/* lottie-player 공통 호버 제어: json-hover(호버재생) + --default-color(호버색상전환) */
7612document.addEventListener('DOMContentLoaded', function(){
7613  var allPlayers = document.querySelectorAll('lottie-player');
7614  if (!allPlayers.length) return;
7615  document.querySelectorAll('.json-hover').forEach(function(box){
7616    var lotties = box.querySelectorAll('lottie-player');
7617    if (!lotties.length) return;
7618    lotties.forEach(function(el){
7619      el.removeAttribute('autoplay');
7620      el.dataset.lottieHandled = '1';
7621      el.addEventListener('ready', function(){ try{ el.stop(); }catch(e){} });
7622    });
7623    box.addEventListener('mouseenter', function(){
7624      lotties.forEach(function(el){ try{ el.play(); }catch(e){} });
7625    });
7626    box.addEventListener('mouseleave', function(){
7627      lotties.forEach(function(el){ try{ el.stop(); }catch(e){} });
7628    });
7629  });
7630  allPlayers.forEach(function(player){
7631    if (player.dataset.lottieHandled) return;
7632    var hasColorVar = getComputedStyle(player).getPropertyValue('--default-color').trim();
7633    if (!hasColorVar) return;
7634    player.dataset.lottieHandled = '1';
7635    var parent = player.closest('.wg_box_in') || player.closest('a') || player.parentElement;
7636    if (!parent) return;
7637    function onReady(){
7638      var sr = player.shadowRoot;
7639      if (!sr) return;
7640      if (sr.getElementById('tint-style')) return;
7641      var style = document.createElement('style');
7642      style.id = 'tint-style';
7643      style.textContent =
7644        'svg *[fill]:not([fill="none"]),svg *[stroke]:not([stroke="none"]){transition:fill .4s ease,stroke .4s ease;}' +
7645        'svg *[fill]:not([fill="none"]){fill:var(--default-color)!important;}' +
7646        'svg *[stroke]:not([stroke="none"]){stroke:var(--default-color)!important;}' +
7647        ':host(.hovered) svg *[fill]:not([fill="none"]){fill:var(--hover-color,#fff)!important;}' +
7648        ':host(.hovered) svg *[stroke]:not([stroke="none"]){stroke:var(--hover-color,#fff)!important;}';
7649      sr.appendChild(style);
7650      try{ player.stop(); }catch(e){}
7651    }
7652    player.addEventListener('ready', onReady, { once: true });
7653    if (player.shadowRoot && player.shadowRoot.querySelector('svg')) onReady();
7654    parent.addEventListener('mouseenter', function(){
7655      player.classList.add('hovered');
7656      try{ player.play(); }catch(e){}
7657    });
7658    parent.addEventListener('mouseleave', function(){
7659      player.classList.remove('hovered');
7660      try{ player.stop(); }catch(e){}
7661    });
7662  });
7663});
7664</script>
7664
7665<!-- 메인블럭 js모음: 하단  --> 
7666
7667<script src="https://seochowcf.or.kr/js/sns.js"></script>
7667 
7668<script src="https://seochowcf.or.kr/theme/hayan/js/css3-animate-it.js"></script>
7668
7669<link rel="stylesheet" href="https://seochowcf.or.kr/theme/hayan/css/animate.css"> 
7670<script>
7671function refresh_admin_view() {
7672    location.reload(); // 또는 특정 영역만 리로드해도 됨
7673}
7674</script>
7674 
7675<!--wing 오버효과 1--> 
7676<script>
7677document.addEventListener("DOMContentLoaded", function () {
7678  for (let i = 1; i <= 12; i++) {
7679    const icon = document.querySelector(`.iconview_${i}`);
7680    const block = document.querySelector(`#block_${i}`);
7681
7682    if (icon && block) {
7683      icon.addEventListener("mouseenter", function () {
7684        block.classList.add("ov");
7685      });
7686
7687      icon.addEventListener("mouseleave", function () {
7688        block.classList.remove("ov");
7689      });
7690    }
7691  }
7692});
7693	
7694	
7695</script>
7695
7696
7697
7698<!--테이블 모바일 날개 화살표 js-->
7699<script>
7700(function(){
7701  var frame = document.querySelector('[data-role="frame"]') || document.querySelector('.frame');
7702  if(!frame) return;
7703  var wrap = frame.querySelector('.table-wrap');
7704  var arrL = frame.querySelector('[data-role="arrL"]');
7705  var arrR = frame.querySelector('[data-role="arrR"]');
7706  var hbar = frame.querySelector('[data-role="hbar"] .bar');
7707  var hinner = frame.querySelector('[data-role="hinner"]');
7708  if(!wrap||!arrL||!arrR||!hbar||!hinner) return;
7709
7710  function syncHbar(){ hinner.style.width = wrap.scrollWidth + 'px'; }
7711  function updateArrows(){
7712    var over = wrap.scrollWidth > wrap.clientWidth + 1;
7713    arrL.style.display = over ? 'flex' : 'none';
7714    arrR.style.display = over ? 'flex' : 'none';
7715  }
7716  syncHbar(); updateArrows();
7717
7718  var lock=false;
7719  hbar.addEventListener('scroll', function(){
7720    if(lock) return; lock=true; wrap.scrollLeft = hbar.scrollLeft; lock=false; updateArrows();
7721  });
7722  wrap.addEventListener('scroll', function(){
7723    if(lock) return; lock=true; hbar.scrollLeft = wrap.scrollLeft; lock=false; updateArrows();
7724  });
7725
7726  var step = function(){ return Math.max(160, wrap.clientWidth * 0.35); };
7727  arrL.addEventListener('click', function(){ wrap.scrollBy({left:-step(), behavior:'smooth'}); });
7728  arrR.addEventListener('click', function(){ wrap.scrollBy({left: step(), behavior:'smooth'}); });
7729
7730  window.addEventListener('resize', function(){ syncHbar(); updateArrows(); });
7731})();
7732</script>
7732
7733<!--admin 일때만 점선보이기-->
7734<script>
7735document.addEventListener('DOMContentLoaded', function() {
7736            document.querySelectorAll('.admin_div').forEach(function(el) {
7737            el.classList.remove('admin_div');
7738            el.classList.add('admin_div_no');
7739        });
7740    });
7741</script>
7741
7742
7743<script>
7744document.addEventListener("DOMContentLoaded", function() {
7745  var header = document.getElementById("gnb");
7746
7747  function toggleHeaderLang() {
7748    if (!header) return;
7749
7750    // 구글 번역 iframe이 있으면 실행중 → lang 추가
7751    if (document.querySelector("iframe.goog-te-banner-frame")) {
7752      header.classList.add("lang");
7753    } else {
7754      header.classList.remove("lang");
7755    }
7756  }
7757
7758  // 처음 실행
7759  toggleHeaderLang();
7760
7761  // 1초마다 체크 (iframe은 MutationObserver로 잘 안 잡혀서 setInterval 사용)
7762  setInterval(toggleHeaderLang, 1000);
7763});
7764</script>
7764
7765
7766<script>
7767/* =========================================================
7768   ALT Keeper v1.2
7769   - 초기 로드 + 동적 변경(MutationObserver)까지 감시
7770   - alt 비었거나 삭제되면 안전한 값으로 복구
7771   - 장식용 이미지는 예외 처리(aria-hidden="true", role="presentation", data-decorative)
7772   ========================================================= */
7773(function () {
7774  'use strict';
7775
7776  // 1) alt 후보값 만들기
7777  function deriveAlt(img) {
7778    // 1순위: 명시적 데이터/접근성 속성
7779    var v = img.getAttribute('data-alt')
7780         || img.getAttribute('aria-label')
7781         || img.getAttribute('title');
7782
7783    // 2순위: figure > figcaption 텍스트
7784    if (!v) {
7785      var fig = img.closest && img.closest('figure');
7786      if (fig) {
7787        var cap = fig.querySelector('figcaption');
7788        if (cap && cap.textContent) v = cap.textContent.trim();
7789      }
7790    }
7791
7792    // 3순위: 부모 링크의 텍스트(썸네일 등)
7793    if (!v && img.parentElement && img.parentElement.tagName === 'A') {
7794      var at = img.parentElement.textContent.trim();
7795      if (at) v = at;
7796    }
7797
7798    // 4순위: 파일명 추출
7799    if (!v) {
7800      var src = img.currentSrc || img.src || img.getAttribute('data-src') || '';
7801      try {
7802        // 쿼리스트링 제거
7803        var clean = src.split('?')[0].split('#')[0];
7804        var name = clean.split('/').pop() || '';
7805        name = name.replace(/\.[a-z0-9]+$/i, '').replace(/[_\-]+/g, ' ').trim();
7806        if (name) v = name;
7807      } catch (e) {}
7808    }
7809
7810    // 5순위: 최후의 기본값
7811    if (!v) v = '이미지';
7812
7813    // 너무 길면 잘라주기(접근성 고려)
7814    if (v.length > 120) v = v.slice(0, 117) + '...';
7815    return v;
7816  }
7817
7818  // 2) 장식용 예외
7819  function isDecorative(img) {
7820    return img.hasAttribute('aria-hidden') && img.getAttribute('aria-hidden') === 'true'
7821        || img.getAttribute('role') === 'presentation'
7822        || img.hasAttribute('data-decorative');
7823  }
7824
7825  // 3) alt 강제 세팅(비거나 null일 때만)
7826  function ensureAlt(img) {
7827    if (!(img && img.tagName === 'IMG')) return;
7828    if (isDecorative(img)) return;
7829
7830    var alt = img.getAttribute('alt');
7831    if (alt === null || alt.trim() === '') {
7832      var val = deriveAlt(img);
7833      img.setAttribute('alt', val);
7834      img.dataset.altKeeper = 'locked'; // 잠금표시
7835    }
7836  }
7837
7838  // 4) alt가 나중에 빈 값으로 바뀌면 복구
7839  function relockIfCleared(mutation) {
7840    var target = mutation.target;
7841    if (target && target.tagName === 'IMG' && !isDecorative(target)) {
7842      // alt 속성이 제거되었거나 빈 문자열로 바뀐 경우
7843      var altAttr = target.getAttribute('alt');
7844      if (altAttr === null || altAttr.trim() === '') {
7845        // data-alt-keeper-original 이 있으면 우선
7846        var orig = target.dataset.altKeeperOriginal;
7847        target.setAttribute('alt', (orig && orig.trim()) ? orig : deriveAlt(target));
7848        target.dataset.altKeeper = 'locked';
7849      }
7850    }
7851  }
7852
7853  // 5) 초기 로드 시 전체 점검
7854  function sweep() {
7855    document.querySelectorAll('img').forEach(function (img) {
7856      if (!isDecorative(img)) {
7857        // 최초 alt 값 보관(나중에 복구용)
7858        if (!img.dataset.altKeeperOriginal) {
7859          var a = img.getAttribute('alt');
7860          if (a && a.trim() !== '') img.dataset.altKeeperOriginal = a.trim();
7861        }
7862        ensureAlt(img);
7863      }
7864    });
7865  }
7866
7867  // 6) DOM 변경 감시(지연로딩, 프레임워크 렌더 대응)
7868  var obs = new MutationObserver(function (mutations) {
7869    mutations.forEach(function (m) {
7870      // 새로 추가된 노드 점검
7871      m.addedNodes && m.addedNodes.forEach(function (node) {
7872        if (!node) return;
7873        if (node.nodeType !== 1) return;
7874
7875        if (node.tagName === 'IMG') {
7876          // 새로 추가된 이미지
7877          // 원래 alt 저장
7878          if (!node.dataset.altKeeperOriginal) {
7879            var a = node.getAttribute('alt');
7880            if (a && a.trim() !== '') node.dataset.altKeeperOriginal = a.trim();
7881          }
7882          ensureAlt(node);
7883        } else {
7884          // 하위에 img가 있을 수 있음
7885          node.querySelectorAll && node.querySelectorAll('img').forEach(function (img) {
7886            if (!img.dataset.altKeeperOriginal) {
7887              var a2 = img.getAttribute('alt');
7888              if (a2 && a2.trim() !== '') img.dataset.altKeeperOriginal = a2.trim();
7889            }
7890            ensureAlt(img);
7891          });
7892        }
7893      });
7894
7895      // 속성 변경으로 alt가 비워진 경우 복구
7896      if (m.type === 'attributes' && m.attributeName === 'alt') {
7897        relockIfCleared(m);
7898      }
7899    });
7900  });
7901
7902  // 7) 시작!
7903  if (document.readyState === 'loading') {
7904    document.addEventListener('DOMContentLoaded', start);
7905  } else {
7906    start();
7907  }
7908
7909  function start() {
7910    sweep();
7911    obs.observe(document.documentElement, {
7912      subtree: true,
7913      childList: true,
7914      attributes: true,
7915      attributeFilter: ['alt'] // alt가 바뀌는 것만 추적
7916    });
7917  }
7918
7919})();
7920</script>
7920
7921
7922
7923
7924<style>
7925.custom-popup .popup-content img {
7926  width: 100% !important;
7927  height: auto !important;
7928  max-width: 100% !important;
7929  display: block;
7930}
7931</style><div id="popup_63" class="custom-popup mobile-slide"
7932     style="left:600px;top:100px;width:500px;">
7933
7934  <div class="popup-header">
7935    <span class="popup-title">내 손으로 만드는 서초복지 '2026년 주민참…</span>
7936    <div class="popup-header-btns">
7937      <button class="fold-btn popup1-mo-only" onclick="togglePopup('popup_63')" title="접기"><i class="uis uis-angle-down"></i></button>
7938      <button class="close-btn" onclick="hidePopup('popup_63')" title="닫기">×</button>
7939    </div>
7940  </div>
7941<div class="popup-body">
7942  <a href="https://seochowcf.or.kr/bbs/board.php?bo_table=SWCF_4020&wr_id=67&me_code=4020&lang=ko&page=1">
7943            <img src="https://seochowcf.or.kr/data/file/popup_total/c98eae945bf57f9d79732e2037229cdd_TviQGg1V_62cf9803d7378fa01f4ff1a90b353f65ac005cbf.jpg" class="popup-img popup-img-pc" alt="PC 이미지">
7944          
7945  </a></div>
7946
7947
7948  <div class="popup-footer">
7949    <label><input type="checkbox" id="popup_63_chk"> 하루 동안 보지 않기</label>
7950  </div>
7951</div>
7952<div id="popup_61" class="custom-popup mobile-slide"
7953     style="left:100px;top:100px;width:500px;">
7954
7955  <div class="popup-header">
7956    <span class="popup-title">돌봄실태 및 복지수요조사</span>
7957    <div class="popup-header-btns">
7958      <button class="fold-btn popup1-mo-only" onclick="togglePopup('popup_61')" title="접기"><i class="uis uis-angle-down"></i></button>
7959      <button class="close-btn" onclick="hidePopup('popup_61')" title="닫기">×</button>
7960    </div>
7961  </div>
7962<div class="popup-body">
7963  <a href="https://answer.moaform.com/answers/MxwbBm">
7964            <img src="https://seochowcf.or.kr/data/file/popup_total/c98eae945bf57f9d79732e2037229cdd_RGY54u6O_b2faf6c8e0ba62da3f4cca3855bb71c4693efed2.jpg" class="popup-img popup-img-pc" alt="PC 이미지">
7965          
7966  </a></div>
7967
7968
7969  <div class="popup-footer">
7970    <label><input type="checkbox" id="popup_61_chk"> 하루 동안 보지 않기</label>
7971  </div>
7972</div>
7973<div id="popup_59" class="custom-popup mobile-slide"
7974     style="left:100px;top:140px;width:500px;">
7975
7976  <div class="popup-header">
7977    <span class="popup-title">방배마을이음단 모집</span>
7978    <div class="popup-header-btns">
7979      <button class="fold-btn popup1-mo-only" onclick="togglePopup('popup_59')" title="접기"><i class="uis uis-angle-down"></i></button>
7980      <button class="close-btn" onclick="hidePopup('popup_59')" title="닫기">×</button>
7981    </div>
7982  </div>
7983<div class="popup-body">
7984  
7985            <img src="https://seochowcf.or.kr/data/file/popup_total/c98eae945bf57f9d79732e2037229cdd_xZJK6aqt_b3f9e240ef678aa8eac8e5a82e6e2243bae1eb15.png" class="popup-img popup-img-pc" alt="PC 이미지">
7986          
7987  </div>
7988
7989
7990  <div class="popup-footer">
7991    <label><input type="checkbox" id="popup_59_chk"> 하루 동안 보지 않기</label>
7992  </div>
7993</div>
7994<div id="popup_53" class="custom-popup mobile-slide"
7995     style="left:600px;top:140px;width:500px;">
7996
7997  <div class="popup-header">
7998    <span class="popup-title">생애주기별 기부</span>
7999    <div class="popup-header-btns">
8000      <button class="fold-btn popup1-mo-only" onclick="togglePopup('popup_53')" title="접기"><i class="uis uis-angle-down"></i></button>
8001      <button class="close-btn" onclick="hidePopup('popup_53')" title="닫기">×</button>
8002    </div>
8003  </div>
8004<div class="popup-body">
8005  <a href="https://seochowcf.or.kr/bbs/content.php?co_id=SWCF_3010&lang=ko&me_code=3010">
8006            <img src="https://seochowcf.or.kr/data/file/popup_total/c98eae945bf57f9d79732e2037229cdd_SHxkPTJu_d336c1cb8af7af131ba28ebbb6b90e8360aa07dd.jpeg" class="popup-img popup-img-pc" alt="PC 이미지">
8007          
8008  </a></div>
8009
8010
8011  <div class="popup-footer">
8012    <label><input type="checkbox" id="popup_53_chk"> 하루 동안 보지 않기</label>
8013  </div>
8014</div>
8015<script>
8016// ✅ 개별 팝업 닫기 (PC 또는 모바일 1개일 때)
8017function hidePopup(id) {
8018  var el = document.getElementById(id);
8019  var chk = document.getElementById(id + "_chk");
8020
8021  if (chk && chk.checked) {
8022    document.cookie = id + "=1; path=/; max-age=86400; SameSite=Lax";
8023  }
8024
8025  if (el.classList.contains('mobile-slide')) {
8026    el.classList.add('hide');
8027    setTimeout(function () {
8028      el.style.display = 'none';
8029    }, 500);
8030  } else {
8031    el.style.display = 'none';
8032  }
8033}
8034
8035// ✅ 개별 팝업 접기/펼치기 토글 (모바일 1개일 때)
8036function togglePopup(id) {
8037  var el = document.getElementById(id);
8038  var foldBtn = el.querySelector('.fold-btn');
8039
8040  if (el.classList.contains('folded')) {
8041    el.classList.remove('folded');
8042    if (foldBtn) foldBtn.innerHTML = '<i class="uis uis-angle-down"></i>';
8043  } else {
8044    el.classList.add('folded');
8045    if (foldBtn) foldBtn.innerHTML = '<i class="uis uis-angle-up"></i>';
8046  }
8047}
8048
8049// ✅ Swiper 팝업 닫기 (모바일 스와이퍼)
8050function hideSwiperPopup() {
8051  var el = document.getElementById('mobile-popup-swiper-wrap');
8052  var chk = document.getElementById('swiper_popup_chk');
8053
8054  // 하루 동안 보지 않기 체크 시 모든 팝업 쿠키 설정
8055  if (chk && chk.checked && typeof popupSwiperIds !== 'undefined') {
8056    popupSwiperIds.forEach(function(id) {
8057      document.cookie = id + "=1; path=/; max-age=86400; SameSite=Lax";
8058    });
8059  }
8060
8061  el.classList.add('hide');
8062  // 오버레이도 숨김
8063  var overlay = document.getElementById('popup1_overlay');
8064  if (overlay) overlay.classList.add('hide');
8065
8066  setTimeout(function () {
8067    el.style.display = 'none';
8068    if (overlay) overlay.style.display = 'none';
8069  }, 500);
8070}
8071
8072// ✅ Swiper 팝업 접기/펼치기 토글
8073function toggleSwiperPopup() {
8074  var el = document.getElementById('mobile-popup-swiper-wrap');
8075  var foldBtn = el.querySelector('.fold-btn');
8076
8077  if (el.classList.contains('folded')) {
8078    el.classList.remove('folded');
8079    if (foldBtn) foldBtn.innerHTML = '<i class="uis uis-angle-down"></i>';
8080  } else {
8081    el.classList.add('folded');
8082    if (foldBtn) foldBtn.innerHTML = '<i class="uis uis-angle-up"></i>';
8083  }
8084}
8085
8086document.addEventListener('DOMContentLoaded', function () {
8087  // ✅ 태블릿 자동 비율 축소 (리사이즈 반응, 날개 설정값 적용)
8088  var PC_BASE = 1600;
8089  var MO_BP = 460;
8090  var SCALE_MIN_W = 0; // 최소 너비(px), 0=제한없음
8091  var SCALE_MIN_R = 0; // 최소 비율(%), 0=제한없음
8092
8093  // 원본값 저장 (한 번만)
8094  document.querySelectorAll('.custom-popup:not(.mo-center)').forEach(function(popup) {
8095    popup._origW = parseInt(popup.style.width) || 0;
8096    popup._origL = parseInt(popup.style.left) || 0;
8097    popup._origT = parseInt(popup.style.top) || 0;
8098  });
8099  function scalePopups() {
8100    var vw = window.innerWidth;
8101    document.querySelectorAll('.custom-popup:not(.mo-center)').forEach(function(popup) {
8102      if (!popup._origW) return;
8103      if (vw <= MO_BP) {
8104        // 모바일 사이즈: 인라인 스타일 제거하여 CSS가 처리하도록
8105        popup.style.width = '';
8106        popup.style.left = '';
8107        popup.style.top = '';
8108        return;
8109      }
8110      if (vw >= PC_BASE) {
8111        popup.style.width = popup._origW + 'px';
8112        popup.style.left = popup._origL + 'px';
8113        popup.style.top = popup._origT + 'px';
8114        return;
8115      }
8116      var ratio = vw / PC_BASE;
8117      // 최소 비율 제한
8118      if (SCALE_MIN_R > 0) ratio = Math.max(ratio, SCALE_MIN_R / 100);
8119      var newW = Math.round(popup._origW * ratio);
8120      // 최소 너비 제한
8121      if (SCALE_MIN_W > 0 && newW < SCALE_MIN_W) newW = SCALE_MIN_W;
8122      var newL = Math.round(popup._origL * ratio);
8123      var newT = Math.round(popup._origT * ratio);
8124      // 화면 넘침 보정
8125      if (newW > vw * 0.9) newW = Math.round(vw * 0.9);
8126      if (newL + newW > vw) newL = Math.max(10, vw - newW - 10);
8127      popup.style.width = newW + 'px';
8128      popup.style.left = newL + 'px';
8129      popup.style.top = newT + 'px';
8130    });
8131  }
8132  scalePopups();
8133  var resizeTimer;
8134  window.addEventListener('resize', function() {
8135    clearTimeout(resizeTimer);
8136    resizeTimer = setTimeout(scalePopups, 50);
8137  });
8138
8139  // ✅ PC 팝업 드래그 기능 (모바일이 아닌 경우 모든 팝업 대상)
8140  var isMobile = /iPhone|Android|Mobile/i.test(navigator.userAgent);
8141  var popups = isMobile ? [] : document.querySelectorAll('.custom-popup');
8142
8143  popups.forEach(function (popup) {
8144    var isDown = false, offset = [0, 0];
8145    var header = popup.querySelector('.popup-header');
8146
8147    header.addEventListener('mousedown', function (e) {
8148      isDown = true;
8149      offset = [e.clientX - popup.offsetLeft, e.clientY - popup.offsetTop];
8150
8151      function onMouseMove(e) {
8152        if (!isDown) return;
8153        popup.style.left = (e.clientX - offset[0]) + 'px';
8154        popup.style.top = (e.clientY - offset[1]) + 'px';
8155      }
8156
8157      function onMouseUp() {
8158        isDown = false;
8159        document.removeEventListener('mousemove', onMouseMove);
8160        document.removeEventListener('mouseup', onMouseUp);
8161      }
8162
8163      document.addEventListener('mousemove', onMouseMove);
8164      document.addEventListener('mouseup', onMouseUp);
8165    });
8166  });
8167
8168  // ✅ Swiper 초기화
8169  if (document.querySelector('.popup-swiper')) {
8170    // 센터모달은 animation 후 초기화해야 width가 정확함
8171    var initDelay = document.querySelector('.mo-center') ? 500 : 0;
8172    setTimeout(function() {
8173      var popupSwiper = new Swiper('.popup-swiper', {
8174        slidesPerView: 1,
8175        spaceBetween: 0,
8176        observer: true,
8177        observeParents: true,
8178        pagination: {
8179          el: '.swiper-pagination',
8180          clickable: true
8181        }
8182      });
8183      // 센터모달에서 레이아웃 재계산
8184      setTimeout(function() { popupSwiper.update(); }, 100);
8185    }, initDelay);
8186  }
8187
8188  // ✅ 센터모달(mo-center)일 때 배경 오버레이 생성
8189  
8190  // ✅ 에디터 이미지 스타일 보정
8191  var popupImages = document.querySelectorAll('.custom-popup .popup-content img');
8192  popupImages.forEach(function(img) {
8193    img.removeAttribute('width');
8194    img.removeAttribute('height');
8195    img.style.width = '100%';
8196    img.style.height = 'auto';
8197  });
8198});
8199</script>
8199
8200
8201<script>
8202(function(){
8203  // head.php 통합 버튼에 팝업 개수 전달 (지연 호출)
8204  var popupCount = 4;
8205  function tryUpdatePopupCount() {
8206    if (typeof window.updatePopupReopenCount === 'function') {
8207      window.updatePopupReopenCount(popupCount);
8208    } else {
8209      setTimeout(tryUpdatePopupCount, 100);
8210    }
8211  }
8212  if (document.readyState === 'complete') {
8213    tryUpdatePopupCount();
8214  } else {
8215    window.addEventListener('load', tryUpdatePopupCount);
8216  }
8217
8218  // 자동 표시 여부 (서브페이지에서 메인만 출력일 때 false)
8219  var popupAutoShow = true;
8220
8221  // 자동 표시가 아닌 경우 (서브페이지) - 처음부터 버튼 표시
8222  // DOMContentLoaded로 지연 (head.php 스크립트 로드 대기)
8223  function tryShowPopupBtn() {
8224    if (typeof window.showPopupReopenBtn === 'function') {
8225      window.showPopupReopenBtn();
8226    } else {
8227      // 함수가 아직 없으면 100ms 후 재시도
8228      setTimeout(tryShowPopupBtn, 100);
8229    }
8230  }
8231  if (!popupAutoShow && popupCount > 0) {
8232    if (document.readyState === 'complete') {
8233      tryShowPopupBtn();
8234    } else {
8235      window.addEventListener('load', tryShowPopupBtn);
8236    }
8237  }
8238
8239  // 전역 함수: 모든 팝업 다시 열기 (head.php에서 호출)
8240  window.reopenAllPopups = function() {
8241    // 버튼 숨기기
8242    if (typeof window.hidePopupReopenBtn === 'function') {
8243      window.hidePopupReopenBtn();
8244    }
8245
8246    // 모바일 Swiper 팝업인 경우
8247    var swiperWrap = document.getElementById('mobile-popup-swiper-wrap');
8248    if (swiperWrap) {
8249      swiperWrap.style.display = 'block';
8250      swiperWrap.classList.remove('hide');
8251      swiperWrap.style.animation = 'slideUp 0.5s forwards';
8252      // 오버레이도 다시 표시
8253      var overlay = document.getElementById('popup1_overlay');
8254      if (overlay) {
8255        overlay.style.display = 'block';
8256        overlay.classList.remove('hide');
8257      }
8258      return;
8259    }
8260
8261    // 개별 팝업인 경우
8262    var popups = document.querySelectorAll('.custom-popup');
8263    popups.forEach(function(popup) {
8264      popup.style.display = 'block';
8265      if (popup.classList.contains('mobile-slide')) {
8266        popup.classList.remove('hide');
8267        popup.style.animation = 'slideUp 0.5s forwards';
8268      }
8269    });
8270  };
8271
8272  // 기존 hidePopup 함수 확장 - 팝업 닫을 때 head.php 통합 버튼 표시
8273  var originalHidePopup = window.hidePopup;
8274  window.hidePopup = function(id) {
8275    originalHidePopup(id);
8276    // 모든 팝업이 닫혔는지 확인
8277    setTimeout(function() {
8278      var visiblePopups = document.querySelectorAll('.custom-popup:not([style*="display: none"])');
8279      if (visiblePopups.length === 0) {
8280        if (typeof window.showPopupReopenBtn === 'function') {
8281          window.showPopupReopenBtn();
8282        }
8283      }
8284    }, 600);
8285  };
8286
8287  // 기존 hideSwiperPopup 함수 확장 - Swiper 팝업 닫을 때 head.php 통합 버튼 표시
8288  if (typeof window.hideSwiperPopup === 'function') {
8289    var originalHideSwiperPopup = window.hideSwiperPopup;
8290    window.hideSwiperPopup = function() {
8291      originalHideSwiperPopup();
8292      setTimeout(function() {
8293        if (typeof window.showPopupReopenBtn === 'function') {
8294          window.showPopupReopenBtn();
8295        }
8296      }, 600);
8297    };
8298  }
8299})();
8300</script>
8300
8301
8302
8303
8304
8305<!--모바일 테이블 화살표 js-->
8306<script>
8307(function(){
8308  "use strict";
8309
8310  /* ===== 옵션 ===== */
8311  var MOBILE_ONLY = false; // 모바일에서만 화살표 스크롤을 허용하려면 true
8312  var MOBILE_BP   = 767;   // 모바일 기준 폭(px)
8313
8314  function isMobile(){ return window.innerWidth <= MOBILE_BP; }
8315  function raf(fn){ return requestAnimationFrame(fn); }
8316
8317  function initFrame(frame){
8318    if (!frame || frame.__tb_inited) return;
8319
8320    var wrap   = frame.querySelector('.table-wrap');
8321    var arrL   = frame.querySelector('[data-role="arrL"]');
8322    var arrR   = frame.querySelector('[data-role="arrR"]');
8323    var hbar   = frame.querySelector('[data-role="hbar"] .bar');
8324    var hinner = frame.querySelector('[data-role="hinner"]');
8325
8326    if(!wrap || !arrL || !arrR || !hbar || !hinner) return;
8327
8328    frame.__tb_inited = true;
8329
8330    // 초기 숨김(점프 방지)
8331    frame.classList.remove('tb-ready');
8332    arrL.style.visibility = 'hidden';
8333    arrR.style.visibility = 'hidden';
8334
8335    var lock = false;
8336
8337    function step(){
8338      // 한 번에 보이는 영역의 35%만큼 이동(최소 160px)
8339      return Math.max(160, wrap.clientWidth * 0.35);
8340    }
8341
8342    function syncWidths(){
8343      // 가로 스크롤바(inner) 길이를 실제 스크롤 폭에 맞춤
8344      hinner.style.width = wrap.scrollWidth + 'px';
8345    }
8346
8347    function overflows(){
8348      return wrap.scrollWidth > wrap.clientWidth + 1;
8349    }
8350
8351    function atStart(){
8352      return wrap.scrollLeft <= 0;
8353    }
8354
8355    function atEnd(){
8356      return (wrap.scrollLeft + wrap.clientWidth) >= (wrap.scrollWidth - 1);
8357    }
8358
8359    function applyArrowState(){
8360      var over = overflows();
8361      // 오버플로우 없으면 화살표 숨김
8362      arrL.style.display = over ? 'flex' : 'none';
8363      arrR.style.display = over ? 'flex' : 'none';
8364      if (!over) return;
8365
8366      // 시작/끝 상태에 따라 비활성화
8367      if (atStart()){
8368        arrL.classList.add('is-disabled');
8369        arrL.style.pointerEvents = 'none';
8370        arrL.style.opacity = '0.35';
8371      } else {
8372        arrL.classList.remove('is-disabled');
8373        arrL.style.pointerEvents = 'auto';
8374        arrL.style.opacity = '';
8375      }
8376
8377      if (atEnd()){
8378        arrR.classList.add('is-disabled');
8379        arrR.style.pointerEvents = 'none';
8380        arrR.style.opacity = '0.35';
8381      } else {
8382        arrR.classList.remove('is-disabled');
8383        arrR.style.pointerEvents = 'auto';
8384        arrR.style.opacity = '';
8385      }
8386    }
8387
8388    function centerArrows(){
8389      // wrap의 세로 중앙에 화살표 위치
8390      var host = frame.getBoundingClientRect();
8391      var wr   = wrap.getBoundingClientRect();
8392      var h    = wr.height || host.height;
8393      var top  = (wr.top - host.top) + (h / 2);
8394
8395      // translate 없이 픽셀 고정(다른 스타일 간섭 방지)
8396      arrL.style.top = top + 'px';
8397      arrR.style.top = top + 'px';
8398      arrL.style.transform = 'translateY(-50%)';
8399      arrR.style.transform = 'translateY(-50%)';
8400    }
8401
8402    function syncHdr1(){
8403      // thead 첫 줄 높이를 --hdr1로 반영(2줄 sticky 헤더용)
8404      var table = wrap.querySelector('table');
8405      if(!table) return;
8406      var firstRow = table.querySelector('thead tr:first-child');
8407      if(!firstRow) return;
8408      var h = Math.round(firstRow.getBoundingClientRect().height);
8409      table.style.setProperty('--hdr1', h + 'px');
8410    }
8411
8412    function doRecalc(){
8413      raf(function(){
8414        syncWidths();
8415        applyArrowState();
8416        syncHdr1();
8417        centerArrows();                 // ← 수직 중앙 JS 계산 유지
8418        // 최초 계산이 끝난 시점에 arrow 표시
8419        frame.classList.add('tb-ready');
8420        arrL.style.visibility = 'visible';
8421        arrR.style.visibility = 'visible';
8422      });
8423    }
8424
8425    // 스크롤 동기화: 하단 가로바 ↔ 실제 테이블
8426    hbar.addEventListener('scroll', function(){
8427      if (lock) return;
8428      lock = true;
8429      wrap.scrollLeft = hbar.scrollLeft;
8430      lock = false;
8431      applyArrowState();
8432    }, { passive:true });
8433
8434    wrap.addEventListener('scroll', function(){
8435      if (lock) return;
8436      lock = true;
8437      hbar.scrollLeft = wrap.scrollLeft;
8438      lock = false;
8439      applyArrowState();
8440    }, { passive:true });
8441
8442    function handleArrow(dir){
8443      if (MOBILE_ONLY && !isMobile()) return; // 모바일 전용 옵션
8444
8445      var delta = dir === 'L' ? -step() : step();
8446      wrap.scrollBy({ left: delta, behavior: 'smooth' });
8447      // 스무스 스크롤 중에도 상태 갱신(약간의 지연 후)
8448      setTimeout(applyArrowState, 50);
8449    }
8450
8451    arrL.addEventListener('click', function(e){
8452      e.preventDefault();
8453      if (arrL.classList.contains('is-disabled')) return;
8454      handleArrow('L');
8455    });
8456
8457    arrR.addEventListener('click', function(e){
8458      e.preventDefault();
8459      if (arrR.classList.contains('is-disabled')) return;
8460      handleArrow('R');
8461    });
8462
8463    // 접근성: 프레임에 포커스가 있을 때 좌/우 화살표 키로 이동
8464    frame.setAttribute('tabindex', frame.getAttribute('tabindex') || '0');
8465    frame.addEventListener('keydown', function(e){
8466      if (e.key === 'ArrowLeft'){
8467        handleArrow('L');
8468      } else if (e.key === 'ArrowRight'){
8469        handleArrow('R');
8470      }
8471    });
8472
8473    // 초기 계산
8474    doRecalc();
8475
8476    // 리사이즈/로드/폰트/이미지 로딩/DOM 변경에도 재계산
8477    window.addEventListener('resize', doRecalc);
8478    window.addEventListener('load', doRecalc);
8479
8480    if ('fonts' in document){
8481      document.fonts.ready.then(doRecalc).catch(function(){});
8482    }
8483
8484    Array.prototype.forEach.call(wrap.querySelectorAll('img'), function(img){
8485      if (img.complete) return;
8486      img.addEventListener('load', doRecalc, { once:true });
8487      img.addEventListener('error', doRecalc, { once:true });
8488    });
8489
8490    if ('MutationObserver' in window){
8491      var mo = new MutationObserver(function(){ doRecalc(); });
8492      mo.observe(wrap, { childList:true, subtree:true, attributes:true, attributeFilter:['style','class'] });
8493    }
8494
8495    // 레이아웃 안정화용 안전망
8496    setTimeout(doRecalc, 80);
8497    setTimeout(doRecalc, 200);
8498  }
8499
8500  function initAll(){
8501    var frames = document.querySelectorAll('.frame[data-role="frame"], [data-role="frame"]');
8502    if (!frames.length){
8503      var alt = document.currentScript && document.currentScript.previousElementSibling;
8504      if (alt && (alt.matches('.frame') || alt.hasAttribute('data-role'))){
8505        initFrame(alt);
8506      }
8507    }
8508    Array.prototype.forEach.call(frames, initFrame);
8509  }
8510
8511  if (document.readyState === 'loading'){
8512    document.addEventListener('DOMContentLoaded', initAll);
8513  } else {
8514    initAll();
8515  }
8516})();
8517</script>
8517
8518
8519
8520
8521
8522
8523
8524
8525</body>
8526</html>
8527
8528
8529
8530
8531<!-- ie6,7에서 사이드뷰가 게시판 목록에서 아래 사이드뷰에 가려지는 현상 수정 -->
8532<!--[if lte IE 7]>
8533<script>
8534$(function() {
8535    var $sv_use = $(".sv_use");
8536    var count = $sv_use.length;
8537
8538    $sv_use.each(function() {
8539        $(this).css("z-index", count);
8540        $(this).css("position", "relative");
8541        count = count - 1;
8542    });
8543});
8544</script>
8544
8545<![endif]-->
8546
8547
8548
8549<script type="text/javascript">
8550$(function() {
8551  
8552    //반응형 테이블 만들기
8553    $('.table.table-bordered').each(function() {
8554        var _th = $(this);
8555        if (!_th.parent().is('div.table-responsive') && !_th.parents('.note-editing-area').length) {
8556            _th.wrap('<div class="table-responsive">');
8557        }
8558    });
8559    //팝업 링크 동작 시키기
8560    $('.popup-link').each(function(i) {
8561        var _th = $(this), w = 800, h = 600;
8562        $.each(_th.attr('class').split(' '), function(i, v) {
8563            if (_m = v.match(/[wh][0-9]+/)) {
8564                switch (_m[0].charAt(0)) {
8565                    case 'w': w = _m[0].substring(1); break;
8566                    case 'h': h = _m[0].substring(1); break;
8567                }
8568            }
8569        });
8570       // $('a', _th).on('click', function(e) {
8571          //  e.preventDefault();
8572           // window.open($(this).attr('href'),'','width='+w+',height='+h+',toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=no');
8573       // });
8574		$('a', _th).on('click', function(e) {
8575    e.preventDefault();
8576
8577    var href = $(this).attr('href');
8578
8579    // 이미 ? 가 있는 경우는 &adminpopup=on 추가, 없으면 ?adminpopup=on 추가
8580    if (href.indexOf('?') > -1) {
8581        href += '&adminpopup=on';
8582    } else {
8583        href += '?adminpopup=on';
8584    }
8585
8586    window.open(href, '', 'width=' + w + ',height=' + h + ',toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=no');
8587});
8588    });
8589    //팝업 이미지 동작 시키기
8590    $('.pop-image img').wrap(function() {
8591        return '<a href="' + $(this).attr('src') + '" target="_blank"></a>';
8592    });
8593    //YOUTUBE 동영상 가로 100%
8594    $('.auto-full-video iframe').each(function() {
8595        var _th = $(this);
8596        if (_th.attr('src').indexOf('youtube') > -1) {
8597            _th.wrap('<div class="ytb-auto-wrap">');
8598        }
8599    });
8600    //WOW js 동작 시키기
8601    var $WoW = new WOW({ boxClass: ($(document).width() < 768 ? 'm' : 'w')+'ow', animateClass:'animate__animated' });
8602    $WoW.init();
8603    //hover 색상 처리
8604    $('[on-color]').each(function() {
8605        var _th = $(this), _oc = _th.attr('on-color'), _fc = _th.attr('off-color')||_th.css('background-color')||'transparent';
8606        _th.on('mouseenter', function() { _th.css('background-color', _oc); }).on('mouseleave', function() { _th.css('background-color', _fc); });
8607    });
8608    //FLOWCHART 높이값 자동으로 최대값으로 맞추기
8609    $('.flowchart .cs-body-list').each(function() {
8610        var AH = $('.unit-body', $(this));
8611        AH.css('height', Math.max.apply(Math, jQuery.map(AH, function(e) { return $(e).outerHeight() * 1; })) + 'px');
8612    });
8613    //갤러리 타이틀 노출 시키기
8614    $('.gallery .unit-photo img').on('mouseenter', function(e) {
8615        $('.unit-subj', $(this).parents('.unit')).css('height', '0').show().animate({ height:'40px' }, 300);
8616    }).on('mouseleave', function(e) {
8617        $('.unit-subj', $(this).parents('.unit')).css('height', '0').hide();
8618    });
8619
8620});
8621</script>
8621
8622
8623
8624
8625</body>
8626</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.