@charset "utf-8";

/*--------------------------------------------------------------
  メニュー設定
--------------------------------------------------------------*/
/* ヘッダー */
.lt-header {
    z-index: 10000 !important;
    position: fixed;
    width: 100vw;
    top: 0;
    margin: 0;

    transition: padding 0.3s ease;
}

/* コンテナ */
.lt-container {
    position: relative;
    flex: 1;
    width: 100%;
    /* max-width: 1200px; */
    margin: 0;
    padding: 0 15px;
    border-radius: 0;
    background-color: rgb(255 255 255 / 1);
}

/* ナビゲーション */
.lt-nav {
    display: flex;
    /* justify-content: space-between; */
    align-items: center;
    height: var(--menu-height);
}

/* ロゴエリア */
.lt-logo {
    display: flex;
    align-items: center;
    height: var(--menu-height);
    padding: 10px 20px 10px 0;
}

.lt-logo a {
    display: block;
    height: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    font-size: 24px;
    color: #333;
    text-decoration: none;
}

.lt-logo img {
    height: calc(var(--menu-height) - 20px);
    width: auto;
}

.logo-white {
    display: none;
}

.logo-black {
    display: block;
}

.tel-white {
    display: none;
}

.tel-black {
    display: block;
}

/* メニューリスト */
.lt-menu {
    display: flex;
    list-style: none;
    transition: background-color 0.3s ease;
}


.lt-menu-item {
    position: relative;
}

.lt-menu-link {
    display: block;
    padding: 0 20px;
    height: var(--menu-height);
    line-height: var(--menu-height);
    color: #666;
    text-decoration: none;
    font-weight: 400;
    position: relative;
    /* ← ::afterの絶対配置のために必要 */
    transition: color 0.3s;
}

.lt-menu-link:hover {
    color: rgb(var(--main-color) / 1.0);
}

.lt-menu-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    /* 下線位置を調整 */
    left: 0;
    height: 2px;
    width: 0;
    background-color: rgb(var(--main-color) / 1.0);
    transition: width 0.3s;
    z-index: 0;
}

.lt-menu-link:hover::after {
    width: 100%;
}


/* サブメニュー */
.lt-submenu {
    z-index: 10000 !important;
    position: absolute;
    margin: 0 0 0 1rem;
    top: var(--menu-height);
    left: 0;
    background-color: #fff;
    box-shadow: 0 5px 15px rgb(0 0 0 / 0.1);
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s;
    transition: background-color 0.3s ease;
}

.lt-submenu:not(.mega-menu) {
    text-wrap: nowrap;
    box-shadow: 0 5px 15px rgb(0 0 0 / 0.1);
    /* 元のシャドウに戻す */
    width: auto;
    /* 既に auto ですが念のため明示 */
    min-width: 1rem;
    /* ★ 最小幅を少し小さくしました */
    white-space: nowrap;
    /* ★ 横幅可変のために追加 */
}

.lt-menu-item:hover>.lt-submenu,
.lt-submenu-item:hover>.lt-submenu {
    visibility: visible;
    opacity: 1;
}

.lt-submenu-item {
    list-style: none;
    position: relative;
}

.lt-submenu-link {
    display: block;
    padding: 12px 20px;
    font-size: 1.0rem;
    line-height: 1.2;
    color: #333;
    text-decoration: none;
    transition: all 0.3s;
    border-bottom: 1px solid #eee;
    transition: color 0.3s ease, border-bottom-color 0.3s ease, background-color 0.3s ease;
}

.lt-submenu-link:hover {
    background-color: #f9f9f9;
    color: rgb(var(--main-color) / 1.0);
}

/* 共通：サブメニューのマウスオーバー時（スクロール後/スマホ） */
.lt-submenu-link[data-dark="true"]:hover {
    background-color: #333 !important;
    color: #fff !important;
}

/* 第三階層のサブメニュー */
.lt-submenu .lt-submenu {
    position: absolute;
    top: 0;
    left: 100%;
    margin-left: 5px;
}


/* ハンバーガーメニュー */
.lt-menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    color: #333;
    cursor: pointer;
}

/* 修正後（第三階層のみ対象） */
.lt-submenu>.lt-submenu-item>.lt-submenu {
    position: absolute;
    /* ★ PC表示では absolute */
    top: 0;
    /* 位置微調整 */
    left: 100%;
    margin-left: 2px;
    box-shadow: 5px 5px 15px rgb(0 0 0 / 0.1);
}

/* PC表示ではサブメニューの矢印を下向きに */
.lt-submenu-toggle {
    display: inline-block;
    margin-left: 5px;
    transition: transform 0.3s;
    font-size: 0.5rem;
    vertical-align: middle;
}

