body {
    @media screen and (max-width: 768px) {
        overflow-x: hidden;
    }

    @media screen and (min-width: 1001px) {
        overflow-x: hidden;
    }
}

@media screen and (min-width: 768px) {
    .l-side-navi {
        position: relative;
        z-index: 999999;
        width: 100%;
        background-color: #fff;
        transition: translate 0.3s linear;
    }

    .l-side-navi-inner {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        padding: 40px 20px 24px;
        position: relative;
    }

    .l-header-upper {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: 1rem;
    }

    .top-logo {
        display: block;
        z-index: 9999;
    }

    .mdvebm-logo {
        height: 40px;
        object-fit: contain;
    }

    .l-header-upper-icons {
        display: flex;
        align-items: flex-end;
        justify-content: flex-end;
        flex-wrap: nowrap;
        width: fit-content;
        height: 24px;
        gap: 10px;

        img {
            height: 24px;
            object-fit: contain;
        }
    }

    .l-g-navi {
        position: relative;
    }

    .l-main-navi {
        display: flex;
        align-items: end;
        justify-content: flex-end;
        flex-wrap: nowrap;
        width: 100%;
        padding-top: 2rem;

        &.l-main-navi--long {
            width: calc(100%);
        }

        a,
        p {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-wrap: nowrap;
            width: fit-content;
            font-size: min(calc(1vw + 4px), 14px);
            line-height: 24px;
            gap: 2px;
            padding: 0 8px;
            cursor: pointer;
        }

        a img {
            height: 1em;
            object-fit: contain;
        }
    }

    .l-navi-conts {
        > a,
        p {
            border-bottom: 2px solid #fff;
            box-sizing: border-box;
            line-height: 1.3;
            text-align: center;
        }

        > p:hover,
        > a:hover,
        > a.active {
            border-bottom: 2px solid #ffa600;
        }
    }

    .l-navi-conts input {
        appearance: none;
        display: none;
    }

    .l-navi-conts > ul {
        z-index: 2;
        opacity: 0;
        visibility: hidden;
        display: grid;
        grid-template-columns: repeat(3, 30%);
        gap: 24px;
        position: absolute;
        top: calc(100% + 1rem);
        left: 0;
        width: 100%;
        padding: 24px 0;
        transition: all 0.3s ease-in-out;
    }

    .l-navi-conts > ul::before {
        z-index: -1;
        position: absolute;
        top: 0;
        left: -50vw;
        width: 150vw;
        height: 100%;
        background-color: #ddd;
        content: "";
    }

    .l-navi-conts:has(ul) {
        a {
            position: relative;
        }

        > a::before {
            opacity: 0;
            transition: opacity 0.3s ease;
            display: block;
            position: absolute;
            bottom: -24px;
            left: 0;
            width: 100%;
            height: 24px;
            content: "";
        }

        > a::after {
            opacity: 0;
            display: block;
            position: absolute;
            bottom: -14px;
            left: calc(50% - 10px);
            width: 20px;
            height: 10px;
            clip-path: polygon(50% 0, 0 100%, 100% 100%);
            background-color: #ddd;
            transition: opacity 0.3s ease;
            content: "";
        }
    }

    .l-navi-conts:has(ul):hover {
        ul {
            opacity: 1;
            visibility: visible;
        }

        > a::before {
            opacity: 1;
        }

        > a::after {
            opacity: 1;
        }
    }

    .l-navi-conts li::after {
        rotate: 45deg;
        display: block;
        position: absolute;
        top: calc(50% - 0.2em);
        right: 5px;
        width: 0.5em;
        height: 0.5em;
        border-top: 2px solid #000;
        border-right: 2px solid #000;
        content: "";
    }

    .l-navi-conts li {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        position: relative;

        a {
            line-height: 1.4;
            display: block;
            padding-right: calc(40px + 0.5em);
            width: 100%;
        }

        a:hover {
            background-color: #fff;
            color: #acacac;
        }
    }

    .l-navi-form {
        a {
            padding: 0 16px;
            margin-left: 8px;
            color: #1b1c85;
            font-weight: bold;
            background-color: #ffa600;
        }

        a::before {
            content: "CONTACT US";
        }
    }

    .l-side-navi--fixed + div {
        padding-top: 154px;
    }

    .l-side-navi--fixed {
        z-index: 999;
        position: fixed;
        top: -160px;
        left: 0;
        transition: top 0.5s ease-in-out;

        .l-side-navi-inner {
            padding: 48px 0 24px;
        }

        .l-header-upper {
            position: absolute;
            top: 30px;
            left: 40px;
        }

        .mdvebm-logo {
            height: 20px;
            margin-left: 1rem;
        }

        .l-header-upper-icons {
            display: none;
        }

        .l-navi-form {
            a {
                height: 24px;
                padding: 8px 8px;
                box-sizing: border-box;
            }

            a::before {
                display: block;
                width: 1em;
                height: 1em;
                background: center / 1.5em 1.5em no-repeat
                    url(/ebm/ebm.assets/images/navi_contact.png);
                content: "";
            }

            img {
                display: none;
            }
        }
    }

    .l-side-navi--fixed-show {
        top: 0;
    }

    .hamburger {
        display: none;
    }

    .l-sp-links {
        display: none;
    }
}

