* {
    margin: 0;
    padding: 0;
}


/* コンテキストメニューを無効化する */

button,
textarea,
select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

body,
html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-family: sans-serif;
    background-color: #ffffd6;
    scroll-behavior: smooth;
}

html {
    touch-action: auto;
}

@media screen and (max-width: 768px) {
    .parent {
        margin: 0 auto;
        width: 100%;
    }
}

@media screen and (min-width: 769px) {
    .parent {
        margin: 0 auto;
        width: 60%;
        max-width: 800px;
    }
}

@media screen and (max-width: 768px) {
    .parent_price {
        margin: 0 auto;
        width: 95%;
    }
}

@media screen and (min-width: 769px) {
    .parent_price {
        margin: 0 auto;
        width: 50%;
        max-width: 800px;
    }
}

.parent_black {
    margin: 0 auto;
    cursor: pointer;
    background-color: #000;
}

@media screen and (max-width: 768px) {
    .parent_black {
        width: 154px;
        height: fit-content;
    }
}

@media screen and (min-width: 769px) {
    .parent_black {
        width: fit-content;
        height: 204px;
    }
}

.send_btn_edit {
    text-align: center;
    font-weight: bold;
    font-size: 1em;
    padding: 5px 5px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #89B700;
    width: 90px;
    color: #FFF;
    background: #89B700;
    margin-bottom: 5px;
    margin-top: 5px;
    box-shadow: none;
    border: none;
}

.edit_cancel {
    font-weight: bold;
    margin-left: 10px;
    font-size: 1em;
    padding: 5px 5px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #464c5a;
    width: fit-content;
    color: #FFF;
    background: #464c5a;
    margin-bottom: 5px;
}

.send_btn2 {
    font-size: 1em;
    padding: 5px 5px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #ff1493;
    width: fit-content;
    color: #FFF;
    background: #ff1493;
}

.beginner_q {
    border: none;
    padding: 5px 5px;
    margin-top: 3px;
    margin-right: 5px;
    margin-bottom: 8px;
    font-size: 0.9em;
    cursor: pointer;
    border-radius: 6px;
    width: fit-content;
    color: #FFF;
    background: #D91718;
    font-weight: bold;
}

.beginner_q_close {
    border: none;
    padding: 5px 5px;
    margin-top: 3px;
    margin-right: 5px;
    margin-bottom: 8px;
    font-size: 0.9em;
    cursor: pointer;
    border-radius: 6px;
    width: fit-content;
    color: #FFF;
    background: #475c86;
}

.beginner_q_hikaku {
    background: #797070;
}

.beginner_q_kankeishi {
    background: #797070;
}

.beginner_q_mix {
    background: #797070;
}

.beginner_q_mirai {
    background: #797070;
}

.beginner_q_keiken {
    background: #797070;
}

.beginner_q_katei {
    background: #797070;
}

.beginner_q_kazu {
    background: #797070;
}

.beginner_q_kenko {
    background: #797070;
}

.beginner_q_hindo {
    background: #797070;
}

.beginner_q_kazoku {
    background: #797070;
}

.beginner_q_kimochi {
    background: #797070;
}

.beginner_q_shuukan {
    background: #797070;
}

.send_btn3 {
    font-size: 1em;
    padding: 5px 20px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #ff1493;
    width: fit-content;
    color: #FFF;
    background: #ff1493;
}

#ok_button {
    margin-top: 5px;
    margin-bottom: 5px;
    font-size: 0.9em;
    padding: 4px 10px;
    cursor: pointer;
    height: 29px;
    border-radius: 4px;
    width: fit-content;
    color: #FFF;
    background: #464c5a;
    border-style: hidden;
}

#next_button {
    margin-bottom: 5px;
    font-size: 0.9em;
    padding: 4px 10px;
    cursor: pointer;
    border-radius: 4px;
    border-color: #464c5a;
    width: fit-content;
    color: #FFF;
    background: #464c5a;
    border-style: hidden;
}

#delete_button {
    margin-left: 10px;
    margin-bottom: 5px;
    font-size: 0.9em;
    padding: 4px 10px;
    cursor: pointer;
    border-radius: 4px;
    border-color: #464c5a;
    width: fit-content;
    color: #FFF;
    background: #464c5a;
    border-style: hidden;
}

.send_btn4 {
    margin-left: 20px;
    font-size: 1em;
    padding: 5px 15px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #5c595a;
    width: fit-content;
    color: #FFF;
    background: #5c595a;
    border-style: hidden;
}

.btns {
    margin-top: 20px;
}

.score {
    position: absolute;
    width: fit-content;
    bottom: 0px;
    left: 0px;
    font-size: 0.9em;
    color: #FFF;
    padding: 3px 3px;
    font-weight: bold;
    text-align: left;
    border-radius: 8px;
    background-color: #6394bc;
    border: 1px solid white;
    z-index: 4;
    cursor: pointer;
}

.score.inverted {
    color: #6394bc;
    background-color: #FFF;
}

.popup_sc_ani {
    position: absolute;
    bottom: 25px;
    left: 15px;
    font-size: 0.8em;
    color: white;
    background-color: #ffa500;
    padding: 4px 8px;
    border-radius: 6px;
    font-weight: bold;
    z-index: 5;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
}


/* 吹き出しの尻尾 */

.popup_sc_ani::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 10px;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #ffa500;
}


/* アニメーション */

.popup_sc_ani.show_sc_ani {
    animation: popupAnimation_sc_ani 2.5s ease-out forwards;
}

@keyframes popupAnimation_sc_ani {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.8);
    }
    20% {
        opacity: 1;
        transform: translateY(0) scale(1.1);
    }
    30% {
        transform: translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(-10px) scale(1);
    }
}

h2 {
    margin-top: 5px;
    font-size: 1.2em;
    color: rgb(69, 64, 63);
    font-weight: bold;
}

.response {
    text-align: left;
}

.advice {
    color: #FF9900;
    font-weight: bold;
}

.container {
    text-align: center;
}

.mail_parent {
    margin-top: 20px;
    width: 100%;
    text-align: center;
}

#modoru {
    margin: 0 auto;
    text-align: center;
    width: 100px;
    cursor: pointer;
    background-color: #55575c;
    color: #FFF;
    border-radius: 6px;
    border-style: hidden;
    border: 2px solid #32545f;
    font-weight: bold;
}

.submit {
    cursor: pointer;
    width: fit-content;
    display: block;
    margin: 0 auto;
    text-align: center;
    font-size: 1em;
    padding: 5px 12px;
    color: #FFF;
    border-radius: 5px;
    font-weight: bold;
    background-color: #68889e;
}

#thanks {
    text-align: center;
}

.mail_parent2 {
    width: 90%;
    height: fit-content;
    text-align: center;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fff;
    padding: 20px;
    border-radius: 10px;
    z-index: 100;
    display: none;
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 99;
    display: none;
}

@media screen and (max-width: 768px) {
    .bigger {
        font-size: 1em;
    }
}

@media screen and (min-width: 769px) {
    .bigger {
        font-size: 1em;
    }
}

@media screen and (max-width: 768px) {
    .bigger6 {
        font-weight: bold;
        font-size: 1em;
    }
}

@media screen and (min-width: 769px) {
    .bigger6 {
        font-weight: bold;
        font-size: 1em;
    }
}

@media screen and (max-width: 768px) {
    #sound {
        width: 1em;
        height: auto;
    }
}

.bold {
    font-weight: bold;
}

h1 {
    padding-top: 5px;
    cursor: pointer;
    font-size: 1.4em;
    color: #5c8aaf;
    /*color: #6394bc;*/
}

@media screen and (max-width: 768px) {
    #user-input7 {
        border-radius: 6px;
        padding-left: 5px;
        padding-right: 5px;
        padding-top: 2px;
        width: 94%;
    }
}

@media screen and (min-width: 769px) {
    #user-input7 {
        border-radius: 6px;
        padding-left: 5px;
        padding-right: 5px;
        padding-top: 5px;
        padding-bottom: 2px;
        width: 85%;
    }
}

#ai_any {
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 22px;
    width: auto;
    font-size: 1.2em;
    height: 1.6em;
}

#ai_age {
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 22px;
    width: auto;
    font-size: 1.2em;
    height: 1.6em;
}

#ai_kokuseki {
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 22px;
    width: auto;
    font-size: 1.2em;
    height: 1.6em;
}

#name_man {
    width: fit-content;
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 5px;
    font-size: 1.2em;
    height: 1.6em;
}

#name_woman {
    width: fit-content;
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 5px;
    font-size: 1.2em;
    height: 1.6em;
}

#naiyou {
    border-radius: 6px;
    padding: 5px 5px;
}

#mailtext {
    border-radius: 6px;
    padding-left: 10px;
}

.mailtext {
    border-radius: 6px;
    padding-left: 10px;
}

@media screen and (max-width: 768px) {
    .container2 {
        margin-top: 1px;
        width: 95%;
        margin-left: 10px;
    }
}

@media screen and (min-width: 769px) {
    .container2 {
        margin-top: 8px;
        width: 95%;
        margin-left: 10px;
    }
}

.logo_parts_hidari {
    width: fit-content;
    text-align: center;
}

.logo_parts_migi {
    width: fit-content;
}

.loading_bg {
    color: #4f8091;
    z-index: 1000;
    position: fixed;
    background: rgba(247, 245, 245, 1);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100vh;
    font-size: 20px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .loading_bg {
        font-size: 1.2em;
    }
}

@media screen and (min-width: 769px) {
    .loading_bg {
        font-size: 1.5em;
    }
}

.pcview {
    display: inline !important;
}

.spview {
    display: none !important;
}

@media screen and (max-width: 769px) {
    /*tablet , smart phone access*/
    .pcview {
        display: none !important;
    }
    .spview {
        display: inline !important;
    }
}

.btn3 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 15px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    border-color: #ff1493;
    padding: 10px 20px;
    font-size: 1em;
    background-color: #ff1493;
    font-weight: 700;
}

.btn_ok {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    border-color: #32597b;
    padding: 5px 10px;
    font-size: 1em;
    background-color: #32597b;
    font-weight: 700;
}

@media screen and (max-width: 768px) {
    #mailtext {
        padding: 5px;
        margin: 0 auto;
        width: 70%;
    }
}

@media screen and (min-width: 769px) {
    #mailtext {
        padding: 5px;
        margin: 0 auto;
        width: 40%;
        max-width: 800px;
        min-width: 300px;
    }
}

@media screen and (max-width: 768px) {
    .mailtext {
        padding: 5px;
        margin: 0 auto;
        width: 90%;
    }
}

@media screen and (min-width: 769px) {
    .mailtext {
        padding: 5px;
        margin: 0 auto;
        width: 40%;
        max-width: 800px;
        min-width: 300px;
    }
}

@media screen and (max-width: 768px) {
    #mailtext2 {
        margin: 0 auto;
        width: 82%;
        margin-bottom: 20px;
    }
}

@media screen and (min-width: 769px) {
    #mailtext2 {
        margin: 0 auto;
        width: 50%;
        max-width: 800px;
        margin-bottom: 20px;
    }
}

#mailtext2 {
    border-radius: 6px;
    padding: 5px;
    border-style: solid;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
}

#niyou {
    padding: 5px;
}

#sound {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.advice2 {
    color: darkolivegreen;
    font-size: 0.8em;
    text-decoration: dotted;
}

.youup {
    width: 150px;
    height: auto;
}

.chara {
    font-size: 1.4em;
    text-decoration: dotted;
    color: darkolivegreen;
    font-weight: bold;
}

.chara_img {
    height: 30px;
    width: auto;
    margin-right: 10px;
}

@media screen and (max-width: 768px) {
    .alisa_rest {
        width: 100%;
        height: auto;
    }
    .alisa_rip {
        width: 100%;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .alisa_rest {
        height: 240px;
        width: 384px;
    }
    .alisa_rip {
        height: 240px;
        width: 384px;
    }
}

#yaku_btn {
    color: darkolivegreen;
    text-decoration: underline;
    font-weight: bold;
}

#one_point {
    margin: 0 auto;
    width: fit-content;
    text-decoration: underline;
    font-size: 0.8em;
    cursor: pointer;
}

.kaiyaku {
    font-size: 0.9em;
}

#ai_kokuseki {
    font-size: 1em;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
    color: #4a6888;
    font-weight: bold;
    background-color: #FFF;
}

#ai_any {
    font-size: 1em;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
    color: #4a6888;
    font-weight: bold;
    background-color: #FFF;
}

.lang_select {
    font-size: 1em;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
    color: #4a6888;
    font-weight: bold;
    background-color: #FFF;
}

.lang_select {
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 22px;
    width: auto;
    font-size: 1.2em;
    height: 1.6em;
}


/*モダルウィンドウ言語セレクトSP*/

.modal_lang {
    z-index: 5;
    height: 100vh;
    position: fixed;
    top: 0;
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.modal_bg_lang {
    display: none;
    z-index: 3;
    background: rgba(52, 53, 54, 0.5);
    height: 100vh;
    position: absolute;
    width: 100%;
}

.modal_content_lang {
    display: none;
    z-index: 5;
    color: #FFF;
    text-align: left;
    display: inline-block;
    padding: 20px 30px;
    position: absolute;
    font-size: 15px;
    border-radius: 12px;
    background-color: #3c5461;
    border: medium solid #68889e;
    max-height: 90vh;
    max-width: 90%;
    width: fit-content;
    overflow: auto;
}

.modal_content_lang::-webkit-scrollbar {
    display: none;
}

#language {
    text-align: center;
    padding-left: 5px;
    height: 30px;
    font-size: 1.2em;
    background-color: #FFF;
}

#langselect {
    text-align: center;
    height: 28px;
    margin: 0;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    border-color: #89B700;
    padding: 5px 5px;
    font-size: 1.2em;
    background-color: #89B700;
    font-weight: 700;
}

.lang_select_text {
    text-align: left;
}

@media screen and (max-width: 768px) {
    .tran_btn {
        cursor: pointer;
        height: 25px;
        width: auto;
        vertical-align: bottom;
    }
}

@media screen and (min-width: 769px) {
    .tran_btn {
        cursor: pointer;
        height: 25px;
        width: auto;
        vertical-align: bottom;
    }
}

.tran_btn_small {
    height: 20px;
    width: auto;
}

.honyaku_text {
    color: #484b53;
}

#jobs {
    margin-top: 5px;
    border-radius: 6px;
    padding-left: 5px;
    padding-right: 22px;
    width: auto;
    height: 1.6em;
}

#jobs {
    font-size: 1em;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
    color: #4a6888;
    font-weight: bold;
    background-color: #FFF;
}

.red {
    color: red;
    font-weight: bold;
}

#button {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    background-color: #ff1493;
    font-weight: 700;
}

#button2 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 14px;
    height: 60px;
    font-size: 1.1em;
    background-color: #89B700;
    font-weight: 700;
}

#button3 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 17px;
    height: 60px;
    font-size: 1.1em;
    background-color: #ff1493;
    font-weight: 700;
}

#button5 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    Width: 150px;
    background-color: #ff1493;
    font-weight: 700;
}

#button6 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 30px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

#button7 {
    margin-left: 10px;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 30px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

#correct_btn {
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    margin-left: 10px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 18px;
    height: 30px;
    font-size: 0.9em;
    background-color: #464c5a;
    font-weight: 700;
}

#button_del {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 30px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

#button_cl {
    margin-left: 10px;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 30px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

#button4 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    height: 40px;
    font-size: 1.2em;
    background-color: #ff1493;
    font-weight: 700;
}

#start {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 30px;
    font-size: 1em;
    background-color: #ff1493;
    font-weight: 700;
}

#start.inverted {
    color: #ff1493;
    background-color: #FFF;
}

#button4.inverted {
    color: #ff1493;
    background-color: #FFF;
}

#free_train.inverted {
    color: #a7ccea;
    background-color: #FFF;
}

.modal1 {
    display: none;
    z-index: 10;
    height: 100vh;
    position: fixed;
    top: 0;
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.modal_bg1 {
    display: none;
    z-index: 9;
    background: rgba(52, 53, 54, 0.1);
    height: 100vh;
    position: absolute;
    width: 100%;
}

@media screen and (max-width: 768px) {
    .modal_content1 {
        display: none;
        z-index: 10;
        color: #000;
        background-color: #FFF;
        border: medium solid #68889e;
        border-radius: 6px;
        text-align: center;
        display: inline-block;
        padding: 10px;
        position: absolute;
        max-height: 90vh;
        width: 90%;
        overflow: auto;
    }
}

@media screen and (min-width: 769px) {
    .modal_content1 {
        display: none;
        z-index: 10;
        color: #000;
        background-color: #FFF;
        border: medium solid #68889e;
        border-radius: 6px;
        text-align: center;
        display: inline-block;
        padding: 10px;
        position: absolute;
        max-height: 90vh;
        max-width: 100%;
        width: fit-content;
        overflow: auto;
    }
}

.modal_content1::-webkit-scrollbar {
    display: none;
}

.mojide {
    color: #FFF;
    background-color: #89B700;
    font-weight: bold;
    cursor: pointer;
    border-radius: 6px;
    padding-left: 4px;
    padding-right: 4px;
}

.q {
    margin-left: 2px;
    margin-right: 2px;
    margin-top: 2px;
    width: 1.6em;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 4px;
    border-style: hidden;
    padding: 3px 3px;
    padding-bottom: 4px;
    height: 25px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

.q_space {
    margin-left: 2px;
    margin-right: 2px;
    margin-top: 2px;
    width: fit-content;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 4px;
    border-style: hidden;
    padding: 3px 3px;
    padding-bottom: 4px;
    height: 25px;
    font-size: 1em;
    background-color: #464c5a;
    font-weight: 700;
}

.edit {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    width: fit-content;
    background-color: #464c5a;
    font-weight: 700;
}

.edit_x {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    width: fit-content;
    background-color: #696969;
    font-weight: 700;
}

#button_send_x {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    Width: 150px;
    background-color: #696969;
    font-weight: 700;
}

.clear_text_all {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 10px;
    height: 50px;
    font-size: 1em;
    width: fit-content;
    background-color: #696969;
    font-weight: 700;
}

#speaker {
    border-style: hidden;
}

