/* ---- base css: GravityWorks追記 ---- */
html {
    scroll-behavior: auto !important;
}
body {
    background-color: transparent !important;
    -webkit-font-smoothing: subpixel-antialiased;
}

*, *:before, *:after {
    box-sizing: content-box;
}

img {
    max-width: none;
}

:where(.l-header, .l-footer) {
    letter-spacing: normal;
    font-feature-settings: normal;
    box-sizing: border-box;
    font-family: "source-han-sans-japanese", sans-serif;
    font-size: 1.6rem;
    line-height: 1.333;
    color: #222;
    word-wrap: break-word;
    -webkit-font-smoothing: antialiased;
    background-color: #f2f4f6;
    backface-visibility: hidden;
}

:where(.l-header, .l-footer) * {
    box-sizing: border-box;
}

:where(.l-header, .l-footer) :is(h1, h2, h3, h4, h5, h6, p, ul, ol, dl) {
    margin-bottom: 0;
    font-weight: normal;
}

:where(.l-header, .l-footer) a {
    color: #1b365d;
    text-decoration: none;
    outline: none;
    background-color: transparent;
}

:where(.l-header, .l-footer) a:any-link:hover {
    opacity: 1;
}

.-sp {
    display: none !important;
}

.container {
    max-width: 1164px;
    padding-right: 20px;
    padding-left: 20px;
    margin-right: auto;
    margin-left: auto;
}

@media only screen and (max-width: 768px) {
    .-sp {
        display: block !important;
    }
    
    .container {
        padding-right: 4.2666666667%;
        padding-left: 4.2666666667%;
    }
}

@media (hover) {
    .l-headerNavChild_link:hover {
        opacity: .5 !important;
    }
}

.l-headeTextLink {
    font-size: 1px;
}

/* ---- base cssここまで ---- */


.l-header {
    background-color: #fff;
    display: flex;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, .1)
}

@media only screen and (max-width: 768px) {
    .l-header {
        padding: 24px 4.2666666667%;
        box-shadow: 0 0 16px rgba(0, 0, 0, .05)
    }
}

.l-header.no-shadow {
    box-shadow: none
}

.l-header.is_open .l-headerLogo svg path {
    fill: #fff
}

.l-header.is_open .logo-text {
    color: #fff
}

.l-headerInner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex: 1 0 auto;
    padding-left: 20px
}

@media only screen and (max-width: 768px) {
    .l-headerInner {
        flex-direction: column;
        position: fixed;
        top: 64px;
        left: 0;
        z-index: -1;
        display: block;
        width: 100%;
        height: calc(100vh - 64px);
        overflow-y: auto;
        visibility: hidden;
        opacity: 0;
        padding-top: 56px;
        padding-left: 4.2666666667%;
        padding-right: 4.2666666667%
    }
}

@media only screen and (max-width: 768px)and (prefers-reduced-motion: no-preference) {
    .l-headerInner {
        transition: .25s cubic-bezier(0.65, 0.05, 0.36, 1)
    }
}

@media only screen and (max-width: 768px) {
    .l-headerInner.is_show {
        z-index: 975;
        padding-bottom: 75px;
        visibility: visible;
        opacity: 1
    }
}

.l-headerLogo {
    padding-top: 21px;
    padding-bottom: 22px;
    padding-left: 2.7777%;
    line-height: 1;
    position: relative;
    z-index: 1
}

@media only screen and (max-width: 768px) {
    .l-headerLogo {
        padding: 0
    }
}

.l-headerLogo a {
    display: flex;
    align-items: center;
    -moz-column-gap: 24px;
    column-gap: 24px
}

@media only screen and (max-width: 768px) {
    .l-headerLogo a {
        -moz-column-gap: 16px;
        column-gap: 16px
    }

    .l-headerLogo a .logo {
        width: 116px;
        height: 15px
    }
}

.l-headerLogo .logo-text {
    font-family: "source-han-sans-japanese", sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    flex: 1 0 auto
}

@media only screen and (max-width: 768px) {
    .l-headerLogo .logo-text {
        font-size: 1.4rem
    }
}

.l-headeTextLink {
    padding-top: 10px;
    padding-right: 35px;
    line-height: 1;
    font-size: 1px;
}

.l-headeTextLink:focus {
    text-decoration: underline
}

