/* ==========================================
   Header — 전폭 메가 드롭다운
   products.css의 .navbar 계열을 덮어쓴다. refine.css 뒤에 로드할 것.
   ========================================== */

:root {
    --header-h: 88px;
    --header-h-scrolled: 68px;
}

/* ==========================================
   기본 바
   ========================================== */
.navbar {
    background: var(--white);
    backdrop-filter: none;
    box-shadow: none;
    border-bottom: 1px solid hsl(var(--border));
    transition: box-shadow var(--transition-normal);
}

/* 로고는 왼쪽 끝, CTA는 오른쪽 끝, 메뉴는 화면 정중앙.
   양 옆 칸을 1fr로 같게 두면 가운데 칸(메뉴)이 폭에 상관없이 중앙에 놓인다 */
.navbar .container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: stretch;
    gap: var(--spacing-lg);
    max-width: none;
    width: 100%;
    height: var(--header-h);
    padding: 0 calc(var(--spacing-2xl) * 0.85);
    transition: height var(--transition-normal);
}

.navbar .logo {
    justify-self: start;
}

.navbar .nav-cta {
    justify-self: end;
}

.navbar.scrolled {
    background: var(--white);
    box-shadow: 0 1px 16px rgba(15, 23, 42, 0.08);
}

.navbar.scrolled .container {
    height: var(--header-h-scrolled);
}

/* 로고 — 세로 중앙, 스크롤 시 살짝 축소 */
.navbar .logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.navbar .logo img {
    height: 46px;
    transition: height var(--transition-normal);
}

.navbar.scrolled .logo img {
    height: 38px;
}

/* ==========================================
   메뉴 — 헤더 높이를 꽉 채워 서브 바와 맞닿게 한다
   (틈이 생기면 마우스를 내릴 때 메뉴가 닫힌다)
   ========================================== */
.nav-menu {
    display: flex;
    align-items: stretch;
    justify-self: center;
    gap: 0;
    margin: 0;
    list-style: none;
    height: 100%;
}

.nav-menu>li {
    display: flex;
    align-items: stretch;
    position: static;
    /* 서브 바를 헤더 전체 폭으로 펼치기 위해 static */
}

.nav-menu>li>a {
    display: flex;
    align-items: center;
    padding: 0 calc(var(--spacing-lg) * 1.25);
    font-size: 1.02rem;
    font-weight: 500;
    color: var(--text-dark);
    border-radius: 0;
    background: none;
    position: relative;
    white-space: nowrap;
}

.nav-menu>li>a:hover {
    background: none;
    color: var(--primary-blue);
}

/* 현재 위치 / 호버 인디케이터 */
.nav-menu>li>a::after {
    content: '';
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: -1px;
    height: 2px;
    background: var(--primary-blue);
    transition: left var(--transition-normal), right var(--transition-normal);
}

.nav-menu>li:hover>a::after,
.nav-menu>li.active>a::after {
    left: calc(var(--spacing-lg) * 1.25);
    right: calc(var(--spacing-lg) * 1.25);
}

.nav-menu>li.active>a {
    color: var(--primary-blue);
    font-weight: 600;
}

/* ==========================================
   전폭 서브 바
   ========================================== */
.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: var(--white);
    border-top: 1px solid hsl(var(--border));
    border-bottom: 1px solid hsl(var(--border));
    border-radius: 0;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
    opacity: 0;
    visibility: hidden;
    transform: none;
    max-height: 0;
    overflow: hidden;
    /* 메뉴 사이를 옮겨 다닐 때 이전 바가 남아 겹쳐 보이지 않도록
       나타남/사라짐은 즉시 처리하고 높이만 애니메이션한다 */
    transition: max-height var(--transition-normal);
}

.dropdown:hover>.dropdown-menu,
.dropdown:focus-within>.dropdown-menu {
    opacity: 1;
    visibility: visible;
    max-height: 200px;
}