.q_speaker {
    margin-top: 2px;
    cursor: pointer;
    width: 30px;
    height: 30px;
    vertical-align: bottom;
}

.q_speaker_small {
    margin-top: 2px;
    cursor: pointer;
    width: 25px;
    height: 25px;
    vertical-align: bottom;
}

.q_speaker_small2 {
    margin-top: 2px;
    cursor: pointer;
    width: 20px;
    height: 20px;
    vertical-align: bottom;
}

.center {
    text-align: center;
}

.usen {
    width: 110px;
    height: auto;
    margin: 0 auto;
}

.explain_contents {
    padding: 11px;
    text-align: center;
    font-size: 1em;
    text-align: left;
}

.explain_parent {
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.explain_parent_sugotoku {
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
    text-align: center;
}

.contents_ex {
    font-size: 0.8em;
    color: #585757;
}

a.sugo_link {
    color: black;
    text-decoration: underline;
}

a.sugo_link:visited {
    color: black;
}

.price_plan {
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

h3 {
    margin-left: 5px;
    margin-right: 5px;
    padding-top: 11px;
    font-weight: bold;
    font-size: 1.2em;
    color: #4c7ba1;
}

@media screen and (max-width: 768px) {
    h3 {
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    h3 {
        text-align: left;
    }
}

h4 {
    padding-top: 11px;
    font-weight: bold;
    text-align: center;
    font-size: 1.2em;
    color: #4c7ba1;
}

.h4-container {
    text-align: center;
    /* テキストと画像を中央揃え */
}

h5 {
    padding-top: 11px;
    font-weight: bold;
    text-align: center;
    font-size: 1.2em;
    color: #4c7ba1;
}

@media screen and (max-width: 768px) {
    h5 {
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    h5 {
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    h6 {
        padding-top: 11px;
        font-weight: bold;
        text-align: left;
        font-size: 1em;
        color: #4c7ba1;
    }
}

@media screen and (min-width: 769px) {
    h6 {
        padding-top: 11px;
        font-weight: bold;
        text-align: center;
        font-size: 1em;
        color: #4c7ba1;
    }
}

.main_blue {
    color: #4c7ba1;
    font-size: 1.1em;
}

.blue_arrow {
    color: #4c7ba1;
    font-size: 1em;
}

.gray {
    color: #89B700;
}


/*ロールプレイ用*/

.checkmark002,
.checkmark0022,
.checkmark003 {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    padding: 0;
    line-height: 1.3;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.checkmark002::before,
.checkmark0022::before,
.checkmark003::before {
    content: "";
    display: block;
    width: 0.6em;
    height: 0.6em;
    border-radius: 50%;
}

.checkmark002::before {
    background: #050a30;
    border: 1px solid #050a30;
}

.checkmark0022::before {
    background: #b1e80f;
    border: 1px solid #b1e80f;
}

.checkmark003::before {
    background: #a7cbea;
    border: 1px solid #a7cbea;
}

.checkmark002::after,
.checkmark0022::after,
.checkmark003::after {
    content: none;
}

.checkmark004 {
    padding-right: 5px;
    padding-left: 24px;
    position: relative;
}

.checkmark004:before,
.checkmark004:after {
    content: "";
    display: block;
    position: absolute;
}

.checkmark004:before {
    width: 1.1em;
    height: 1.1em;
    border-radius: 0.7em;
    background: #FF9900;
    border: 1px solid #FF9900;
    left: 0;
    top: 0.1em;
}

.checkmark004:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 0.5em;
    height: 0.3em;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 0.3em;
    top: 0.4em;
}

.checkmark005 {
    padding-right: 5px;
    padding-left: 24px;
    position: relative;
}

.checkmark005:before,
.checkmark005:after {
    content: "";
    display: block;
    position: absolute;
}

.checkmark005:before {
    width: 1.1em;
    height: 1.1em;
    border-radius: 0.7em;
    background: #89B700;
    border: 1px solid #89B700;
    left: 0;
    top: 0.1em;
}

.checkmark005:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 0.5em;
    height: 0.3em;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 0.3em;
    top: 0.4em;
}

.checkmark006 {
    padding-right: 5px;
    padding-left: 24px;
    position: relative;
}

.checkmark006:before,
.checkmark006:after {
    content: "";
    display: block;
    position: absolute;
}

.checkmark006:before {
    width: 1.1em;
    height: 1.1em;
    border-radius: 0.7em;
    background: #6991bf;
    border: 1px solid #6991bf;
    left: 0;
    top: 0.1em;
}

.checkmark007 {
    position: relative;
    width: 1.1em;
    height: 1.1em;
    margin: 0;
    /* マージンをリセット */
}

.checkmark007:before,
.checkmark007:after {
    content: "";
    position: absolute;
}

.checkmark007:before {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #050a30;
    border: 1px solid #050a30;
}

.checkmark007:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 40%;
    height: 20%;
    transform: rotate(-45deg);
    left: 50%;
    top: 50%;
    margin-left: -20%;
    /* width の半分 */
    margin-top: -10%;
    /* height の半分 */
}

.checkmark0077 {
    position: relative;
    width: 1.1em;
    height: 1.1em;
    margin: 0;
    /* マージンをリセット */
}

.checkmark0077:before,
.checkmark0077:after {
    content: "";
    position: absolute;
}

.checkmark0077:before {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #d8df07;
    border: 1px solid #d8df07;
}

.checkmark0077:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 40%;
    height: 20%;
    transform: rotate(-45deg);
    left: 50%;
    top: 50%;
    margin-left: -20%;
    /* width の半分 */
    margin-top: -10%;
    /* height の半分 */
}

.yellow-star-small {
    color: #ffd700;
    font-size: 0.8em;
}

.yellow-star-kiso {
    color: #ffd700;
    font-size: 1.1em;
}

.gray-star-kiso {
    color: #CCC;
    font-size: 1.1em;
}

.white-star-kiso {
    color: #FFF;
    font-size: 1.1em;
}

.lightgray-star-kiso {
    color: #d3d3d3;
    font-size: 1.1em;
}

.gold-star-kiso {
    color: #f8f8ff;
    font-size: 1.1em;
}

.gray-star {
    color: #CCC;
    font-size: 1.1em;
    margin-top: 0;
}

.yellow-star {
    color: #ffd700;
    font-size: 1.1em;
    margin-top: 0;
}

.white_circle {
    color: #FFF;
    font-size: 1.1em;
    margin-top: 0;
}

.checkmark-container {
    text-align: center;
}

.checkmark-container-roll {
    display: inline-flex;
    align-items: center;
    order: -1;
    margin-bottom: 0px;
}

.checkmark008 {
    position: relative;
    width: 1.1em;
    height: 1.1em;
    margin: 0;
    /* マージンをリセット */
}

.checkmark008:before,
.checkmark008:after {
    content: "";
    position: absolute;
}

.checkmark008:before {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #d0d4d6;
    border: 1px solid #d0d4d6;
}

.checkmark008:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 40%;
    height: 20%;
    transform: rotate(-45deg);
    left: 50%;
    top: 50%;
    margin-left: -20%;
    /* width の半分 */
    margin-top: -10%;
    /* height の半分 */
}

.checkmark006:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 0.5em;
    height: 0.3em;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 0.3em;
    top: 0.4em;
}

.please_plan {
    margin-left: 5px;
    font-size: 1.1em;
    color: #a61f1f;
    margin-bottom: 3px;
    margin-top: 3px;
    font-weight: bold;
}

.media_parts {
    font-size: 0.9em;
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.news_parts {
    font-size: 0.9em;
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.story {
    text-align: center;
    font-size: 0.9em;
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

@media screen and (max-width: 768px) {
    .news_text_contents {
        width: 100%;
    }
}

@media screen and (min-width: 769px) {
    .news_text_contents {
        width: fit-content;
    }
}

.media2 {
    padding: 10px;
}

.media a {
    color: black;
    text-decoration: none;
}

@media screen and (max-width: 768px) {
    .media_image {
        width: 90px;
        height: auto;
        margin-left: 7px;
        margin-right: 7px;
        margin-bottom: 5px;
        margin-top: 5px;
    }
}

@media screen and (min-width: 769px) {
    .media_image {
        width: 110px;
        height: auto;
        margin-left: 7px;
        margin-right: 7px;
        margin-bottom: 5px;
        margin-top: 5px;
    }
}

.media_logo {
    text-align: center;
}

.lets_ask {
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.lets_ask2 {
    padding: 10px;
}

@media screen and (max-width: 768px) {
    .pub {
        display: block;
        margin: 0 auto;
        width: 150px;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .pub {
        display: block;
        margin: 0 auto;
        width: 150px;
        height: auto;
    }
}

.change_te_text_parent {
    position: relative;
    width: 98%;
    text-align: center;
    z-index: 10;
    margin-bottom: -13px;
}

.change_te_text {
    text-align: center;
    background-color: #75a3df;
    color: #FFF;
    font-size: 0.9em;
    border-radius: 6px;
    border: 2px solid #ccc;
    width: fit-content;
    padding: 3px;
}

.teachers_select {
    width: 98%;
    color: #FFF;
    background-color: #b0c4de;
    border-radius: 6px;
    border: 2px solid #ccc;
    font-weight: bold;
    padding-top: 15px;
    position: relative;
    z-index: 5;
    margin-bottom: 10px;
}

.p_ai_roll {
    cursor: pointer;
    position: relative;
    width: 75px;
    min-width: 75px;
    height: 75px;
    min-height: 75px;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.p_ai_roll::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 0;
}

.p_ai_roll::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 2px solid white;
    border-radius: 50%;
    box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
    z-index: 2;
}

.p_ai_roll img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    position: relative;
    z-index: 1;
}

.p_ai0_roll {
    cursor: pointer;
    width: 85px;
    height: 85px;
    position: relative;
    display: inline-block;
}

.p_ai0 {
    cursor: pointer;
    width: 85px;
    height: 85px;
    position: relative;
    display: inline-block;
}

.p_ai {
    cursor: pointer;
    position: relative;
    width: 75px;
    min-width: 75px;
    height: 75px;
    min-height: 75px;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.p_ai::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 0;
}

.p_ai::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 2px solid white;
    border-radius: 50%;
    box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
    z-index: 2;
}

.p_ai img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    position: relative;
    z-index: 1;
}


/*.p_ai2 {
    z-index: 4;
    position: absolute;
    bottom: 5px;
    right: 5px;
    width: 12px;
    height: 12px;
    background-color: #89B700;
    border-radius: 50%;
    border: 2px solid white;
}*/

.p_ai2_red {
    z-index: 4;
    position: absolute;
    bottom: 5px;
    /* 修正: 単位(px)を追加 */
    right: 5px;
    /* 修正: 単位(px)を追加 */
    width: 12px;
    height: 12px;
    background-color: #a70b1e;
    border-radius: 50%;
    border: 2px solid white;
    pointer-events: none;
}

.history_small_text {
    font-size: 0.8em;
}

.small_text {
    font-size: 0.8em;
}

.small_text2 {
    font-size: 0.9em;
}

@media screen and (max-width: 768px) {
    .chara_container {
        position: relative;
        width: 100%;
        height: 240px;
        margin: 0 auto;
    }
    .small_text_score {
        font-size: 0.8em;
    }
}

@media screen and (min-width: 769px) {
    .chara_container {
        position: relative;
        width: 384px;
        height: 240px;
        margin: 0 auto;
    }
    .small_text_score {
        font-size: 0.8em;
    }
}

.chara_name_container {
    position: absolute;
    top: 0%;
    left: 0%;
}

.chara_name {
    position: absolute;
    width: fit-content;
    top: 0%;
    left: 0%;
    font-size: 0.9em;
    color: #FFF;
    padding: 3px 3px;
    font-weight: bold;
    text-align: left;
    background-color: #000;
    z-index: 4;
}

.zoon {
    position: absolute;
    width: fit-content;
    top: 0%;
    right: 0%;
    font-size: 0.9em;
    color: #FFF;
    padding: 3px 3px;
    font-weight: bold;
    text-align: right;
    width: 60px;
    height: auto;
}

.mike_zoon {
    z-index: 4;
    position: absolute;
    width: fit-content;
    bottom: 0%;
    right: 0%;
    font-size: 0.9em;
    color: #FFF;
    padding: 3px 3px;
    font-weight: bold;
    text-align: right;
    width: 40px;
    height: auto;
}

.ripple_zoon {
    z-index: 5;
    position: absolute;
    width: fit-content;
    bottom: 0%;
    right: 0%;
    font-size: 0.9em;
    color: #FFF;
    padding: 3px 3px;
    font-weight: bold;
    text-align: right;
    width: 40px;
    height: auto;
}

@media screen and (max-width: 768px) {
    .image-container {
        margin: 0 auto;
        width: 100%;
        height: auto;
        background-color: #000;
    }
}

@media screen and (min-width: 769px) {
    .image-container {
        margin: 0 auto;
        height: 241px;
        width: 385px;
        max-width: 385px;
        background-color: #000;
    }
}

@media screen and (max-width: 768px) {
    .first_mess {
        text-align: left;
        width: 80%;
    }
}

@media screen and (min-width: 769px) {
    .first_mess {
        text-align: center;
        width: 50%;
    }
}

@media screen and (max-width: 768px) {
    .text_speak {
        padding-top: 3px;
        line-height: 1em;
        min-height: 10px;
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    .text_speak {
        padding-top: 10px;
        line-height: 1em;
        min-height: 20px;
        text-align: left;
    }
}

.text_honyaku {
    padding-top: 0px;
    display: flex;
    justify-content: center;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .text_honyaku2 {
        padding-top: 0px;
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    .text_honyaku2 {
        padding-top: 0px;
        text-align: left;
    }
}

.auto_onsei2 {
    padding-top: 0px;
    display: flex;
    justify-content: center;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .auto_onsei_text {
        color: #324d72;
        text-align: center;
        font-size: 1em;
        font-weight: bold;
        width: 98%;
    }
}

@media screen and (min-width: 769px) {
    .auto_onsei_text {
        color: #324d72;
        text-align: center;
        font-size: 1em;
        font-weight: bold;
        width: 95%;
    }
}

#yaku {
    text-align: left;
}

#interim_span {
    text-align: left;
    font-size: 1.1em;
    color: darkgreen;
}

hr {
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

hr {
    margin: 0 auto;
    width: 100%;
    border-top: 1px dotted #aaa;
}

.hr_basic {
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    margin: 0 auto;
    width: 100%;
    margin-bottom: 5px;
    margin-top: 5px;
    border-top: 1px dotted #aaa;
}

@media screen and (max-width: 768px) {
    .auto_text {
        color: #324d72;
        text-align: left;
        font-size: 1em;
        font-weight: bold;
        width: 98%;
    }
}

@media screen and (min-width: 769px) {
    .auto_text {
        color: #324d72;
        text-align: left;
        font-size: 1em;
        font-weight: bold;
        width: 95%;
    }
}

.history_contents {
    color: #000;
    text-align: left;
}

#correct {
    width: 98%;
    text-align: left;
    color: #2d4b56;
    font-weight: bold;
    background-color: #FFF;
    padding: 5px 5px;
    border-radius: 6px;
    border: 1px solid #54685e;
}

.tutaeru {
    text-align: center;
}

.trial_text {
    text-align: left;
}

#user_in {
    font-size: 1em;
    font-weight: bold;
    color: darkgreen;
    text-align: left;
}

.topic_yaku {
    color: #6394bc;
    font-size: 0.9em;
    font-weight: bolder;
    text-decoration: underline;
}

.hitokuchi {
    margin: 0 auto;
    padding-top: 0px;
    display: flex;
    /*justify-content: center;*/
    width: 98%;
    text-align: center;
    margin-bottom: 6px;
}

.onsei_onoff {
    height: 1.2em;
    width: auto;
}

.onoff {
    text-align: left;
}

.onoff span {
    margin: 0 7px;
}

.topics_img {
    cursor: pointer;
    margin-right: 10px;
}

.button-container {
    display: flex;
}

.button-container2 {
    display: flex;
}

.topics_btn2 {
    height: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    border: none;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: 5px;
    margin-top: 8px;
    font-size: 0.9em;
    border-radius: 6px;
    color: #FFF;
    font-weight: bold;
    background: #D91718;
}

.topics_btn {
    height: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    border: none;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: 5px;
    margin-top: 8px;
    font-size: 0.9em;
    border-radius: 6px;
    color: #FFF;
    font-weight: bold;
    background: #D91718;
}

.begin_menu {
    margin-top: 15px;
}

.mike {
    position: relative;
    width: 40px;
    height: auto;
}

@media screen and (min-width: 769px) {
    .text_honyaku2 {
        padding-top: 0px;
        text-align: left;
    }
}

