/* ================= RESET ================= */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: Pretendard, Arial, sans-serif; color: #222; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
.animate { position: relative; }
/* ================= PC HEADER ================= */
.header { position: relative; z-index: 9999; }
.header-inner { margin: 0 auto; padding: 20px; display: flex; justify-content: space-between; align-items: center; padding: 30px 80px; }
.header .logo_wrap { width: 200px; }
.logo { font-size: 22px; font-weight: 700; }
.logo span { color: #c3002f; }
/* ================= GNB (공통) ================= */
.depth1 { display: flex; gap: 80px; }
.depth1 > li { position: relative; }
.depth1-link { font-size: 20px; font-weight: 500; }
/* SUB */
.depth2_wrap { display: none; position: absolute; left: 50% !important; transform: translateX(-50%); padding-top: 20px; border: none; background: transparent; }
.depth2 { border-radius: 10px; text-align: center; }
/* PC hover */
@media (min-width:769px) {
    .depth2_wrap { position: absolute; top: 100%; left: 0; z-index: 50; }
    .depth2 { min-width: 180px; background: #fff; border: 1px solid #eee; z-index: 50; }
    .has-sub:hover > .depth2_wrap { display: block; }
    .depth2 a { display: block; padding: 12px 18px; }
    .depth2 a:hover { background: #f5f5f5; }
}
/* ================= UTIL ================= */
.util { display: flex; gap: 30px; }
.util-select { position: relative; }
.util-btn { font-size: 20px; background: none; border: none; cursor: pointer; font-weight: 500; }
.util-layer { position: absolute; top: 150%; right: 0; background: #fff; border: 1px solid #ddd; opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s; z-index: 100; text-align: center; width: 100%; }
.util-layer.active { opacity: 1; visibility: visible; transform: translateY(0); }
.util-layer a { display: block; padding: 10px 15px; white-space:nowrap; }
.util-layer a:hover { background: #f5f5f5; }
.util-btn i { position: relative !important; padding-right: 20px !important; }
.util-btn i::before { position: absolute !important; top: -15px !important; }
/* ================= MOBILE HEADER ================= */
.m-header { display: none; padding: 15px 20px; border-bottom: 1px solid #eee; justify-content: space-between; align-items: center; }
.btn-menu { font-size: 24px; background: none; border: none; cursor: pointer; }
/* ================= DIM ================= */
.dim { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.45); opacity: 0; visibility: hidden; transition: .3s; z-index: 150; }
.dim.active { opacity: 1; visibility: visible; }
/* ================= MOBILE MENU ================= */
.mobile-wrap { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background: #fff; padding: 0px; transition: .3s; z-index: 200; }
.mobile-wrap.active { right: 0; }
.btn-close {
    font-size: 28px;
    background: none;
    border: none;
    cursor: pointer;
    display: block;
    margin-left: auto;
    text-align: right;
    margin: 16px;
}
/* ================= CONTENT ================= */
/* .container-header {
    padding-top:80px;
}
.container-header .sub-breadcrumb {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    background: url('/theme/basic/images/common/breadcrumb_bar.png') no-repeat center/cover;
    padding: 50px 40px;
    font-size: 14px;
    color: #666;
}
.container-header .sub-breadcrumb .container-inner {
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    padding: 4px 10% 0 10%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
}*/
.container-header .sub-breadcrumb a { color: #666; }
.container-header .sub-breadcrumb i { font-size: 16px; }
.container-header .sub-breadcrumb .bar { color: #666; }
/* .container-header .sub-breadcrumb .current { font-weight: 600; color: #666; } */
.container { max-width: 1400px; width: 100%; margin: 0 auto; padding: 160px 0 200px; }
.container .sub-category-top { text-align: center; margin: 0 0 100px; }
.container .sub-category-top h2 { font-size: 48px; font-weight: 600; color: #222; letter-spacing: -1px; text-transform: uppercase; }
.container .sub-category-breadcrumb { margin-top: 15px; color: #222; font-size: 20px; display: flex; align-items: center; justify-content: center; gap: 10px; font-family: 'Pretendard', sans-serif !important; }
.container .sub-category-breadcrumb a { color: #222; font-size: 14px; }
.container .sub-category-breadcrumb i { font-size: 14px; color: #222; display: inline-block; padding: 0 10px; }
.container .sub-category-breadcrumb span { color: #222; }
/* ================= 서브페이지 공통 비주얼 ================= */
.container-header { padding-top: 0; position: relative; }
.container-header-inner { position: relative; max-width: 1920px; margin: 0 auto; }
.container-header .sub-visual { position: relative; height: 670px; margin: 0 auto; max-width: 1920px; overflow: hidden; display: flex; align-items: center; justify-content: flex-start; transition: all ease 0.4s; }
.container-header .sub-visual .sub-visual-inner { transition: all ease 0.4s; width: 100%; height: 100%; margin: 0 110px; -webkit-mask-image: url('../images/sub/sub_visual_mask.png'); mask-image: url('../images/sub/sub_visual_mask.png'); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.container-header .sub-visual .sub-visual-inner .bg-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.container-header .sub-visual .sub-visual-inner::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); z-index: 1; }
.container-header .sub-visual .sub-visual-inner .visual-text { transition: all ease 0.4s; max-width: 1400px; height: 100%; margin: 0 auto; position: relative; z-index: 2; color: #fff; display: flex; flex-direction: column; gap: 30px; justify-content: center; padding-bottom: 3%; }
.container-header .sub-visual .sub-visual-inner .sub-title { display: block; font-size: 24px; font-weight: 600; text-transform: uppercase; color: #fff; }
.container-header .sub-visual .sub-visual-inner h2 { font-size: 50px; font-weight: 600; line-height: 1.5; letter-spacing: -1px; color: #fff; }
/* 브레드크럼 */
.container-header .sub-breadcrumb { position: absolute; left: 600px; bottom: 5px; }
.container-header .sub-breadcrumb .container-inner { max-width: 100%; margin: 0; padding: 0; display: flex; align-items: center; justify-content: flex-start; gap: 10px; font-family: 'Pretendard', sans-serif !important; font-size: 20px; color: #222; }
.container-header .sub-breadcrumb a { color: #222; }
.container-header .sub-breadcrumb i { font-size: 14px; display: inline-block; padding: 0 10px }
/* .container-header .sub-breadcrumb .current { font-weight: 600; color: #333; } */

/* 이미지 미로드 시 스타일 (Placeholder) */
img { max-width: 100%; height: auto; position: relative; display: block; }
img:not([src]), img[src=""], img[src="#"] { min-width: 100px; min-height: 100px; background-color: #eee; /* 이미지 없을 때 배경색 */
}
/* Broken image replacement (CSS only limited support, but useful) */
img:after { content: "\f03e" " Image Not Found"; font-family: 'FontAwesome'; display: flex; align-items: center; justify-content: center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #f5f5f5; color: #999; font-size: 14px; }
/* ================= FOOTER ================= */

.footer { background: #1c1c1c; color: #fff; padding: 60px 5%; }
.footer-inner { max-width: 1400px; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
/* LEFT */
.footer-logo { font-size: 22px; font-weight: 700; color: #fff; margin-bottom: 20px; }
.footer-logo span { color: #c3002f; }
.footer-info p { font-size: 14px; line-height: 1.6; margin-bottom: 8px; }
.footer-info .logo_wrap { width: 200px; margin-bottom: 90px; }
.policy { margin: 15px 0; font-size: 13px; }
.policy a { color: #fff; text-decoration: none; }
.policy a:hover { text-decoration: underline; }
.policy span { margin: 0 8px; }
.copyright { display: block; font-size: 12px; color: #fff; }
/* RIGHT */
.footer-action { display: flex; align-items: center; }
.mall-btn { display: inline-block; padding: 14px 28px; border: 1px solid #fff; color: #fff; text-decoration: none; font-weight: 600; transition: 0.3s; }
.mall-btn:hover { background: #fff; color: #1c1c1c; }
/* ================= HEADER RESPONSIVE ================= */

/* 1600px */
@media (max-width:1600px) {
    .header-inner { padding: 25px 5%; }
    .header .logo_wrap { width: 180px; }
    .depth1 { gap: 60px; }
    .depth1-link { font-size: 18px; }
    .util { gap: 25px; }
    .util-btn { font-size: 18px; }
}
/* 1400px */
@media (max-width:1400px) {
    .header-inner { padding: 20px 5%; }
    .header .logo_wrap { width: 160px; }
    .depth1 { gap: 45px; }
    .depth1-link { font-size: 17px; }
    .util { gap: 20px; }
    .util-btn { font-size: 17px; }
}
/* 1200px */
@media (max-width:1200px) {
    .header-inner { padding: 18px 5%; }
    .header .logo_wrap { width: 150px; }
    .depth1 { gap: 35px; }
    .depth1-link { font-size: 16px; }
    .util { gap: 15px; }
    .util-btn { font-size: 16px; }
    .depth2 { min-width: 160px; }
    .depth2 a { padding: 10px 15px; font-size: 15px; }
}
/* 992px */
@media (max-width:992px) {
    .header-inner { padding: 15px 5%; }
    .header .logo_wrap { width: 140px; }
    .depth1 { gap: 25px; }
    .depth1-link { font-size: 15px; }
    .util { gap: 12px; }
    .util-btn { font-size: 15px; }
    .depth2 { min-width: 140px; }
    .depth2 a { padding: 10px 12px; font-size: 14px; }
    .util-layer { min-width: 120px; }
    .util-layer a { padding: 8px 12px; font-size: 14px; }
}
/* 860px */
@media (max-width:860px) {
    .header-inner { padding: 12px 5%; }
    .header .logo_wrap { width: 120px; }
    .depth1 { gap: 18px; }
    .depth1-link { font-size: 14px; }
    .util { gap: 10px; }
    .util-btn { font-size: 14px; }
}
/* ================= MOBILE RESPONSIVE (768px) ================= */
@media (max-width:1024px) {
    .header { display: none; }
    .m-header { display: flex; align-items: center; }
    .m-header .logo_wrap { width: 120px; }
    .m-header .logo_wrap img { width: 100%; }
    .m-header .util { display: flex; gap: 8px; margin-left: auto; margin-right: 15px; }
    .m-header .util-btn { display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 55px; height: 36px; padding: 0 12px; font-size: 13px; font-weight: 600;  color: #333; }
    .m-header .util-btn i { position: relative !important; padding-right: 0 !important; font-size: 20px; }
    .m-header .util-btn i::before { position: relative !important; top: auto !important; }
    .m-header .util-layer { top: calc(100% + 8px); left:50%; transform:translateX(-50%); min-width: 130px; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.15); overflow: hidden; }
    .m-header .util-layer a { padding: 14px 18px; font-size: 15px; color: #333; border-bottom: 1px solid #eee; }
    .m-header .util-layer li:last-child a { border-bottom: none; }
    .m-header .util-layer a:hover, .m-header .util-layer a:active { background: #f0f7ff; color: var(--primary-color); }
    .m-header .btn-menu { font-size: 24px; }
    .depth1 { flex-direction: column; gap: 0; margin-top: 30px; }
    .depth1 > li { border-bottom: 1px solid #eee; }
    .depth1-link { display: block; padding: 15px 0; font-size: 16px; }
    .depth2 { padding-left: 15px; }
    .depth2 a { display: block; padding: 8px 0; font-size: 15px; }
    .sub-category-top h2 { font-size: 36px; }
    .footer-inner { flex-direction: column; align-items: flex-start; }
    .footer-action { margin-top: 30px; }
    .mall-btn { width: 100%; text-align: center; }
    .depth2_wrap { display: none; }
    .has-sub.open > .depth2_wrap { display: block; transform: translateX(0%); }
    .mobile-gnb .depth1 { flex-direction: column; gap: 0; margin-top: 30px; }
    .mobile-gnb .depth1 > li { border-bottom: 1px solid #eee; }
    .mobile-gnb .depth1-link { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; font-size: 16px; font-weight: 500; color: #222; }
    .mobile-gnb .depth1-link.active { color: #c3002f; font-weight: 600; }
    .mobile-gnb .toggle-icon { font-size: 18px; transition: transform 0.3s; }
    .mobile-gnb .has-sub.open .toggle-icon { transform: rotate(180deg); }
    .mobile-gnb .depth2 { padding:0; text-align: left; background: #eee; border-radius: 0; }
    .mobile-gnb .depth2 a { display: block; padding: 10px 20px; font-size: 15px; color: #555; }
    .mobile-gnb .depth2 a.active { color: #c3002f; font-weight: 600; }
    .mobile-gnb .depth2 a:hover { color: #c3002f; }
    .mobile-gnb .depth1 > li { position: relative; }
    .mobile-gnb .depth2_wrap { position: static !important; width: 100%; padding: 0; }
}
/* ================= SMALL MOBILE (480px) ================= */
@media (max-width:480px) {
    .m-header { padding: 12px 5%; }
    .m-header .logo_wrap { width: 100px; }
    .m-header .util { gap: 6px; margin-right: 10px; }
    .m-header .util-btn { min-width: 40px; height:auto; padding: 0px; font-size: 20px; line-height:1;}
    .m-header .util-layer { min-width: 120px; }
    .m-header .util-layer a { padding: 12px 15px; font-size: 14px; }
}