@media screen and (max-width: 768px) {
    .nav-open {
        overflow: hidden;
    }

    .l-header-upper {
        z-index: 999;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 56px;
        padding: 12px;
        background-color: #fff;
    }

    .mdvebm-logo {
        height: 32px;
        object-fit: contain;
    }

    .l-header-upper-icons {
        display: none;
    }

    .hamburger {
        display: block;
        position: absolute;
        left: initial;
        right: 0;
        top: 0;
        width: 56px;
        height: 56px;
        cursor: pointer;
        z-index: 999;
        background-color: #ffffff;
    }

    .hamburger-line {
        position: absolute;
        left: 18px;
        width: 20px;
        height: 1px;
        background-color: #111111;
        transition: all 0.6s;
    }

    .hamburger-line-1 {
        top: 20px;
    }

    .hamburger-line-2 {
        top: 26px;
    }

    .hamburger-line-3 {
        top: 32px;
    }

    .nav-open .hamburger-line-1 {
        transform: rotate(405deg);
        top: 26px;
    }

    .nav-open .hamburger-line-2 {
        width: 0;
        left: 50%;
    }

    .nav-open .hamburger-line-3 {
        transform: rotate(-405deg);
        top: 26px;
    }

    .l-g-navi {
        transition: right 0.2s ease-in-out;
        z-index: 9999;
        overflow-x: hidden;
        overflow-y: auto;
        position: fixed;
        top: 56px;
        right: -352px;
        height: calc(100vh - 56px);
        width: 352px;
        background-color: #fff;
    }

    .nav-open .l-g-navi {
        right: 0;
    }

    .l-main-navi {
        border-top: 1px solid #e6e6eb;
    }

    .l-navi-conts {
        position: relative;

        a,
        p {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-wrap: nowrap;
            width: 100%;
            height: 48px;
            padding: 0 16px 0 12px;
            border-left: 4px solid #fff;
            border-bottom: 1px solid #e6e6eb;
            font-size: 16px;

            span {
                max-width: calc(100% - 15px);
            }
        }

        a:hover {
            border-left: 4px solid #ffa600;
        }

        a::after {
            rotate: 45deg;
            display: inline-block;
            width: 0.5em;
            height: 0.5em;
            margin-left: 8px;
            border-top: 2px solid #000;
            border-right: 2px solid #000;
            content: "";
        }

        input[type="checkbox"] {
            appearance: none;
            display: none;
        }

        input[type="checkbox"] + label {
            display: flex;
            align-items: center;
            justify-content: center;
            flex-wrap: nowrap;
            position: absolute;
            top: 0;
            right: 0;
            width: 48px;
            height: 48px;
            cursor: pointer;
        }

        input[type="checkbox"] + label::after {
            position: absolute;
            width: 1em;
            height: 3px;
            background-color: #000;
            content: "";
        }

        input[type="checkbox"] + label::before {
            visibility: visible;
            position: absolute;
            width: 3px;
            height: 1em;
            background-color: #000;
            content: "";
        }

        input[type="checkbox"]:checked ~ label::before {
            visibility: hidden;
        }

        ul {
            padding-left: 16px;
            overflow: hidden;
            transition: max-height 0.2s ease-out;
            max-height: 0;

            a {
                min-height: 32px;
                font-size: 14px;
                padding: 10px 16px 10px 12px;
                min-height: 48px;
                height: fit-content;
            }
        }

        input[type="checkbox"]:checked ~ ul {
            transition: max-height 0.2s ease-in;
            max-height: 1000px;
        }
    }

    .l-navi-form {
        a {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-wrap: nowrap;
            width: 100%;
            height: 48px;
            padding: 0 16px 0 12px;
            border-left: 4px solid #ffa600;
            border-bottom: 1px solid #e6e6eb;
            font-size: 16px;
            color: #1b1c85;
            background-color: #ffa600;

            img {
                margin-left: 8px;
                height: 1em;
                object-fit: contain;
            }
        }

        a:hover {
            border-left: 4px solid #1b1c85;
        }

        a::before {
            content: "CONTACT US";
        }
    }

    .l-sp-links {
        display: flex;
        align-items: flex-start;
        justify-content: center;
        flex-direction: column;
        flex-wrap: nowrap;
        width: 100%;
        margin: 16px 16px;
        padding-bottom: 120px;

        a {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-wrap: nowrap;
            width: 100%;
            height: 32px;
            font-size: 14px;
            gap: 0 8px;
        }

        a:hover {
            opacity: 0.5;
        }

        img {
            height: 0.9em;
            object-fit: contain;
        }

        img.english {
            filter: grayscale(1);
        }

        img.logo {
            height: 24px;
        }
    }
}