.chara_review {
    margin-top: 5px;
    background-color: #000;
    width: 200px;
    height: auto;
    border: 0px solid black;
    padding: 1px;
}

.preview {
    display: block;
    margin: auto;
    width: 200px;
    height: auto;
}

.preview2 {
    display: block;
    margin: auto;
    width: 200px;
    height: auto;
    cursor: pointer;
}

.iphone_mike {
    width: 85%;
    height: auto;
}

.iphone_mike_for_faq {
    width: 70%;
    height: auto;
}

.iphone_mess {
    text-align: left;
}

.ripple2 {
    width: 30px;
    height: auto;
    margin-right: 5px;
}

@media screen and (max-width: 768px) {
    .bigger4 {
        font-size: 1em;
    }
}

@media screen and (min-width: 769px) {
    .bigger4 {
        font-size: 1.2em;
    }
}

@media screen and (max-width: 768px) {
    .bigger5 {
        font-size: 1em;
    }
}

@media screen and (min-width: 769px) {
    .bigger5 {
        font-size: 1.2em;
    }
}

.circle {
    display: inline-block;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background: rgb(200, 21, 80);
    color: #FFF;
    text-align: center;
    line-height: 1.2em;
    margin-right: 3px;
}

.circle2 {
    display: inline-block;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #b0c4de;
    text-align: center;
    line-height: 110px;
    color: #FFF;
    font-weight: bold;
}

.circle3 {
    display: inline-block;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #87ceeb;
    text-align: center;
    line-height: 110px;
    color: #FFF;
    font-weight: bold;
}

.circle3b {
    display: inline-block;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #b0c4de;
    text-align: center;
    line-height: 110px;
    color: #FFF;
    font-weight: bold;
}

.price_list {
    width: fit-content;
    margin: 0 auto;
    text-align: center;
}

.price_list_child {
    width: fit-content;
    text-align: left;
}

.price_list_child2 {
    width: 100%;
    text-align: left;
}

.check_box_center {
    display: flex;
    justify-content: center;
}

.check_box_center_child {
    text-align: left;
}

.ECM_CheckboxInput {
    padding: 12px 8px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.ECM_CheckboxInput-Input {
    margin: 0;
    width: 0;
    opacity: 0;
}

.ECM_CheckboxInput:hover>.ECM_CheckboxInput-DummyInput {
    background: #f6f4f4 !important;
    border: solid 2px #333333;
}

.ECM_CheckboxInput-Input:focus+.ECM_CheckboxInput-DummyInput {
    background: #f6f4f4 !important;
    border: solid 2px #333333;
}

.ECM_CheckboxInput-Input:checked+.ECM_CheckboxInput-DummyInput {
    border: solid 2px #333333;
    background: #FFFFFF;
}

.ECM_CheckboxInput-Input:checked+.ECM_CheckboxInput-DummyInput::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hlY2siPjxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPjwvc3ZnPg==") no-repeat center;
    background-size: contain;
}

.ECM_CheckboxInput-DummyInput {
    position: relative;
    top: 0;
    left: 0;
    display: block;
    width: 32px;
    height: 32px;
    border: solid 2px #888888;
    background: #FFFFFF;
    border-radius: 4px;
}

.ECM_CheckboxInput-DummyInput.inverted {
    border: solid 2px rgb(115, 155, 184);
    background: #bdd5ef;
}

@media screen and (max-width: 768px) {
    .ECM_CheckboxInput-LabelText {
        margin-left: 12px;
        display: block;
        font-size: 0.9em;
        font-weight: bold;
    }
}

@media screen and (min-width: 769px) {
    .ECM_CheckboxInput-LabelText {
        margin-left: 12px;
        display: block;
        font-size: 1em;
        font-weight: bold;
    }
}

.ECM_CheckboxInput-Input:checked+.ECM_CheckboxInput-DummyInput2::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hlY2siPjxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPjwvc3ZnPg==") no-repeat center;
    background-size: contain;
}

.ECM_CheckboxInput-DummyInput2 {
    position: relative;
    top: 0;
    left: 0;
    display: block;
    width: 32px;
    height: 32px;
    border: solid 2px #888888;
    background: #e5e3e3;
    border-radius: 4px;
}

#make_account_btn {
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 15px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 12px 20px;
    font-size: 1.1em;
    background-color: #68889e;
    font-weight: 700;
    cursor: pointer;
}

@media screen and (max-width: 768px) {
    .chuui_text {
        font-size: 0.9em;
        text-align: left;
        margin: 0 auto;
        max-width: 95%;
        margin-bottom: 10px;
    }
}

@media screen and (min-width: 769px) {
    .chuui_text {
        font-size: 0.9em;
        text-align: left;
        margin: 0 auto;
        max-width: 70%;
        margin-bottom: 15px;
    }
}

@media screen and (max-width: 768px) {
    .textarea_parent {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        box-sizing: border-box
    }
}

@media screen and (min-width: 769px) {
    .textarea_parent {
        display: flex;
        justify-content: center;
        align-items: center;
        width: fit-content;
    }
}

.form_payment {
    padding-right: 40px;
}

.paytext {
    font-size: 1em;
    color: #464444;
}

#inputadd {
    margin-right: 3px;
    border-radius: 5px;
    font-weight: bold;
    line-height: 1.2em;
    width: 85%;
    font-size: 0.9em;
    color: #FFF;
    background: #253256;
}

 ::placeholder {
    color: #FFF;
}

 ::-webkit-input-placeholder {
    color: #FFF;
}

 :-ms-input-placeholder {
    color: #FFF;
}

textarea:focus::placeholder {
    color: #50a5c1;
}

#input_check {
    cursor: pointer;
    width: fit-content;
    border-style: hidden;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    padding: 12px 20px;
    font-size: 1em;
    background-color: #68889e;
    font-weight: 700;
}

#input_check2 {
    width: fit-content;
    border-style: hidden;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 0.8em;
    background-color: #595658;
    font-weight: 700;
}

#input_check {
    display: block;
    margin: 0 auto;
    text-align: center;
}

#input_check2 {
    display: block;
    margin: 0 auto;
    text-align: center;
}

.input_check2_wrapper {
    text-align: center;
}

.input_check2 {
    display: inline-block;
    width: fit-content;
    border-style: hidden;
    text-align: center;
    margin-top: 5px;
    margin-left: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 0.8em;
    background-color: #595658;
    font-weight: 700;
    box-shadow: 2px 2px 4px #595658;
}

.list-item {
    height: 60px;
}

.menu-title {
    text-align: center;
    color: #fff;
    font-size: 1.1em;
    height: 50px;
    padding-top: 18px;
    padding-bottom: 4px;
    font-weight: 600;
    font-family: sans-serif;
}

@media (min-width: 769px) {
    .list-item {
        height: 60px;
    }
    .menu-title {
        height: 50px;
        padding-top: 20px;
        padding-bottom: 20px;
    }
}


/*　ハンバーガーボタン　*/

.hamburger {
    cursor: pointer;
    display: block;
    position: fixed;
    z-index: 13;
    right: 5px;
    top: 5px;
    width: 42px;
    height: 42px;
    cursor: pointer;
    text-align: center;
}

.hamburger span {
    display: block;
    position: absolute;
    width: 30px;
    height: 2px;
    left: 6px;
    background: #b75f5f;
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
}

.hamburger span:nth-child(1) {
    top: 10px;
}

.hamburger span:nth-child(2) {
    top: 20px;
}

.hamburger span:nth-child(3) {
    top: 30px;
}

@media (min-width: 769px) {
    .hamburger {
        display: block;
        position: fixed;
        z-index: 13;
        right: 13px;
        top: 12px;
        width: 42px;
        height: 42px;
        cursor: pointer;
        text-align: center;
    }
    .hamburger span {
        display: block;
        position: absolute;
        width: 30px;
        height: 2px;
        left: 6px;
        background: #b75f5f;
        -webkit-transition: 0.5s ease-in-out;
        -moz-transition: 0.5s ease-in-out;
        transition: 0.5s ease-in-out;
    }
    .hamburger span:nth-child(1) {
        top: 10px;
    }
    .hamburger span:nth-child(2) {
        top: 20px;
    }
    .hamburger span:nth-child(3) {
        top: 30px;
    }
}


/* ナビ開いてる時のボタン */

.hamburger.active span:nth-child(1) {
    top: 16px;
    left: 6px;
    -webkit-transform: rotate(315deg);
    -moz-transform: rotate(315deg);
    transform: rotate(315deg);
}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
    top: 16px;
    -webkit-transform: rotate(-315deg);
    -moz-transform: rotate(-315deg);
    transform: rotate(-315deg);
}

nav.globalMenuSp {
    position: fixed;
    z-index: 12;
    top: 0;
    left: 0;
    color: #000;
    background: #fff;
    text-align: center;
    transform: translateX(100%);
    transition: all 0.6s;
    width: 100%;
    overflow-y: scroll;
}

.globalMenuSp::-webkit-scrollbar {
    display: none;
}

nav.globalMenuSp ul {
    background: rgb(160, 159, 159);
    margin: 0 auto;
    padding: 0;
    width: 100%;
}

nav.globalMenuSp ul li {
    list-style-type: none;
    padding: 0;
    width: 100%;
    height: auto;
    border-bottom: 1px solid #fff;
}

nav.globalMenuSp ul li:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

nav.globalMenuSp ul li:hover {
    background: #b0b0b0;
}


/* このクラスを、jQueryで付与・削除する */

nav.globalMenuSp.active {
    transform: translateX(0%);
}


/* アコーディオン */

.contents_menu {
    font-size: 1em;
    display: none;
    text-decoration: none;
}

.cencept_pa {
    width: 100%;
    text-align: center;
    display: inline-block;
}

.cencept_pa .concept {
    color: #fff;
    font-weight: bold;
    font-size: 16px;
    text-align: left;
    width: 98%;
    padding-left: 7px;
    padding-right: 7px;
    display: inline-block;
}

@media (min-width: 769px) {
    .cencept_pa .concept {
        width: 50%;
        text-align: left;
        display: inline-block;
    }
}

.account_item {
    margin-top: 1em;
    color: #2F96BB;
    font-weight: bold;
}

.small2 {
    font-size: 0.8em;
}

.account_item {
    margin-top: 1em;
    color: #2F96BB;
    font-weight: bold;
}

#account_mail1_code {
    margin-top: 8px;
    margin-right: 3px;
    font-size: 1em;
    height: 30px;
    text-align: center;
    border-radius: 4px;
}

.alert_msg {
    margin-top: 13px;
    font-size: 0.9em;
    padding-bottom: 10px;
    color: #4682b4;
    font-weight: bold;
}

#apply_msg {
    font-size: 0.9em;
    color: #4682b4;
    font-weight: bold;
}

.regist_kakunin {
    padding-top: 5px;
    font-weight: bold;
    font-size: 1.1em;
    color: #6f95c3;
}

.mail_reg_btn {
    cursor: pointer;
    font-size: 1em;
    padding: 5px;
    border-radius: 6px;
    border-color: #89B700;
    width: fit-content;
    color: #FFF;
    background: #89B700;
}

.anken_regist_kakunin {
    width: 100%;
}

#email3_code {
    margin-right: 5px;
}

.code_btn {
    cursor: pointer;
    margin-left: 5px;
}

.change_status2 {
    cursor: pointer;
    padding: 5px;
    border-radius: 6px;
    border-color: #68889e;
    width: fit-content;
    color: #FFF;
    background: #68889e;
}

.change_status {
    font-weight: bold;
    cursor: pointer;
    padding: 10px;
    border-radius: 6px;
    border-color: #89B700;
    width: fit-content;
    color: #FFF;
    background: #89B700;
}

.contact_list_btn {
    cursor: pointer;
    color: #2F96BB;
    text-decoration: underline;
    font-weight: bold;
}

.active {
    text-decoration: none;
}

#input_check {
    display: block;
    margin: 0 auto;
    text-align: center;
}

#input_check2 {
    display: block;
    margin: 0 auto;
    text-align: center;
}

.input_check2_wrapper {
    text-align: center;
}

.input_check2 {
    display: inline-block;
    width: fit-content;
    border-style: hidden;
    text-align: center;
    margin-top: 5px;
    margin-left: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 0.8em;
    background-color: #595658;
    font-weight: 700;
}

#plan_box {
    font-size: 1.3em;
    margin-top: 10px;
    margin-bottom: 10px;
    font-weight: bold;
    text-align: center;
    color: #4c7ba1;
}

.bnts {
    margin-top: 15px;
    display: flex;
    justify-content: center;
}

.contact_change_btn:hover {
    background-color: #7e7979;
}

.contact_change_btn {
    margin: 0 auto;
    cursor: pointer;
    text-align: center;
    margin-top: 15px;
    margin-bottom: 10px;
    text-align: center;
    font-size: 0.9em;
    padding: 5px 15px;
    border-radius: 6px;
    border-color: #68889e;
    width: fit-content;
    color: #FFF;
    background: #68889e;
}

.id_change {
    margin-top: 15px;
}

#account_pass1 {
    margin: 0 auto;
}

.change_plan_btn {
    display: inline-block;
    vertical-align: middle;
    margin: 0 5px;
    text-align: center;
    width: fit-content;
    cursor: pointer;
    font-size: 1em;
    padding: 5px 21px;
    border-radius: 6px;
    border-color: #68889e;
    color: #FFF;
    background: #68889e;
}

.here {
    font-weight: bold;
    color: #2F96BB;
}

.mail2 {
    margin-top: -20px;
    text-align: center;
}

#contact1 {
    margin-bottom: 10xp;
}

#stripe_status {
    text-align: center;
    font-size: 1.1em;
    color: #a70b1e;
    font-weight: bold;
    margin-top: 10px;
}

.close_btn_modal1 {
    cursor: pointer;
    font-size: 1em;
    z-index: 3;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 0.8em;
    margin: 2px 0px 5px 0px;
    background: #4682b4;
    border-style: hidden;
}

.close_btn_tell {
    cursor: pointer;
    font-size: 1.2em;
    z-index: 3;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 8px;
    padding: 5px 10px;
    margin: 2px 0px 5px 0px;
    background: #4682b4;
    border-style: hidden;
}

.history_close {
    cursor: pointer;
    font-size: 0.8em;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 6px;
    padding: 3px 10px;
    background: #4682b4;
    border-style: hidden;
}

.tensaku_close {
    cursor: pointer;
    font-size: 0.9em;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 2px;
    padding: 1px 2px;
    background: #b1b1b2;
    border-style: hidden;
}

#correct_yaku {
    text-align: left;
}

#history {
    margin: 0 auto;
    text-align: center;
    width: fit-content;
    font-size: 0.9em;
    font-weight: bold;
    margin-top: 2px;
    margin-bottom: 5px;
    background-color: #4682b4;
    color: #FFF;
    padding: 1px 10px;
    border-radius: 100px;
}

.your_comment {
    color: darkgreen;
    font-weight: bold;
}

.history_contents {
    padding: 5px 5px;
    border-radius: 6px;
    border: 1px solid #54685e;
    background-color: #FFF;
    overflow-y: auto;
}

@media screen and (max-width: 768px) {
    .history_contents {
        max-height: 220px;
    }
}

@media screen and (min-width: 769px) {
    .history_contents {
        max-height: 220px;
    }
}

.each_word {
    padding-left: 7px;
    color: #2a657b;
}

.each_word input[type="checkbox"] {
    margin-right: 2px;
}

#word_list {
    margin-top: 5px;
}

.popup {
    text-align: center;
    display: none;
    position: fixed;
    bottom: 70px;
    right: 20px;
    z-index: 97;
    border: 2px solid #85b0c9;
    background-color: #f1f1f1;
    padding: 4px;
    border-radius: 15px;
    color: #FFF;
    font-size: 0.9em;
    font-weight: bolder;
    width: fit-content;
    height: fit-content;
    background-color: #2c8caf;
    box-shadow: 0px 2px 2px 1px #bebebe;
}

.popup {
    text-align: center;
    display: none;
    position: fixed;
    right: 20px;
    z-index: 97;
    border: 2px solid #85b0c9;
    background-color: #f1f1f1;
    padding: 4px;
    border-radius: 15px;
    color: #FFF;
    font-size: 0.9em;
    font-weight: bolder;
    width: fit-content;
    height: fit-content;
    background-color: #2c8caf;
    box-shadow: 0px 2px 2px 1px #bebebe;
}

@media screen and (max-width: 768px) {
    .popup {
        bottom: 5px;
    }
}

@media screen and (min-width: 769px) {
    .popup {
        bottom: 70px;
    }
}

@media screen and (max-width: 768px) {
    .tango_cho {
        font-size: 0.9em;
    }
}

@media screen and (min-width: 769px) {
    .tango_cho {
        font-size: 0.9em;
    }
}

@media screen and (max-width: 768px) {
    .eitango {
        margin-right: 3px;
        font-size: 1.4em;
        margin-top: 45px;
    }
    .jptango {
        margin-top: 20px;
        font-size: 1.3em;
        margin-bottom: 50px;
    }
}

@media screen and (min-width: 769px) {
    .eitango {
        margin-right: 3px;
        font-size: 1.4em;
        margin-top: 40px;
    }
    .jptango {
        margin-top: 20px;
        font-size: 1.3em;
        margin-bottom: 20px;
    }
}

.tango {
    width: 60px;
    height: auto;
}


/* SP吹き出し*/

