/* ============================================================
   캐럿 헤더 / 푸터
   default.css 는 쇼핑몰과 공용이라 건드리지 않고 여기서 덮어쓴다.
   (default.css 의 헤더/푸터는 그누보드 기본 다크 테마 + float 1200px 고정)
   ============================================================ */

:root{
    --hd-h:64px;                 /* 헤더 높이 — 스티키 오프셋 계산에 쓰인다 */
    --hd-line:#ececf1;
    --hd-fg:#191924;
    --hd-muted:#6b7280;
    --hd-brand:#ff7a1a;
    --hd-brand-dark:#e5620a;
    --hd-soft:#f6f6f9;
}

/* 기본 테마의 1200px 최소폭 해제 — 캐럿은 유동폭이다 */
#hd, #wrapper, #ft{ min-width:0; }

/* ─────────────────────────────────────────────
   헤더
   ───────────────────────────────────────────── */
#hd{
    position:sticky; top:0; z-index:900;
    background:rgba(255,255,255,.88);
    -webkit-backdrop-filter:saturate(180%) blur(12px);
    backdrop-filter:saturate(180%) blur(12px);
    border-bottom:1px solid var(--hd-line);
    text-align:left;
}
#hd *{ box-sizing:border-box; }

/* 스크롤을 내리면 경계가 또렷해진다 */
#hd.is-stuck{ box-shadow:0 1px 3px rgba(17,17,26,.05),0 8px 24px rgba(17,17,26,.04); }

#hd_h1{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.chd__inner{
    display:flex; align-items:center; gap:22px;
    width:100%; max-width:var(--page-w,1440px);
    height:var(--hd-h); margin:0 auto; padding:0 20px;
}

/* 로고 — 워드마크. 기본 테마의 logo.png 는 어두운 배경용이라 쓰지 않는다 */
.chd__logo{
    display:flex; align-items:baseline; gap:2px;
    flex:0 0 auto; text-decoration:none;
    font-size:21px; font-weight:800; letter-spacing:-.03em;
    color:var(--hd-fg); white-space:nowrap;
}
.chd__logo:hover{ color:var(--hd-fg); }
.chd__logo b{ font-weight:800; }
.chd__logo i{                       /* 오렌지 점 하나가 유일한 장식 */
    width:6px; height:6px; border-radius:50%;
    background:var(--hd-brand); display:inline-block;
    transform:translateY(-1px);
}

/* ── 1뎁스 메뉴 ── */
#gnb{ flex:1 1 auto; min-width:0; background:none; position:static; }
#gnb > h2{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
#gnb .gnb_wrap{ width:auto; margin:0; position:static; }

#gnb_1dul{
    display:flex; align-items:center; gap:2px;
    margin:0; padding:0; list-style:none; border:0; font-size:15px;
}
#gnb .gnb_1dli{ float:none; line-height:normal; position:relative; }

#gnb .gnb_1da{
    display:block; padding:8px 12px; border-radius:9px;
    font-size:15px; font-weight:600; letter-spacing:-.014em;
    color:#44454f; text-decoration:none; white-space:nowrap;
    transition:background .13s, color .13s;
}
#gnb .gnb_1dli:hover > .gnb_1da,
#gnb .gnb_1da:focus{ background:var(--hd-soft); color:var(--hd-brand-dark); }

/* 현재 위치 표시 — carat.lib.php 가 is-on 을 붙여준다 */
#gnb .gnb_1dli.is-on > .gnb_1da{ color:var(--hd-brand-dark); background:#fff1e6; }

#gnb .gnb_1dli .bg{ display:none; }

/* ── 2뎁스 드롭다운 ── */
#gnb .gnb_2dul{
    display:none; position:absolute; left:0; top:calc(100% + 8px);
    min-width:186px; padding:6px;
    background:#fff; border:1px solid var(--hd-line); border-radius:12px;
    box-shadow:0 1px 3px rgba(17,17,26,.06),0 12px 28px rgba(17,17,26,.09);
}
#gnb .gnb_1dli:hover .gnb_2dul,
#gnb .gnb_1dli:focus-within .gnb_2dul{ display:block; }

#gnb .gnb_2dul_box{ margin:0; padding:0; list-style:none; }
#gnb .gnb_2dli{ float:none; }
#gnb .gnb_2da{
    display:block; padding:9px 11px; border-radius:8px;
    font-size:14px; font-weight:500; color:#55565f; text-decoration:none;
    white-space:nowrap; transition:background .12s, color .12s;
}
#gnb .gnb_2da:hover{ background:var(--hd-soft); color:var(--hd-brand-dark); }