.black-bg {
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: -1;
    background-color: #000000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.6s;
    cursor: pointer;
}

.nav-open .black-bg {
    opacity: 0.8;
    visibility: visible;
}

.l-header-upper-icons .l-main-navi {
    display: block;
    width: auto;
}
.l-header-upper-icons .l-main-navi a {
    margin-left: 0;
}
.l-header-upper-icons a._dl::before {
    content: "DOWNLOAD MATERIALS";
}
.l-side-navi--fixed .l-navi-form a {
    padding: 8px 5px;
}
.l-side-navi--fixed .l-navi-form a._dl::before {
    background: center / 1em 1em no-repeat
        url(/ebm/ebm.assets/images/dl_icon_b.png);
}
.l-g-navi .l-navi-form {
    display: none;
}
.l-side-navi--fixed .l-g-navi .l-navi-form {
    display: block;
}
@media screen and (max-width: 768px) {
    .l-g-navi .l-navi-form {
        display: block;
    }
    .l-navi-form a._dl::before {
        content: "DOWNLOAD MATERIALS";
    }
}

@media screen and (max-width: 1279px) {
    .nav-open .main-box {
        min-width: initial;
        overflow: hidden;
    }
}

@media screen and (min-width: 768px) {
    .nav-open .l-g-navi {
        display: none;
    }

    .l-side-navi--fixed.l-side-navi--fixed-show .l-header-upper {
        position: initial;
    }

    .l-side-navi--fixed.l-side-navi--fixed-show .l-side-navi-inner {
        display: flex;
        max-width: 1280px;
        margin: 0 auto;
        justify-content: space-between;
        padding: 24px 40px;
    }

    .nav-open .l-side-navi--fixed-show .l-g-navi {
        display: block;
    }

    .nav-open .l-side-navi {
        z-index: 9995;
    }

    .l-side-navi .l-navi-conts a {
        padding: 0 2px;
        font-size: 79%;
    }

    .nav-open .l-side-navi-inner {
        z-index: 9999;
        background: #fff;
    }

    .nav-open .l-side-navi-inner:before,
    .nav-open .l-side-navi-inner:after {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        background: #fff;
        width: calc(100% / 2);
        height: 100%;
    }

    .nav-open .l-side-navi-inner:before {
        left: -50%;
    }

    .nav-open .l-side-navi-inner:after {
        right: -50%;
    }
}

.l-g-navi .l-main-navi.l-main-navi--long {
    gap: 0.8vw;
    padding-top: 2rem;
}

.l-side-navi--fixed.l-side-navi--fixed-show .l-main-navi--long {
    background: #fff;
    gap: 3px;
    padding-top: 0;
    padding-bottom: 4px;
}