.bubble04 {
    position: relative;
    display: inline-block;
    width: fit-content;
    width: 250px;
    word-break: break-all;
    text-align: left;
    color: #FFF;
    padding: 9px;
    margin-left: 10px;
    background-color: #488aa0;
    border-radius: 12px;
}

.bubble04:before {
    content: '';
    position: absolute;
    display: block;
    border-style: solid;
    border-color: transparent #488aa0;
    border-width: 10px 10px 10px 0;
    top: 50%;
    left: -10px;
    margin-top: -10px;
}

@media (min-width: 769px) {
    /* left side */
    .bubble04 {
        position: relative;
        display: inline-block;
        width: fit-content;
        width: 250px;
        word-break: break-all;
        text-align: left;
        color: #FFF;
        padding: 9px;
        margin-left: 10px;
        background-color: #488aa0;
        border-radius: 12px;
    }
    .bubble04:before {
        content: '';
        position: absolute;
        display: block;
        border-style: solid;
        border-color: transparent #488aa0;
        border-width: 10px 10px 10px 0;
        top: 50%;
        left: -10px;
        margin-top: -10px;
    }
}

@media screen and (max-width: 768px) {
    .kessai {
        text-align: left;
        padding-left: 8px;
        padding-right: 8px;
    }
}

@media screen and (min-width: 769px) {
    .kessai {
        text-align: left;
        padding-left: 12px;
        padding-right: 12px;
    }
}

.kessai a {
    color: black;
}

.kessai a:visited {
    color: black;
}

@media screen and (max-width: 768px) {
    .faq_content {
        width: 100%;
        background-color: #FFF;
        border-radius: 6px;
        margin-bottom: 10px;
    }
}

@media screen and (min-width: 769px) {
    .faq_content {
        margin: 0 auto;
        width: 50%;
        background-color: #FFF;
        border-radius: 6px;
        margin-bottom: 10px;
    }
}

.more {
    font-size: 1em;
    cursor: pointer;
    font-weight: bold;
    color: #535151;
    margin-top: 10px;
    text-decoration: underline;
}

.more_news_btn {
    text-align: center;
    font-size: 1em;
    cursor: pointer;
    font-weight: bold;
    color: #535151;
    margin-top: 10px;
    text-decoration: underline;
}

.more_dantai_btn {
    text-align: center;
    font-size: 1em;
    cursor: pointer;
    font-weight: bold;
    color: #535151;
    text-decoration: underline;
}

.more_dantai_btn_red {
    text-align: center;
    font-size: 1em;
    cursor: pointer;
    font-weight: bold;
    color: #D91718;
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    .mike_access {
        text-align: center;
        width: 70%;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .mike_access {
        text-align: center;
        width: 350px;
        height: auto;
    }
}

.setting_icon {
    margin-top: 4px;
    width: 50px;
    height: auto;
}

@media screen and (max-width: 768px) {
    .setting_iphone {
        width: 80%;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .setting_iphone {
        width: 432px;
        height: auto;
    }
}

.total_all_text_box {
    text-align: center;
}

.total_all_text {
    font-size: 2em;
    color: #a61f1f;
    font-weight: bold;
}

.total_all_text_ave {
    font-size: 2em;
    color: #a61f1f;
    font-weight: bold;
}

.total_all_study1 {
    font-size: 2em;
    color: #a61f1f;
    font-weight: bold;
}

.total_all_study2 {
    font-size: 2em;
    color: #a61f1f;
    font-weight: bold;
}

.total_all_text_kaiwa {
    font-size: 2em;
    color: #a61f1f;
    font-weight: bold;
}

.total_all_text2 {
    font-size: 1em;
    font-weight: bold;
    color: #434547;
}

#total_all_text {
    margin-top: 20px;
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.total_all_text_parts {
    margin-top: 20px;
    width: 100%;
    background-color: #FFF;
    border-radius: 6px;
}

.speakL_data {
    text-align: center;
    font-size: 1.1em;
    color: #525050;
    margin-top: 10px;
    margin-bottom: 10px;
}

#one_point_loading {
    margin: 0 auto;
}

.one_point_loading {
    text-align: center;
    width: 40px;
    height: auto;
}

.left {
    padding-left: 8px;
    padding-right: 8px;
    text-align: left;
}

@media screen and (max-width: 768px) {
    .bigger_text {
        position: absolute;
        bottom: 40px;
        left: 50%;
        /* 横方向の中央配置 */
        transform: translateX(-50%);
        /* 横方向の中央配置 */
        font-size: 1em;
        font-weight: bold;
        color: #4b6b85;
    }
}

@media screen and (min-width: 769px) {
    .bigger_text {
        position: absolute;
        bottom: 80px;
        left: 50%;
        /* 横方向の中央配置 */
        transform: translateX(-50%);
        /* 横方向の中央配置 */
        font-size: 1.4em;
        font-weight: bold;
        color: #4b6b85;
    }
}

@media screen and (max-width: 768px) {
    .pub_said {
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    .pub_said {
        text-align: center;
    }
}

#button4.inverted {
    color: #ff1493;
    background-color: #FFF;
}

.onoff_btm {
    margin-bottom: 10px;
}

.advice_collect {
    color: #a52a2a;
    text-align: left;
    font-weight: bold;
}

.store {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0 auto;
}

.app_store {
    max-width: 40%;
    height: auto;
}

.store_text {
    padding-left: 5px;
    padding-right: 5px;
    margin-top: 15px;
    font-size: 0.9em;
}

.store_text a {
    color: black;
}

.store_text a:visited {
    color: black;
}

.custom-swal-qr {
    max-width: 80%;
}

.qr_code {
    text-align: center;
}

.apps {
    text-align: center;
}

a.apple_link,
a.apple_link:visited {
    color: black;
}

.apple_link {
    text-decoration: underline;
}

.dantai {
    text-align: left;
    width: fit-content;
    margin: 0 auto;
    padding-left: 5px;
    padding-right: 5px;
    padding-left: 20xp;
}

.thinking {
    display: none;
    height: 6px;
    width: auto;
}

.clo {
    width: 20px;
    height: 20px;
}

#accent_skip {
    font-weight: bold;
    font-size: 1.1em;
    padding: 5px 8px;
    cursor: pointer;
    border-radius: 6px;
    border-color: #728e1f;
    width: fit-content;
    color: #FFF;
    background: #728e1f;
    box-shadow: none;
    border: none;
}

#accent_result {
    font-size: 1.3em;
    color: #308aaa;
    font-weight: bold;
}

#button2_accent {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 12px;
    height: 50px;
    font-size: 1em;
    background-color: #576676;
    font-weight: 700;
}

#accent_nigate {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 12px;
    height: 50px;
    font-size: 1.1em;
    background-color: #b22222;
    font-weight: 700;
}

#button3_accent {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 12px;
    height: 50px;
    font-size: 1.1em;
    background-color: #ff1493;
    font-weight: 700;
}

#top_menu {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 25px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 5px 12px;
    height: 50px;
    font-size: 1em;
    background-color: #576676;
    font-weight: 700;
}

#start_accent {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 50%;
    border-style: hidden;
    padding: 5px 12px;
    height: 100px;
    width: 100px;
    font-size: 1.1em;
    background-color: #ff1493;
    font-weight: 700;
}

#stop_accent {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 50%;
    border-style: hidden;
    padding: 5px 12px;
    height: 100px;
    width: 100px;
    font-size: 1.1em;
    background-color: #ca3309;
    font-weight: 700;
}

#accent_ok {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    height: 40px;
    font-size: 1.2em;
    background-color: #ff1493;
    font-weight: 700;
}

#accent_skip {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    height: 40px;
    font-size: 1.2em;
    background-color: #728e1f;
    font-weight: 700;
}

#accent_result {
    font-size: 1.3em;
    color: #308aaa;
    font-weight: bold;
}

.speak_turn {
    text-align: center;
    height: 25px;
    width: auto;
}

.speak_turn_box {
    height: 25px;
}

.for_member {
    text-align: left;
}

.voicetalk {
    width: 100%;
    margin-bottom: 15px;
}

.header_ani {
    position: relative;
    text-align: center;
    background: linear-gradient(60deg, rgba(146, 170, 198, 1) 0%, rgba(0, 172, 193, 1) 100%);
    color: white;
}

.inner-header {
    height: 100vh;
    width: 100%;
    margin: 0;
    padding: 0;
}

.flex {
    /*Flexbox for containers*/
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.waves {
    position: relative;
    width: 100%;
    height: 15vh;
    margin-bottom: -7px;
    /*Fix for safari gap*/
    min-height: 100px;
    max-height: 150px;
}


/* Animation */

.parallax>use {
    animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}

.parallax>use:nth-child(1) {
    animation-delay: -2s;
    animation-duration: 7s;
}

.parallax>use:nth-child(2) {
    animation-delay: -3s;
    animation-duration: 10s;
}

.parallax>use:nth-child(3) {
    animation-delay: -4s;
    animation-duration: 13s;
}

.parallax>use:nth-child(4) {
    animation-delay: -5s;
    animation-duration: 20s;
}

@keyframes move-forever {
    0% {
        transform: translate3d(-90px, 0, 0);
    }
    100% {
        transform: translate3d(85px, 0, 0);
    }
}


/*Shrinking for mobile*/

@media (max-width: 768px) {
    .waves {
        height: 60px;
        min-height: 60px;
    }
}

.red2 {
    background: #D91718;
}

.basic_menu_roll {
    padding: 0;
    width: 100%;
    margin: 0 auto;
}

.lesson_msg {
    font-size: 1em;
    text-align: left;
    color: #244058;
}

.next {
    margin-top: 0px;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    color: #fff;
    border-radius: 6px;
    border-style: hidden;
    padding: 10px 10px;
    background-color: #ff1493;
    font-weight: 700;
    font-size: 1.1em;
    margin-bottom: 10px;
}

.active-button2 {
    background-color: #89B700;
}

#basic_setsumon {
    font-size: 1em;
    text-align: left;
}

.teacher_text {
    font-weight: bold;
    color: #6e9657;
}

.mohan_text {
    font-weight: bold;
    color: #4d4f4c;
    font-size: 0.9em;
}

.Your_sentence {
    font-weight: bold;
    color: #6495ed;
}

#chart01 {
    pointer-events: none;
}

#ok_button.inverted {
    color: #FFF;
    background-color: #6b84b3;
}

.Level_tittle {
    text-align: center;
    font-size: 0.9em;
    color: #2a657b;
    font-weight: bold;
}

.app_for_sm {
    margin-top: 5px;
}

@media screen and (max-width: 768px) {
    .group_nagara {
        font-size: 0.9em;
        color: #566a90;
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    .group_nagara {
        font-size: 0.9em;
        color: #566a90;
        text-align: center;
    }
}

.yajirushi {
    color: #89B700;
    padding-left: 3px;
    padding-right: 3px;
    font-weight: bold;
}

#mailtext_group {
    padding: 4px;
}

@media screen and (max-width: 768px) {
    #niyou_group {
        padding: 4px;
        font-size: 1em;
        width: 95%;
    }
}

@media screen and (min-width: 769px) {
    #niyou_group {
        padding: 4px;
        font-size: 1em;
        width: 75%;
    }
}

.group_toiawase {
    margin: 0 auto;
    text-align: center;
    font-weight: bold;
    font-size: 1em;
    padding: 5px 20px;
    cursor: pointer;
    border-radius: 4px;
    cursor: pointer;
    border-color: #728e1f;
    width: 120px;
    color: #FFF;
    background: #728e1f;
    margin-bottom: 15px;
}

.Email_address {
    font-weight: bold;
    color: #566a90;
}

@media screen and (max-width: 768px) {
    .student_data {
        margin: 0 auto;
        width: 100%;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .student_data {
        margin: 0 auto;
        width: 100%;
        height: auto;
    }
}

.check_link {
    font-weight: bold;
    color: #2c8caf;
}

.bamen {
    background-color: #FFF;
    border-radius: 6px;
    padding: 10px;
}

.bamen_btn {
    text-align: center;
    border: none;
    padding: 5px 10px;
    margin-top: 3px;
    margin-right: 5px;
    margin-bottom: 8px;
    font-size: 0.9em;
    cursor: pointer;
    border-radius: 6px;
    width: fit-content;
    color: #FFF;
    font-weight: bold;
    background-color: #576676;
}

@media screen and (max-width: 768px) {
    .bamen_btn {
        padding: 5px 10px;
    }
}

@media screen and (min-width: 769px) {
    .bamen_btn {
        padding: 10px 15px;
    }
}

#textInput {
    border-radius: 5px;
    font-weight: bold;
    line-height: 1.2em;
    width: 90%;
    font-size: 1em;
    color: #FFF;
    margin: 0 auto;
    background: #253256;
}

#textInput_bamen {
    padding-left: 5px;
    padding-top: 5px;
    border-radius: 5px;
    line-height: 1.2em;
    width: 99%;
    font-size: 1em;
    margin: 0 auto;
    background: #FFF;
    border: 1px solid #54685e;
}

.button-container_bamen {
    display: flex;
    justify-content: center;
}

.send_bamen,
.send_bamen_close {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px;
    font-weight: bold;
    font-size: 1em;
    padding: 5px 15px;
    cursor: pointer;
    border-radius: 6px;
    width: fit-content;
    color: #FFF;
    background: #413e3f;
    margin-right: 10px;
    /* ボタン間の間隔 */
}

#current_lesson {
    font-weight: bold;
    color: #324d72;
}

.small_text3 {
    text-align: center;
    font-size: 0.8em;
}

.small_text3_left {
    text-align: left;
    font-size: 0.8em;
}

@media screen and (max-width: 768px) {
    .small_text3_center_left {
        text-align: left;
        font-size: 0.8em;
    }
}

@media screen and (min-width: 769px) {
    .small_text3_center_left {
        text-align: center;
        font-size: 0.8em;
    }
}

.reloclub {
    font-size: 1.2em;
    color: #a52a2a;
    font-weight: bold;
    margin-bottom: 15px;
}

@media screen and (max-width: 768px) {
    .alisa_rest_overlay {
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.9);
        z-index: 3;
    }
}

@media screen and (min-width: 769px) {
    .alisa_rest_overlay {
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 384px;
        height: 240px;
        background: rgba(0, 0, 0, 0.9);
        z-index: 3;
    }
}

@media screen and (max-width: 768px) {
    .zoon2 {
        position: absolute;
        width: fit-content;
        top: 1%;
        right: 0%;
        font-size: 0.9em;
        color: #FFF;
        font-weight: bold;
        text-align: right;
        width: 25px;
        height: auto;
        z-index: 4;
    }
}

@media screen and (min-width: 769px) {
    .zoon2 {
        position: absolute;
        width: fit-content;
        top: -2%;
        right: -3%;
        font-size: 0.9em;
        color: #FFF;
        font-weight: bold;
        text-align: right;
        width: 25px;
        height: auto;
        z-index: 4;
    }
}

.q_speaker2 {
    margin-top: 2px;
    cursor: pointer;
    width: 30px;
    height: 30px;
}

#q_speaker2 {
    text-align: center;
}


/* イコライザー風アニメーションの基本スタイル */

.talking_tell {
    display: inline-block;
    width: 2px;
    height: 10px;
    background: #ff6347;
    margin: 0 5px;
    animation: equalize 0.8s infinite ease-in-out;
    transform-origin: bottom;
}


/* アニメーションの高さをカスタマイズ */

@keyframes equalize {
    0%,
    100% {
        transform: scaleY(1);
    }
    50% {
        transform: scaleY(4);
    }
    /* 2倍の高さまで伸ばす */
}

.talking_tell:nth-child(1) {
    animation: equalize1 0.7s infinite ease-in-out;
}

.talking_tell:nth-child(2) {
    animation: equalize2 0.8s infinite ease-in-out;
}

.talking_tell:nth-child(3) {
    animation: equalize3 0.9s infinite ease-in-out;
}

.talking_tell:nth-child(4) {
    animation: equalize4 0.6s infinite ease-in-out;
}

.talking_tell:nth-child(5) {
    animation: equalize3 0.5s infinite ease-in-out;
}

.talking_tell:nth-child(6) {
    animation: equalize2 0.3s infinite ease-in-out;
}

.talking_tell:nth-child(7) {
    animation: equalize1 0.7s infinite ease-in-out;
}

@keyframes equalize1 {
    0%,
    100% {
        transform: scaleY(0.5);
    }
    /* 最も低い */
    50% {
        transform: scaleY(1);
    }
}

@keyframes equalize2 {
    0%,
    100% {
        transform: scaleY(0.75);
    }
    /* 低い */
    50% {
        transform: scaleY(1.5);
    }
}

@keyframes equalize3 {
    0%,
    100% {
        transform: scaleY(1);
    }
    /* 中間の高さ */
    50% {
        transform: scaleY(2);
    }
}

@keyframes equalize4 {
    0%,
    100% {
        transform: scaleY(1.25);
    }
    /* 最も高い */
    50% {
        transform: scaleY(2.5);
    }
}


/* それぞれのバーにアニメーションを適用 */

.talking_tell:nth-child(1),
.talking_tell:nth-child(7) {
    animation-name: equalize1;
}

.talking_tell:nth-child(2),
.talking_tell:nth-child(6) {
    animation-name: equalize2;
}

.talking_tell:nth-child(3),
.talking_tell:nth-child(5) {
    animation-name: equalize3;
}

.talking_tell:nth-child(4) {
    animation-name: equalize4;
}

