@charset "utf-8";

/* ===================================================================
header
=================================================================== */

/* header
--------------------*/

.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
    transition: all .3s ease-out 0s;
}

.header .header__inner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    padding: 20px 30px 20px 45px;
    transition: all .3s ease-out 0s;
}

.header .header__content {
    display: flex;
    align-items: center;
}

.header .header__title {
    width: 126px;
}

.header .header__sub-title {
    margin: 0 0 0 45px;
}

.header .header__sub-title-img {
    width: 366px;
    margin: 0 0 20px;
}

.header .header__sub-title-link nav ul {
    display: flex;
    align-items: center;
}

.header .header__sub-title-link nav ul li input {
    display: none;
}

.header .header__sub-title-link nav ul li label {
    position: relative;
    display: block;
    margin: 0 0 0 50px;
    padding: 0 20px 0 0;
    color: #fff;
    transition: all .3s ease-out 0s;
}

.header .header__sub-title-link nav ul li:nth-of-type(1) label{
    margin: 0;
}

.header .header__sub-title-link nav ul li label:after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translate(0, -50%) rotate(45deg);
    right: 0;
    width: 10px;
    height: 10px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transition: all .3s ease-out 0s;
}

.header .header__sub-title-link nav ul li label:hover {
    color: #e50012;
}

.header .header__sub-title-link nav ul li label:hover:after {
    border-top: 2px solid #e50012;
    border-right: 2px solid #e50012;
}

.header .header__sub-title-link nav ul li input[type=radio]:checked + label {
    color: #e50012;
}

.header .header__sub-title-link nav ul li input[type=radio]:checked + label:after {
    border-top: 2px solid #e50012;
    border-right: 2px solid #e50012;
}

.header .header__sub-title-link nav ul li input[type=radio]:disabled + label {
    color: #ededed;
    cursor: default;
}

.header .header__sub-title-link nav ul li input[type=radio]:disabled + label:after {
    border-top: 2px solid #ededed;
    border-right: 2px solid #ededed;
}

.header .header__sub-title-link nav ul li input[type=radio]:disabled + label:hover {
    color: #ededed;
}

.header .header__sub-title-link nav ul li input[type=radio]:disabled + label:hover:after {
    border-top: 2px solid #ededed;
    border-right: 2px solid #ededed;
}

/* header scroll
--------------------*/

.header.scroll .header__inner {
    background: #c5c5c5;
}

/* header menu
--------------------*/

.header .header__menu ul {
    display: flex;
    align-items: center;
}

.header .header__menu ul li a {
    position: relative;
    display: block;
    margin: 0 0 0 35px;
    padding: 35px 0 0;
    font-size: 10px;
    font-weight: bold;
    color: #e50012;
}

.header .header__menu ul li.search a:after,
.header .header__menu ul li.map a:after,
.header .header__menu ul li.login a:after,
.header .header__menu ul li.menu a:after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 28px;
    height: 26px;
}

.header .header__menu ul li.search a:after {
    background: url(../../images/header/header_icon_1.png) 50% 50% / contain no-repeat, transparent;
}

.header .header__menu ul li.map a:after {
    background: url(../../images/header/header_icon_2.png) 50% 50% / contain no-repeat, transparent;
}

.header .header__menu ul li.login a:after {
    background: url(../../images/header/header_icon_3.png) 50% 50% / contain no-repeat, transparent;
}

.header .header__menu ul li.menu a:after {
    background: url(../../images/header/header_icon_4.png) 50% 50% / contain no-repeat, transparent;
}

/* ===================================================================
PC menu
=================================================================== */

/* layout
--------------------*/

#body {
    position: relative;
}

#main_menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    color: #fff;
    font-weight: bold;
    transform: translate(30%, 0);
    visibility: hidden;
    opacity: 0;
    z-index: 1000;
}