.l-side-navi--fixed.l-side-navi--fixed-show .l-side-navi-inner {
    padding: 18px 0 47px;
    gap: 6px;
}

.l-side-navi--fixed.l-side-navi--fixed-show
    .l-side-navi-inner
    .l-navi-conts
    > ul {
    top: calc(100% + 0.74rem);
}

.l-side-navi--fixed.l-side-navi--fixed-show .l-side-navi-inner .l-g-navi {
    position: absolute;
    width: 100%;
    margin-top: 0;
}

.l-navi-conts > .navi-parent .parent .list-head:first-of-type {
    display: none;
}

.l-navi-conts > .navi-parent .parent::after {
    display: none;
}

.l-navi-conts > .navi-parent .parent .list-head::after {
    rotate: 45deg;
    display: block;
    position: absolute;
    top: calc(50% - 0.6em);
    right: 5px;
    width: 0.5em;
    height: 0.5em;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    content: "";
}

@media screen and (min-width: 768px) {
    .l-main-navi {
        gap: 8px;
    }

    .l-navi-conts > .navi-parent,
    .l-navi-conts > .navi-parent .parent {
        display: block;
    }

    .l-navi-conts > .navi-parent .parent .list-head,
    .l-navi-conts > .navi-parent .parent .list-head a {
        font-size: 2rem;
        align-items: center;
        font-weight: bold;
        margin-top: 2rem;
    }

    .l-navi-conts > .navi-parent .parent .list-head:first-of-type {
        display: flex;
        margin-top: 0;
    }

    .l-navi-conts > .navi-parent .parent .list-head.no-link {
        align-items: center;
    }

    .l-navi-conts > .navi-parent .parent .list-head.no-link:after {
        content: "";
        display: block;
        align-items: center;
        position: static;
        flex-grow: 1;
        height: 1px;
        background: #000;
        rotate: none;
        margin-left: 2rem;
    }

    .l-navi-conts > .navi-parent .navi-children {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        padding: 0;
        gap: 24px;
        margin-top: 18px;
        width: 100%;
        transition: all 0.3s ease-in-out;
        position: initial;
    }
}

@media screen and (max-width: 768px) {
    .l-navi-conts > .navi-parent {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
    }

    .l-navi-conts input[type="checkbox"]:checked ~ .navi-parent {
        max-height: 1000px;
    }

    .l-navi-conts .navi-parent .navi-children {
        max-height: none;
    }

    .l-navi-conts > .navi-parent .parent .list-head:first-of-type {
        display: flex;
    }

    .l-navi-conts > .navi-parent .parent .list-head a {
        font-weight: bold;
    }

    .l-navi-conts > .navi-parent .parent .list-head::after {
        display: none;
    }

    .l-g-navi .l-navi-conts > .navi-parent .parent .no-link {
        display: flex;
    }

    .l-g-navi .l-navi-conts > .navi-parent .parent .no-link.first-head {
        display: none;
    }

    .l-main-navi,
    .l-side-navi--fixed.l-side-navi--fixed-show .l-main-navi--long {
        display: block;
    }

    .l-main-navi {
        padding-top: 2rem;
    }

    .l-side-navi--fixed.l-side-navi--fixed-show .l-side-navi-inner {
        padding: 0;
    }

    .l-side-navi--fixed.l-side-navi--fixed-show .l-side-navi-inner .l-g-navi {
        position: fixed;
        width: 352px;
        margin-top: 0;
    }
}

body header:not(.l-side-navi--fixed) {
    height: auto;
}

.top-contantes-section.animated {
    width: 100%;
    overflow: hidden;
}

@media screen and (max-width: 1000px) {
    .l-main-navi {
        padding-top: 0.7rem;
        background: #fff;
        padding-bottom: 0.3rem;
    }
}

@media screen and (max-width: 1000px) and (min-width: 768px) {
    .l-side-navi--fixed .l-g-navi {
        display: block;
    }

    .l-navi-conts > .navi-parent .navi-children {
        display: block;
    }

    .l-side-navi .l-navi-conts a {
        border-left: none;
    }
}

.l-side-navi--fixed-show .multi-modal-ctrl .choice-login,
.l-side-navi--fixed-show .navi-mypage .logged-in,
header .multi-modal-ctrl svg,
header .mypage-btn svg {
    display: none;
}

