input,
select {
    border: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
    background: none;
    outline: none;
    font: inherit;
    color: inherit;
}

.row:has(input[name="password"]){
  margin-bottom: 60px;
}

/*ユーザー名はメールアドレスを自動入力にしてある(js)ので非表示化*/
.row:has(input#username) {
    display:none!important;
}

.wpmem_msg{
  font-weight: bold;
  color: red;
  padding: 1em 0 2em;
}

.error-message{
  display:none;
  font-size: 0.8em;
  color:red;
}
.error-message.-show{
  display:block;
}
#user_privacy + .error-message{
  position: absolute;
  top:100%;
  left: 50%;
  transform: translateX(-50%);
  width: 300px;
  margin-top: -1em;
  font-size: 1em;
  line-height: 1.2;
}

.cc__lead{display: none;}
#wpmem_register_form .cc__lead{display: block;}


/*登録ページ*/
.register-logged-in a:not(.link__btn){ 
  display: block;
  font-weight: bold;
  margin-bottom: 20px;
  margin-left: 1em;
}

/*パスワードリセットページ*/
#wpmem_pwdreset_form .form__link{display: none;}

/*パスワード変更ページ*/
#wpmem_pwdchange_form legend{
    margin-bottom: 30px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 1px;
}

/*メッセージ*/
.wpmem_msg{
  text-align: center;
  line-height: 1.6;
  margin: 20px auto;
}

/*============================
    form parts
============================*/

.mmb-form {
    width: 100%;
    margin: 0 auto 60px;
}

.mmb-form .row {
    width: 100%;
    display: table;
}
.mmb-form .row .fs-16{
  display: block;
  font-size: 1.6rem;
}

/* mmb スタイル */

/*.mmb-form .text,*/
.mmb-form .row > label, 
.mmb-form .row > .radio {
    margin-bottom: .5em;
    white-space: nowrap;
    line-height: 1;
    text-align: left;
    font-size: 1.5rem;
    width: 19.2rem;
    padding: 1em 1em 1em 0;
    font-weight: bold;
    white-space: nowrap;
    vertical-align: middle;
    position: relative;
    border-bottom: solid 1px #c2bbb4;
    display: table-cell;
}

.mmb-form .div_text {
    line-height: 1.5;
    padding: 1em 2em 1em 0;
    font-size: 2rem;
    font-weight: bold;
    position: relative;
    vertical-align: middle;
    margin-bottom: 1.5em;
    border-bottom: solid 1px #c2bbb4;
    display: table-cell;
}

.mmb-form .div_select {
    line-height: 1.5;
    padding: 1em 2em 1em 0;
    font-size: 1.5rem;
    font-weight: bold;
    position: relative;
    vertical-align: middle;
    margin-bottom: 1.5em;
    border-bottom: solid 1px #c2bbb4;
    display: table-cell;
}

.mmb-form .div_select select {
    background: #fff;
    height: 35px;
    padding: 0 1em;
    border-radius: 6px;
}
.mmb-form p img {
    width: 100px;
}

.mmb-form th .fs-16 {
    font-size: 1.6rem;
}

.form-must {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center;
    width: fit-content;
    color: #fff;
    background: #de6a6f;
    line-height: 20px;
    padding: 0 1em;
    margin-left: 1em;
}


/*-- 入力種別 --*/
input::placeholder {
    color: #BEBEBE;
}

/*.mmb-form .textbox {*/
.mmb-form input[type="text"],
.mmb-form input[type="email"],
.mmb-form input[type="password"]  {
    width: 100%;
    height: 35px;
    padding: 0 1em;
    border: none;
    position: relative;
    background: #fff;
    border: none;
    border-radius: 6px;
    font-size: 1.4rem;
}


/*-- radioボタン --*/
/*-- checkボタン --*/

.mmb-form .div_radio,
.mmb-form .div_checkbox {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding:1.3em 1em 1.3em 0;
    border-bottom: solid 1px #c2bbb4;
    font-size: 1.4rem;
    position: relative;
}