#main_menu.open {
    animation: fadeIn .8s ease-out 0s both;
	-webkit-animation: fadeIn .8s ease-out 0s both;
}

#main_menu.close {
    animation: fadeOut .3s ease-out 0s both;
	-webkit-animation: fadeOut .3s ease-out 0s both;
}

@keyframes fadeIn {
	0% {
        transform: translate(30%, 0);
        visibility: hidden;
        opacity: 0;
	}
	100% {
        transform: translate(0, 0);
        visibility: visible;
        opacity: 1;
	}
}

@-webkit-keyframes fadeIn {
	0% {
        -webkit-transform: translate(30%, 0);
        visibility: hidden;
        opacity: 0;
	}
	100% {
        -webkit-transform: translate(0, 0);
        visibility: visible;
        opacity: 1;
	}
}

@keyframes fadeOut {
	0% {
        transform: translate(0, 0);
        visibility: visible;
        opacity: 1;
	}
	100% {
        transform: translate(30%, 0);
        visibility: hidden;
        opacity: 0;
	}
}

@-webkit-keyframes fadeOut {
	0% {
        -webkit-transform: translate(0, 0);
        visibility: visible;
        opacity: 1;
	}
	100% {
        -webkit-transform: translate(30%, 0);
        visibility: hidden;
        opacity: 0;
	}
}

/* 閉じるボタン
--------------------*/

#main_menu .main-menu-back {
    position: absolute;
    top: 30px;
    left: 30px;
}

#main_menu .main-menu-back dl {
    display: flex;
    align-items: center;
}

#main_menu .main-menu-back dl dt a {
    position: relative;
    display: block;
    padding: 35px 0 0;
    font-size: 10px;
}

#main_menu .main-menu-back dl dt a:after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 28px;
    height: 26px;
    background: url(../../images/header/header_icon_5.png) 50% 50% / contain no-repeat, transparent;
}

#main_menu .main-menu-back dl dd a {
    position: relative;
    display: block;
    margin: 0 0 0 30px;
    padding: 0 0 0 30px;
}

#main_menu .main-menu-back dl dd a:after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    left: 0;
    width: 20px;
    height: 20px;
    background: url(../../images/header/header_icon_6.png) 50% 50% / contain no-repeat, transparent;
}

/* SNS
--------------------*/

#main_menu .main-menu-sns {
    margin: 100px 0 0;
}

#main_menu .main-menu-sns dl {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

#main_menu .main-menu-sns dl dd {
    margin: 0 10px;
}

/* 大項目, 中項目, 小項目 layout
--------------------*/

#main_menu .main-menu-inner {
    display: flex;
    height: 100%;
}

#main_menu .main-menu-1 {
    position: relative;
    width: 25%;
    min-width: 300px;
    height: 100%;
    padding: 150px 0 60px;
    background: #e50012;
}

#main_menu .main-menu-2 {
    position: relative;
    width: 25%;
    min-width: 300px;
    height: 100%;
    padding: 150px 0 20px;
    overflow-y: scroll;
    background: #ed4c59;
}

#main_menu .main-menu-3 {
    position: relative;
    width: 50%;
    min-width: 600px;
    height: 100%;
    padding: 150px 0 20px;
    overflow-y: scroll;
    background: #f28088;
}

/* スクロールバー
--------------------*/

/*
* Container style
*/
.ps {
    overflow: hidden !important;
    overflow-anchor: none;
    -ms-overflow-style: none;
    touch-action: auto;
    -ms-touch-action: auto;
}

/*
* Scrollbar rail styles
*/
.ps__rail-x {
    display: none;
    opacity: 0;
    transition: background-color .2s linear, opacity .2s linear;
    -webkit-transition: background-color .2s linear, opacity .2s linear;
    height: 10px;
    /* there must be 'bottom' or 'top' for ps__rail-x */
    bottom: 0;
    /* please don't change 'position' */
    position: absolute;
    opacity: 0;
}

