/*hf_sp.css*/

/*-----------------------------------
Header
------------------------------------*/

header.hidden {
  transform: translateY(-60px);
}

.page_head_wrap {
    position: fixed;
    height: 60px;
}

.h_top {
    max-width: 100%;
}

ul.h_top_links > li.h_search,
ul.h_top_links > li.h_globe,
ul.h_top_links > li.h_open {
    display: none;
}

.h_logo {
    display: block;
    margin-right: auto;
    margin-left: 15px;
}

.h_top {
    width: calc(100% - 56px);
    height: 60px;
    margin-left: 0;
}

.h_login a {
    width: 56px;
    height: 60px;
}

.h_logo span.logo_img {
    width: auto;
    padding-right: 0;
}

.h_logo span.logo_img img {
    width: 136px;
}

.h_login {
    width: 56px;
    margin-left: 12px;
    min-width: inherit;
}

.h_login span {
    font-size: 1.0rem;
}

.h_logo span.e_mecha01:before {
    content: none;
}

.h_logo span.e_mecha01 {
    padding-left: 0;
    width: auto;
    margin-top: 5px;
}

.h_logo span.e_mecha01 img {
    width: 128px;
}

.h_top_link a span {
    font-size: 1.3rem;
}

.h_top_link.h_contact a span {
    display: none;
}

.h_top_link.h_contact a img {
    margin: 0;
    padding: 0;
}

.h_top_links {
    column-gap: 0;
    justify-content: flex-start;
}

.h_login span.ic_login {
    width: 19px;
}


/*----------------------------------
Main Navi
------------------------------------*/

.main_navi {
    background-color: #fff;
    border-top: 1px solid;
    border-color: var(--cloud20);
}

.main_navi ul.page_navi > li {
    padding: 0;
    height: auto;
}

.main_navi ul.page_navi > li > a {
    text-align: left;
    padding: 20px 0;
    border-bottom: 1px solid;
    border-color: var(--cloud20);
    padding-left: 20px;
    position: relative;
}

.main_navi ul.page_navi > li > a:before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 20px;
    background-color: var(--cloud40);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto 0;
}

.main_navi ul.page_navi > li > a:after {
    content: '';
    display: block;
    vertical-align: middle;
    width: 10px;
    height: 10px;
    border: 0;
    border-top: solid 2px;
    border-right: solid 2px;
    border-color: var(--blue40);
    transform: rotate(45deg);
    margin-left: 8px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
    margin: auto;
}

.main_navi ul.page_navi > li > a > span {
    color: #000;
    font-size: clamp(1.6rem, 4.26vw, 1.8rem);
    font-weight: 500;
}

.main_navi ul.page_navi > li > a > span:after {
    content: none;
}

.navi_cont {
    transform: translate(250px);
    transition: all .5s;
    position: fixed;
    top: 60px;
    right: 0;
}

.navi_cont.current {
    left: 0;
    transform: translateZ(0);
}

.navi_cont_close {
    display: none;
}

.column {
    width: 100%;
}

.column.depth-2, .column.depth-3, .column.placeholder {
    width: 100%;
}

.column.show-right {
    width: 100%;
}

/*
.column.depth-1 {
    padding-top: 30px;
}
*/

/*
.column.depth-1 .h_tit01 {
    margin-left: 20px;
}
*/

.column.depth-1 .ac_header {
    width: 100%;
    margin: 0;
    padding-left: 0;
}

.column.depth-1 .ac_header span {
    font-size: clamp(1.6rem, 4.26vw, 1.8rem);
    font-weight: 500;
}

.column.depth-1 .ac_header span.img01 {
    margin-right: 15px;
}

.column.depth-2 .ac_header,
.column.depth-3 .ac_header {
    margin-left: 15px;
}

.column.depth-2.show-right {
    z-index: 4;
    left: 0;
}

.column.depth-3.show-right {
    z-index: 5;
    left: 0;
}