label.radio,
label.checkbox {
    cursor: pointer;
    position: relative;
    font-weight: 500;
    line-height: 20px;
    padding-left: 1.8em;
}


.div_radio label::after,
.div_checkbox > label::after,
#rememberme + p + label::after {
    position: absolute;
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: solid 2px #DDDDDD;
    left: 0;
    top: 50%;
    transform: translate(0, -50%);
}

.div_radio label::before,
.div_checkbox > label::before ,
#rememberme + p + label::before {
    position: absolute;
    content: '';
    background: #fff;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: #de6a6f;
    display: block;
    left: 10px;
    top: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: .3s;
    z-index: 2;
}

.div_radio input:checked + p + label::before,
.div_checkbox input:checked + p + label::before,
#rememberme:checked + p + label::before {
    opacity: 1;
}

label.radio {
    margin-right: 1em;
}

.div_checkbox > label::after,
#rememberme + p + label::after {
    width: 20px;
    height: 20px;
    border-radius: 5px;   
    border: solid 1px #BEBEBE;
}

.div_checkbox > label::before,
#rememberme + p + label::before {
    width: 16px;
    height: 16px;
    border-radius: 3px;
}


/* プライバシーポリシー */
/*次回から自動でログインする*/
.div_checkbox:has(#user_privacy),
#rememberme + p + label{
    position: relative;
    display: table;
    margin: 0 auto;
    font-size: 1.6rem;
    border: none;
    text-align: center;
    justify-self: center;
    padding-left: 30px;
    margin-top: 40px;
    margin-bottom: -10px;
}

.div_checkbox:has(#user_privacy) a {
    color: #1169ab;
}
.div_checkbox:has(#user_privacy) img {
    width: 16px;
    margin: 0 5px;
    vertical-align: baseline;
}



/* submit ボタン */
.form_submit_btn {
    width: fit-content;
    margin: 0 auto;
    position: relative;
}

.input-button {
    margin: 0 auto;
    transition: .3s;
    text-align: center;
    width: 400px;
    height: 78px;
    border-radius: 0;
    font-size: 2rem;
    font-weight: bold;
    background: #4d3939;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    margin-top: 60px;

    &:hover {
        background-color: #fff;
        color: #4d3939;
    }
}



@media screen and (max-width:1024px) {
  
    .row:has(input[name="password"]){
      margin-bottom: 40px;
    }
    .mmb-form {
        margin: 0 auto 40px;  
    }
    .mmb-form .row .fs-16{
      font-size: 1.4rem;
    }

    /* mmb スタイル */

   /* .mmb-form .text, */
    .mmb-form .row > label, 
    .mmb-form .row > .radio {
        font-size: 1.6rem;
        width: 15.5rem;
        padding: 1em 1em 1em 0;
    }

    .mmb-form .div_text {
        padding: 1em 2em 1em 0;
        font-size: 1.6rem;
    }

    .mmb-form th .fs-16 {
        font-size: 1.4rem;
    }

    .form-must {
        font-size: 1.2rem;
        line-height: 20px;
    }

    /*-- 入力種別 --*/
    /*.mmb-form .textbox {*/
    .mmb-form input[type="text"],
    .mmb-form input[type="email"],
    .mmb-form input[type="password"] {      
        height: 40px;
        padding: 0 1em;
        font-size: 1.4rem;
    }


    /*-- radioボタン --*/
    label.radio {
      padding-left: 1.5em;
    }

    .mmb-form .div_radio{
      font-size: 1.6rem;
    }


    /* プライバシーポリシー */
    .div_checkbox:has(#user_privacy){
        font-size: 1.4rem;
        margin-top: 30px;
    }
    .div_checkbox:has(#user_privacy) img {
        width: 12px;
    }


    /* submit ボタン */
    .input-button {
        width: 300px;
        height: 60px;
        font-size: 1.8rem;
        margin-top: 40px;
    }
  


}

