/* ============================================================
   ヘッダーナビ 3階層ドロップダウン（全ページ共通）
   ============================================================ */

/* --- PC: 孫メニュー（都道府県） --- */
@media (min-width: 768px) {
    .has-grandchild {
        position: relative;
    }
    .has-grandchild > .l-nav-list__child-item-link::after {
        content: "";
        display: inline-block;
        width: 6px;
        height: 6px;
        border-top: 2px solid #999;
        border-right: 2px solid #999;
        transform: rotate(45deg);
        margin-left: 6px;
        vertical-align: middle;
    }
    .l-nav-list__grandchild {
        display: block;
        position: absolute;
        left: 100%;
        top: 0;
        min-width: 140px;
        background: #fff;
        box-shadow: 0 0 10px rgba(0,0,0,.1);
        list-style: none;
        margin: 0;
        padding: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: all .3s ease;
        z-index: 2;
    }
    .has-grandchild:hover > .l-nav-list__grandchild {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    .l-nav-list__grandchild-item-link {
        display: block;
        padding: 8px 16px;
        font-size: 1.2rem;
        color: #333;
        text-decoration: none;
        white-space: nowrap;
        transition: background .2s;
    }
    .l-nav-list__grandchild-item-link:hover {
        background: #f5f5f5;
        color: var(--primary);
    }
}

/* --- SP: 孫メニュー（都道府県） --- */
@media (max-width: 767px) {
    .l-nav-list__grandchild {
        display: none;
        list-style: none;
        margin: 0;
        padding: 0 0 0 16px;
    }
    .l-nav-list__grandchild.is-open {
        display: block;
    }
    .has-grandchild > .l-nav-list__child-item-link {
        position: relative;
        padding-right: 36px;
    }
    .has-grandchild > .l-nav-list__child-item-link::after {
        content: "";
        position: absolute;
        right: 12px;
        top: 50%;
        margin-top: -5px;
        width: 8px;
        height: 8px;
        border-top: 2px solid #f45c2a;
        border-right: 2px solid #f45c2a;
        transform: rotate(135deg);
        transition: transform .3s;
    }
    .has-grandchild > .l-nav-list__child-item-link.is-open::after {
        transform: rotate(-45deg);
    }
    .l-nav-list__grandchild-item-link {
        display: block;
        padding: 10px 16px;
        font-size: 1.3rem;
        color: #333;
        text-decoration: none;
        border-bottom: 1px solid #eee;
    }
}