#gnb .gnb_empty{ font-size:14px; color:var(--hd-muted); padding:8px 4px; }

/* ── 검색 ── */
.chd__search{ flex:0 1 300px; margin-left:auto; }
.chd__search fieldset{ border:0; margin:0; padding:0; }
.chd__search legend{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.chd__search form{ position:relative; }

#hd_sch{ border-radius:0; overflow:visible; }
#hd_sch #sch_stx{
    float:none; width:100%; height:38px;
    padding:0 40px 0 14px; border-radius:19px;
    background:var(--hd-soft); border:1px solid transparent;
    font-size:14px; color:var(--hd-fg);
    transition:background .15s, border-color .15s, box-shadow .15s;
}
#hd_sch #sch_stx::placeholder{ color:#9ca3af; }
#hd_sch #sch_stx:focus{
    outline:none; background:#fff;
    border-color:var(--hd-brand);
    box-shadow:0 0 0 3px rgba(255,122,26,.14);
}
#hd_sch #sch_submit{
    float:none; position:absolute; right:4px; top:4px;
    width:30px; height:30px; padding:0;
    border:0; border-radius:50%; background:none;
    color:#9ca3af; font-size:14px; cursor:pointer;
    transition:color .13s, background .13s;
}
#hd_sch #sch_submit:hover{ color:var(--hd-brand-dark); background:#fff1e6; }

/* ── 로그인 / 회원 ── */
.chd__auth{
    display:flex; align-items:center; gap:6px;
    flex:0 0 auto; margin:0; padding:0; list-style:none;
}
.chd__auth li{ float:none; margin:0; padding:0; border:0; }
.chd__auth a{
    display:inline-block; padding:8px 11px; border-radius:9px;
    font-size:14px; font-weight:600; color:#55565f;
    text-decoration:none; white-space:nowrap;
    transition:background .13s, color .13s;
}
.chd__auth a:hover{ background:var(--hd-soft); color:var(--hd-fg); }

.chd__auth .chd__cta a{
    background:var(--hd-brand); color:#fff;
    box-shadow:0 4px 12px rgba(255,122,26,.25);
}
.chd__auth .chd__cta a:hover{ background:var(--hd-brand-dark); color:#fff; }

.chd__auth .tnb_admin a{ color:var(--hd-brand-dark); }

/* ── 전체메뉴 버튼 / 드로어 ── */
#gnb .gnb_menu_btn,
.chd__allbtn{
    flex:0 0 auto; width:36px; height:36px; padding:0;
    border:1px solid var(--hd-line); border-radius:10px;
    background:#fff; color:#55565f; font-size:15px; cursor:pointer;
    transition:background .13s, color .13s, border-color .13s;
}
.chd__allbtn:hover{ background:var(--hd-soft); color:var(--hd-brand-dark); border-color:#dcdce4; }

#gnb_all{
    display:none; position:absolute; left:0; right:0; top:var(--hd-h);
    width:100%; border:0; border-top:1px solid var(--hd-line);
    background:#fff; z-index:1000;
    box-shadow:0 14px 34px rgba(17,17,26,.10);
}
#gnb_all .chd__allwrap{
    width:100%; max-width:var(--page-w,1440px);
    margin:0 auto; padding:26px 20px 30px; position:relative;
}
#gnb_all h2{
    font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:#9ca3af; padding:0 0 14px; border:0; margin:0;
}
#gnb_all .gnb_al_ul{
    display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px 22px;
    margin:0; padding:0; list-style:none;
}
#gnb_all .gnb_al_li{
    float:none; width:auto; min-height:0; padding:0 0 16px; border:0;
}
#gnb_all .gnb_al_li .gnb_al_a{
    display:block; margin:0 0 6px; padding:6px 0;
    font-size:15px; font-weight:700; color:var(--hd-fg); text-decoration:none;
}
#gnb_all .gnb_al_li .gnb_al_a:hover{ color:var(--hd-brand-dark); }
#gnb_all .gnb_al_li ul{ margin:0; padding:0; list-style:none; }
#gnb_all .gnb_al_li li{ line-height:normal; }
#gnb_all .gnb_al_li li a{
    display:block; padding:5px 0; font-size:14px; color:#6b7280; text-decoration:none;
}
#gnb_all .gnb_al_li li a:hover{ color:var(--hd-brand-dark); }