@media(hover) {
    .l-headeTextLink:hover {
        text-decoration: underline
    }
}

.l-headeTextLink_item {
    color: #222;
    font-size: 1.3rem
}

.l-headeTextLink_item[target=_blank] {
    padding-right: 21px;
    background-image: url("/wp/wp-content/themes/fujioh-pro/assets/images/common/icon_blank.svg");
    background-repeat: no-repeat;
    background-position: right center
}

.l-headerNav {
    margin-top: 13px
}

@media only screen and (max-width: 1024px) {
    .l-headerNav {
        margin-right: 0
    }
}

@media only screen and (max-width: 768px) {
    .l-headerNav {
        font-family: "source-han-sans-japanese", sans-serif;
        margin-top: 0;
        margin-right: 0
    }
}

.l-headerNavList {
    display: flex;
    padding-left: 0
}

@media only screen and (max-width: 768px) {
    .l-headerNavList {
        flex-direction: column
    }
}

@media not screen and (max-width: 768px) {
    .l-headerNavList>*:nth-child(1) .l-headerNavChild {
        width: 220px
    }

    .l-headerNavList>*:nth-child(2) .l-headerNavChild {
        width: 234px
    }

    .l-headerNavList>*:nth-child(3) .l-headerNavChild {
        width: 174px
    }
}

.l-headerNavList_item {
    flex-grow: 1
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_item {
        border-top: 1px solid hsla(0, 0%, 100%, .5);
        padding-top: 20px;
        padding-bottom: 20px
    }
}

.l-headerNavList_item:not(:last-child) {
    margin-right: 20px
}

@media only screen and (max-width: 1024px) {
    .l-headerNavList_item:not(:last-child) {
        margin-right: 0
    }
}

.l-headerNavList_link {
    color: #222;
    display: block;
    font-weight: 700;
    padding: 5px 15px 14px;
    margin-bottom: -4px
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_link {
        color: #fff;
        font-size: 1.8rem;
        padding: 0
    }
}

.l-headerNavChild {
    font-family: "source-han-sans-japanese", sans-serif;
    transition: .25s;
    border-radius: 8px;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, .2)
}

@media not screen and (max-width: 768px) {
    .l-headerNavChild {
        opacity: 0;
        background-color: #fff;
        position: absolute;
        bottom: -4px;
        left: 50%;
        transform: translate(-50%, 100%);
        z-index: -1;
        min-width: 145px
    }
}

@media only screen and (max-width: 768px) {
    .l-headerNavChild {
        box-shadow: none;
        margin-top: 20px;
        display: none;
        transition: none
    }
}

.l-headerNavChild:focus {
    opacity: 1;
    z-index: 10
}

@media(hover) {
    .l-headerNavChild:hover {
        opacity: 1;
        z-index: 10
    }
}

.l-headerNavList_item__hasChild {
    position: relative
}

.l-headerNavList_item__hasChild .l-headerNavList_link {
    position: relative;
    cursor: pointer
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_item__hasChild .l-headerNavList_link::before {
        content: " ";
        width: 6px;
        height: 6px;
        display: block;
        border-top: solid 1px #fff;
        border-right: solid 1px #fff;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%) rotate(135deg);
        transition: .25s;
        opacity: 0
    }
}

@media only screen and (max-width: 768px)and (max-width: 768px) {
    .l-headerNavList_item__hasChild .l-headerNavList_link::before {
        opacity: 1
    }
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_item__hasChild .l-headerNavList_link.is_active::before {
        transform: translateY(-50%) rotate(-45deg)
    }
}

.l-headerNavList_item__hasChild .l-headerNavList_link::after {
    content: " ";
    width: 9px;
    height: 4px;
    background-image: url("/wp/wp-content/themes/fujioh-pro/assets/images/common/icon_arrow-down.svg");
    background-repeat: no-repeat;
    position: absolute;
    top: .85em;
    right: 0
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_item__hasChild .l-headerNavList_link::after {
        display: none
    }
}

@media not screen and (max-width: 768px) {

    .l-headerNavList_item__hasChild .l-headerNavList_link:hover+.l-headerNavChild,
    .l-headerNavList_item__hasChild .l-headerNavList_link:focus-within+.l-headerNavChild {
        opacity: 1;
        z-index: 1
    }
}

