/* 공통 헤더의 높이와 전환 폭을 한 곳에서 관리한다. */
:root { --site-header-height: 64px; }
.site-nav-icon { display:inline-block; width:20px; height:20px; flex-shrink:0; vertical-align:middle; }
.site-mobile-bar { display:none; }
#head-menu-total .dropdown:focus-within > .dropdown-content { display:block; opacity:1; visibility:visible; transform:translateY(0); }
#head-menu-total a:focus-visible,#head-menu-total button:focus-visible,
#head-menu-total-mobile a:focus-visible,#head-menu-total-mobile button:focus-visible,
.site-mobile-bar a:focus-visible,.site-mobile-bar button:focus-visible { outline:2px solid #ffab66; outline-offset:3px; }

@media (min-width:1280px) {
    :root { --site-header-height:80px; }
    #head-menu-total { height:var(--site-header-height); }
    #head-menu-total .head-menu-gide { padding:0 24px; }
    #head-menu-total .mainMenu { gap:24px; min-width:0; }
    #head-menu-total .menu-container { gap:18px; }
    #head-menu-total .menu-links { gap:6px; }
    #head-menu-total .menu-links .nav-link { font-size:16px; padding:0 10px; white-space:nowrap; }
    #head-menu-total .headLogins { flex-shrink:0; padding-left:8px; gap:5px; }
    #head-menu-total .head-point { white-space:nowrap; }
    #head-menu-total-mobile { display:none; }
}

@media (max-width:1279px) {
    body.site-menu-open { overflow-y:hidden; }
    #head-menu-total { display:none; }
    .site-mobile-bar {
        display:flex; align-items:center; gap:8px; position:fixed; inset:0 0 auto;
        height:var(--site-header-height); padding:8px 12px; background:#151515;
        border-bottom:1px solid #ffffff26; z-index:10000;
    }
    .site-mobile-brand { display:inline-flex; align-items:center; margin-right:auto; min-height:44px; }
    .site-mobile-brand img { display:block; width:112px; height:auto; max-height:44px; object-fit:contain; }
    .site-mobile-bar .site-mobile-search,.site-mobile-bar .hamburger {
        position:static; display:inline-flex; align-items:center; justify-content:center;
        flex:0 0 44px; width:44px; height:44px; min-height:44px; margin:0; padding:10px;
        border:0; border-radius:7px; background:transparent; color:#ff9c4a; text-decoration:none; cursor:pointer;
    }
    .site-mobile-bar .hamburger:hover,.site-mobile-search:hover { background:#ffffff12; }
    .site-mobile-bar .site-mobile-search { flex:0 0 auto; width:auto; min-width:76px; padding:8px; font-size:13px; white-space:nowrap; }
    .hamburger .site-menu-close-icon { display:none; }
    .hamburger.active .site-menu-open-icon { display:none; }
    .hamburger.active .site-menu-close-icon { display:block; }
    #head-menu-total-mobile {
        display:flex; flex-direction:column; position:fixed; top:var(--site-header-height); left:0;
        width:100%; max-height:calc(100vh - var(--site-header-height)); max-height:calc(100dvh - var(--site-header-height));
        padding-bottom:env(safe-area-inset-bottom,0px); background:#111; color:#fff; border-bottom:1px solid #383838;
        overflow-y:auto; overscroll-behavior:contain; z-index:9999; visibility:hidden; pointer-events:none;
        transform:translateY(-12px); opacity:0; transition:transform .18s ease,opacity .18s ease,visibility .18s;
    }
    #head-menu-total-mobile.active { top:var(--site-header-height); visibility:visible; pointer-events:auto; transform:translateY(0); opacity:1; }
    #head-menu-total-mobile #headLoginMain-mobile { padding:8px 14px; border-bottom:1px solid #333; }
    #head-menu-total-mobile .headLogin { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:5px 9px; width:100%; }
    #head-menu-total-mobile .headLogin a,#head-menu-total-mobile .headLogin button.logout-button {
        display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; padding:8px;
        border:0; background:transparent; color:#eee; font:inherit; font-size:13px; text-decoration:none; cursor:pointer;
    }
    #head-menu-total-mobile .headLogin form { display:inline-flex; margin:0; }
    #head-menu-total-mobile .head-point { align-items:center; margin:0; }
    #head-menu-total-mobile #head-menu-logo-mobile { display:none; }
    #head-menu-total-mobile .travel-entry-mobile { display:flex; gap:8px; padding:12px 16px; border-bottom:1px solid #333; }
    #head-menu-total-mobile .travel-entry-mobile a { display:flex; flex:1; align-items:center; justify-content:center; min-height:44px; text-decoration:none; color:#ffd4b0; background:#ffffff0d; border:1px solid #ffffff24; }
    #head-menu-total-mobile .head-menu-kind-mobile {
        display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; padding:10px 20px;
        margin:0; border:0; border-bottom:1px solid #333; background:transparent; color:#fff;
        font:inherit; font-size:17px; line-height:1.5; text-decoration:none; cursor:pointer;
    }
    #head-menu-total-mobile .has-submenu::after { content:'+'; margin-left:9px; color:#fa9f55; }
    #head-menu-total-mobile .has-submenu[aria-expanded=true]::after { content:'−'; }
    #head-menu-total-mobile .subMenu-mobile { height:0; overflow:hidden; background:#1a1a1a; transition:height .2s ease; }
    #head-menu-total-mobile div div.subMenu-mobile p { margin:0!important; padding:0; border-bottom:1px solid #333; }
    #head-menu-total-mobile div div.subMenu-mobile p a { display:flex; align-items:center; justify-content:center; min-height:46px; width:100%; padding:10px 20px; color:#ddd; font:inherit; font-size:15px; line-height:1.5; text-decoration:none; }
    #head-menu-total-mobile a:hover,#head-menu-total-mobile .head-menu-kind-mobile:hover { color:#ffac68; }
}

@media (prefers-reduced-motion:reduce) {
    #head-menu-total-mobile,#head-menu-total-mobile .subMenu-mobile { transition:none; }
}
