/*-------------------*/
/*---  textlink  ----*/
/*-------------------*/
[class^="linktext--"]{
    font-size: var(--text--S);
    font-weight: bold;
}
[class*="linktext--a"]{
    color: var(--secondary-color);
}
[class*="linktext--b"], 
[class*="linktext--c"]{
    color: var(--primary-color);
}
/* テキストリンク内アイコンスタイル */
[class^="linktext--"] > [class^="icon-"]{
    height: 12px;
    margin-left: 8px;
}
/* hover */
[class*="linktext--"]:hover{
    text-decoration: underline;
    transition: all .2s;
}
[class*="linktext--a"]:hover{
    color: var(--secondaryhighlight-color);
}
[class*="linktext--b"]:hover, 
[class*="linktext--c"]:hover{
    color: var(--primaryhighlight-color);
}

/*-----------------*/
/*---  button  ----*/
/*-----------------*/
[class^="button--"]{
    border-radius: var(--button-borderradius);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text--S);
    font-weight: bold;
    min-height: 44px;
    padding: var(--button-padding);
    text-align: center;
}
[class^="button--a"]{
    background-color: var(--secondary-color);
    color: var(--white-color);
}
[class^="button--b"]{
    background-color: var(--primary-color);
    color: var(--white-color);
}
[class^="button--c"]{
    background-color: var(--subcv-color);
    color: var(--white-color);
}
[class^="button--c-1"]{
    background-color: var(--palewhite-color);
    color: var(--primary-color);
}
[class^="button--c-2"]{
    background-color: var(--white-color);
    color: var(--primary-color);
}
[class^="button--c-3"]{
    background-color: var(--white-color);
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
}
[class^="button--"].disabled,
[class^="button--"].btn--disabled {
    background-color: var(--disable-color);
    color: var(--lightgray-color);
    pointer-events: none;
}
/* button mini */
[class*="button--"][class*="--S"]{
    border-radius: 20px;
    font-size: var(--text--XS);
    height: 32px;
    min-height: 32px;
}
/* hover */
[class^="button--"]:hover{
    cursor: pointer;
    opacity: 1;
    transition: all .2s;
}
[class^="button--a"]:hover{
    background-color: var(--secondaryhighlight-color);
}
[class^="button--b"]:hover{
    background-color: var(--primaryhighlight-color);
}
[class^="button--c"]:hover{
    background-color: var(--subcvhighlight-color);
}
[class^="button--c-2"]:hover, [class^="button--c-1"]:hover, [class^="button--c-3"]:hover{
    background-color: var(--primaryhighlight-color);
    color: var(--white-color);
}
[class^="button--"].disabled:hover,
[class^="button--"].btn--disabled:hover {
    background-color: var(--disable-color);
    color: var(--lightgray-color);
}

/*-------------------*/
/*---ソーセージリンク---*/
/*-------------------*/
[class*="sausagelink--"]{
    background-color: var(--white-color);
    border-radius: 20px;
    color: var(--darkgray-color);
    display: inline-flex;
    align-items: center;
    min-width: fit-content;
    padding: 0 12px;
    white-space: nowrap;
}
.sausagelink--XS{
    font-size: var(--text--XXS);
    font-weight: normal;
    line-height: 24px;
    height: 24px;
}
.sausagelink--S{
    font-size: var(--text--XS);
    font-weight: normal;
    line-height: 28px;
    height: 28px;
}
.sausagelink--M{
    font-size: var(--text--XS);
    font-weight: normal;
    line-height: 32px;
    height: 32px;
}
.sausagelink--L{
    font-size: var(--text--S);
    font-weight: normal;
    line-height: 40px;
    height: 40px;
}

/*-------------------*/
/*--    boxText    --*/
/*-------------------*/
[class^="boxtext--"]{
    background-color: var(--white-color);
    box-sizing: border-box;
    font-size: var(--text--S);
    font-weight: bold;
    line-height: 132%;
    padding: var(--box-padding);
}
[class^="boxtext--dual"]{
    display: flex;
    align-items: center;
}
/* アイコン+テキスト */
[class*="boxtext--dual--start"]{
    justify-content: flex-start;
}
/* テキスト+テキスト */
[class^="boxtext--dual--between"]{
    justify-content: space-between;
}

/* ボックステキストリンク */
[class*="boxtext--link"]{
    background-color: var(--white-color);
    border: 1px solid var(--disable-color);
    color: var(--darkgray-color);
    display: inline-flex;
    align-items: center;
    border-radius: 22px;
    padding: 11px 12px;
    white-space: nowrap;
}
[class*="boxtext--link"]:hover{
    background-color: var(--darkgray-color);
    cursor: pointer;
    color: var(--white-color);
}
[class^="boxtext--dual--between"]>span {
    color: var(--gray-color);
    flex: 1;
    font-weight: normal;
    text-align: right;
}