@media only screen and (max-width: 768px) {
    .l-headerNavList_item__hasChild.is_open .l-headerNavList_link::before {
        transform: translateY(-50%) rotate(-45deg)
    }
}

.l-headerNavList_item__hasChild.is_active .l-headerNavList_link::after {
    transform: rotate(-180deg)
}

.l-headerNavChild_item {
    padding: 16px 20px
}

.l-headerNavChild_item:not(:first-child) {
    border-top: 1px solid rgba(0, 0, 0, .1)
}

.l-headerNavChild_link {
    font-size: 1.5rem
}

.l-headerNavChild_link:focus {
    opacity: .5
}

@media(hover) {
    .l-headerNavChild_link:hover {
        opacity: .5
    }
}

@media not screen and (max-width: 768px) {
    .l-headerNavChild_link {
        font-feature-settings: "palt"
    }
}

@media only screen and (max-width: 768px) {
    .l-headerNavChild_link {
        color: #fff
    }
}

.l-headerBtn {
    background-color: #1b365d;
    color: #fff;
    display: block;
    font-family: "source-han-sans-japanese", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    width: 200px;
    height: 75px;
    display: flex;
    align-items: center;
    justify-content: center;
    -moz-column-gap: 14.5%;
    column-gap: 14.5%;
    padding: 10px 5px
}

@media only screen and (max-width: 1024px) {
    .l-headerBtn {
        font-size: 1.3rem
    }
}

.l-headerBtn:focus {
    background-color: #222
}

@media(hover) {
    .l-headerBtn:hover {
        background-color: #222
    }
}

@media only screen and (max-width: 768px) {
    .l-headerBtn {
        display: none
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn {
        position: absolute;
        top: 0;
        right: 0;
        display: block;
        width: 64px;
        height: 64px;
        cursor: pointer
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn.is_open .l-headerSpBtn_line {
        background-color: #fff
    }
}

@media only screen and (max-width: 768px)and (prefers-reduced-motion: no-preference) {
    .l-headerSpBtn.is_open .l-headerSpBtn_line {
        transition: .25s cubic-bezier(0.65, 0.05, 0.36, 1)
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn.is_open .l-headerSpBtn_line:nth-of-type(1) {
        transform: translateY(8px) rotateZ(28deg)
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn.is_open .l-headerSpBtn_line:nth-of-type(2) {
        opacity: 0
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn.is_open .l-headerSpBtn_line:nth-of-type(3) {
        transform: translateY(-5px) rotateZ(-28deg)
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn_line {
        position: absolute;
        left: 50%;
        translate: -50%;
        display: block;
        width: 30px;
        height: 2px;
        background-color: #1b365d
    }
}

@media only screen and (max-width: 768px)and (prefers-reduced-motion: no-preference) {
    .l-headerSpBtn_line {
        transition: .25s cubic-bezier(0.65, 0.05, 0.36, 1)
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn_line:nth-of-type(1) {
        top: 25px
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn_line:nth-of-type(2) {
        top: 31px
    }
}

@media only screen and (max-width: 768px) {
    .l-headerSpBtn_line:nth-of-type(3) {
        top: 37px
    }
}

.l-headerBottom {
    display: none;
    flex-direction: column;
    margin-top: 20px
}

@media only screen and (max-width: 768px) {
    .l-headerBottom {
        display: flex
    }
}

.l-headerSimpleNav {
    display: flex;
    flex-wrap: wrap;
    row-gap: 24px
}

@media only screen and (max-width: 768px) {
    .l-headerSimpleNav_item:not(:last-child) {
        margin-right: 20px
    }
}

.l-headerSimpleNav_link {
    color: #fff;
    font-size: 1.3rem
}

.l-headerSimpleNav_link[target=_blank] {
    padding-right: 26px;
    background-image: url("/wp/wp-content/themes/fujioh-pro/assets/images/common/icon_blank_wh.svg");
    background-repeat: no-repeat;
    background-size: 14px auto;
    background-position: right bottom 3px
}

.l-headerCopyRight {
    color: #fff;
    display: flex;
    justify-content: center;
    font-size: 1rem;
    text-align: center;
    margin-top: 37px
}

.menuOverlay {
    background-color: #1b365d;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    opacity: 0;
    visibility: hidden
}

.menuOverlay.is_show {
    opacity: 1;
    visibility: visible
}