/* /css/page_register.css */
@charset "utf-8";

#boxJoin{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    min-height:100vh;
    background:#fff;
    color:var(--color-dark);
}

#boxJoin .join-wrap{
    width:100%;
    max-width:460px;
    padding:4rem 2rem 4rem;
    box-sizing:border-box;
}

#boxJoin .join-card{
    width:100%;
    text-align:left;
}

#boxJoin .join-copy{
    margin-bottom:1.75rem;
    line-height:1.25;
}

#boxJoin .join-copy h2{
    margin:0 0 .35rem;
    color:#111;
    font-size:1.75rem;
    font-weight:600;
}

#boxJoin .join-copy p{
    margin:0;
    color:var(--color-primary);
    font-size:1.75rem;
    font-weight:600;
}

#boxJoin .join-sns{
    margin-bottom:1.5rem;
}

#boxJoin .join-sns a{
    display:block;
    width:100%;
    height:3.25rem;
    line-height:3.25rem;
    margin-bottom:.65rem;
    border-radius:8px;
    font-size:1rem;
    font-weight:600;
    text-align:center;
    box-sizing:border-box;
}

#boxJoin .join-or{
    display:flex;
    align-items:center;
    gap:1rem;
    margin:1.5rem 0;
    color:#aaa;
    font-size:.9rem;
    text-align:center;
}

#boxJoin .join-or:before,
#boxJoin .join-or:after{
    content:"";
    flex:1;
    height:1px;
    background:#eee;
}

#boxJoin .join-form{
    width:100%;
}

#boxJoin .join-row{
    margin-bottom:.9rem;
    text-align:left;
}

#boxJoin .join-row label{
    display:block;
    margin-bottom:.45rem;
    color:#222;
    font-size:.95rem;
    font-weight:600;
}

#boxJoin .join-row label span{
    color:var(--color-required);
}

#boxJoin .join-row input{
    display:block;
    width:100%;
    height:3.25rem;
    line-height:3.25rem;
    padding:0 1rem;
    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    box-sizing:border-box;
    font-size:1rem;
}

#boxJoin .join-row input::placeholder{
    color:#aaa;
}

#boxJoin .join-msg{
    margin:.35rem 0 0;
    color:var(--color-required);
    font-size:.85rem;
    line-height:1.4;
}

#boxJoin .join-msg.ok{
    color:var(--color-primary);
}

#boxJoin .join-id{
    display:grid;
    grid-template-columns:minmax(0,1fr) 90px;
    gap:.5rem;
}

#boxJoin .join-id button{
    height:3.25rem;
    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    color:#222;
    font-size:.95rem;
    font-weight:600;
    cursor:pointer;
}

#boxJoin .join-id button:hover{
    border-color:var(--color-primary);
    color:var(--color-primary);
}

#boxJoin .join-agree{
    margin-top:1.75rem;
    padding-top:1.25rem;
    border-top:1px solid #eee;
    text-align:left;
}

#boxJoin .join-agree-all{
    margin-bottom:.5rem;
    padding-bottom:.5rem;
    border-bottom:1px solid #eee;
    font-weight:600;
}

#boxJoin .join-agree label{
    display:flex;
    align-items:center;
    gap:.5rem;
    min-height:42px;
    color:#333;
    font-size:.95rem;
    line-height:1.4;
}

#boxJoin .join-agree input{
    width:20px;
    height:20px;
    flex:0 0 auto;
}

#boxJoin .join-agree a{
    margin-left:auto;
    color:var(--color-primary);
    font-weight:600;
    text-decoration:none;
}

#boxJoin .join-submit{
    display:block;
    width:100%;
    height:3.25rem;
    line-height:3.25rem;
    margin-top:1.5rem;
    padding:0;
    border:0;
    border-radius:8px;
    background:var(--color-primary);
    color:#fff;
    cursor:pointer;
    font-size:1rem;
    font-weight:600;
}

#boxJoin .join-submit:hover{
    background:var(--color-primary-dark);
}

#boxJoin .join-login{
    margin-top:1.5rem;
    color:#777;
    font-size:.95rem;
    text-align:center;
}

#boxJoin .join-login a{
    color:var(--color-primary);
    font-weight:600;
    text-decoration:none;
}

@media only screen and (max-width:480px){
    #boxJoin .join-wrap{
        max-width:none;
        padding:1rem 1.5rem 2rem 1.5rem;
    }

    #boxJoin .join-copy h2,
    #boxJoin .join-copy p{
        font-size:1.55rem;
    }

    #boxJoin .join-id{
        grid-template-columns:1fr;
    }
}