/* ------------------------------------------------------------------
- 共通
------------------------------------------------------------------ */
:root {
--whiteColor:#fff;
--blackColor:#000;
--lightBlack:#333333;
--grayColor:#5e5e5e;
--lightgrayColor:#f5f5f5;
--primaryBlue:#007abd;
--blueColor:#526AA7;
}


/* ------------------------------------------------------------------
- Layout
------------------------------------------------------------------ */
html{
overflow-x: hidden;

}

body {
width: 100%;
color: var(--blackColor);
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
font-family: var(--font-roboto), "Roboto","游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
overflow-x: hidden;
}




/* ------------------------------------------------------------------
- Common
------------------------------------------------------------------ */
.-pcOnly{
    display: block;
}
.-spOnly{
display: none;
}

.-tablet{
display: none;
}

br.sp{
    display: none;
}


.l-container{
max-width: 1240px;
width: 100%;
padding-inline: 20px;
margin: 0 auto;
position: relative;
}

/* 青矢印 */
.arrow_r.-blue {
position: relative;
display: inline-block;
padding-left: 20px;
}
.arrow_r.-blue:before {
content: '';
width: 6px;
height: 6px;
border: 0;
border-top: solid 2px var(--primaryBlue);
border-right: solid 2px var(--primaryBlue);
transform: rotate(45deg);
position: absolute;
top: 0;
left: 0;
bottom: 0;
margin: auto;
}

/* セクションタイトル */
.c-section__title{
font-size: 1.75rem;
font-weight: bold;
position: relative;
padding-left: 10px;
}

.c-section__title::before{
content: "";
position: absolute;
background-color: var(--blackColor);
width: 3px;
height: 30px;
margin-left: -10px;
}

.c-section__title.-white::before{
background-color: var(--whiteColor);

}

/* コンテンツ最後の青色リンクテキスト */
.c-contentsText__bottom{
    margin-top: 20px;
    color: var(--primaryBlue);
    font-weight: bold;
    text-align: right;
}

.c-contentsText__bottom a:hover{
    opacity: 0.7;
}
/* PC〜タブレット */
@media screen and (min-width: 767px) {
    .-tabletMore{
        display: block;
    }
}

/* タブレットからスマホ共通 */
@media screen and (max-width: 1024px) {
.-pcOnly {
    display: none;
}

.-tablet {
    display: block;
}

}

/* スマホ */
@media screen and (max-width: 767px ){
.-pcOnly{
display: none;
}
.-spOnly{
display: block;
}

.-tabletMore{
    display: none;
}

br.sp{
    display: block;
}

.c-section__title{
font-size: 1.125rem;
}

.c-section__title::before{
height: 27px;
}

.c-contentsText__bottom{
    font-size: 0.875rem;
    margin-top: 20px;
}

.c-contentsText__bottom.-c-dot__under{
    margin-top: 40px;
}

}



/* ------------------------------------------------------------------
- header
------------------------------------------------------------------ */
.l-header__pc{
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--font-quicksand), "Quicksand","游ゴシック体","游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    padding-top: 10px;
}

.l-header__sp{
    display: none;
}

.p-logo__text{
    font-size: 0.8125rem;
    padding-bottom: 12px;
    font-weight: 700;
    color: #666;
}

.p-top__logo img{
    width: 235px;
    height: 30px;
}

.p-topLogo__link:hover{
    opacity: 0.7;
}