#gnb .gnb_close_btn{
    position:absolute; top:18px; right:20px;
    width:34px; height:34px; border:1px solid var(--hd-line); border-radius:9px;
    background:#fff; color:#9ca3af; font-size:15px; cursor:pointer;
}
#gnb .gnb_close_btn:hover{ color:var(--hd-fg); background:var(--hd-soft); }

#gnb_all_bg{ background:rgba(17,17,26,.28); z-index:899; }

#skip_to_container a{
    position:absolute; left:-9999px; top:0; z-index:1001;
    padding:10px 16px; background:var(--hd-fg); color:#fff; font-size:14px;
}
#skip_to_container a:focus{ left:0; }

/* 로그인 중 알림 띠 (head.sub.php) — 헤더 위에 얇게 */
#hd_login_msg{
    position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);
}

/* ─────────────────────────────────────────────
   푸터
   ───────────────────────────────────────────── */
#ft{
    background:#fbfbfd; border-top:1px solid var(--hd-line);
    margin:56px 0 0; text-align:left; color:#6b7280;
}
#ft *{ box-sizing:border-box; }
#ft h2{ position:static; }

#ft_wr{
    display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:38px;
    width:100%; max-width:var(--page-w,1440px);
    margin:0 auto; padding:48px 20px 34px;
}

.cft__brand .cft__logo{
    display:flex; align-items:baseline; gap:2px;
    font-size:19px; font-weight:800; letter-spacing:-.03em; color:var(--hd-fg);
    text-decoration:none; margin:0 0 10px;
}
.cft__brand .cft__logo i{
    width:5px; height:5px; border-radius:50%; background:var(--hd-brand); display:inline-block;
}
.cft__desc{ font-size:14px; line-height:1.75; color:#6b7280; margin:0 0 16px; max-width:34ch; }

.cft__col h2{
    font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:#9ca3af; margin:0 0 14px; padding:0; border:0;
}
.cft__links{ margin:0; padding:0; list-style:none; }
.cft__links li{ margin:0 0 9px; }
.cft__links a{
    font-size:14px; color:#55565f; text-decoration:none;
    transition:color .13s;
}
.cft__links a:hover{ color:var(--hd-brand-dark); }

/* 사업자 정보 — 관리자가 직접 채우는 자리 */
.cft__info{ font-size:13px; line-height:1.9; color:#8b8c96; margin:0; }
.cft__info b{ color:#55565f; font-weight:600; }

/* 하단 바 */
.cft__bottom{
    border-top:1px solid var(--hd-line);
}
.cft__bottom_in{
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    width:100%; max-width:var(--page-w,1440px);
    margin:0 auto; padding:16px 20px 22px;
    font-size:13px; color:#9ca3af;
}
.cft__bottom_in .cft__copy{ margin-right:auto; }
.cft__bottom_in a{ color:#8b8c96; text-decoration:none; }
.cft__bottom_in a:hover{ color:var(--hd-brand-dark); }

/* 푸터에 들어가는 그누보드 위젯(공지 최신글·접속자집계)의 기본 여백 정리 */
#ft .cft__col .lt,
#ft .cft__col .latest{ margin:0; }

#top_btn{
    position:fixed; right:24px; bottom:24px; z-index:800;
    width:44px; height:44px; border:1px solid var(--hd-line); border-radius:50%;
    background:#fff; color:#55565f; font-size:15px; cursor:pointer;
    box-shadow:0 4px 14px rgba(17,17,26,.10);
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:opacity .18s, transform .18s, visibility .18s, color .13s, border-color .13s;
}
#top_btn.is-on{ opacity:1; visibility:visible; transform:translateY(0); }
#top_btn:hover{ color:var(--hd-brand-dark); border-color:var(--hd-brand); }

/* ─────────────────────────────────────────────
   좁은 화면 (PC 테마 기준 — 모바일은 별도 테마)
   ───────────────────────────────────────────── */
@media (max-width:1180px){
    .chd__search{ flex-basis:210px; }
    #gnb .gnb_1da{ padding:8px 9px; font-size:14px; }
    #ft_wr{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media (max-width:860px){
    .chd__search{ display:none; }
    #ft_wr{ grid-template-columns:1fr; }
}