.ps__rail-y {
    display: none;
    opacity: 1;
    transition: background-color .2s linear, opacity .2s linear;
    -webkit-transition: background-color .2s linear, opacity .2s linear;
    width: 10px;
    /* there must be 'right' or 'left' for ps__rail-y */
    right: 0;
    /* please don't change 'position' */
    position: absolute;
    opacity: 0;
}

.ps--active-x > .ps__rail-x,
.ps--active-y > .ps__rail-y {
    display: block;
    background-color: transparent;
}

.ps:hover > .ps__rail-x,
.ps:hover > .ps__rail-y,
.ps--focus > .ps__rail-x,
.ps--focus > .ps__rail-y,
.ps--scrolling-x > .ps__rail-x,
.ps--scrolling-y > .ps__rail-y {
    opacity: 0.75;
}

.ps .ps__rail-x:hover,
.ps .ps__rail-y:hover,
.ps .ps__rail-x:focus,
.ps .ps__rail-y:focus,
.ps .ps__rail-x.ps--clicking,
.ps .ps__rail-y.ps--clicking {
    background: transparent;
    opacity: 1;
}

/*
* Scrollbar thumb styles
*/
.ps__thumb-x {
    background-color: #fff;
    border-radius: 6px;
    transition: background-color .2s linear, height .2s ease-in-out;
    -webkit-transition: background-color .2s linear, height .2s ease-in-out;
    height: 5px;
    /* there must be 'bottom' for ps__thumb-x */
    bottom: 2.5px;
    /* please don't change 'position' */
    position: absolute;
}

.ps__thumb-y {
    background-color: #fff;
    border-radius: 6px;
    transition: background-color .2s linear, width .2s ease-in-out;
    -webkit-transition: background-color .2s linear, width .2s ease-in-out;
    width: 5px;
    /* there must be 'right' for ps__thumb-y */
    right: 2.5px;
    /* please don't change 'position' */
    position: absolute;
}

.ps__rail-x:hover > .ps__thumb-x,
.ps__rail-x:focus > .ps__thumb-x,
.ps__rail-x.ps--clicking .ps__thumb-x {
    background-color: #fff;
    height: 5px;
}

.ps__rail-y:hover > .ps__thumb-y,
.ps__rail-y:focus > .ps__thumb-y,
.ps__rail-y.ps--clicking .ps__thumb-y {
    background-color: #fff;
    width: 5px;
}

/* MS supports */
@supports (-ms-overflow-style: none) {
    .ps {
        overflow: auto !important;
    }
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    .ps {
        overflow: auto !important;
    }
}

/* 全リスト, 全リストの矢印
--------------------*/

#main_menu .main-menu-inner ul li a {
    position: relative;
    display: block;
    padding: 20px 40px 20px 30px;
    background: transparent;
    transition: all .3s ease-out 0s;
}

#main_menu .main-menu-inner .main-menu-1 ul li a:after,
#main_menu .main-menu-inner .main-menu-2 ul li a:after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translate(0, -50%) rotate(45deg);
    right: 30px;
    width: 10px;
    height: 10px;
    border-top: 1.5px solid #fff;
    border-right: 1.5px solid #fff;
    pointer-events: none;
}

#main_menu .main-menu-inner ul li a[href]:after {
    display: none;
}

#main_menu .main-menu-inner .main-menu-3 ul li ul {
    display: flex;
    flex-wrap: wrap;
}

#main_menu .main-menu-inner .main-menu-3 ul li ul li {
    width: 50%;
}

#main_menu .main-menu-inner .main-menu-1 ul li a span,
#main_menu .main-menu-inner .main-menu-2 ul li a span,
#main_menu .main-menu-inner .main-menu-3 ul li ul li a span {
    border-bottom: 1px solid transparent;
    transition: all .3s ease-out 0s;
}

/* 全リスト ホバー時
--------------------*/