.p-menu__box{
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.p-menu__wrap.-under{
    padding-right: 15px;
    position: relative;
}

.p-menu__wrap.-under::before{
    content: "";
    position: absolute;
    top: -10px;
    right: 0; 
    background-color: #eeeeee;
    width: 100%;
    height: 1px;
}

.p-menu {
    display: flex;
    justify-content: end;
    gap: 55px;
    list-style-type: none;
    color: var(--whiteColor);
    padding: 0;
    font-size: 0.875rem;
}

.p-menu.-smallText{
    font-size: 0.75rem;
}

.p-menu__item{
    position: relative;
    padding: 5px;
    color: #555;
    font-weight: 700;
    cursor: pointer;
}

.p-menu__item.-icon::after{
    content: "";
    position: absolute;
    background-image: url(../img/common/triangle.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 10px;
    height: 5px;
    right: -10px;
    top: 10px;
}

.p-menu__item:hover{
    color: #004263;
}

.p-menu__item.-icon:hover:after{
    content: "";
    position: absolute;
    background-image: url(../img/common/triangleBlue.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 10px;
    height: 5px;
    right: -10px;
    top: 10px;
}

.p-menu__item a.p-login{
    background-color: var(--primaryBlue);
    padding: 5px;
    border-radius: 5px;
    color: var(--whiteColor);
}

.p-menu__item a.p-login:hover{
    opacity: 0.8;
}

/* Gナビ　サブメニュー */
.p-menuSub {
    position: absolute;
    margin-left: -6px;
    padding: 25px;
    display: none;
    background-color: #004263;
    z-index: 999;
    width: auto;
    top: 40px;
    border-radius: 3px;
    padding-top: 35px;
    margin-top: -10px;
}

/* サブメニューとメイン項目の間の隙間を埋める透明エリア */
.p-menuSub::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 35px;
    background: transparent;
}

/* ドロップメニュー上部の▲三角形 */
.p-menuSub.-ski::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 28.77%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-special::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 28.4%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-article::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 28.45%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-how::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 31.58%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-lift::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 66.8%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-reservation::after {
    content: "";
    position: absolute;
    top: -6px; 
    left: 77.9%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}

.p-menuSub.-contents::after {
    content: "";
    position: absolute;
    top: -6px;
    left: 92.7%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #004263;
    z-index: 1000;
}


.p-menuSub.-ski{
    left: 20%;
    transform: translateX(-20%);
}

.p-menuSub.-special{
    left: 20%;
    transform: translateX(-20%);
}

.p-menuSub.-article{
    left: 20%;
    transform: translateX(-20%);
}

.p-menuSub.-how{
    left: 20%;
    transform: translateX(-20%);
}

.p-menuSub.-lift{
    left: 60%;
    transform: translateX(-60%);
}

.p-menuSub.-reservation{
    left: 70%;
    transform: translateX(-70%);
}

.p-menuSub.-contents{
    left: 90%;
    transform: translateX(-90%);
}

.p-menuSub__wrap{
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.p-flex_inner{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    row-gap: 20px;
    width: 450px;
    position: relative;
}

.p-flex_inner.-lang{
    width: 60px;
}

.p-flex_inner.-three{
    width: 680px;
}

.p-flex_inner:not(:last-child)::after{
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: #296887;
    top:calc(100% + 25px) ;
}

.p-flex_inner img{
    padding-bottom: 15px;
}

.p-menuSub li{
    width: 225px;
}

.p-menuSub li a {
    padding: 5px;
    display: block;
    color: var(--whiteColor);
    text-decoration: none;
    font-size: 0.75rem;
}

.p-menuSub li a:hover {
    background-color: #49758b;
}

/* メニュー内擬似要素 */
.arrow_r {
    position: relative;
    display: inline-block;
    padding-left: 20px;
}
.arrow_r:before {
    content: '';
    width: 6px;
    height: 6px;
    border: 0;
    border-top: solid 2px var(--whiteColor);
    border-right: solid 2px var(--whiteColor);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
}

.p-header__line{
    width: 100%;
    height: 1px;
    background-color: #eeeeee;
    margin-top: 20px;
}
/* ------------------------------------------------------------------
- hamburger(タブレット〜スマホ)
------------------------------------------------------------------ */
@media screen and (max-width: 1099px) {
.l-header__pc {
    display: none;
}

.l-header__sp {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    position: relative;
    background: #fff;
    border-bottom: 1px solid #eee;
}

.p-headRight__box {
    display: flex;
    align-items: center;
    gap: 10px;
}

.p-main__logo {
    width: 130px;
}

.p-main__logo img {
    width: 100%;
    height: auto;
}

.p-headIcon__wrap {
    display: flex;
    gap: 10px;
    padding-right: 40px;
}

.p-headIcon__item {
    width: 40px;
}

.p-headIcon__item img {
    width: 100%;
    height: auto;
}

.p-headIcon__item a {
    font-size: 10px;
}

/* ハンバーガー */
.p-hamburger {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 40px;
    z-index: 999;
    top: 5px;
    right: 0;
    cursor: pointer;
}

.p-hamburger.open {
    position: fixed;
    top: 5px;
    right: 0;
}

.p-hamburger span {
    display: block;
    background-color: var(--primaryBlue);
    height: 4px;
    width: 30px;
    transition: all 0.3s ease-in-out;
}

.p-hamburger span:nth-child(1) {
    margin-top: 5px;
}

.p-hamburger span:nth-child(2) {
    margin-top: 5px;
}

.p-hamburger span:nth-child(3) {
    margin-top: 5px;
}

.p-hamburger.open span:nth-of-type(1) {
    transform: translateY(10px) rotate(45deg);
    transition: all 0.3s ease-in-out;
    background-color: var(--whiteColor);
}

.p-hamburger.open span:nth-of-type(2) {
    opacity: 0;
}

.p-hamburger.open span:nth-of-type(3) {
    transform: translateY(-9px) rotate(-45deg);
    transition: all 0.3s ease-in-out;
    background-color: var(--whiteColor);
}

.p-sp__nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background-color: var(--lightBlack);
    text-align: center;
    transition: right 0.3s ease-in-out;
    color: var(--whiteColor);
    z-index: 998;
    font-size: 14px;
    display: flex;
    flex-direction: column;
}

.p-sp__nav.open {
    right: 0;
}

.p-sp__navTitle {
    font-size: 1.625rem;
    text-align: left;
    font-weight: bold;
    padding: 80px 20px 20px 20px;
    background-color: var(--lightBlack);
    position: relative;
    z-index: 999;
    flex-shrink: 0;
}

.p-sp__navWrap {
    display: flex;
    flex-direction: column;
    gap: 30px;
    text-align: left;
    padding: 0 20px 20px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    background-color: var(--lightBlack);
    position: relative;
}

.p-sp__navItem a {
    display: block;
    padding: 5px 0;
    color: var(--whiteColor);
}

.p-arrow__sp {
    position: relative;
}

.p-arrow__sp::after {
    content: '';
    width: 12px;
    height: 12px;
    border: 0;
    border-top: solid 2px var(--whiteColor);
    border-right: solid 2px var(--whiteColor);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

/* Backボタン */
.p-back__btn {
    position: fixed;
    top: 80px;
    left: 20px;
    z-index: 1000;
    display: none;
    cursor: pointer;
    color: var(--whiteColor);
    font-size: 14px;
    font-weight: bold;
    background: none;
    border: none;
    padding: 5px 0;
}

.p-back__btn.show {
    display: block;
    top: 15px;
}

/* サブメニュー */
.p-sp__subNavWrap {
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background-color: var(--lightBlack);
    transition: right 0.3s ease-in-out;
    display: flex;
    flex-direction: column;
    gap: 20px;
    text-align: left;
    padding: 0 20px 20px 20px;
    overflow-y: auto;
    z-index: 1001;
}

.p-sp__subNavWrap.open {
    right: 0;
}

.p-sp__subNavItem a {
    display: block;
    padding: 5px 0;
    color: var(--whiteColor);
}

/* ドロワー時スクロール禁止 */
body.no-scroll {
    overflow: hidden;
    height: 100vh;
}
}


/* ------------------------------------------------------------------
- プラットフォーム
------------------------------------------------------------------ */

.l-platform__box{
    margin-top: 60px;
    background-color: #f3f3f3;
    padding: 20px;
}

.p-platform__wrap{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.p-platform__link{
    display: flex;
    align-items: center;
    gap: 10px;
}

.p-platform__link:hover{
    opacity: 0.7;
}


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

.p-platform__link img{
    width: 25px;
}

.p-platform__text{
    font-size: 0.875rem;
}
}
@media screen and (max-width: 767px) {

.l-platform__box {
background-color: var(--lightBlack);
padding: 20px 0;
}

.p-platform__wrap {
display: flex;
justify-content: center;
row-gap: 20px;
}

.p-platform__link {
display: flex;
align-items: center;
gap: 5px;
padding: 0 10px; 
border-right: 1px solid var(--whiteColor); 
}

.p-platform__item:last-child .p-platform__link {
border-right: none;
}

.p-platform__link img {
width: 25px;
}

.p-platform__text {
font-size: 0.625rem;
color: var(--whiteColor);
white-space: nowrap; 
}
}



/* ------------------------------------------------------------------
- フッター
------------------------------------------------------------------ */
.l-footer__bg{
    background: var(--lightBlack) url(../img/common/mountain.png) no-repeat center bottom;
    padding: 50px;
    width: 100%;
}

.l-footer__bgSp{
    display: none;
}

.l-footer__box{
    display: flex;
    justify-content: space-between;
}

.p-footer__wrap{
    color: var(--whiteColor);
}

.p-footer__title{
    font-size: 0.875rem;
    font-weight: bold;
    margin-bottom: 10px;
}

.p-footer__link{
    font-size: 0.75rem;
    margin-bottom: 5px;
}

.p-footer__link a:hover{
    opacity: 0.7;
}

.p-footerText__wrap{
    margin: 20px 0 100px;
    text-align: center;
}

.p-footerText__wrap a:hover{
    color: var(--primaryBlue);
}

.p-copyright{
    font-size: 0.75rem;
    margin-top: 20px;
}

@media screen and (max-width: 820px) {
.l-footer__bg{
    display: none;
}

.l-footer__bgSp{
    display: block;
    padding: 20px 0;
    background: #424242 url(../img/common/mountain.png) no-repeat center bottom;
    padding: 50px 0 80px;

}

.p-footerSp__wrap {
display: flex;
flex-wrap: wrap;
justify-content: center;
row-gap: 20px;
color: var(--whiteColor);
}

.p-footerSp__item {
display: flex;
align-items: center;
gap: 5px;
padding: 0 10px; 
border-right: 1px solid var(--whiteColor); 
}

.p-footerSp__item:last-child {
border-right: none;
}

.p-footerSp__item a{
font-size: 0.625rem;
color: var(--whiteColor);
white-space: nowrap; 
}

.p-footerText__wrap{
    margin: 30px 0 80px;
}
}

/* ------------------------------------------------------------------
- トップページに戻るボタン
------------------------------------------------------------------ */

.c-pageTop__button {
    position: fixed;
    display: block;
    right: 30px;
    bottom: 30px;
    z-index: 99;
    background: #f6f6f6;
    color: #000;
    width: 80px;
    height: 80px;
    box-sizing: border-box;
    text-align: center;
    border-radius: 45px;
    font-size: 0.625rem;
    line-height: 80px;
}

.c-pageTop__button:hover {
    background: #000;
    color: #fff;
}

@media screen and (max-width: 768px) {
.c-pageTop__button{
    width: 60px;
    height: 60px; 
    line-height: 60px;
    right: 10px;
    bottom: 10px;
}
}