/* GGDC 헤더 / 푸터 / 퀵메뉴 */
.header{position: fixed; top: 0; left: 0; z-index: 1000; width: 100%; height: auto; min-height: 5.3125rem; padding: 1.125rem 0; background: transparent;}
.header .inner{display: flex; align-items: center; justify-content: space-between; max-width: none; padding: 0 3.75rem; height: auto; min-height: 3rem;}
.header h1 a img,
.header h1 a img.logo,
.header h1 a img.logo_on{width: 5.3731rem; height: 2.4494rem; display: block; object-fit: contain;}
.header .gnb{display: flex; align-self: stretch; align-items: stretch; gap: 5rem;}
.header .gnb > li{position: relative; display: flex; align-items: center;}
.header .gnb > li > a{font-size: 1.25rem; font-weight: 700; line-height: 1.45; letter-spacing: -0.0063rem; color: #DBDCDF; transition: all 0.3s;}
.header .gnb > li > a.on,
.header .gnb > li > a:hover{color: #89C56D;}
.header .gnb_2depth{display: none; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); margin-top: 1.1875rem; flex-direction: column; align-items: flex-start; gap: 0.5625rem; padding: 1.25rem; border: 0.0625rem solid rgba(255,255,255,0.2); background: #000; white-space: nowrap;}
.header .gnb_2depth::before{content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1.25rem;}   /* 메뉴와 2depth 사이 호버 유지 */
.header .gnb > li:hover .gnb_2depth,
.header .gnb > li:focus-within .gnb_2depth{display: flex;}
.header .gnb_2depth a{display: block; font-size: 1rem; font-weight: 700; line-height: 1.5; color: #DBDCDF; transition: color 0.3s;}
.header .gnb_2depth a:hover,
.header .gnb_2depth a:focus{color: #B6D7A7; text-decoration: underline; text-underline-offset: 0.25rem;}
.header .head_rt{display: flex; align-items: center; gap: 0.75rem;}
.gnb_dday{display: flex; align-items: center; justify-content: center; width: 7.5rem; height: 3rem; padding: 0.625rem 1.25rem; border: 0.0625rem solid #fff; border-radius: 1.875rem; font-size: 1.25rem; font-weight: 700; line-height: 1.45; letter-spacing: -0.0063rem; color: #fff; box-sizing: border-box; font-family: var(--font-outfit);}
.gnb_btn{display: flex; align-items: center; justify-content: center; gap: 0.5rem; height: 3rem; padding: 0 1.25rem; border-radius: 999px; font-size: 1.25rem; font-weight: 700; line-height: 1.45; letter-spacing: -0.0063rem; color: #fff !important; white-space: nowrap;}
.gnb_btn_ic{width: 1.25rem; height: 1.25rem; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0;}
.gnb_btn_ic img{width: 100%; height: 100%; display: block; object-fit: contain;}
.gnb_btn_prereg{background-image: linear-gradient(93.09deg, #89C56D 10.77%, #00B7EE 90.04%);}
.gnb_btn_check{background: #89C56D;}
.head_mob_btn{display: none !important; width: 1.875rem; height: 1.25rem; padding: 0; border: 0; background: none; cursor: pointer;}
.head_mob_btn img{width: 100%; height: 100%; display: block; object-fit: contain;}

.header:hover,
.header.fixed,
.header.on{background: #000;}
.header:hover h1 a img.logo,
.header.fixed h1 a img.logo,
.header.on h1 a img.logo,
.header:hover h1 a img.logo_on,
.header.fixed h1 a img.logo_on,
.header.on h1 a img.logo_on{display: block;}
.header:hover .gnb > li > a,
.header.fixed .gnb > li > a,
.header.on .gnb > li > a{color: #DBDCDF;}
.header:hover .gnb > li > a.on,
.header:hover .gnb > li > a:hover,
.header.fixed .gnb > li > a.on,
.header.fixed .gnb > li > a:hover,
.header.on .gnb > li > a.on,
.header.on .gnb > li > a:hover{color: #89C56D;}
.head_bg{display: none !important;}   /* 모바일 전체메뉴 는 1024이하에서만 노출 */

.quick{position: fixed; right: 0; top: 50%; transform: translateY(-50%); bottom: auto; z-index: 100; width: 5.625rem; background: #fff; border-radius: 1rem 0 0 1rem; box-shadow: -0.25rem 0 0.625rem 0 rgba(0,0,0,0.15); overflow: hidden;}
.quick_item{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; padding: 1rem 0.625rem; border-bottom: 0.0625rem solid #E1E2E4;}
.quick_item:last-child{border-bottom: 0;}
.quick_ic{width: 1.75rem; height: 1.75rem; display: flex; align-items: center; justify-content: center; overflow: hidden;}
.quick_top .quick_ic{width: 1.5rem; height: 1.5rem;}
.quick_ic img{width: 100%; height: 100%; display: block; object-fit: contain;}
.quick_txt{font-size: 0.875rem; font-weight: 700; line-height: 1.43; color: #171719; text-align: center;}
.quick_top{background-image: linear-gradient(91.28deg, #89C56D 10.77%, #00B7EE 90.04%);}
.quick_top .quick_txt{color: #fff;}
.quick_home{display: none;}

.footer{position: relative; background: #000; padding: 4rem 0; border-top: 0.0625rem solid rgba(255,255,255,0.3);}
.ft_top{display: none;}
.footer .inner{max-width: none; padding: 0 5rem; display: flex; align-items: flex-start; justify-content: space-between;}
.footer .ft_logo{width: 8.75rem;}
.footer .ft_logo img{width: 100%; height: auto; display: block;}
.footer .ft_util{display: flex; flex-direction: column; align-items: flex-end; gap: 1.25rem; text-align: right;}
.footer .ft_use{display: flex; align-items: center; gap: 1.25rem;}
.footer .ft_use a{font-size: 0.875rem; line-height: 1.43; color: #fff;}
.footer .ft_use a b{font-weight: 700;}
.footer .ft_info{display: flex; flex-direction: column; align-items: flex-end; gap: 0.625rem;}
.footer .ft_info p{font-size: 1rem; font-weight: 500; line-height: 1.5; color: #fff;}
.footer .ft_info a{color: inherit; text-decoration: none;}
.footer .ft_info .copy{font-size: 0.875rem; font-weight: 400; line-height: 1.43; color: #878A93;}

@media screen and (max-width: 1440px){
	.header .inner{padding: 0 2rem;}
	.header .gnb{gap: 2.5rem;}
	.footer .inner{padding: 0 2rem;}
	.quick{top: 28rem;}
}

@media screen and (max-width: 1024px){
	.header{min-height: 3.6875rem; padding: 0.75rem 0;}
	.header .inner{padding: 0 0.75rem;}
	.header h1 a img,
	.header h1 a img.logo,
	.header h1 a img.logo_on{width: 4.5rem; height: 2.05rem;}
	.header .gnb{display: none !important;}
	.gnb_dday, .gnb_btn{width: auto; height: 2.125rem; padding: 0 1rem; font-size: 0.875rem;}
	.gnb_btn_ic{width: 1rem; height: 1rem;}
	.head_mob_btn{display: block !important;}

	.head_bg{position: fixed; inset: 0; z-index: 10000; width: 100%; height: 100vh;}
	.head_bg.on{display: block !important;}
	.head_bg .head_bg_inner{width: 100%; height: 100%; background: #000 url(/img/main/all_menu_bg.png) no-repeat center top / 100% auto; padding: 1.25rem 1.25rem 2rem; overflow-y: auto;}
	.head_bg .head_tp{display: flex; align-items: center; justify-content: space-between;}
	.head_bg .head_bg_logo img{width: 5.3731rem; height: 2.4494rem; display: block;}
	.head_bg .head_bg_close{width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: none; filter: invert(1);}
	.head_bg .head_bg_close img{width: 100%; display: block;}
	.head_bg_dday{margin-top: 2rem; display: inline-flex; align-items: center; justify-content: center; min-width: 6.25rem; height: 2.5rem; padding: 0 1rem; border: 0.0625rem solid #fff; border-radius: 1.875rem; font-size: 1rem; font-weight: 700; color: #fff;}
	.head_bg_gnb{margin-top: 2.75rem;}
	.head_bg_gnb > li{border-bottom: 1px solid rgba(255,255,255,0.12); padding: 1rem 0;}
	.head_bg_gnb > li:first-child{padding-top: 0;}
	.head_bg_gnb > li > a{display: block; font-size: 1.25rem; font-weight: 700; color: #FFF; line-height: 145%; letter-spacing: -0.00625rem;}
	.head_bg_gnb > li > a.on{color: #89C56D;}
	/* 대메뉴 하위목록 (Figma sub_list 7520:13376) */
	.head_bg_sub{display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; margin-top: 0.5rem;}
	.head_bg_sub > li{display: flex; align-items: center; gap: 0.75rem;}
	.head_bg_sub > li:not(:last-child)::after{content: ""; width: 0.1875rem; height: 0.1875rem; flex-shrink: 0; border-radius: 50%; background: rgba(255,255,255,0.35);}
	.head_bg_sub a{font-size: 0.875rem; font-weight: 400; line-height: 1.43; color: #989BA2; white-space: nowrap;}
	.head_bg_btns{display: flex; gap: 0.75rem; margin-top: 2rem;}
	.head_bg_btns .gnb_btn{width: 100%; height: 2.625rem; font-size: 1.125rem; display: flex; font-weight: 500; gap: 0.375rem;}
	.head_bg_btns .gnb_btn .gnb_btn_ic{width: 1.125rem; height: auto;}
	/* 로그인 상태 사용자 영역 (Figma allmenu_user Login 7781:5465) */
	.head_bg_user{margin-top: 2rem; padding-bottom: 1.25rem; border-bottom: 0.0625rem solid rgba(255,255,255,0.2);}
	.head_bg_user_info{display: flex; align-items: center; gap: 0.75rem;}
	.head_bg_user_ic{width: 3rem; height: 3rem; flex-shrink: 0;}
	.head_bg_user_ic img{width: 100%; height: 100%; display: block;}
	.head_bg_user_txt{display: flex; flex-direction: column; justify-content: center; min-width: 0;}
	.head_bg_user_txt .name{font-size: 1.125rem; font-weight: 700; line-height: 1.5; color: #fff;}
	.head_bg_user_txt .mail{font-size: 0.75rem; font-weight: 400; line-height: 1.5; color: #878A93; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
	.head_bg_user .head_bg_btns{margin-top: 0.75rem;}
	.head_bg_user .gnb_btn_line{width: 8.75rem; flex-shrink: 0; border: 0.09375rem solid #fff; background: none;}
	.head_bg_user + .head_bg_gnb{margin-top: 1.5rem;}   /* 구분선 이후라 24px (Figma menu_list pt) */

	/* 퀵메뉴 : 화면 하단 고정 바 (Figma 7520:13280, 384x72) */
	.quick{top: auto; bottom: 0; left: 0; right: 0; transform: none; width: 100%; border-radius: 0; box-shadow: none; display: flex;}
	.quick_home{display: flex;}
	.quick_item{flex: 1 1 0; width: auto; min-width: 0; gap: 0.25rem; padding: 0.75rem 0; border-bottom: 0; border-left: 0.0625rem solid #E1E2E4;}
	.quick_item:first-child{border-left: 0;}
	.quick_ic,
	.quick_top .quick_ic{width: 1.5rem; height: 1.5rem;}
	.quick_txt{font-size: 0.875rem; line-height: 1.43; color: #171719;}
	.quick_prereg{border-left: 0; background-image: linear-gradient(91.44deg, #89C56D 10.77%, #00B7EE 90.04%);}
	.quick_prereg img{filter: invert(1);}
	.quick_prereg .quick_txt{color: #fff;}
	.quick_top{display: none;}

	.footer{padding: 2.5rem 0 7rem;}
	.ft_top{display: flex; align-items: center; justify-content: center; box-sizing: border-box; position: absolute; top: 1.5rem; right: 1.25rem; width: 3rem; height: 3rem; padding: 0; border-radius: 999px; border: 0.0625rem solid rgba(255,255,255,0.4); background: rgba(0,0,0,0.6); font-family: var(--font-outfit); font-size: 0.75rem; font-weight: 700; line-height: normal; letter-spacing: 0.045rem; color: #fff; cursor: pointer;}
	.footer .inner{padding: 0 0.75rem; flex-direction: column; gap: 1.75rem;}
	.footer .ft_logo{width: 7rem;}
	.footer .ft_util,
	.footer .ft_info{align-items: flex-start; text-align: left;}
	.footer .ft_info p{font-size: 0.875rem;}
}

@media screen and (max-width: 768px){
.gnb_btn_prereg,
.gnb_btn_check{display: none;}
}