#main_menu .main-menu-inner .main-menu-1 ul li a:hover span {
    border-bottom: 1px solid #fff;
}

#main_menu .main-menu-inner .main-menu-2 ul li a:hover span {
    border-bottom: 1px solid #fff;
}

#main_menu .main-menu-inner .main-menu-3 ul li ul li a:hover span {
    border-bottom: 1px solid #fff;
}

/* 閲覧中のリスト 大項目
--------------------*/

#main_menu .main-menu-inner .main-menu-1 li.on a {
    background: #ed4c59;
}

/* 閲覧中のリスト 中項目
--------------------*/

#main_menu .main-menu-inner .main-menu-2 ul {
    display: none;
}

#main_menu .main-menu-inner .main-menu-2 ul.on {
    display: block;
}

#main_menu .main-menu-inner .main-menu-2 ul.on li.on {
    background: #f28088;
}

/* 閲覧中のリスト 小項目
--------------------*/

#main_menu .main-menu-inner .main-menu-3 ul li ul {
    display: none;
}

#main_menu .main-menu-inner .main-menu-3 ul li ul.on {
    display: flex;
}

/*-------------------------------------------------- sp --------------------------------------------------*/

@media screen and (max-width: 1000px) {

    /* ===================================================================
    header
    =================================================================== */

    /* header
    --------------------*/

    .header {
        position: relative;
        height: 65px;
        background: #fff;
    }

    .header .header__inner {
        padding: 10px 15px 5px;
        background: #fff;
    }

    .header .header__title {
        width: 56px;
    }

    .header .header__sub-title { /*-- BOARD & SKI 部分 --*/
        display: none;
    }

    /* header scroll
    --------------------*/

    .header.scroll .header__inner {
        background: #fff;
    }

    /* header menu
    --------------------*/

    .header .header__menu ul {
        display: flex;
        align-items: center;
    }

    .header .header__menu ul li a {
        margin: 0 0 0 25px;
        font-size: 8px;
    }

    /* ===================================================================
    PC menu
    =================================================================== */

    /* layout
    --------------------*/

    #main_menu_sp {
        position: fixed;
        top: 0;
        right: 0;
        width: 300px;
        height: 100vh;
        color: #fff;
        font-weight: bold;
        transform: translate(30%, 0);
        visibility: hidden;
        opacity: 0;
        overflow: hidden;
        z-index: 1000;
    }

    #main_menu_sp.open {
        animation: fadeIn .8s ease-out 0s both;
        -webkit-animation: fadeIn .8s ease-out 0s both;
    }

    #main_menu_sp.close {
        animation: fadeOut .3s ease-out 0s both;
        -webkit-animation: fadeOut .3s ease-out 0s both;
    }

    /* 閉じるボタン
    --------------------*/

    #main_menu_sp .main-menu-back-area {
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 300px;
        height: 100px;
        background: #e50012;
        z-index: 1001;
        transition: all .3s ease-out 0s;
    }

    #main_menu_sp .main-menu-back {
        position: absolute;
        top: 30px;
        left: 30px;
    }

    #main_menu_sp .main-menu-back dl {
        display: flex;
        align-items: center;
    }

    #main_menu_sp .main-menu-back dl dd.main-menu-close-trigger {
        width: 110px;
    }

    #main_menu_sp .main-menu-back dl dt a {
        position: relative;
        display: block;
        padding: 35px 0 0;
        font-size: 10px;
    }

    #main_menu_sp .main-menu-back dl dt a:after {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        transform: translate(-50%, 0);
        width: 28px;
        height: 26px;
        background: url(../../images/header/header_icon_5.png) 50% 50% / contain no-repeat, transparent;
    }

    #main_menu_sp .main-menu-back dl dd a {
        position: relative;
        display: block;
        margin: 0 0 0 30px;
        padding: 0 0 0 30px;
    }

    #main_menu_sp .main-menu-back dl dd a:after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translate(0, -50%);
        left: 0;
        width: 20px;
        height: 20px;
        background: url(../../images/header/header_icon_6.png) 50% 50% / contain no-repeat, transparent;
    }

    /* SNS
    --------------------*/

    #main_menu_sp .main-menu-sns {
        margin: 60px 0 0;
    }

    #main_menu_sp .main-menu-sns dl {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
    }

    #main_menu_sp .main-menu-sns dl dd {
        margin: 0 10px;
    }

    /* 大項目, 中項目, 小項目 layout
    --------------------*/

    #main_menu_sp .main-menu-inner {
        display: flex;
        height: 100%;
        transition: all .3s ease-out 0s;
    }

    #main_menu_sp .main-menu-1 {
        position: relative;
        width: 300px;
        min-width: 300px;
        height: 100%;
        padding: 100px 0 60px;
        background: #e50012;
    }

    #main_menu_sp .main-menu-2 {
        position: relative;
        width: 300px;
        min-width: 300px;
        height: 100%;
        padding: 100px 0 20px;
        overflow-y: scroll;
        background: #ed4c59;
    }

    #main_menu_sp .main-menu-3 {
        position: relative;
        width: 300px;
        min-width: 300px;
        height: 100%;
        padding: 100px 0 20px;
        overflow-y: scroll;
        background: #f28088;
    }

    /* スクロールバー
    --------------------*/

    /*
    * Container style
    */
    .ps {
        overflow: hidden !important;
        overflow-anchor: none;
        -ms-overflow-style: none;
        touch-action: auto;
        -ms-touch-action: auto;
    }

    /*
    * Scrollbar rail styles
    */
    .ps__rail-x {
        display: none;
        opacity: 0;
        transition: background-color .2s linear, opacity .2s linear;
        -webkit-transition: background-color .2s linear, opacity .2s linear;
        height: 10px;
        /* there must be 'bottom' or 'top' for ps__rail-x */
        bottom: 0;
        /* please don't change 'position' */
        position: absolute;
        opacity: 0;
    }

    .ps__rail-y {
        display: none;
        opacity: 1;
        transition: background-color .2s linear, opacity .2s linear;
        -webkit-transition: background-color .2s linear, opacity .2s linear;
        width: 10px;
        /* there must be 'right' or 'left' for ps__rail-y */
        right: 0;
        /* please don't change 'position' */
        position: absolute;
        opacity: 0;
    }

    .ps--active-x > .ps__rail-x,
    .ps--active-y > .ps__rail-y {
        display: block;
        background-color: transparent;
    }

    .ps:hover > .ps__rail-x,
    .ps:hover > .ps__rail-y,
    .ps--focus > .ps__rail-x,
    .ps--focus > .ps__rail-y,
    .ps--scrolling-x > .ps__rail-x,
    .ps--scrolling-y > .ps__rail-y {
        opacity: 0.75;
    }

    .ps .ps__rail-x:hover,
    .ps .ps__rail-y:hover,
    .ps .ps__rail-x:focus,
    .ps .ps__rail-y:focus,
    .ps .ps__rail-x.ps--clicking,
    .ps .ps__rail-y.ps--clicking {
        background: transparent;
        opacity: 1;
    }

    /*
    * Scrollbar thumb styles
    */
    .ps__thumb-x {
        background-color: #fff;
        border-radius: 6px;
        transition: background-color .2s linear, height .2s ease-in-out;
        -webkit-transition: background-color .2s linear, height .2s ease-in-out;
        height: 5px;
        /* there must be 'bottom' for ps__thumb-x */
        bottom: 2.5px;
        /* please don't change 'position' */
        position: absolute;
    }

    .ps__thumb-y {
        background-color: #fff;
        border-radius: 6px;
        transition: background-color .2s linear, width .2s ease-in-out;
        -webkit-transition: background-color .2s linear, width .2s ease-in-out;
        width: 5px;
        /* there must be 'right' for ps__thumb-y */
        right: 2.5px;
        /* please don't change 'position' */
        position: absolute;
    }

    .ps__rail-x:hover > .ps__thumb-x,
    .ps__rail-x:focus > .ps__thumb-x,
    .ps__rail-x.ps--clicking .ps__thumb-x {
        background-color: #fff;
        height: 5px;
    }

    .ps__rail-y:hover > .ps__thumb-y,
    .ps__rail-y:focus > .ps__thumb-y,
    .ps__rail-y.ps--clicking .ps__thumb-y {
        background-color: #fff;
        width: 5px;
    }

    /* MS supports */
    @supports (-ms-overflow-style: none) {
        .ps {
            overflow: auto !important;
        }
    }

    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
        .ps {
            overflow: auto !important;
        }
    }

    /* 全リスト, 全リストの矢印
    --------------------*/

    #main_menu_sp .main-menu-inner ul li a {
        position: relative;
        display: block;
        padding: 15px 40px 15px 30px;
        font-size: 14px;
        background: transparent;
        transition: all .3s ease-out 0s;
    }

    #main_menu_sp .main-menu-inner .main-menu-1 ul li a:after,
    #main_menu_sp .main-menu-inner .main-menu-2 ul li a:after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translate(0, -50%) rotate(45deg);
        right: 30px;
        width: 10px;
        height: 10px;
        border-top: 1.5px solid #fff;
        border-right: 1.5px solid #fff;
        pointer-events: none;
    }

    #main_menu_sp .main-menu-inner ul li a[href]:after {
        display: none;
    }

    #main_menu_sp .main-menu-inner .main-menu-1 ul li a span,
    #main_menu_sp .main-menu-inner .main-menu-2 ul li a span,
    #main_menu_sp .main-menu-inner .main-menu-3 ul li ul li a span {
        border-bottom: 1px solid transparent;
        transition: all .3s ease-out 0s;
    }

    /* 全リスト, 全リストの矢印 戻るボタンの場合
    --------------------*/

    #main_menu_sp .main-menu-inner ul li.back a {
        position: relative;
        display: block;
        padding: 20px 30px;
        text-align: center;
        background: transparent;
        transition: all .3s ease-out 0s;
    }

    #main_menu_sp .main-menu-inner ul li.back a:after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translate(0, -50%) rotate(-45deg);
        left: 30px;
        width: 10px;
        height: 10px;
        border-top: 1.5px solid #fff;
        border-right: none;
        border-left: 1.5px solid #fff;
        pointer-events: none;
    }

    /* 全リスト ホバー時
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-1 ul li a:hover span {
        border-bottom: 1px solid #fff;
    }

    #main_menu_sp .main-menu-inner .main-menu-2 ul li a:hover span {
        border-bottom: 1px solid #fff;
    }

    #main_menu_sp .main-menu-inner .main-menu-3 ul li ul li a:hover span {
        border-bottom: 1px solid #fff;
    }

    /* 閲覧中のリスト 大項目
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-1 li.on a {
        background: #ed4c59;
    }

    /* 閲覧中のリスト 中項目
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-2 ul {
        display: none;
    }

    #main_menu_sp .main-menu-inner .main-menu-2 ul.on {
        display: block;
    }

    #main_menu_sp .main-menu-inner .main-menu-2 ul.on li.on {
        background: #f28088;
    }

    /* 閲覧中のリスト 中項目
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-2 ul.on li.back {
        background: #e50012;
    }

    /* 閲覧中のリスト 小項目
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-3 ul li ul {
        display: none;
    }

    #main_menu_sp .main-menu-inner .main-menu-3 ul li ul.on {
        display: block;
    }

    /* 閲覧中のリスト 小項目　戻るボタン
    --------------------*/

    #main_menu_sp .main-menu-inner .main-menu-3 ul.on li.back {
        background: #ed4c59;
    }

}