.column.depth-2, .column.depth-3 {
    padding-left: 20px;
    padding-right: 20px;
}

.column .ac_header.tit_link {
    border-bottom: 1px solid;
    border-color: var(--cloud20);
    padding-bottom: 11px;
    margin: 15px 0 0;
}

/*.depth-1の戻るボタン*/
.column.depth-1.slide-out-right {
    transform: translateX(100%);
    transition: transform 0.5s ease, opacity 0.3s ease;
    opacity: 0;
    pointer-events: none;
}

button.back_to_menu {
    display: block;
    position: absolute;
    top: 24px;
    left: 20px;
    padding: 0;
    border: none;
    padding-left: 30px;
}

.column.placeholder {
    display: none!important;
}

button.back_to_menu:before {
    content: '';
    display: block;
    vertical-align: middle;
    width: 10px;
    height: 10px;
    border: 0;
    border-top: solid 2px;
    border-right: solid 2px;
    border-color: var(--blue40);
    transform: rotate(-135deg);
    margin-left: 8px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

.column .inside {
    padding-left: 0;
    padding-right: 0;
}

.column.depth-1 .inside {
    padding-left: 20px;
    padding-right: 20px;
}

.column .ac_header.pre_bt {
    left: 20px;
    margin-left: 0;
}

.navi_cont_sc .column.depth-1 .ac_header {
    width: 100%;
    margin: 0
}

.column.depth-2 .ac_header_link {
    margin-left: 15px;
    padding-right: 40px;
}



/*----------------------------------
Navi_Cont Single_level
------------------------------------*/

.navi_cont.single_level .column {
    background-color: #fff;
}

.navi_cont.single_level .inside {
    padding-left: 20px;
    padding-right: 20px;
    overflow: hidden;
}

.main_navi ul.page_navi.show-on-mobile.temp {
    height: 0;
}


/*-----------------------------------
page_navi
------------------------------------*/

.main_navi ul.page_navi {
    display: none;
}

.main_navi ul.page_navi.show-on-mobile {
    display: block;
    padding-top: 20px;
    padding-bottom: 65px;
}

/*----------------------------------
menuButton
------------------------------------*/

.main_navi #menuButton {
    display: block!important;
}

#menuButton {
    overflow: hidden;
    display: block;
    position: relative;
    z-index: 998;
    width: 56px;
    height: 60px;
    padding: 0;
    background-color: #000;
    cursor: pointer;
    float: right;
    position: fixed;
    top: 0;
    right: 0;
    margin: 0;
}

#menuButton.active {
    background-color: transparent;
}

#menuButton span,
#menuButton::before,
#menuButton::after {
    display: block;
    position: absolute;
    top: -15px;
    bottom: 0;
    left:0;
    right: 0;
    width: 28px;
    height: 2px;
    margin: auto;
    background: #fff;
}

#menuButton span {
    overflow: hidden;
    z-index: 1;
    color: #fff;
}

#menuButton::before {
    z-index: 2;
    transform: translate(0, -8px);
    content: "";
}

#menuButton::after {
    z-index: 2;
    transform: translate(0, 8px);
    content: "";
}

#menuButton span {
    opacity: 1;
    transition: opacity 150ms 50ms;
    padding: 0;
}

#menuButton::before,
#menuButton::after {
    transition: transform 200ms;
}

#menuButton.open span {
    opacity: 0;
    transition: opacity 150ms;
}

#menuButton.open::before {
    transform: rotate(45deg);
}

#menuButton.open::after {
    transform: rotate(-45deg);
}

#menuButton > p {
    display: none;
}

#menuButton span, #menuButton::before, #menuButton::after {
    top: 0;
}

/*----------------------------------
Main
------------------------------------*/

main {
    margin-top: 60px;
}

/*-----------------------------------
Footer
------------------------------------*/