/* PC表示で第二階層以降のサブメニューの矢印を右向きに */
.lt-submenu-item .lt-submenu-toggle {
    content: "▶";
}

.lt-submenu-item>.lt-submenu {
    top: 100%;
    left: 0;
}


/* 広告用バナーメニュー */
.lt-menu-banner {
    /* display: none; */

    position: absolute;
    height: var(--menu-height);
    right: 0;

    display: grid;
    grid-template-columns: 1fr;
    column-gap: 1rem;
    row-gap: 1rem;
    justify-content: end;
    align-items: center;
}

.lt-menu-banner img.tel-white,
.lt-menu-banner img.tel-black {
    margin: 0 1rem 0 0;
    width: 180px;
    height: 50px;
}

/* レスポンシブデザイン */
@media (max-width: 992px) {
    .lt-menu-toggle {
        display: block;
    }

    .lt-menu {
        position: fixed;
        top: calc(var(--menu-height) + 20px);
        left: -100%;
        width: 300px;
        max-width: 80%;
        height: calc(calc(100vh - var(--menu-height)) - 50px);
        flex-direction: column;
        background-color: #fff;
        box-shadow: 2px 0 5px rgb(0 0 0 / 0.1);
        transition: all 0.3s;
        overflow-y: auto;
        z-index: 10000 !important;
    }

    .lt-menu {
        display: flex;
        list-style: none;
        transition: background-color 0.3s ease;
    }

    .lt-menu-banner {
        position: relative;
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .lt-nav {
        justify-content: space-between;
    }

    .lt-menu.lt-active {
        left: 0;
    }

    .lt-menu.lt-active .lt-menu-item.lt-active>.lt-submenu,
    .lt-menu.lt-active .lt-submenu-item.lt-active>.lt-submenu,
    .lt-submenu .lt-submenu-item.lt-active>.lt-submenu {
        max-height: 1000px;
        overflow: visible;
    }

    .lt-menu-item {
        width: 100%;
        overflow: visible;
    }

    .lt-menu-link {
        padding: 15px 20px;
        height: auto;
        line-height: 1.5;
        border-bottom: 1px solid #eee;
    }

    /* モバイルでのサブメニュー共通スタイル */
    .lt-submenu {
        position: static;
        /* モバイル表示では static */
        width: 100%;
        margin: 0;
        box-shadow: none;
        visibility: visible;
        opacity: 1;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.5s ease;
    }

    /* すべての階層のサブメニューに同じスタイルを適用 */
    .lt-submenu .lt-submenu {
        position: static;
        /* モバイル表示では static */
        left: auto;
        margin-left: 0;
        box-shadow: none;
        width: 100%;
    }

    .lt-submenu>.lt-submenu-item>.lt-submenu {
        position: static;
        /* モバイル表示では static */
        top: auto;
        left: auto;
        margin-left: 0;
        box-shadow: none;
    }

    .lt-submenu-toggle {
        display: inline-block;
        margin-left: 5px;
        transition: transform 0.3s;
    }

    /* モバイル表示時、第二階層以降のサブメニューの矢印を右向きに */
    .lt-submenu-item .lt-submenu-toggle {
        content: "▶";
    }

    /* 階層に関わらず同じ動作を適用 */
    .lt-menu-item.lt-active>.lt-submenu,
    .lt-submenu-item.lt-active>.lt-submenu {
        max-height: 1000px;
        overflow: visible;
    }

    .lt-menu-item>.lt-menu-link .lt-submenu-toggle {
        transform: rotate(-90deg);
        /* 初期角度 -90度 */
    }

    .lt-menu-item.lt-active>.lt-menu-link .lt-submenu-toggle {
        transform: rotate(0deg);
        /* アクティブ時 0度 */
    }

    /* モバイル表示時、第二階層以降のサブメニューの矢印を初期値0deg、アクティブ時90degに */
    .lt-submenu-item .lt-submenu-toggle {
        transform: rotate(0deg);
        /* 初期角度 0度 */
    }

    .lt-submenu-item.lt-active>.lt-submenu-link .lt-submenu-toggle {
        transform: rotate(90deg);
        /* アクティブ時 90度 */
    }

    /* 第二階層のサブメニューリンク */
    .lt-submenu-link {
        padding-left: 40px;
        color: #333;
        border-bottom-color: #eee;
        transition: color 0.3s ease, border-bottom-color 0.3s ease, background-color 0.3s ease;
    }

    .lt-submenu-link:hover {
        background-color: #f9f9f9;
        color: rgb(var(--main-color) / 1.0);
    }

    .lt-submenu[data-dark="true"] {
        background-color: #000;
    }

    .lt-submenu-link[data-dark="true"] {
        color: #fff;
        border-bottom-color: #fff;
    }

    .lt-submenu-link[data-dark="true"]:hover {
        background-color: #333;
        color: #fff;
    }

    /* data-dark がない＝明るい状態（デフォルト） */
    .lt-submenu-link:not([data-dark]) {
        color: #333;
        border-bottom-color: #eee;
    }

    .lt-submenu-link:not([data-dark]):hover {
        background-color: #f9f9f9;
        color: rgb(var(--main-color) / 1.0);
    }


    /* 第三階層のサブメニューリンク */
    .lt-submenu .lt-submenu .lt-submenu-link {
        padding-left: 60px;
    }

    /* 第四階層以降のサブメニューリンク */
    .lt-submenu .lt-submenu .lt-submenu .lt-submenu-link {
        padding-left: 80px;
    }

    /* モバイル用調整 - メガメニュー修正 */
    .lt-submenu.mega-menu {
        position: static !important;
        left: auto !important;
        transform: none !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        /* 初期状態では非表示のまま */
        visibility: hidden !important;
        opacity: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
        box-shadow: none !important;
        z-index: auto !important;
        transition: max-height 0.5s ease, visibility 0s, opacity 0.3s !important;
    }

    /* アクティブ時のみ表示 */
    .lt-menu-item.lt-active>.lt-submenu.mega-menu,
    .lt-submenu-item.lt-active>.lt-submenu.mega-menu {
        visibility: visible !important;
        opacity: 1 !important;
        max-height: 2000px !important;
        /* 十分な高さを確保 */
        overflow: visible !important;
        height: auto !important;
    }

    .mega-menu-inner {
        grid-template-columns: 1fr !important;
        padding: 0 !important;
        gap: 0 !important;
        display: block !important;
    }

    .mega-menu-col {
        padding: 15px !important;
        border-bottom: 1px solid #eee !important;
        display: block !important;
        /* 追加: display: block; で縦並びを強制 */
        width: 100% !important;
        /* 追加: 幅を100%に設定 */
    }

    .mega-menu-col:last-child {
        border-bottom: none !important;
    }

    .mega-menu-col h3 {
        padding-left: 0 !important;
        /* 見出しの左パディングをリセット */
        font-size: 1.0rem;
        line-height: 1.2;
    }

    .mega-menu-col a {
        font-size: 1.0rem;
        line-height: 1.2;
    }

    .mega-menu-col .lt-submenu-link {
        padding-left: 0 !important;
        /* リンクの左パディングをリセット */
    }

    .mega-menu-image {
        margin-top: 10px !important;
        /* 画像のマージンを調整 */
        margin-bottom: 10px !important;
        /* 画像の下マージンも調整 */
    }
}

/* オーバーレイ */
.lt-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgb(0 0 0 / 0.5);
    z-index: 999;
}