@media screen and (max-width:767px) {
  
    .row:has(input[name="password"]){
      margin-bottom: 30px;
    }
    .mmb-form {
        margin: 0 auto 30px;  
    }

    /* mmb スタイル */
    /*.mmb-form .text, */
    .mmb-form .row > label, 
    .mmb-form .row > .radio {
        font-size: 1.4rem;
        width: 100%;
        display: block;
        padding: 1em 0 0;
        border: none;
        margin-bottom: .5em;
    }

    .mmb-form .div_text {
        padding: 0 2em 1em 0;
        font-size: 1.4rem;
        margin: 0;
        width: 100%;
        display: block;
    }

    .form-must {
        font-size: 1rem;
        line-height: 18px;
    }


    /*-- radioボタン --*/
    label.radio {
      padding-left: 1.8em;
    }

    .mmb-form .div_radio{
        margin-bottom: 1em;
        font-size: 1.4rem;
        padding-top: 0;
    }
    .mmb-form .div_radio input{
      display: none;
    }


    /* プライバシーポリシー */
    .div_checkbox:has(#user_privacy){
        margin-top: 0;
        margin-bottom: 20px;
    }

    /* submit ボタン */
    .input-button {
        width: 300px;
        height: 50px;
        font-size: 1.6rem;
        margin-top: 30px;
      
    }

    .mmb-form .div_select {
        display: block;
        margin: 0;
        padding-top: 0;
}

    .mmb-form p img {
    width: 30%;
    }



}


/*============================
    confirm__page / thanks__page
============================*/

.thanks__btn {
    margin: 0 auto;
}

.thanks__btn::before {
    display: none;

}

.back-btn {
    & i {
        position: absolute;
        left: 5%;
        top: 50%;
        transform: translate(0, -50%);
        transition: .3s ease-out;
        z-index: 9;
    }

    &:hover i {
        color: #222;
    }
}

@media screen and (max-width:1024px) {}

@media screen and (max-width:767px) {}






/* add-page */

.color-wh {
    color: #fff;
}

/*============================
 login__page
============================*/
.logoin__form {
    width: 68%;
}

.login__right {
    width: 30%;
}

.form__link {
    text-align: center;
    margin-top: 1em;

    & a {
        text-decoration: underline;
    }

    & i {
        margin-right: .5em;
    }
}

.news-member__box {
    border: solid 1px #1169ab;
    border-radius: 5px;
    background: #fff;
    overflow: hidden;
}

.nmb__top {
    padding: .5em 5%;
    background: #1169ab;
    color: #fff;
}

.nmb__txtwrap {
    padding: 1.5em 1em;
}

.nmb__btn {
    margin: 0 auto;
}

/*.login__lead span,
.link-text-register{
  display: none;
}*/



@media screen and (max-width:1024px) {
    .logoin__form {
        width: 60%;
    }

    .login__right {
        width: 35%;
    }

    .nmb__top {
        padding: .5em 5%;
    }

    .nmb__txtwrap {
        padding: 1.5em 1em;
    }
}

@media screen and (max-width:767px) {
    .logoin__form {
        width: 100%;
        margin-bottom: 40px;
    }

    .login__right {
        width: 100%;
    }

    .nmb__top {
        padding: .5em 5%;
    }

    .nmb__txtwrap {
        padding: 1.5em 1em;
    }
}


/*============================
 my-page__page
============================*/
.mpc__number--box {
    padding: 20px;
    border: solid 4px #1169ab;
    background: #fff;
}

.mpc__ttl {
    width: 20%;
    background-color: #1169ab;
    color: #fff;
    padding: 20px 3%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;

    & i {
        display: block;
        margin-bottom: 1em;
    }
}

.mpc__numbers {
    width: 77%;
}

.mpc__number {
    display: flex;
    align-items: flex-end;
    width: 48%;
    line-height: 1;

    .ttl {
        border: solid 2px #4d3939;
        border-radius: 5px;
        padding: 0 1em;
        height: 80px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-right: .5em;
        text-align: center;
        white-space: nowrap;
    }

    .number {
        font-size: 5rem;
        line-height: 80px;
        display: flex;
        align-items: center;

        span {
            background: #4d3939;
            padding: 0 .2em;
            line-height: 80px;
            margin-right: .1em;
        }
    }

    &:nth-child(2) {
        .ttl {
            border-color: #f92d32;
        }
    }
}