.text_honyaku_tell {
    padding-top: 0px;
    display: flex;
    justify-content: center;
    text-align: center;
    height: 8px;
}

.online-status {
    display: flex;
    align-items: center;
}

.online-indicator {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #4c7894;
    animation: blinkAnimation 1.5s infinite;
}

.online-line {
    flex-grow: 1;
    height: 2px;
    background-color: #4c7894;
    margin: 0 10px;
}

@keyframes blinkAnimation {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.1;
    }
}

.online-status_parent {
    margin: 0 auto;
    width: 40%;
}

.tell {
    padding-left: 4px;
    width: 40px;
    height: auto;
}

.tell_icon {
    padding-left: 4px;
    width: 30px;
    height: auto;
}

.checkmark009 {
    padding-right: 5px;
    padding-left: 24px;
    position: relative;
}

.checkmark009:before,
.checkmark009:after {
    content: "";
    display: block;
    position: absolute;
}

.checkmark009:before {
    width: 1.1em;
    height: 1.1em;
    border-radius: 0.7em;
    background: #14ba17;
    border: 1px solid #14ba17;
    left: 0;
    top: 0.1em;
}

.checkmark009:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 0.5em;
    height: 0.3em;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 0.3em;
    top: 0.4em;
}

.checkmark010 {
    padding-right: 5px;
    padding-left: 24px;
    position: relative;
}

.checkmark010:before,
.checkmark010:after {
    content: "";
    display: block;
    position: absolute;
}

.checkmark010:before {
    width: 1.1em;
    height: 1.1em;
    border-radius: 0.7em;
    background: #b6409a;
    border: 1px solid #b6409a;
    left: 0;
    top: 0.1em;
}

.checkmark010:after {
    border-left: 3px solid #FFF;
    border-bottom: 3px solid #FFF;
    width: 0.5em;
    height: 0.3em;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 0.3em;
    top: 0.4em;
}

.checkbox-auto-correct {
    margin-top: 8px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-bottom: 5px;
}

.jidou {
    color: #464c5a;
}

.checkbox-auto-correct label {
    margin-left: 5px;
}

.info_awesome {
    color: #c0bcb7;
    font-size: 1.1em;
    padding-left: 2px;
}

.checkbox-auto-correct input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 20px;
    height: 20px;
    border: 2px solid #ccc;
    border-radius: 4px;
    background-color: white;
    outline: none;
    cursor: pointer;
}

.checkbox-auto-correct input[type="checkbox"]:checked {
    background-color: #4a83b2;
    border-color: #4a83b2;
}

.checkbox-auto-correct input[type="checkbox"]:checked::before {
    content: "\2713";
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
    line-height: 20px;
    color: white;
    font-size: 14px;
}

@media screen and (max-width: 768px) {
    .accent_sample {
        text-align: left;
        color: rgb(68, 69, 68);
        font-weight: bold;
    }
    .accent_users {
        text-align: left;
        font-weight: bold;
    }
    .accent_result_kao {
        font-size: 1.1em;
    }
}

@media screen and (min-width: 769px) {
    .accent_sample {
        text-align: left;
        color: rgb(68, 69, 68);
        font-weight: bold;
    }
    .accent_users {
        text-align: left;
        font-weight: bold;
    }
    .accent_result_kao {
        font-size: 1.1em;
    }
}

.now_in {
    font-size: 1.1em;
    color: #ff1493;
}

.pdf {
    font-size: 1.1em;
    font-weight: bold;
    text-decoration: underline;
    color: #89B700;
    cursor: pointer;
}

.hatsuon-button {
    font-size: 0.8em;
    cursor: pointer;
    display: inline-block;
    margin-top: 5px;
    color: #fff;
    border-radius: 8px;
    border-style: hidden;
    padding: 2px 3px;
    height: fit-content;
}

.level2 {
    background-color: #89B700;
    -webkit-box-shadow: 0 5px 0 #668606;
    box-shadow: 0 5px 0 #668606;
}

.level1 {
    background-color: #FF9900;
    -webkit-box-shadow: 0 5px 0 #d98507;
    box-shadow: 0 5px 0 #d98507;
}

.level3 {
    background-color: #00bfff;
    -webkit-box-shadow: 0 5px 0 #0783ad;
    box-shadow: 0 5px 0 #0783ad;
}

.popup_alisa {
    cursor: pointer;
    text-align: center;
    position: fixed;
    left: 30px;
    z-index: 97;
    width: 60px;
    height: 60px;
    background-color: transparent;
}

@media screen and (max-width: 768px) {
    .popup_alisa {
        bottom: 31px;
    }
}

@media screen and (min-width: 769px) {
    .popup_alisa {
        bottom: 97px;
    }
}

.popup_alisa_level {
    cursor: pointer;
    text-align: center;
    position: fixed;
    left: 5px;
    z-index: 97;
    background-color: transparent;
}

@media screen and (max-width: 768px) {
    .popup_alisa_level {
        bottom: 8px;
    }
}

@media screen and (min-width: 769px) {
    .popup_alisa_level {
        bottom: 70px;
    }
}

@keyframes float_teddy {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
    100% {
        transform: translateY(0px);
    }
}

.popup_alisa {
    animation: float_teddy 3s ease-in-out infinite;
}

.hatsuon-button-a {
    font-size: 0.8em;
    cursor: pointer;
    display: inline-block;
    margin-top: 5px;
    color: #fff;
    border-radius: 8px;
    border-style: hidden;
    padding: 2px 3px;
    height: fit-content;
}

.level1-a {
    background-color: #FF9900;
    -webkit-box-shadow: 0 5px 0 #d98507;
    box-shadow: 0 5px 0 #d98507;
    margin-right: 3px;
}

.level2-a {
    background-color: #89B700;
    -webkit-box-shadow: 0 5px 0 #759908;
    box-shadow: 0 5px 0 #759908;
    margin-right: 3px;
}

.level3-a {
    background-color: #00bfff;
    -webkit-box-shadow: 0 5px 0 #09a9df;
    box-shadow: 0 5px 0 #09a9df;
    margin-right: 3px;
}

.teddy_icon {
    padding-left: 4px;
    width: 30px;
    height: auto;
}

.alertbook {
    width: 80%;
    max-width: 600px;
    height: auto;
}

.sound_equalizer {
    z-index: 5;
    position: absolute;
    bottom: 0%;
    right: 0%;
    left: 0%;
    height: 50px;
    display: none;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 3px;
    width: 100%;
    height: 100px;
    padding: 1px;
    border-radius: 10px;
    overflow: hidden;
}

.equalizer_bar {
    width: 8px;
    background-color: #a9a9a9;
    height: 20%;
    transition: height 0.1s ease-out;
}


/* 動きをランダム化するために異なる遅延を設定 */

.equalizer_bar:nth-child(1) {
    animation-delay: 0.1s;
}

.equalizer_bar:nth-child(2) {
    animation-delay: 0.2s;
}

.equalizer_bar:nth-child(3) {
    animation-delay: 0.3s;
}

.equalizer_bar:nth-child(4) {
    animation-delay: 0.4s;
}

.equalizer_bar:nth-child(5) {
    animation-delay: 0.5s;
}


/* アニメーションの定義 */

@keyframes bounce {
    0%,
    100% {
        height: 15%;
    }
    50% {
        height: 100%;
    }
}

.how_to_cancel {
    text-decoration: underline;
    color: #89B700;
    font-weight: bold;
}

.advice_result_anime {
    position: fixed;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 48px;
    font-weight: bold;
    text-align: center;
    z-index: 9999;
    opacity: 0;
    color: #FF9900;
    ;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
    width: 100%;
    pointer-events: none;
}

@keyframes bounce {
    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translate(-50%, -50%);
    }
    40% {
        transform: translate(-50%, -60%);
    }
    60% {
        transform: translate(-50%, -40%);
    }
}

@keyframes glow {
    0% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
    50% {
        text-shadow: 0 0 30px rgba(255, 153, 0, 1);
    }
    100% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
}

.animate-message {
    opacity: 1;
    animation: bounce 1.2s ease-in-out 1, glow 2.0s ease-in-out infinite;
}

.advice_result_anime {
    position: fixed;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 48px;
    font-weight: bold;
    text-align: center;
    z-index: 9999;
    opacity: 0;
    color: #FF9900;
    ;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
    width: 100%;
    pointer-events: none;
}

@keyframes bounce {
    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translate(-50%, -50%);
    }
    40% {
        transform: translate(-50%, -60%);
    }
    60% {
        transform: translate(-50%, -40%);
    }
}

@keyframes glow {
    0% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
    50% {
        text-shadow: 0 0 30px rgba(255, 153, 0, 1);
    }
    100% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
}

.animate-message {
    opacity: 1;
    animation: bounce 1.2s ease-in-out 1, glow 2.0s ease-in-out infinite;
}

.advice_result_anime {
    position: fixed;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 48px;
    font-weight: bold;
    text-align: center;
    z-index: 9999;
    opacity: 0;
    color: #FF9900;
    ;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
    width: 100%;
    pointer-events: none;
}

@keyframes bounce {
    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translate(-50%, -50%);
    }
    40% {
        transform: translate(-50%, -60%);
    }
    60% {
        transform: translate(-50%, -40%);
    }
}

@keyframes glow {
    0% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
    50% {
        text-shadow: 0 0 30px rgba(255, 153, 0, 1);
    }
    100% {
        text-shadow: 0 0 10px rgba(255, 153, 0, 0.7);
    }
}

.animate-message {
    opacity: 1;
    animation: bounce 1.2s ease-in-out 1, glow 2.0s ease-in-out infinite;
}

.advice_result_anime_accent {
    position: fixed;
    top: 20%;
    left: 50%;
    transform: translate(-50%, 0);
    font-size: 19px;
    font-weight: bold;
    text-align: left;
    z-index: 9999;
    opacity: 0;
    color: #66ccff;
    background-color: white;
    padding: 15px 25px;
    border-radius: 10px;
    width: auto;
    max-width: 80%;
    pointer-events: none;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    perspective: 1000px;
}

@media screen and (max-width: 768px) {
    .advice_result_anime_accent {
        font-size: 13px;
    }
}

.advice_result_anime_accent:after {
    content: '';
    position: absolute;
    top: -10px;
    left: 40%;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid white;
}

@keyframes flip3DWithBubble {
    0% {
        transform: translate(-50%, 0) rotateX(90deg);
        opacity: 0;
    }
    25% {
        transform: translate(-50%, 0) rotateX(0deg);
        opacity: 1;
    }
    75% {
        transform: translate(-50%, 0) rotateX(0deg);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, 0) rotateX(-90deg);
        opacity: 0;
    }
}

@keyframes scaleBubble {
    0%,
    100% {
        transform: translate(-50%, 0) scale(1);
    }
    50% {
        transform: translate(-50%, 0) scale(1.1);
    }
}

@keyframes softGlowBubble {
    0%,
    100% {
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
    50% {
        box-shadow: 0 0 15px rgba(102, 204, 255, 0.6);
    }
}

.animate-message-accent {
    opacity: 1;
    animation: flip3DWithBubble 3s ease-in-out 1, softGlowBubble 3s ease-in-out infinite;
}

.animate-message-accent.active {
    animation: flip3DWithBubble 3s ease-in-out 1, scaleBubble 0.5s ease-in-out 0.5s 2, softGlowBubble 3s ease-in-out infinite;
    animation-fill-mode: forwards;
}

.advice_result_anime_visit {
    position: fixed;
    top: 20px;
    right: 10%;
    font-size: 19px;
    font-weight: bold;
    text-align: left;
    z-index: 9999;
    opacity: 0;
    color: #66ccff;
    background-color: white;
    padding: 15px 25px;
    border-radius: 10px;
    width: auto;
    max-width: 80%;
    pointer-events: none;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    perspective: 1000px;
}

@media screen and (max-width: 768px) {
    .advice_result_anime_visit {
        font-size: 13px;
        top: 20px;
        right: 5px;
        max-width: 95%;
    }
    .animate-message-visit,
    .animate-message-visit.active {
        animation: none !important;
        transform: none !important;
        opacity: 1;
    }
}

.advice_result_anime_visit:after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 25%;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid white;
}

@keyframes flip3DWithBubble {
    0% {
        transform: translate(-50%, 0) rotateX(90deg);
        opacity: 0;
    }
    25% {
        transform: translate(-50%, 0) rotateX(0deg);
        opacity: 1;
    }
    75% {
        transform: translate(-50%, 0) rotateX(0deg);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, 0) rotateX(-90deg);
        opacity: 0;
    }
}

@keyframes scaleBubble {
    0%,
    100% {
        transform: translate(-50%, 0) scale(1);
    }
    50% {
        transform: translate(-50%, 0) scale(1.1);
    }
}

@keyframes softGlowBubble {
    0%,
    100% {
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
    50% {
        box-shadow: 0 0 15px rgba(102, 204, 255, 0.6);
    }
}

.animate-message-visit {
    opacity: 1;
    animation: flip3DWithBubble 3s ease-in-out 1, softGlowBubble 3s ease-in-out infinite;
}

.animate-message-visit.active {
    animation: flip3DWithBubble 3s ease-in-out 1, scaleBubble 0.5s ease-in-out 0.5s 2, softGlowBubble 3s ease-in-out infinite;
    animation-fill-mode: forwards;
}

.contents_part {
    width: 95%;
    padding-left: 2%;
}

#user-input6::placeholder {
    color: black;
}

@media screen and (max-width: 768px) {
    .modal2 {
        display: none;
        z-index: 99;
        height: 100vh;
        position: fixed;
        top: 0;
        width: 100%;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .modal_content2 {
        display: none;
        z-index: 99;
        color: #fff;
        background-color: #000;
        border: medium solid #68889e;
        border-radius: 6px;
        text-align: center;
        display: inline-block;
        padding: 10px;
        position: fixed;
        max-height: 90vh;
        width: 90%;
        overflow: auto;
    }
}

@media screen and (min-width: 769px) {
    .modal2 {
        display: none;
        z-index: 99;
        height: 100vh;
        position: fixed;
        top: 0;
        width: 100%;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .modal_content2 {
        display: none;
        z-index: 99;
        color: #fff;
        background-color: #323e58;
        border: medium solid #68889e;
        border-radius: 6px;
        text-align: center;
        display: inline-block;
        padding: 10px;
        position: fixed;
        max-height: 90vh;
        width: 70%;
        overflow: auto;
    }
}

.modal_bg2 {
    display: none;
    z-index: 98;
    background: rgba(52, 53, 54, 0.5);
    height: 100vh;
    position: fixed;
    width: 100%;
}

.modal_content2::-webkit-scrollbar {
    display: none;
}

.mixyaku {
    text-align: left;
}

h2 {
    padding-top: 11px;
    font-weight: bold;
    text-align: center;
    font-size: 1.2em;
    color: #4c7ba1;
}

@media screen and (max-width: 768px) {
    h2 {
        text-align: left;
    }
}

@media screen and (min-width: 769px) {
    h2 {
        text-align: center;
    }
}

.mailtext {
    font-size: 1em;
}

select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("./img/select_yaji.png");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 20px;
}

@media screen and (max-width: 768px) {
    #user-input6 {
        font-size: 1em;
        border-radius: 6px;
        padding-left: 4px;
        padding-right: 4px;
        padding-top: 2px;
        width: 94%;
    }
}

@media screen and (min-width: 769px) {
    #user-input6 {
        font-size: 1.1em;
        border-radius: 6px;
        padding-left: 5px;
        padding-right: 5px;
        padding-top: 5px;
        padding-bottom: 2px;
        width: 85%;
    }
}

.send_btn {
    cursor: pointer;
    margin: 0 auto;
    text-align: center;
    margin-top: 5px;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    height: 55px;
    width: 110px;
    font-size: 1.1em;
    background: #89B700;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 768px) {
    .custom-swal-popup {
        width: 97% !important;
    }
}

@media screen and (min-width: 769px) {
    .custom-swal-popup {
        width: 70% !important;
    }
}

@media screen and (max-width: 768px) {
    .custom-swal-popup2 {
        width: 97% !important;
        font-size: 0.9em !important;
    }
}

@media screen and (min-width: 769px) {
    .custom-swal-popup2 {
        width: 60% !important;
        font-size: 0.9em !important;
    }
}

.custom-swal-title {
    font-size: 1.2em !important;
}

.custom-swal-content {
    max-height: 90vh;
    overflow-y: auto;
}

.my-confirm-button-class {
    background-color: #ff1493;
    color: #ffffff;
}

.kiyaku_pop {
    font-size: 1em;
    color: #4c7ba1;
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    .shukei {
        font-weight: bold;
        font-size: 1.3em;
        text-align: center;
        color: #a61f1f;
        font-weight: bold;
    }
}

@media screen and (min-width: 769px) {
    .shukei {
        font-weight: bold;
        font-size: 1.4em;
        text-align: center;
        color: #a61f1f;
        font-weight: bold;
    }
}

@media screen and (max-width: 768px) {
    .data_text {
        padding-top: 11px;
        font-weight: bold;
        text-align: center;
        font-size: 1em;
        color: #4c7ba1;
    }
}

@media screen and (min-width: 769px) {
    .data_text {
        padding-top: 11px;
        font-weight: bold;
        text-align: center;
        font-size: 1.1em;
        color: #4c7ba1;
    }
}