/*-------------------*/
/*-- title + link  --*/
/*-------------------*/
.title-box{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 20px 20px 0;
}

/*-------------------*/
/*-----  ラベル  -----*/
/*-------------------*/
[class^="label--"]{
    box-sizing: border-box;
    color: var(--white-color);
    padding: 0 12px;
}
[class*="label--M"]{
    font-size: var(--text--XS);
    height: 32px;
    line-height: 32px;
    width: 100%;
}
[class*="label--L"]{
    font-size: var(--text--XS);
    height: 40px;
    line-height: 40px;
    width: 100%;
}

[class^="label--"][class*="--visited"],
[class^="label--"][class*="--checked"],
[class^="label--"][class*="--cancelled"] {
    background-color: var(--lightgray-color);
}
/* 予約中ラベル */
[class^="label--"][class*="--reservation"]{
    background-color: var(--secondary-color);
}
/* 保存済みラベル */
[class^="label--"][class*="--saved"]{
    background-color: var(--primary-color);
}
/* 掲載終了ラベル */
[class^="label--"][class*="--end"]{
    background-color: var(--darkgray-color);
}

/*-------------------*/
/*-- プロフィール画像 --*/
/*-------------------*/
[class*="profile-img--"]{
    border-radius: 50%;
    object-fit: cover;
}
.profile-img--L{
    height: 72px;
    width: 72px;
}
.profile-img--M{
    height: 64px;
    width: 64px;
}
.profile-img--S{
    height: 40px;
    width: 40px;
}
.profile-img--XS{
    height: 32px;
    width: 32px;
}
/* 複数人 */
.two-profile-img{
    position: relative;
}
.two-profile-img > .profile-img--XS:first-child{
    position: absolute;
    top: 0;
    left: 0;
}
.two-profile-img > .profile-img--XS + .profile-img--XS{
    position: absolute;
    bottom: 0;
    right: 0;
}

/*-------------------*/
/*----- サムネイル ----*/
/*-------------------*/
[class*="thumbnail--"]{
    border-radius: 8px;
    object-fit: cover;
}
.thumbnail--S{
    height: 40px;
    width: 52px;
}
.thumbnail--M{
    height: 60px;
    width: 80px;
}

/*-------------------*/
/*---- tool tip ----*/
/*-------------------*/
input[type="checkbox"][id*="tooltip"]{
    display: none;
}
input[type="checkbox"][id*="tooltip"]:checked + label + [class^="tip--content"]{
    display: block;
}
.tooltip{
    cursor: pointer;
}
.tooltip [class*="icon-"]{
    color: var(--gray-color);
} 
[class^="tip--content"]{
    background-color: var(--disable-color);
    border: 1px solid var(--disable-color);
    border-radius: 12px;
    box-shadow: 0px 2px 4px rgb(0 0 0 / 5%);
    /* display: none; */
    position: absolute;
    top: 12px;
    right: 50px;
    z-index: 1;
    width: max-content;
}
[class^="tip--content"] .list--boxtext a{
    color: var(--darkgray-color);
}


/*-------------------*/
/*--- scene graph ---*/
/*-------------------*/
#chart-detail-scene-chartModal{
    background: var(--palewhite-color);
    border-radius: var(--box-borderradius);
    padding: 20px;
    font-size: var(--text--S);
}
.modal--main [class^="graph--"] + [class^="graph--"]{
    margin: 20px 0 0;
}
.graph_detail{
    width: 100%;
}
.graph_detail p{
    color: var(--gray-color);
    display: flex;
    justify-content: space-between;
    margin: 0 0 8px;
}
.detail-tt-str {
    color: var(--black-color);
    font-weight: bold;
}
.graph_detail + .graph_detail {
    margin: 20px 0 0;
}
.scene-graph{
    background-color: var(--white-color);
    border-radius: 2px;
    position: relative;
    width: 100%;
}
.scene-graph .detail-scene-bar {
    background: var(--primary-color);
    border-radius: 2px;
    display: block;
    height: 4px;
    line-height: 4px;
    position: relative;
    text-align: center;  
}

/*-------------------*/
/*-- toggle switch --*/
/*-------------------*/
.toggle-input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    opacity: 0;
    cursor: pointer;
}
.toggle-label {
    width: 50px;
    height: 30px;
    background-color: var(--layer-color);
    border: 1px solid var(--disable-color);
    position: relative;
    display: inline-block;
    border-radius: 46px;
    transition: 0.3s;
}
.toggle-label::after{
    content: '';
    position: absolute;
    width: 29px;
    height: 29px;
    border-radius: 100%;
    left: 0;
    top: 0;
    z-index: 2;
    background: #fff;
    border: 0.5px solid rgba(0, 0, 0, 0.1);
    box-shadow: 3px 0px 3px rgb(0 0 0 / 5%);
    transition: 0.3s;
}
.toggle-input:checked + .toggle-label::after{
    box-shadow: -3px 0px 3px rgb(0 0 0 / 5%);
}
    .toggle-input:checked + .toggle-label{
    background-color: var(--primary-color);
    border: 1px solid var(--primary-color);
}
.toggle-input:checked + .toggle-label::after{
    left: 20px;
}  
.toggle-switch {
    position: absolute;
    top: 7px;
    right: 12px;
    width: 50px;
    height: 30px;
    margin: auto;
}