.mpc__links {
    padding: 30px;
    background: #fff;
}

.mpc__link {
    width: 48%;
    margin-bottom: 30px;

    & a {
        border-radius: 10px;
        border: solid 1px #1169ab;
        padding: 20px 20px;
        display: flex;
        align-items: center;
    }

    & i {
        display: block;
        width: 80px;
        height: 80px;
        line-height: 80px;
        border-radius: 50%;
        font-size: 4rem;
        text-align: center;
        background: #1169ab;
        color: #fff;

    }

    &:nth-child(3) {
        width: 100%;
        margin-bottom: 0;
    }
}

.mpc__txtwrap {
    width: calc(100% - 80px);
    padding-left: 1.5em;
}

.mpc__btn {
    margin: 0 auto;
    transition: .3s;
    text-align: center;
    width: 400px;
    height: 78px;
    border-radius: 0;
    font-size: 2rem;
    font-weight: bold;
    background: #4d3939;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    cursor: pointer;

    &:hover {
        background-color: #fff;
        color: #4d3939;
    }
}

@media screen and (max-width:1024px) {
    .mpc__number--box {
        padding: 20px;
        border: solid 4px #1169ab;
        display: block;
    }

    .mpc__ttl {
        width: 100%;
        padding: 10px 3%;
        margin-bottom: 20px;

        & i {
            margin-bottom: .5em;
        }
    }

    .mpc__numbers {
        width: 100%;
    }

    .mpc__number {
        width: 48%;
        display: flex;
        justify-content: center;

        .ttl {
            height: 60px;
            margin-right: .5em;
        }

        .number {
            font-size: 5rem;
            line-height: 60px;

            span {
                padding: 0 .2em;
                line-height: 60px;
                margin-right: .1em;
            }
        }

    }

    .mpc__links {
        padding: 20px;
    }

    .mpc__link {
        width: 48%;
        margin-bottom: 20px;

        & a {
            border-radius: 10px;
            padding: 20px 20px;
        }

        & i {
            width: 60px;
            height: 60px;
            line-height: 60px;
            font-size: 3rem;
        }
    }

    .mpc__txtwrap {
        width: calc(100% - 60px);
        padding-left: 1.5em;
    }

    .mpc__btn {
        width: 300px;
        height: 60px;
        font-size: 1.8rem;
    }
}

@media screen and (max-width:767px) {
    .mpc__number--box {
        padding: 20px 5%;
        border: solid 3px #1169ab;
    }

    .mpc__ttl {
        width: 100%;
        padding: 10px 3%;
        margin-bottom: 20px;

        & i {
            margin-bottom: .5em;
        }
    }

    .mpc__numbers {
        width: 100%;
    }

    .mpc__number {
        width: 100%;
        margin-bottom: 20px;

        &:last-child {
            margin-bottom: 0;
        }

        .ttl {
            height: 60px;
            margin-right: .5em;
        }

        .number {
            font-size: 4rem;
            line-height: 60px;

            span {
                padding: 0 .2em;
                line-height: 60px;
                margin-right: .1em;
            }
        }

    }

    .mpc__links {
        padding: 20px 5%;
    }

    .mpc__link {
        width: 100%;
        margin-bottom: 15px;


        & a {
            border-radius: 10px;
            padding: 15px 5%;
            display: block;
        }

        & i {
            width: 50px;
            height: 50px;
            line-height: 50px;
            font-size: 2rem;
            margin: 0 auto 10px;
        }
    }

    .mpc__txtwrap {
        width: 100%;
        padding-left: 0;
    }

    .mpc__link--ttl {
        text-align: center;
    }

    .mpc__btn {
        width: 300px;
        height: 50px;
        font-size: 1.6rem;
    }
}

/*============================
 pwd-reset__page
============================*/

@media screen and (max-width:1024px) {}

@media screen and (max-width:767px) {}