#button6 {
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.q {
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.q_space {
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.edit {
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.lead {
    padding: 20px;
    text-align: center;
}

.box {
    max-width: 320px;
    width: 100%;
    margin: 0px auto 0px auto;
    padding: 20px;
    background: #fff;
    text-align: center;
    overflow: hidden;
    border-radius: 10px;
}

#chart01 {
    border-radius: 10px;
}

#accent {
    font-size: 1em;
    width: 90px;
    color: #3d3e3f;
    border-radius: 4px;
    padding-left: 5px;
    border-width: 1px;
    border-color: rgb(80, 82, 90);
    background-color: #FFF;
}

#plan-select,
#number-input {
    height: 30px;
    padding-left: 3px;
    border-radius: 4px;
}

#number-input {
    font-size: 1.1em;
    width: 60px;
}

#plan-select {
    padding-left: 6px;
    font-size: 1.1em;
    width: 170px;
    color: #4c7ba1;
    font-weight: bold;
}

.overray {
    position: relative;
}

.modal_bg_x {
    z-index: 100;
    background: #f5f3f3;
    height: 100%;
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
}


/* ロック画面用のスタイル */

#passwordPrompt {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    background-color: #f2f2f2;
}

#passwordInput {
    display: none;
    padding: 10px;
    font-size: 16px;
    margin-right: 10px;
}

#passwordButton {
    display: none;
    padding: 10px 20px;
    background-color: #808080;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.mojisuu {
    color: #4682b4;
    font-weight: bold;
}

.double-strike {
    text-decoration: line-through double;
}

@media screen and (max-width: 768px) {
    .kisokaiwa {
        border: none;
        padding: 5px 10px;
        margin-top: 3px;
        margin-right: 5px;
        margin-bottom: 8px;
        font-size: 0.9em;
        cursor: pointer;
        width: 85%;
        margin-left: 7%;
        border-radius: 6px;
        color: #050a30;
        font-weight: bold;
        text-align: left;
        background: #dbe4ea;
    }
}

@media screen and (min-width: 769px) {
    .kisokaiwa {
        border: none;
        padding: 5px 10px;
        margin-top: 3px;
        margin-right: 5px;
        margin-bottom: 8px;
        font-size: 0.9em;
        cursor: pointer;
        width: 100%;
        border-radius: 6px;
        color: #050a30;
        font-weight: bold;
        text-align: left;
        background: #dbe4ea;
    }
}

.button-text-parent {
    width: fit-content;
    margin: 0 auto;
}

.button-text {
    margin-right: 5px;
    flex-grow: 1;
    color: #050a30;
    text-align: left;
    word-break: break-all;
    box-sizing: border-box;
}

@media screen and (max-width: 768px) {
    .kisokaiwa {
        border: none;
        padding: 5px 10px;
        margin-top: 3px;
        margin-right: 5px;
        margin-bottom: 8px;
        font-size: 0.9em;
        cursor: pointer;
        width: 85%;
        margin-left: 7%;
        border-radius: 6px;
        color: #050a30;
        font-weight: bold;
        text-align: left;
        background: #dbe4ea;
    }
}

@media screen and (min-width: 769px) {
    .kisokaiwa {
        border: none;
        padding: 5px 10px;
        margin-top: 3px;
        margin-right: 5px;
        margin-bottom: 8px;
        font-size: 0.9em;
        cursor: pointer;
        width: 100%;
        border-radius: 6px;
        color: #050a30;
        font-weight: bold;
        text-align: left;
        background: #dbe4ea;
    }
}

.red2 {
    background: #c7ccda;
}

.button-container-start {
    display: flex;
    justify-content: center;
    margin: 0px 0;
}

.basic_q100 {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin: 0 auto;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 22px;
    height: 50px;
    font-size: 1.2em;
    background-color: #28377c;
    font-weight: 700;
}

.main_contents {
    display: none;
}

@media screen and (max-width: 768px) {
    .main_grobal {
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background-color: #ffffd6;
        width: 100%;
        height: auto;
        margin: 0;
        text-align: center;
        font-family: "Arial", sans-serif;
        box-sizing: border-box;
        padding-top: 10px;
        padding-bottom: 10px;
        z-index: 999;
    }
}

@media screen and (min-width: 769px) {
    .main_grobal {
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: auto;
        background-color: #ffffd6;
        margin: 0;
        text-align: center;
        font-family: "Arial", sans-serif;
        box-sizing: border-box;
        padding-top: 10px;
        padding-bottom: 10px;
        z-index: 999;
    }
}

.main_top {
    background-color: #ffffd6;
}


/* main_grobal の分(60px)を引いた高さまで main_top を伸ばす */

.main_top {
    min-height: calc(100svh - 190px);
    display: flex;
}


/* main_top の中を縦積みレイアウトにして、sensei_parent が伸びる土台を作る */

.main_top_info {
    flex: 1;
    display: flex;
    flex-direction: column;
}


/* sensei_parent を「残り領域いっぱい」に伸ばす */

.sensei_parent {
    flex: 1;
    display: flex;
}


/* svh 未対応の保険 */

@supports not (height: 1svh) {
    .main_top {
        min-height: calc(100vh - 190px);
    }
}

.grobal {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

@media screen and (max-width: 768px) {
    .grobal {
        gap: 6px;
        padding: 0 5px;
    }
    .grobal_btn {
        padding: 15px 4px;
        border: none;
        border-radius: 8px;
        font-size: 1em;
        font-weight: bold;
        cursor: pointer;
        color: #000080;
        width: 80px;
        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
        line-height: 1;
    }
}

@media screen and (min-width: 769px) {
    .grobal_btn {
        border: none;
        padding: 15px 12px;
        border-radius: 8px;
        font-size: 1.3em;
        font-weight: bold;
        cursor: pointer;
        color: #000080;
        width: 140px;
        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
    }
}

.space_for_bottom {
    height: 0px;
    width: 100%;
}

.go_to_top_btn {
    width: 100%;
    text-align: center;
    display: none;
    margin-top: 15px;
    margin-bottom: 6px;
}

.go_to_top {
    padding: 5px 8px;
    border: none;
    border-radius: 4px;
    font-size: 0.7em;
    font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'MS Mincho', serif;
    font-weight: bold;
    cursor: pointer;
    color: #000080;
    width: 100px;
    background-color: #fabfa9;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
    transition: transform 0.1s ease-in-out;
    line-height: 1;
}

@media screen and (min-width: 769px) {
    .go_to_top {
        font-size: 0.8em;
    }
}

#lesson_kiso_roll {
    background-color: #bcffff;
}


/* アクティブ状態のスタイル */

#lesson_kiso_roll.active {
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#lesson_kiso_roll.active:active {
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

.small_font {
    font-size: 0.7em;
}

#free_train_btn {
    background-color: #bcffbc;
}


/* アクティブ状態のスタイル */

#free_train_btn.active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#free_train_btn.active:active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#study_record {
    background-color: #ffbcff;
}


/* アクティブ状態のスタイル */

#study_record.active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#study_record.active:active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#mypage {
    background-color: #bcbcff;
    font-weight: bold;
}


/* アクティブ状態のスタイル */

#mypage.active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

#mypage.active:active {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
    border: 2px solid #000080;
}

.btn {
    font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'MS Mincho', serif;
    cursor: pointer;
    display: inline-block;
    text-align: left;
    margin-bottom: 5px;
    color: #fff;
    border-radius: 2px;
    border-style: hidden;
    padding: 5px 7px;
    font-size: 0.8em;
    background-color: #05355f;
    font-weight: 700;
    margin-left: 8px;
    margin-top: -5px;
}

@media screen and (max-width: 768px) {
    .btn_wrap {
        margin-top: 20px;
        text-align: left;
    }
    .level_test_btn {
        display: block;
        margin: 0px auto 0;
        background-color: #ff7f7f;
        color: #FFF;
        font-size: 1rem;
        font-weight: bold;
        padding: 10px 15px;
        border: none;
        border-radius: 14px;
        cursor: pointer;
        margin-bottom: 10px;
        position: relative;
        max-width: calc(100% - 40px);
    }
    .click-guidance {
        position: absolute;
        top: -6px;
        right: -6px;
        background-color: #ffeb3b;
        color: #333;
        font-size: 0.65rem;
        font-weight: bold;
        padding: 2px 5px;
        border-radius: 6px;
        border: 2px solid #ff9800;
        animation: blink 1.5s infinite;
        z-index: 10;
        white-space: nowrap;
        transform-origin: right top;
    }
}

@media screen and (min-width: 769px) {
    .btn_wrap {
        margin-top: 20px;
        text-align: center;
    }
    .level_test_btn {
        display: block;
        margin: 0px auto 0;
        background-color: #ff7f7f;
        color: #FFF;
        font-size: 1.1rem;
        font-weight: bold;
        padding: 15px 25px;
        border: none;
        border-radius: 14px;
        cursor: pointer;
        margin-bottom: 10px;
        position: relative;
        max-width: calc(100% - 60px);
    }
    .click-guidance {
        position: absolute;
        top: -8px;
        right: -8px;
        background-color: #ffeb3b;
        color: #333;
        font-size: 0.75rem;
        font-weight: bold;
        padding: 3px 7px;
        border-radius: 8px;
        border: 2px solid #ff9800;
        animation: blink 1.5s infinite;
        z-index: 10;
        white-space: nowrap;
        transform-origin: right top;
    }
}


/* 点滅アニメーション */

@keyframes blink {
    0%,
    50% {
        opacity: 1;
        transform: scale(1);
    }
    25% {
        opacity: 0.7;
        transform: scale(1.1);
    }
    75% {
        opacity: 0.3;
    }
}

.level_btn_parent {
    width: 100%;
}

@media screen and (max-width: 768px) {
    .level_test_btn_done {
        display: block;
        background-color: #ff7f7f;
        color: #FFF;
        font-size: 0.9em;
        font-weight: bold;
        padding: 7px 10px;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        margin: 0px auto 0;
        margin-bottom: 5px;
        margin-top: 20px;
    }
    .level_btn_parent {
        width: 100%;
        height: 60px;
    }
}

@media screen and (min-width: 769px) {
    .level_test_btn_done {
        display: block;
        margin: 0px auto 0;
        background-color: #ff7f7f;
        color: #FFF;
        font-size: 0.9em;
        font-weight: bold;
        padding: 7px 10px;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        margin-bottom: 5px;
        margin-top: 10px;
    }
}

.header_main_top {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    /* 左：ロゴ／中央：サービス名／右：余白 */
    grid-auto-rows: auto;
    align-items: center;
    padding: 10px 15px;
    gap: 4px;
}

.header_main_top img {
    grid-column: 1;
    justify-self: start;
    /* 左寄せ */
    height: 40px;
}

.service_name {
    grid-column: 2;
    justify-self: center;
    /* 中央 */
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .service_name {
        font-size: 1.1rem;
    }
}


/* 2行目で全幅中央 */

.renzoku {
    grid-column: 1 / -1;
    justify-self: center;
    font-weight: bold;
    white-space: nowrap;
    background-color: #ffbf7f;
    display: inline-block;
    padding: 4px 20px;
    border-radius: 9999px;
    font-weight: bold;
    font-size: 0.9rem;
    white-space: nowrap;
}