ul.ft_nav {
    display: block;
    width: 100%;
    max-width: 100%;
    border-top: 1px solid;
    border-color: var(--cloud20);
    margin-top: 0;
}

ul.ft_nav > li {
    width: 100%;
    margin-top: 0;
}

ul.ft_nav > li:first-child a {
    padding-top: 12px;
}

ul.ft_nav > li > a {
    font-size: clamp(1.6rem, 4.267vw, 1.8rem);
    padding-top: 20px;
    padding-bottom: 20px;
    margin: 0;
}

ul.ft_nav > li > a:after {
    top: 0;
    bottom: 0;
}

ul.ft_nav > li.menu-item-has-children > a.act:after {
    border-bottom: none;
    border-top: solid 1px;
    border-right: solid 1px;
    border-color: var(--blue40);
    transform: rotate(-45deg);
}

ul.ft_nav > li ul.sub-menu li {
    padding-left: 30px;
/*    margin-bottom: 12px;*/
}

ul.ft_nav_column > li:first-child a {
    border-top: none;
}


ul.ft_nav > li ul.sub-menu li a {
    font-size: 1.5rem;
    color: var(--blue30);
    border-bottom: 1px solid;
    border-color: var(--cloud20);
    padding-top: 8px;
    padding-bottom: 8px;
    padding-right: 0;
}

ul.ft_nav_column {
    border-top: none;
}

ul.ft_nav > li ul.sub-menu li a:after {
    content: none;
}


ul.ft_nav > li.menu-item-has-children > a:after {
    border-top: none;
    border-bottom: solid 1px;
    border-right: solid 1px;
    border-color: var(--blue40);
    transform: rotate(45deg);
}

.ft_nav_wrap {
    padding-bottom: 0;
    border-bottom: none;
    flex-direction: column;
}

.copy_right_wrap {
    height: auto;
    padding-top: 30px;
    padding-bottom: 25px;
}

.copy_right_wrap ul.ft_links {
    display: block;
}

.copy_right_wrap ul.ft_links li {
    margin-bottom: 30px;
}

.copy_right_wrap ul.ft_links li a {
    font-size: 1.6rem;
    font-weight: 500;
}

.copy_right_wrap ul.ft_links li.copy_right {
    margin-bottom: 0;
    margin-top: 50px;
    font-size: 1.4rem;
}

.youtube_link {
    justify-content: flex-start;
    position: relative;
}

.youtube_link span.youtube_text:after {
    content: none;
}

.youtube_link:after {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border: 0;
    border-top: solid 1px;
    border-right: solid 1px;
    border-color: var(--blue40);
    transform: rotate(45deg);
    margin-left: 8px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
}

#menuButton p {
    font-size: 1.3rem;
    font-weight: 400;
    text-align: center;
    color: #fff;
    position: absolute;
    bottom: 18%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

#menuButton p.close {
    display: none;
    opacity: 0;
    animation-duration: 0.5s;
    animation-name: fade-in;
    -moz-animation-duration: 0.5s;
    -moz-animation-name: fade-in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-name: fade-in;
}

header.active #menuButton p {
    display: none;
    opacity: 0;
    height: 0;
}

header.active #menuButton p.close {
    display: block;
    opacity: 1;
    height: auto;
}

/*-----------------------------------
MenuButton
------------------------------------*/

/*
#menuButton {
    overflow: hidden;
    display: block;
    position: relative;
    z-index: 998;
    width: 75px;
    height: 97px;
    padding: 0;
    background-color: #005BCB;
    cursor: pointer;
    float: right;
    position: fixed;
    top: 0;
    right: 0;
    margin: 0;
    position: absolute;
}
*/



/*
header {
    height: 56px;
}
*/

header.active {
    height: 100%;
}

header.active #menuButton p.close {
    display: none;
    opacity: 0;
    height: 0;
}

.h_top_link.h_contact a {
    padding: 0 10px;
}

.h_top_link.h_contact a img {
    width: 28px;
}