.lt-overlay.lt-active {
    display: block;
}

/* メガメニュー用スタイル */
.lt-submenu.mega-menu {
    width: 100%;
    max-height: 0;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    margin: 0;
    padding: 40px 0;
    display: flex;
    visibility: hidden;
    opacity: 0;
    position: fixed;
    box-shadow: 0 10px 30px rgb(0 0 0 / 0.1);

    transition: max-height 0.4s ease, opacity 0.4s ease;
}



.lt-menu-item:hover>.lt-submenu.mega-menu {
    max-height: 1000px;
    visibility: visible;
    opacity: 1;
    display: block;
}

.mega-menu-inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
    padding: 0 40px;
    max-width: 1200px;

    margin: 0 auto;
}

.mega-menu-col {
    padding: 0 15px;
}

.mega-menu-col h3 {
    font-size: 1.0rem;
    line-height: 1.2;
    color: rgb(var(--main-color) / 1.0);
    margin-bottom: 15px;
    padding-bottom: 5px;
    border-bottom: 1px solid #eee;
}

.mega-menu-image {
    margin-top: 20px;
    border-radius: 8px;
    overflow: hidden;
}

.mega-menu-image img {
    width: 100% !important;
    height: auto;
    display: block;
}

/* 既存の.submenuスタイルをオーバーライド */
.lt-submenu:not(.mega-menu) {
    width: auto;
    min-width: 1rem;
    left: 0;
    box-shadow: 0 10px 30px rgb(0 0 0 / 0.1);
}

.lt-menu-link.prevent-toggle {
    pointer-events: none;
}


/* footer */
footer {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    bottom: 0;
    color: #000;
    background-color: rgb(var(--main-color) / 1.0);
}

.contact-menu {
    position: relative;
    z-index: 10001 !important;
}