.sensei_parent {
    background-image: url('./img/sky.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    /*min-height: 100vh;*/
    min-height: 600px;
    width: 100%;
    position: relative;
}

@media screen and (max-width: 768px) {
    .sensei_parent {
        min-height: 400px;
    }
}

@media screen and (max-width: 768px) {
    .sensei {
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 20px;
        gap: 20px;
        margin: 0 auto;
        position: relative;
        z-index: 1;
    }
}

@media screen and (min-width: 769px) {
    .sensei {
        width: 60%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px;
        gap: 10px;
        margin: 0 auto;
        position: relative;
        z-index: 1;
    }
}

@media screen and (max-width: 768px) {
    .sensei_msg {
        flex: 1;
        font-size: 1.1em;
        font-weight: bold;
        color: #333;
        line-height: 1.5;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .sensei {
        padding: 6px;
        gap: 6px;
    }
    .sensei_img {
        height: 300px;
        width: auto;
        flex-shrink: 0;
    }
}

@media screen and (min-width: 769px) {
    .sensei_msg {
        flex: 1;
        font-size: 1.2rem;
        font-weight: bold;
        color: #333;
        line-height: 1.5;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .sensei_img {
        height: 380px;
        width: auto;
        flex-shrink: 0;
    }
}

@media screen and (max-width: 768px) {
    .header_main_top .logo_ucan {
        width: 80px;
        height: auto;
    }
}

@media screen and (min-width: 769px) {
    .logo_ucan {
        width: 126px;
        height: auto;
    }
}

.kiso_parent {
    background-color: #edffdb;
    min-height: calc(100svh - 60px);
}

@supports not (height: 1svh) {
    .kiso_parent {
        min-height: calc(100vh - 60px);
    }
}

.roll_play {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: center;
    background-color: #bf7fff;
}

.tab_container {
    display: flex;
    justify-content: center;
    gap: 30px;
    align-items: center;
}

.kiso_tab {
    background-color: #edffdb;
    padding: 10px 20px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    cursor: pointer;
    font-size: 1em;
    font-weight: bold;
    border: 2px solid #edffdb;
    transition: transform 0.1s ease-in-out;
}

@media screen and (max-width: 768px) {
    .kiso_tab {
        padding: 6px 20px;
    }
}

.roll_tab {
    background-color: #bf7fff;
    padding: 10px 20px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    cursor: pointer;
    font-weight: bold;
    border: 2px solid #bf7fff;
    transition: transform 0.1s ease-in-out;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .roll_tab {
        padding: 6px 20px;
    }
}

.kiso_tab:hover,
.roll_tab:hover {
    transform: scale(1.02);
}

.kiso_tab:active,
.roll_tab:active {
    transform: scale(0.98);
}

.basic_menu {
    text-align: left;
}

.basic_contents {
    margin-bottom: 20px;
    width: 100%;
}

.basic_q {
    border: none;
    padding: 10px;
    font-size: 0.8em;
    cursor: pointer;
    color: #050a30;
    height: auto;
    background: #FFF;
    font-weight: bold;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border: 2px solid #CCC;
    transition: all 0.3s ease;
    box-sizing: border-box;
    word-wrap: break-word;
    overflow-wrap: break-word;
    display: flex;
    gap: 8px;
    flex-direction: column;
}

.basic_q:hover {
    background: #fff;
    color: #1e90ff;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(5, 10, 48, 0.1);
}

.button-text_roll {
    font-size: 0.9em;
    text-align: center;
    line-height: 1.3;
    white-space: normal;
    display: flex;
    align-items: center;
    text-align: left;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    word-break: break-word;
    min-height: calc(1.3em * 2);
}

@media screen and (max-width: 768px) {
    .basic_q {
        padding: 8px;
        min-height: 45px;
    }
    .button-text_roll {
        font-size: 1em;
        line-height: 1.2;
        min-height: calc(1.2em * 2);
    }
}

@media screen and (min-width: 769px) {
    .basic_q {
        padding: 12px;
        min-height: 55px;
    }
    .button-text_roll {
        font-size: 0.9em;
        line-height: 1.3;
        min-height: calc(1.3em * 2);
    }
}

.let_kiso {
    margin-bottom: 10px;
    text-align: left;
    padding-left: 20px;
    font-weight: bold;
    font-size: 1.3em;
    text-decoration: underline;
}

.let_roll {
    margin-bottom: 10px;
    text-align: left;
    padding-left: 20px;
    font-weight: bold;
    font-size: 1.2em;
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    .let_roll {
        font-size: 1.1em;
    }
    .let_kiso {
        font-size: 1.2em;
    }
}

@media screen and (min-width: 769px) {
    .let_roll {
        font-size: 1.2em;
    }
    .let_kiso {
        font-size: 1.3em;
    }
}

@media screen and (max-width: 768px) {
    .lesson_t {
        margin: 0 auto;
        border-radius: 5px;
        border: 2px solid #CCC;
        background-color: #bcffff;
        font-size: 1.2em;
        font-weight: bold;
        width: 98%;
        text-align: center;
        margin-top: 10px;
        margin-bottom: 10px;
        padding-top: 7px;
        padding-bottom: 7px;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
}

@media screen and (min-width: 769px) {
    .lesson_t {
        margin: 0 auto;
        border-radius: 5px;
        border: 2px solid #CCC;
        background-color: #bcffff;
        font-size: 1.2em;
        font-weight: bold;
        text-align: center;
        margin-top: 10px;
        margin-bottom: 10px;
        padding-top: 7px;
        padding-bottom: 7px;
        width: 60%;
        max-width: 800px;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
}

@media screen and (max-width: 768px) {
    .lesson_tt {
        margin: 0 auto;
        border-radius: 5px;
        border: 2px solid #CCC;
        background-color: #ff7f7f;
        font-size: 1.2em;
        font-weight: bold;
        width: 98%;
        text-align: center;
        margin-top: 10px;
        margin-bottom: 10px;
        padding-top: 7px;
        padding-bottom: 7px;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
}

@media screen and (min-width: 769px) {
    .lesson_tt {
        margin: 0 auto;
        border-radius: 5px;
        border: 2px solid #CCC;
        background-color: #ff7f7f;
        font-size: 1.2em;
        font-weight: bold;
        text-align: center;
        margin-top: 10px;
        margin-bottom: 10px;
        padding-top: 7px;
        padding-bottom: 7px;
        width: 60%;
        max-width: 800px;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
}

.basic_q_lesson88 {
    margin-bottom: 20px;
}

.home_btn {
    height: 40px;
    width: auto;
    cursor: pointer;
    position: absolute;
    right: 10px;
}

.home_btn_container {
    height: 40px;
    width: 60px;
    /* 適切な幅を設定 */
    cursor: pointer;
    position: absolute;
    right: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}


/* 背景画像（元のPNG） */

.home_btn_bg {
    height: 40px;
    width: auto;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}


/* テキスト */

.home_btn_text {
    color: #1780AF;
    font-size: 0.8em;
    font-weight: bold;
    position: relative;
    z-index: 1;
    pointer-events: none;
    /* クリックを背景に透過 */
}

.circle_loading {
    color: #FFF;
    width: 150px;
    height: 150px;
    margin: 75px auto;
    border-radius: 75px;
    background: #2f96bb;
    animation: fuwafuwa 2s infinite;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 1.3em;
}

@keyframes fuwafuwa {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-30px);
    }
    100% {
        transform: translateY(0px);
    }
}

.my_voice {
    width: 100%;
    text-align: center;
}

.my_voice_text {
    background-color: #f5f3f3;
    color: #808080;
    width: fit-content;
    padding-right: 4px;
    padding-left: 4px;
    font-size: 0.9em;
    border-radius: 5px;
    text-align: center;
    position: relative;
    z-index: 2;
    margin: 0 auto;
}

#myVoiceAudio {
    margin-top: -10px;
    height: 30px;
    position: relative;
    z-index: 1;
}

.icon_basic {
    width: 45px;
    height: 45px;
}


/* ---- contain & responsive grid ---- */

.basic_contents {
    max-width: 100%;
    overflow-x: hidden;
}

.button-container-roll {
    display: grid;
    gap: 10px;
    /* 画面幅に応じて自動で列数を増減 */
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    justify-items: stretch;
    padding-left: 10px;
    padding-right: 10px;
}


/* 子の最小幅をゼロにしてはみ出し防止（任意） */

.button-container-roll>* {
    min-width: 0;
}


/* 日本語の改行を許可（keep-allを無効化） */

.button-text_roll {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.4;
}


/* アイコンが最小幅を押し広げないように */

.icon_basic {
    max-width: 70px;
    max-height: auto;
    height: auto;
    width: auto;
    object-fit: contain;
}

@media screen and (min-width: 769px) {
    .icon_basic {
        max-width: 90px;
    }
}

.icon_kiso_div {
    margin-top: 0px;
    width: 100%;
    text-align: center;
}

.icon_basic_kiso {
    margin-bottom: 5px;
    height: 80px;
    width: auto;
}

@media screen and (min-width: 769px) {
    .icon_basic_kiso {
        height: 80px;
        width: auto;
    }
}

.icon_basic_roll {
    margin-bottom: 5px;
    height: 80px;
    width: auto;
    max-width: 100px;
}

@media screen and (min-width: 769px) {
    .icon_basic_roll {
        height: 80px;
        width: auto;
        max-width: 100px;
    }
}

.icon_basic_goal {
    margin-top: -10px;
    margin-bottom: 0px;
    width: 80px;
    height: 80px;
}

.graph-section {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 20px 0;
}

.donut-chart {
    position: relative;
    width: 150px;
    height: 150px;
}

.donut-chart svg {
    transform: rotate(-90deg);
}

.donut-chart .background {
    fill: none;
    stroke: #e0e0e0;
    stroke-width: 12;
}

.donut-chart .progress {
    fill: none;
    stroke: #ff9500;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-dasharray: 0 628;
    animation: donut-animation 2s ease-out forwards;
}


/* 0% のときだけ丸点が出ないようにキャップを角に */

.donut-chart .progress.is-zero {
    stroke-linecap: butt;
}

.percentage-text {
    font: bold 28px sans-serif;
    fill: #333;
}

.donut-chart .percentage {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 28px;
    font-weight: bold;
    color: #333;
    opacity: 0;
    animation: fade-in 0.5s ease-out 1.5s forwards;
}

@media screen and (min-width: 769px) {
    .donut-chart .percentage {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}

.percentage-text {
    font: 700 28px/1 sans-serif;
    transform: rotate(90deg);
    transform-origin: center;
    transform-box: fill-box;
    /* SVGでcenterを効かせる */
}

.kiso .progress {
    stroke: #ffa500;
    animation: donut-animation-kiso 2s ease-out forwards;
}

.roll .progress {
    stroke: #ffa500;
    animation: donut-animation-roll 2s ease-out forwards;
}

@keyframes donut-animation {
    from {
        stroke-dasharray: 0 628;
    }
    to {
        stroke-dasharray: 558 628;
    }
}

@keyframes donut-animation-kiso {
    from {
        stroke-dasharray: 0 628;
    }
    to {
        stroke-dasharray: 25 628;
    }
}

@keyframes donut-animation-roll {
    from {
        stroke-dasharray: 0 628;
    }
    to {
        stroke-dasharray: 38 628;
    }
}

@keyframes fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.chart-label {
    text-align: center;
    margin-top: 10px;
    font-size: 14px;
    color: #666;
}

.sensei_parent_graph {
    border-radius: 8px;
    width: 89%;
    margin: 0 auto 10px auto;
    padding: 20px;
    padding-top: 5px;
    padding-bottom: 0px;
    padding-left: 20px;
    padding-right: 0px;
    display: flex;
    align-items: center;
    gap: 40px;
    margin-left: 10%;
    box-sizing: border-box;
    margin-bottom: 0px;
}

.graph-container {
    flex-shrink: 0;
}

.sensei_graph {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
}

@media screen and (max-width: 768px) {
    .sensei_parent_graph {
        flex-direction: row;
        padding: 10px;
        padding-bottom: 0px;
        gap: 10px;
    }
    /* モバイル用：ドーナッツグラフを小さく */
    .donut-chart {
        width: 100px;
        height: 100px;
        overflow: visible;
    }
    .donut-chart svg {
        width: 150px;
        height: 150px;
        transform: rotate(-90deg) scale(0.67);
        transform-origin: center;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -75px;
        margin-top: -75px;
    }
    .donut-chart .percentage {
        font-size: 18px;
        /* 28pxから18pxに縮小 */
    }
    .sensei_graph {
        justify-content: flex-start;
        gap: 8px;
        /* ギャップを小さく */
    }
    .sensei_msg_graph {
        flex: none;
        font-size: 0.9em;
        /* フォントサイズを小さく */
        font-weight: bold;
        color: #333;
        line-height: 1.4;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 120px;
        /* 最小幅を設定 */
    }
    .sensei_img_graph {
        height: 100px;
        /* 120pxから80pxに縮小 */
        width: auto;
        flex-shrink: 0;
    }
}

@media screen and (min-width: 769px) {
    .sensei_parent_graph {
        flex-direction: row;
    }
    .sensei_graph {
        justify-content: flex-start;
        gap: 30px;
    }
    .sensei_msg_graph {
        flex: none;
        font-size: 1.2rem;
        font-weight: bold;
        color: #333;
        line-height: 1.5;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 200px;
    }
    .sensei_img_graph {
        height: 180px;
        width: auto;
        flex-shrink: 0;
    }
}


/* プログレスバー */

.nobi-box_wq_parent {
    display: none;
    width: 70%;
    margin: 0 auto;
    text-align: center;
}

.nobi-box_wq {
    margin: 0px 0px;
    background-color: #F39;
    border-radius: 5px;
    height: 10px;
    width: 10%;
    position: relative;
    transition: width 0.3s ease;
}

.progress_wq {
    display: flex;
    justify-content: center;
    margin: 10px 0;
}

.progress_wq,
.progress_wq.inji {
    display: grid !important;
    /* 既存の flex を上書き */
    grid-template-columns: repeat(10, auto);
    justify-content: center;
    /* 全体を中央寄せ */
    gap: 8px;
    /* ドット間の隙間（marginの代わり） */
    margin: 10px 0;
    /* 既存と同等 */
}

.progress-dot_wq {
    width: 25px;
    height: 25px;
    border: 4px solid #58524e;
    background-color: #FFF;
    border-radius: 50%;
    margin: 0 5px;
    transition: background-color 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #58524e;
    font-weight: bold;
    font-size: 1.2em;
    line-height: 1;
    user-select: none;
    margin: 0;
}

@media screen and (max-width: 768px) {
    .progress-dot_wq {
        width: 20px;
        height: 20px;
        margin: 0 2px;
        border: 2px solid #58524e;
        font-weight: bold;
        font-size: 0.8em;
        line-height: 1;
    }
}

.progress-dot_wq.active_wq {
    background-color: #33b36c;
}

.progress-dot_wq.completed_wq {
    background-color: #bfdcc1;
}

.teachers_kiso_roll {
    margin-top: 50px;
}


/* ▼ ジグザグ用ラッパー */

.kiso-flow {
    position: relative;
    /* 線用SVGを重ねるため */
    display: flex;
    flex-direction: column;
    /* 1行に1個ずつ縦積み */
    gap: 0px;
    /* ボタンの縦間隔 */
    padding: 1px 100px 1px;
}

@media (max-width: 768px) {
    .kiso-flow {
        /* ボタンの縦間隔 */
        padding: 1px 10px 1px;
    }
}


/* ▼ 線（SVG） */

.kiso-lines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
    z-index: 0;
    /* ボタンの下に */
}

.kiso-lines path.kiso-line {
    stroke: #6b8e23;
    /* 線色（お好みで） */
    stroke-width: 2;
    fill: none;
}

.kiso-lines path.kiso-line--dashed {
    stroke-dasharray: 6 6;
    /* 破線の長さはお好みで */
}


/* ▼ ボタンの見た目は既存を活かしつつ幅だけ指定 */

.kiso-flow .basic_q_kiso {
    z-index: 1;
    /* 線より上に出す */
    width: 180px;
    /* PC基準の横幅（調整可） */
    min-height: 60px;
    background-color: #FFF;
}


/* スマホ時は少し細く（"左右に1個ずつ"の視覚を作る） */


/* 最小スマートフォン（Galaxy Fold等） */

@media (max-width: 361px) {
    .kiso-flow .basic_q_kiso {
        width: 125px;
    }
    .button-text {
        font-size: 0.8em;
    }
}


/* 小さなスマートフォン（iPhone SE等） */

@media (min-width: 362px) and (max-width: 480px) {
    .kiso-flow .basic_q_kiso {
        width: 140px;
    }
}


/* 中サイズのスマートフォン（iPhone 12等） */

@media (min-width: 481px) and (max-width: 600px) {
    .kiso-flow .basic_q_kiso {
        width: 140px;
    }
}


/* 大きなスマートフォン（iPhone Pro Max等） */

@media (min-width: 601px) and (max-width: 768px) {
    .kiso-flow .basic_q_kiso {
        width: 160px;
    }
}

.basic_q_kiso {
    border: 2px solid #ccc;
}


/* ロックされたボタンのスタイル */

.basic_q_kiso.locked {
    background-color: #d3d3d3 !important;
    cursor: not-allowed;
    /* カーソルを禁止マークに */
}


/* ゴールボタンのスタイル */

.basic_q_lesson_goal {
    background-color: #f8f8ff !important;
    cursor: default;
    /* 金色 */
}


/* ロックされたボタンのホバー効果を無効に */

.basic_q_kiso.locked:hover {
    background-color: #d3d3d3 !important;
}


/* 奇数を右、偶数を左へ寄せる（ジグザグ） */

.kiso-flow .basic_q_kiso:nth-child(odd) {
    align-self: flex-end;
    /* 右側 */
}

.kiso-flow .basic_q_kiso:nth-child(even) {
    align-self: flex-start;
    /* 左側 */
}


/* 点滅ボーダーのアニメーション */

@keyframes borderBlink {
    0% {
        border-color: #ff6b6b;
    }
    50% {
        border-color: #ccc;
    }
    100% {
        border-color: #ff6b6b;
    }
}


/* 点滅クラス */

.basic_q_kiso.blinking {
    animation: borderBlink 1s infinite;
    border-width: 3px;
    /* 少し太くして目立たせる */
}

@keyframes borderBlinkBright {
    0% {
        border-color: #ff4444;
        box-shadow: 0 0 10px rgba(255, 68, 68, 0.5);
    }
    50% {
        border-color: #ccc;
        box-shadow: none;
    }
    100% {
        border-color: #ff4444;
        box-shadow: 0 0 10px rgba(255, 68, 68, 0.5);
    }
}


/* 行間を詰める */

.kiso-flow {
    gap: 1px;
    /* 例: 16px → 10px（お好みで 6～12px） */
    padding-bottom: 1px;
    /* 余白も少し詰めるなら調整 */
}


/* 既存の margin-bottom などを打ち消す＆高さを少し低く */

.kiso .kiso-flow .basic_q_kiso {
    margin: 0;
    /* 既存に margin があればゼロに */
    min-height: 62px;
    /* 例: 60px → 52px（48px までOK目安） */
    padding-top: 1px;
    /* 文字が窮屈なら適宜調整 */
    padding-bottom: 1px;
}


/* スマホはさらに詰める */

@media (max-width: 768px) {
    .kiso-flow {
        gap: 8px;
    }
    .kiso .kiso-flow .basic_q_kiso {
        min-height: 30px;
        padding-top: 1px;
        padding-bottom: 1px;
    }
}

.basic_q_lesson_goal {
    margin-bottom: 20px;
}


/* レンガ状に重ねる設定 */

.kiso-flow .basic_q_kiso:not(:first-child) {
    margin-top: -50px;
    /* ボタンの高さの約半分を負のマージンで重ねる */
}


/* ボタンに番号を付ける */

.kiso-flow .basic_q_kiso {
    position: relative;
    /* 番号の絶対配置のため */
}


/* 番号の基本スタイル */

.kiso-flow .basic_q_kiso::before {
    content: counter(lesson-counter);
    counter-increment: lesson-counter;
    position: absolute;
    top: -10px;
    left: -7px;
    background-color: #9acd32;
    color: #FFF;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    /* 丸い背景 */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    z-index: 10;
}


/* スマホ時の調整 */

@media (max-width: 768px) {
    .kiso-flow .basic_q_kiso::before {
        width: 20px;
        height: 20px;
        font-size: 12px;
        top: -9px;
        left: -7px;
    }
}


/* カウンターの初期化 */

.kiso-flow {
    counter-reset: lesson-counter;
}


/* ゴールボタンには番号を付けない */

.basic_q_lesson_goal::before {
    display: none;
}

.hide-before::before {
    display: none !important;
}


/* より具体的な指定で各ボタンに番号を設定（フォールバック） */

.basic_q_lesson1::before {
    content: "1";
}

.basic_q_lesson2::before {
    content: "2";
}

.basic_q_lesson3::before {
    content: "3";
}

.basic_q_lesson4::before {
    content: "4";
}

.basic_q_lesson5::before {
    content: "5";
}

.basic_q_lesson6::before {
    content: "6";
}

.basic_q_lesson7::before {
    content: "7";
}

.basic_q_lesson8::before {
    content: "8";
}

.basic_q_lesson9::before {
    content: "9";
}

.basic_q_lesson10::before {
    content: "10";
}

.basic_q_lesson11::before {
    content: "11";
}

.basic_q_lesson12::before {
    content: "12";
}

.basic_q_lesson13::before {
    content: "13";
}

.basic_q_lesson14::before {
    content: "14";
}

.basic_q_lesson15::before {
    content: "15";
}

.basic_q_lesson16::before {
    content: "16";
}

.basic_q_lesson17::before {
    content: "17";
}

.basic_q_lesson18::before {
    content: "18";
}

.basic_q_lesson19::before {
    content: "19";
}

.basic_q_lesson20::before {
    content: "20";
}

.basic_q_lesson21::before {
    content: "21";
}

.basic_q_lesson22::before {
    content: "22";
}

.basic_q_lesson23::before {
    content: "23";
}

.basic_q_lesson24::before {
    content: "24";
}

.basic_q_lesson25::before {
    content: "25";
}

.basic_q_lesson26::before {
    content: "26";
}

.basic_q_lesson27::before {
    content: "27";
}

.basic_q_lesson28::before {
    content: "28";
}

.basic_q_lesson29::before {
    content: "29";
}

.basic_q_lesson30::before {
    content: "30";
}

.basic_q_lesson31::before {
    content: "31";
}

.basic_q_lesson32::before {
    content: "32";
}

.basic_q_lesson33::before {
    content: "33";
}

.basic_q_lesson34::before {
    content: "34";
}

.basic_q_lesson35::before {
    content: "35";
}

.basic_q_lesson36::before {
    content: "36";
}

.basic_q_lesson37::before {
    content: "37";
}

.basic_q_lesson38::before {
    content: "38";
}

.basic_q_lesson39::before {
    content: "39";
}

.basic_q_lesson40::before {
    content: "40";
}

.basic_q_lesson41::before {
    content: "41";
}

.basic_q_lesson42::before {
    content: "42";
}

.basic_q_lesson43::before {
    content: "43";
}

.roll_btns_area {
    padding-top: 60px;
    max-height: none;
    margin-top: 0px;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

@media (max-width: 768px) {
    .roll_btns_area {
        padding-top: 60px;
        max-height: none;
    }
}

.roll_btns_area::-webkit-scrollbar {
    display: none;
}

.basic_nigate_parent {
    width: 100%;
    text-align: center;
}

.basic_nigate {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 0px;
    color: #FFF;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    font-size: 1em;
    background-color: #4682b4;
    font-weight: 700;
}

.basic_modoru {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 0px;
    color: #FFF;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    font-size: 1em;
    background-color: #4682b4;
    font-weight: 700;
}

.accent_btn {
    cursor: pointer;
    display: inline-block;
    text-align: center;
    margin-top: 8px;
    margin-bottom: 0px;
    color: #FFF;
    border-radius: 12px;
    border-style: hidden;
    padding: 5px 10px;
    font-size: 1em;
    background-color: #f4a460;
    font-weight: 700;
}

@keyframes popUpFadeOut {
    0% {
        opacity: 0;
        transform: scale(0.3) rotate(-10deg);
    }
    30% {
        opacity: 1;
        transform: scale(1.2) rotate(10deg);
    }
    60% {
        transform: scale(1) rotate(0deg);
    }
    100% {
        opacity: 0;
        transform: scale(2) rotate(0deg);
    }
}

.clear-message {
    position: fixed;
    inset: 0;
    margin: auto;
    width: fit-content;
    height: fit-content;
    background: linear-gradient(to right, #ffcc00, #ff6699);
    color: white;
    font-size: 2em;
    font-weight: bold;
    padding: 30px 50px;
    border-radius: 20px;
    box-shadow: 0 0 20px rgba(255, 100, 100, 0.7);
    z-index: 9999;
    animation: popUpFadeOut 2s ease-out forwards;
    text-align: center;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .clear-message {
        font-size: clamp(18px, 5.5vw, 22px);
        /* 2emより小さめ */
        padding: 14px 22px;
        /* 余白も少し小さく */
        border-radius: 14px;
        box-shadow: 0 0 14px rgba(255, 100, 100, 0.55);
        /* 画面からはみ出しにくくする（必要なら） */
        max-width: calc(100vw - 32px);
    }
    /* モバイルは拡大率も控えめに（任意） */
    @keyframes popUpFadeOut {
        0% {
            opacity: 0;
            transform: scale(0.25) rotate(-10deg);
        }
        30% {
            opacity: 1;
            transform: scale(1.05) rotate(10deg);
        }
        60% {
            transform: scale(0.95) rotate(0deg);
        }
        100% {
            opacity: 0;
            transform: scale(1.6) rotate(0deg);
        }
    }
}

.level_test_yet {
    display: none;
}

.mypage_parent {
    display: none;
    margin-top: 55px;
}

@media (max-width: 768px) {
    .mypage_parent {
        margin-top: 40px;
    }
}

.mypage_btn_parent {
    width: 100%;
    text-align: center;
    margin-bottom: 10px;
}

.mypage_profile,
.mypage_setting,
.mypage_toiawase {
    display: inline-block;
    text-align: center;
    padding: 20px 20px;
    width: 250px;
    border-radius: 12px;
    font-size: 1.2em;
    font-weight: bold;
    background-color: #e0e0e0;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.mypage_profile:hover,
.mypage_setting:hover,
.mypage_toiawase:hover {
    background-color: #d0d0d0;
}

.mypage_profile.active,
.mypage_setting.active,
.mypage_toiawase.active {
    background-color: #c0c0c0;
}


/* アコーディオンコンテンツのスタイル */

.accordion_content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background-color: #fafafa;
    margin: 0 auto;
    width: 250px;
    border-radius: 0 0 12px 12px;
    margin-bottom: 30px;
}

.accordion_content.active {
    max-height: 250px;
    transition: max-height 0.3s ease-in;
}

.accordion_inner {
    padding: 20px;
    font-size: 0.9em;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .mypage_profile,
    .mypage_setting,
    .mypage_toiawase {
        padding: 20px 20px;
        width: 70%;
        font-size: 1em;
    }
    .accordion_content {
        width: 70%;
    }
}

.nick_name_now {
    margin-top: 20px;
    font-size: 1.1em;
    color: #4682b4;
    font-weight: bold;
    margin-bottom: 20px;
}

.nickname_change {
    font-size: 1.1em;
    padding: 12px 20px;
    border-radius: 7px;
    background-color: #00bfff;
    border-style: hidden;
    color: #FFF;
}


/* スライドバーのスタイル */

.hyouji_parent {
    margin: 10px 0;
}

.slider_container {
    margin: 20px 0;
}

.font_slider {
    width: 100%;
    height: 6px;
    border-radius: 5px;
    background: #ddd;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.font_slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #00bfff;
    cursor: pointer;
}

.font_slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #00bfff;
    cursor: pointer;
    border: none;
}

.slider_info {
    display: flex;
    justify-content: space-between;
    font-size: 0.8em;
    color: #666;
    margin-top: 5px;
}

.current_size {
    text-align: center;
    font-weight: bold;
    margin: 10px 0;
    color: #00bfff;
    font-size: 1.4em;
}

.daishou {
    font-size: 1.4em;
    font-weight: bold;
}

@media (max-width: 768px) {
    .current_size {
        font-size: 1.3em;
    }
    .daishou {
        font-size: 1.2em;
        font-weight: bold;
    }
}

.hyouji_text {
    display: inline-block;
    text-align: left;
}

#toi {
    font-size: 1.1em;
    padding: 12px 20px;
    border-radius: 7px;
    background-color: #00bfff;
    border-style: hidden;
    color: #FFF;
}

#faq {
    font-size: 1.1em;
    padding: 12px 20px;
    border-radius: 7px;
    background-color: #00bfff;
    border-style: hidden;
    color: #FFF;
    margin-bottom: 30px;
}

.faq_content {
    display: none;
    width: 100%;
    font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'MS Mincho', serif;
}

@media (max-width: 768px) {
    .faq_content {
        width: 95%;
        margin: 0 auto;
    }
}

.kiroku_parent {
    display: none;
    width: 100%;
    margin-top: 35px;
    background-color: #FFF;
}

@media (max-width: 768px) {
    .kiroku_parent {
        margin-top: 30px;
    }
}

.kiroku_content {
    width: 97%;
    margin: 0 auto;
}

.time_display {
    margin: 10px 0;
    margin-top: 5px;
    text-align: center;
}

.total_time {
    font-size: 1.7em;
    font-weight: bold;
    color: #00bfff;
    margin: 10px 0;
}

.time_unit {
    font-size: 1.1em;
    color: #666;
    margin: 0 5px;
}

.soujikan_tittle {
    font-weight: bold;
    font-size: 1.3em;
    display: inline-block;
    margin-bottom: 1px;
    text-decoration: underline;
}

.gakushujikanuchiwake_tittle {
    font-weight: bold;
    font-size: 1.3em;
    display: inline-block;
    margin-top: 5px;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .soujikan_tittle,
    .gakushujikanuchiwake_tittle {
        font-size: 1.3em;
    }
    .total_time {
        font-size: 1.7em;
    }
    .time_unit {
        font-size: 1.1em;
    }
}

.pink_space {
    background-color: #ffbcff;
    text-decoration: none;
    display: inline-block;
}


/* ドーナツグラフのスタイル */

.donut_chart_container_tdg {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 20px 0;
}

.donut_chart_tdg {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: conic-gradient( #bf7fff 0deg var(--roll-angle), #bcffff var(--roll-angle) var(--kiso-end-angle), #bcffbc var(--kiso-end-angle) 360deg);
    position: relative;
    margin-bottom: 20px;
}

.donut_chart_tdg::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    background: white;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.donut_chart_center_tdg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 10;
}

.center_text_tdg {
    font-size: 14px;
    color: #666;
    margin: 0;
}

.legend_container_tdg {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    margin-top: 10px;
}

.legend_item_tdg {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.legend_color_tdg {
    width: 16px;
    height: 16px;
    border-radius: 3px;
}

.legend_roll_tdg {
    background-color: #bf7fff;
}

.legend_kiso_tdg {
    background-color: #bcffff;
}

.legend_free_tdg {
    background-color: #bcffbc;
}

.legend_text_tdg {
    color: #333;
    font-weight: 500;
}

@media (max-width: 768px) {
    .donut_chart_tdg {
        width: 180px;
        height: 180px;
    }
    .donut_chart_tdg::before {
        width: 100px;
        height: 100px;
    }
    .legend_container_tdg {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        max-width: 200px;
        /* 最大幅を設定 */
        margin: 10px auto 0 auto;
        /* 左右中央に配置 */
    }
    .legend_item_tdg {
        width: 100%;
        justify-content: flex-start;
        /* 左寄せ */
        text-align: left;
    }
}

.level_container {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 5px;
}

.level_content {
    margin: 0;
    text-align: left;
}

.level_content {
    margin: 0;
    text-align: left;
}

.current_level {
    font-size: 2.3em;
    font-weight: bold;
    color: #00bfff;
}

.slash_level {
    font-size: 1.5em;
    font-weight: bold;
}

.level_base {
    font-size: 1.1em;
    font-weight: bold;
}

.level_text {
    font-size: 1.5em;
    font-weight: bold;
}


/*//////////////学習記録用レベルチャート///////////////////*/


/* ラッパー */

.past_level_chart_lv_ct {
    --bar-w: 28px;
    --gap: 6px;
    --h: 120px;
    --label-h: 1.4em;
}


/* レイアウト */

.past_level_chart_lv_ct .lc_wrap_lv_ct {
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

.past_level_chart_lv_ct .lc_view_lv_ct {
    flex: 1;
    /* ← 幅を分配して縮められるように */
    min-width: 0;
    /* ← “中身の最小幅”に縛られないように（重要） */
    overflow: hidden;
}

.past_level_chart_lv_ct .lc_list_lv_ct {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--bar-w), 1fr);
    gap: var(--gap);
    align-items: end;
    height: calc(var(--h) + var(--label-h));
    /* ← 変更 */
    padding: 8px 8px calc(8px + var(--label-h));
    margin: 0;
    list-style: none;
}


/* ナビ */

.past_level_chart_lv_ct .lc_nav_lv_ct {
    width: 36px;
    height: 36px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    display: grid;
    place-items: center;
}

.past_level_chart_lv_ct .lc_nav_lv_ct:disabled {
    opacity: .4;
    cursor: default;
}


/* 棒 */

.past_level_chart_lv_ct .lc_item_lv_ct {
    position: relative;
    display: flex;
    align-items: end;
    justify-content: center;
    height: calc(100% - var(--label-h));
    padding-bottom: var(--label-h);
}

.past_level_chart_lv_ct .lc_bar_lv_ct {
    width: 100%;
    height: var(--hpc);
    background: var(--col);
    border-radius: 6px 6px 0 0;
}


/* 足元にレベル数字 */

.past_level_chart_lv_ct .lc_item_lv_ct::after {
    content: attr(data-level);
    position: absolute;
    bottom: 0.1em;
    left: 50%;
    transform: translateX(-50%);
    font-size: 1em;
    line-height: 1;
    color: #666;
}


/* レベル色 */

.past_level_chart_lv_ct .lv1_lv_ct {
    --col: #d1d5db;
}


/* gray  */

.past_level_chart_lv_ct .lv2_lv_ct {
    --col: #93c5fd;
}


/* blue  */

.past_level_chart_lv_ct .lv3_lv_ct {
    --col: #86efac;
}


/* green */

.past_level_chart_lv_ct .lv4_lv_ct {
    --col: #fbbf24;
}


/* amber */

.past_level_chart_lv_ct .lv5_lv_ct {
    --col: #f87171;
}


/* red   */


/* 注記 */

.past_level_chart_lv_ct .lc_note_lv_ct {
    margin-top: 6px;
    font-size: 0.9em;
    color: #666;
}

.past_level_chart_parent {
    width: 95%;
    margin: 0 auto;
}

.past_level_chart_lv_ct {
    max-width: 100%;
    overflow: hidden;
}


/*//////////////学習記録用レベルチャートここまで///////////////////*/


/*//////////////カレンダー///////////////////*/


/* ===== Calendar ===== */

.calendar_parent {
    width: 100%;
    margin: 0 auto;
    margin-top: 25px;
    margin-bottom: 35px;
    display: flex;
    justify-content: center;
}

.calendar {
    --accent: #ff9f00;
    /* 今日(枠)の色 */
    --badge1: #ffbf00;
    /* バッジ外側 */
    --badge2: #ffd54d;
    /* バッジ内側 */
    --muted: #f2f2f2;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    width: min(420px, 95vw);
    user-select: none;
    border-radius: 12px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
    overflow: hidden;
    background: #fff;
}


/* ヘッダ（ナビ） */

.cal-header {
    display: grid;
    grid-template-columns: 48px 1fr 48px;
    align-items: center;
    gap: 8px;
    padding: 8px 6px;
    font-weight: 700;
    font-size: 18px;
    border-bottom: 1px solid #eee;
}

.cal-nav {
    display: grid;
    place-items: center;
    height: 36px;
    border: none;
    background: transparent;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.cal-title {
    text-align: center;
}


/* 曜日ラベル */

.cal-dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
    font-size: 12px;
    color: #7a7a7a;
    background: #fafafa;
    border-bottom: 1px solid #eee;
}

.cal-dow span {
    padding: 6px 0;
    text-align: center;
    font-weight: 600;
}


/* 日付グリッド */

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-auto-rows: 60px;
}

@media (max-width: 420px) {
    .cal-grid {
        grid-auto-rows: 60px;
    }
}

.cal-cell {
    box-sizing: border-box;
    height: auto;
    position: relative;
    border-right: 1px solid #f3f3f3;
    border-bottom: 1px solid #f3f3f3;
    padding: 6px 6px 6px 6px;
    overflow: hidden;
}

.cal-cell:nth-child(7n) {
    border-right: none;
}

.cal-num {
    position: relative;
    z-index: 1;
    font-size: 14px;
    font-weight: 700;
}

.cal-cell.muted {
    background: var(--muted);
    color: #8f8f8f;
}


/* 今日(オレンジの太枠) */

.cal-cell.today {
    box-shadow: inset 0 0 0 4px var(--accent);
    border-radius: 6px;
}


/* 学習日バッジ（右上の金色○＋チェック） */

.study-badge {
    position: absolute;
    top: 58%;
    left: 50%;
    transform: translate(-50%, -50%);
    right: 6px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, var(--badge2) 60%, var(--badge1) 61%);
    display: grid;
    place-items: center;
    font-size: 16px;
    font-weight: 900;
    color: #fff;
}

.study-badge::before {
    /* ちょっとだけ輝き */
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .18) inset;
}