/*-------------------*/
/*----モーダル表示-----*/
/*-------------------*/
.modal--bg,
.modal--bg-course,
.modal--bg-error{
    background-color: rgba(0,0,0,0.6);
    display: none;
    height: 100%;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1200;
}
.column-main .post--section .modal--bg,
.column-main .myapage-setting .modal--bg{
    background: none;
}
.modal--content,
.course-modal--content, 
.error-modal--content{
    width: 100%;
    height: auto;
    box-sizing: border-box;
    right: 0;
    padding: 0 0 84px;
    position: fixed;
    opacity: 0;
    z-index: -1;
}
.column-main .modal--content{
    background-color: var(--white-color);
    width: 340px;
    padding: 80px 0 0;
    top: 0;    
}
.modal--title-box{
    background: var(--white-color);
    border-bottom: 1px solid var(--palewhite-color);
    border-radius:10px 10px 0 0 ;
    padding: 43px 20px 20px;
}
.column-main .modal--title-box{
    border-radius: 0;
    position: relative;
}
.modal--btn--close.icon-cross,
.course-modal--btn--close.icon-cross,
.error-modal--btn--close.icon-cross{
    position: absolute;
    right: 12px;
    top: 12px;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 50%;
    z-index: 2;
}
.modal--btn--close.icon-cross:hover,
.course-modal--btn--close:hover,
.error-modal--btn--close:hover{
    cursor: pointer;
}
.modal--btn--close.icon-cross::before,
.course-modal--btn--close::before,
.error-modal--btn--close::before{
    color: var(--white-color);
    font-size: 20px;
    padding: 6px;
}
.modal--main{
    background-color: var(--white-color);
    box-sizing: border-box;
    max-height: calc(100vh - 212px);
    overflow-y: scroll;
    padding: 20px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.modal--main::-webkit-scrollbar {
    display: none;
}
.column-main .modal--main{
    min-height: calc(100vh - 260px);
    max-height: calc(100vh - 260px);
}
  /* bottom閉じるボタン */
.modal--main + .modal--btn--close{
    background: var(--white-color);
    border-top: 1px solid var(--palewhite-color);
    box-sizing: border-box;
    bottom: 0;
    padding: 12px 20px 26px; 
    position: fixed;
    width: 100%;
}
.column-main .modal--main + .modal--btn--close{
    box-sizing: border-box;
    width: 340px;
}
.column-main .modal--main + .modal--btn--close [class*="button--"]{
    width: 100%;
}
.modal--btn:hover{
    cursor: pointer;
}
  /* tipモーダル */
.modal--content.tip--content-point .modal--main,
.modal--content.tip--content-share .modal--main{
    padding: 20px;
    border-radius: 10px 10px 0 0;
    position: relative;
}
.modal--content.tip--content-point .list--boxtext .boxtext--dual--start,
.modal--content.tip--content-share .list--boxtext .boxtext--dual--start{
    background-color: var(--palewhite-color);
    color: var(--darkgray-color);
    font-weight: bold;
}

/*下から上アニメーション*/
@keyframes SlideUp {
    0% {
    opacity: 0;
    bottom: -100%;
    }
    100% {
    opacity: 1;
    bottom: 0;
    }
}
.modal--content._slideUp,
.course-modal--content._slideUp,
.error-modal--content._slideUp{
    animation: SlideUp .2s ease-in-out forwards;
    z-index: 9999;
    }
/*上から下アニメーション*/
@keyframes SlideDown {
    0% {
    opacity: 1;
    bottom: 0;
    }
    100% {
    opacity: 0;
    bottom: -100%;
    }
}
.modal--content._SlideDown,
.course-modal--content._SlideDown,
.error-modal--content._SlideDown {
    animation: SlideDown .2s ease-in-out forwards;
    z-index: 9999;
    }


/*右から左アニメーション（PCモーダル表示）*/
@keyframes slideleft {
    0% {
    opacity: 0;
    right: -340px;
    }
    100% {
    opacity: 1;
    right: 0;
    }
}
.modal--content._slideleft {
    animation: slideleft .2s ease-in-out forwards;
    z-index: 9999;
    }
/*左から右アニメーション*/
@keyframes slideright {
    0% {
        opacity: 1;
        right: 0;
    }
    100% {
        opacity: 0;
        right: -340px;
    }
}
.modal--content._slideright {
    animation: slideright .2s forwards;
    z-index: 1200;
}