.dropdown-menu ul {
    display: flex;
    justify-content: center;
    gap: calc(var(--spacing-xl) * 1.2);
    list-style: none;
    margin: 0;
    padding: var(--spacing-lg) var(--spacing-lg);
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.dropdown-menu li {
    width: auto;
}

.dropdown-menu a {
    display: block;
    padding: var(--spacing-xs) 0;
    font-size: 0.95rem;
    color: var(--text-medium);
    white-space: nowrap;
    border-radius: 0;
    background: none;
    position: relative;
}

.dropdown-menu a:hover {
    color: var(--primary-blue);
    background: none;
}

.dropdown-menu a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background: var(--primary-blue);
    transition: width var(--transition-fast);
}

.dropdown-menu a:hover::after {
    width: 100%;
}

/* ==========================================
   우측 CTA
   ========================================== */
.nav-cta {
    display: inline-flex;
    align-items: center;
    align-self: center;
    flex-shrink: 0;
    padding: 0.7rem 1.4rem;
    background: var(--primary-blue);
    color: var(--white);
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: var(--radius-md);
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--transition-fast), transform var(--transition-fast);
}

.nav-cta:hover {
    background: var(--primary-blue-dark);
    color: var(--white);
    transform: translateY(-1px);
}

/* ==========================================
   태블릿 — 메뉴 간격 축소
   ========================================== */
@media (max-width: 1200px) {
    .nav-menu>li>a {
        padding: 0 var(--spacing-md);
        font-size: 0.95rem;
    }

    .nav-menu>li:hover>a::after,
    .nav-menu>li.active>a::after {
        left: var(--spacing-md);
        right: var(--spacing-md);
    }

    .nav-cta {
        padding: 0.6rem 1rem;
        font-size: 0.88rem;
    }
}

@media (max-width: 900px) {
    .nav-cta {
        display: none;
    }
}

/* ==========================================
   모바일 — 기존 아코디언 방식 유지
   ========================================== */
@media (max-width: 767px) {

    :root {
        --header-h: 64px;
        --header-h-scrolled: 64px;
    }

    .navbar .container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 var(--spacing-md);
    }

    .navbar .logo img,
    .navbar.scrolled .logo img {
        height: 34px;
    }

    .nav-menu {
        position: fixed;
        top: var(--header-h);
        left: 0;
        right: 0;
        display: block;
        height: auto;
        max-height: calc(100vh - var(--header-h));
        overflow-y: auto;
        margin: 0;
        padding: var(--spacing-sm) 0 var(--spacing-lg);
        background: var(--white);
        border-top: 1px solid hsl(var(--border));
        box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
        transform: translateY(-120%);
        opacity: 0;
        visibility: hidden;
        transition: all var(--transition-normal);
    }

    .nav-menu.active {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }

    .nav-menu>li {
        display: block;
        width: 100%;
        border-bottom: 1px solid hsl(var(--border));
    }

    .nav-menu>li:last-child {
        border-bottom: none;
    }

    .nav-menu>li>a {
        display: block;
        padding: var(--spacing-md) var(--spacing-lg);
        font-size: 1.05rem;
    }

    .nav-menu>li>a::after {
        display: none;
    }

    /* 서브 바 → 접히는 목록 */
    .dropdown-menu {
        position: static;
        width: auto;
        border: none;
        box-shadow: none;
        background: var(--light-gray);
        opacity: 1;
        visibility: visible;
        max-height: 0;
        transition: max-height var(--transition-normal);
    }

    .dropdown.active>.dropdown-menu {
        max-height: 320px;
    }

    .dropdown:hover>.dropdown-menu {
        max-height: 0;
    }

    .dropdown.active:hover>.dropdown-menu {
        max-height: 320px;
    }

    .dropdown-menu ul {
        display: block;
        padding: var(--spacing-sm) var(--spacing-lg) var(--spacing-md);
    }

    .dropdown-menu a {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 1rem;
    }

    .dropdown-menu a::after {
        display: none;
    }
}

/* ==========================================
   고정 헤더 아래로 앵커가 숨지 않도록 여백 확보
   (scrollIntoView / 해시 이동 양쪽에 적용된다)
   ========================================== */
[id] {
    scroll-margin-top: calc(var(--header-h-scrolled) + 16px);
}