.study-badge span {
    position: relative;
    z-index: 1;
    transform: translateY(-1px);
}


/* モバイルで高さを少し広げたい場合 */

@media (max-width: 420px) {
    .cal-cell {
        height: 60px;
    }
}


/*//////////////カレンダーここまで///////////////////*/

.medal {
    height: 30px;
    width: auto;
}

.teachers_select2 {
    width: 98%;
    color: #FFF;
    background-color: #b0c4de;
    border-radius: 6px;
    border: 2px solid #ccc;
    font-weight: bold;
    padding-top: 15px;
    position: relative;
    z-index: 5;
    margin-bottom: 10px;
}

.photo {
    text-align: center;
}

.setumei_image {
    width: 90%;
    height: auto;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .setumei_image {
        width: 100%;
        height: auto;
        margin: 0 auto;
    }
}

.swal2-show,
.swal2-hide,
.swal2-backdrop-show,
.swal2-backdrop-hide,
.swal2-icon-show,
.swal2-icon-hide {
    animation: none !important;
    transition: none !important;
}


/* モーダル基本スタイル */

.custom-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    animation: none !important;
    transition: none !important;
}

.custom-modal-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    text-align: center;
    max-height: 90vh;
    overflow-y: auto;
}


/* レスポンシブ対応 */

@media screen and (max-width: 768px) {
    .custom-modal-content {
        width: 95% !important;
        padding: 15px !important;
        box-sizing: border-box;
        margin: 0 !important;
        max-width: none !important;
    }
}

@media screen and (min-width: 769px) {
    .custom-modal-content {
        width: 60% !important;
        font-size: 0.9em !important;
        max-width: 800px;
    }
}

.custom-modal-title {
    font-size: 1.2em !important;
    margin-bottom: 15px;
    font-weight: bold;
}

.custom-modal-body {
    margin: 15px 0;
}

.custom-modal-buttons {
    margin-top: 20px;
}

.custom-modal-button {
    padding: 10px 20px;
    margin: 0 5px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
}

.custom-modal-confirm {
    background-color: #007bff;
    color: white;
}

.custom-modal-confirm:hover {
    background-color: #0056b3;
}

.custom-modal-cancel {
    background-color: #6c757d;
    color: white;
}

.custom-modal-cancel:hover {
    background-color: #545b62;
}

.custom-modal-content {
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* IE/Edge */
}

.custom-modal-content::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari */
}


/* ▼ basic_q：左上のナンバーバッジ（1～） */

.button-container-roll {
    counter-reset: basicq;
    /* コンテナごとに 1 から振る */
}

.button-container-roll .basic_q {
    position: relative;
    /* バッジの絶対配置用 */
}

.button-container-roll .basic_q::before {
    counter-increment: basicq;
    content: counter(basicq);
    position: absolute;
    top: -10px;
    left: -8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #6a5acd;
    /* 指定色 */
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    z-index: 10;
}


/* スマホ微調整 */

@media (max-width: 768px) {
    .button-container-roll .basic_q::before {
        width: 20px;
        height: 20px;
        font-size: 12px;
        top: -9px;
        left: -7px;
    }
}


/* 番号を付けたくない個別ボタン用（必要なら） */

.button-container-roll .basic_q.hide-before::before {
    display: none !important;
}