.l-side-navi--fixed-show .l-main-navi .l-navi-conts .multi-modal-ctrl svg,
.l-side-navi--fixed-show .l-main-navi .l-navi-conts .mypage-btn svg {
    display: block;
    position: initial;
    top: initial;
    right: initial;
}

.multi-modal-ctrl svg rect,
.mypage-btn svg rect {
    fill: #1b1c85;
}

.multi-modal-ctrl svg path,
.mypage-btn svg path {
    fill: #fff;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-news {
    order: 1;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-about {
    order: 2;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-service {
    order: 3;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-database {
    order: 4;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-studies {
    order: 5;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-reference {
    order: 6;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-publication {
    order: 7;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-column {
    order: 8;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-video {
    order: 9;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-care {
    order: 10;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-search {
    order: 11;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-mypage {
    order: 12;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-mail {
    order: 13;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-dl {
    order: 14;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-mypage a {
    border: none;
    margin-left: 2px;
    margin-right: -3px;
    margin-bottom: 0px;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-form-icon {
    order: 12;
}

.l-side-navi--fixed.l-side-navi--fixed-show .navi-dl {
    order: 13;
}

@media screen and (max-width: 768px) {
    header .top-logo {
        margin-left: initial;
    }
}

header.l-side-navi .navi-news ul li a svg,
header.l-side-navi .navi-about ul li a svg,
header.l-side-navi .navi-service ul li a svg,
header.l-side-navi .navi-database ul li a svg,
header.l-side-navi .navi-studies ul li a svg,
header.l-side-navi .navi-reference ul li a svg,
header.l-side-navi .navi-publication ul li a svg,
header.l-side-navi .navi-column ul li a svg,
header.l-side-navi .navi-video ul li a svg,
header.l-side-navi .navi-care ul li a svg {
    display: inline;
    position: absolute;
    top: -0.3rem;
    right: -3.685rem !important;
}

header.l-side-navi--fixed-show .l-main-navi .l-navi-conts.navi-news ul li a svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-about
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-service
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-database
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-studies
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-reference
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-publication
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-column
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-video
    ul
    li
    a
    svg,
header.l-side-navi--fixed-show
    .l-main-navi
    .l-navi-conts.navi-care
    ul
    li
    a
    svg {
    position: absolute;
    top: -0.3rem;
    right: -3.685rem;
}

header .black-bg-keyword {
    width: 100%;
    height: 100vh;
    position: absolute;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    top: calc(100% + 0.05rem);
}

@media screen and (max-width: 1440px) {
    .nav-open .l-side-navi-inner:before {
        left: -50%;
    }

    .nav-open .l-side-navi-inner:after {
        right: -50%;
    }
}

@media screen and (max-width: 768px) and (min-width: 500px) {
    .nav-open .l-g-navi {
        display: block;
        top: 23rem;
    }

    .l-g-navi .l-main-navi.l-main-navi--long {
        padding-top: 0;
    }
}

.l-navi-conts > .navi-parent .parent {
    margin-top: 2rem;
}

.l-navi-conts > .navi-parent .parent:first-of-type {
    margin-top: 0;
}

@media screen and (max-width: 768px) {
    header.l-side-navi .navi-service ul li a svg,
    header.l-side-navi .navi-database ul li a svg {
        right: -5.685rem !important;
    }
}

header .black-bg {
    display: block;
}

/* 
20250917 headerのinputをdisplay: noneへ
*/

@media screen and (max-width: 768px){
    .l-navi-conts.navi-mypage input{
        display: none;
    }
}


header .list-head.no-link.gray-out {
  color: #9e9e9e;
}

.l-navi-conts > .navi-parent .parent .list-head.no-link.gray-out::after {
  border-top: 2px solid #9e9e9e;
}

.l-navi-conts > .navi-parent .navi-children.gray-out {
  columns: #9e9e9e;
}

.l-side-navi .l-navi-conts a.gray-out {
  color: #9e9e9e;
  pointer-events: none;
  cursor: none;
}

.l-side-navi .l-navi-conts .list-gray-out::after {
  border-top: 2px solid #9e9e9e;
  border-right: 2px solid #9e9e9e;
}
