/**
 * SWELL 親テーマ CSS が混入した場合の保険（独自 LP 専用）
 * body.nhm-lp 配下のみに効かせる
 */

body.nhm-lp {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* 管理バー表示時（ログイン中）のヘッダー位置 */
body.admin-bar.nhm-lp .header {
    top: 32px !important;
}

@media screen and (max-width: 782px) {
    body.admin-bar.nhm-lp .header {
        top: 46px !important;
    }
}

/* モバイルドロワーが CSS 未読込でも DOM に露出しないよう保険 */
body.nhm-lp .mobile-drawer:not(.active) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    height: 0 !important;
    overflow: hidden !important;
    position: fixed !important;
    inset: 0 !important;
}

body.nhm-lp .mobile-drawer.active {
    display: flex !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: visible !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

body.nhm-lp .mobile-nav-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.nhm-lp #body_wrap,
body.nhm-lp #content,
body.nhm-lp .l-content,
body.nhm-lp .l-main,
body.nhm-lp .l-container {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

/* SWELL 標準ヘッダーが出た場合は非表示（独自 .header のみ使う） */
body.nhm-lp #header,
body.nhm-lp .l-header,
body.nhm-lp .l-fixHeader,
body.nhm-lp .p-header {
    display: none !important;
}

body.nhm-lp .header {
    height: var(--header-height, 110px);
    box-sizing: border-box;
    display: flex !important;
    align-items: center;
    padding: 0 !important;
    background: rgba(255, 255, 255, 0.97) !important;
    position: fixed !important;
    top: 0 !important;
    left: 0;
    width: 100%;
    z-index: 10002 !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    transform: none !important;
}

body.nhm-lp .header-container {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 0 30px;
    box-sizing: border-box;
}

body.nhm-lp .header-nav {
    display: flex !important;
    align-items: center;
    gap: 1.5rem;
}

@media (max-width: 768px) {
    body.nhm-lp .header {
        height: 70px !important;
    }

    body.nhm-lp .header-nav {
        display: none !important;
    }

    body.nhm-lp .hamburger-btn {
        display: block !important;
    }
}
