.desktop {
    display: block;
}
.mobile {
    display: none;
}


/* Common */
#thePoint .point-link{
    text-decoration: underline;
    color: var(--palette-primary-main);
}
#thePoint button{
    outline: none;
    box-shadow: none;
}
.inner-container {
    width: 100%;
    max-width: calc(1400px + (var(--spacing) * 20));
    padding-left: calc(var(--spacing) * 10);
    padding-right: calc(var(--spacing) * 10);
    margin-left: auto;
    margin-right: auto;
}


/* Main */
#thePoint.point-section-wrapper{
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    padding-top: calc(var(--spacing) * 20);
}

.point-section{
    width: 100%;
    max-width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 0px;
}
.point-inner-section{
    width: 100%;
    max-width: calc(1110px + (var(--spacing) * 8));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;

    padding: 0px calc(var(--spacing) * 4);
    margin-bottom: calc(var(--spacing) * 15);
}
.point-fullwidth-section{
    width: 100%;
    display: flex;
    position: relative;

    padding: 0px calc(var(--spacing) * 4);
}
.point-title-box{
    width: 100%;
    position: relative;
    text-align: center;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    background: var(--palette-white-main);
    border-radius: calc(var(--shape-borderRadius) * 2);
    padding: calc(var(--spacing) * 15) calc(var(--spacing) * 22);
}
.point-banner-image {
    width: 100%;
    border-radius: 20px;
}
.point-step-image{
    width: 100%;
}

.point-group {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: calc(var(--spacing) * 5);
}
.point-group span{
    margin-top: 0px;
    margin-bottom: 0px;
}

.point-buttons-container{
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: calc(var(--spacing) * 5);
    margin-top: calc(var(--spacing) * 5);
}
.point-button button{
    gap: calc(var(--spacing) * 2);
}
.point-button button img{
    width: 30px;
    height: 30px;
}
.point-button button span{
    white-space: nowrap;
}


/* register */
.point-section-register{
    align-items: center;
    padding-top: calc(var(--spacing) * 15);
    padding-bottom: calc(var(--spacing) * 15);
    overflow-x: hidden;
}
.point-detail-group{
    gap: calc(var(--spacing) * 15);
    margin-bottom: calc(var(--spacing) * 15);
}
.point-steps-group{
    flex-direction: row;
    align-items: stretch;
    margin-bottom: calc(var(--spacing) * 30);
}
.point-remarks-group{
    gap: calc(var(--spacing) * 5);
}
.point-remarks-group .point-remark{
    width: 100%;
}

.point-group .point-detail-title{
    width: 100%;
    text-align: center;
}
.point-group .point-detail-subtitle{
    width: 100%;
}
.point-group .point-detail-part{
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
.point-group hr{
    width: 100%;
    margin: 0;
    border: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.point-group .point-step{
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: calc(var(--spacing) * 2.5);
}
.point-group .point-step-titlebox{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: calc(var(--spacing) * 2.5);
    height: 52px;   /* fixed height */
}
.point-group .point-step-titlebox .point-step-icon{
    position: relative;
    text-align: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    min-height: 30px;
}
.point-group .point-step-titlebox .point-step-icon::before {
    content: '';
    z-index: 0;
    display: inline-block;
    width: 100%;
    height: 100%;
    border-radius: 15px;
    background: var(--palette-primary-main);
}
.point-group .point-step-titlebox .point-step-icon span{
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
    color: var(--palette-white-main);
}
.point-group .point-step-imagebox{
    width: 100%;
    display: flex;
    flex-direction: row;
    transform: scale(1.25);     /* Special handling for image display */
    transform-origin: top center;
}


.point-remark{
    color: var(--palette-grey-80);
}

.deco {
    width: 100%;
    position: static;
    overflow: hidden;
    padding: 0;
}
.deco .deco__bubbles{
    position: absolute;
    display: flex;
}
.deco .deco__bubbles--left{
    left: 50%;
    transform: translateX(-50%);
    top: -6px;
    width: 240px;
    margin-left: -760px;
}
.deco .deco__bubbles--right{
    right: 50%;
    transform: translateX(50%);
    top: 373px;
    width: 257px;
    margin-right: -800px;
}

.channel{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: calc(var(--spacing) * 2.5);
}
.channel .channel-icon img{
    width: 60px;
    min-width: 60px;
}
.channel .channel-desc{
    display: flex;
    flex-direction: column;
}


/* FAQ */
#faq_section{
    background-color: var(--palette-grey-20);
    padding: calc(var(--spacing) * 30) 0px;
}

#faq_section .faq_title {
    width: 100%;
    text-align: center;
    margin-top: 0px;
    margin-bottom: calc(var(--spacing) * 2.5);
}

#faq_section .faq_item {
    padding: calc(var(--spacing) * 12) 0px;
    border-bottom: 1px solid var(--palette-grey-50);
}

#faq_section .faq_item a {
    text-decoration: underline;
}

#faq_section .faq_item .question_part {
    cursor: pointer;
    display: flex;
}
#faq_section .faq_item .answer_part {
    display: flex;
    max-height: 0;
    overflow: hidden;
    transition: max-height 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

#faq_section .faq_item .question_part .question,
#faq_section .faq_item .answer_part .answer {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}
#faq_section .faq_item .answer_part .answer{
    margin-top: calc(var(--spacing) * 4);
    padding-right: calc(var(--spacing) * 25);
}

#faq_section .faq_item .question_part .question .detail,
#faq_section .faq_item .answer_part .answer .detail {
    width: 100%;
    transition: color 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

#faq_section .faq_item .question_part .question .icon {
    width: auto;
    padding: 0px calc(var(--spacing) * 9);
}
#faq_section .faq_item .question_part .question .icon img{
    width: 30px;
    height: 30px;
    display: flex;
}

#faq_section .faq_item .question_part[aria-expanded="false"] .detail {
    color: var(--palette-grey-80);
}
#faq_section .faq_item .question_part[aria-expanded="false"] .icon .collapse,
#faq_section .faq_item .question_part[aria-expanded="true"] .icon .expand {
    display: none;
}

#faq_section .faq_item .answer_part[aria-hidden="true"] {
    max-height: 0;
}

#faq_section .faq_item .icon_setting {
    display: inline-block;
    width: 22px;
    vertical-align: top;
}


/* footer */
#care_footer{
    height: 416px;  /* fixed height */
    position: relative;
}
#care_footer .care_footer_foreground{
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 15%;
}
#care_footer .care_footer_info_group{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    margin-top: auto;
    margin-bottom: auto;
    gap: calc(var(--spacing) * 5);
    z-index: 1;
}
#care_footer .care_footer_info_box,
#care_footer .care_footer_app_box {
    width: 100%;
    display: flex;
    flex-direction: row;
    gap: calc(var(--spacing) * 5);
}
#care_footer .care_footer_info_box .appicon_box{
    width: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: calc(var(--spacing) * 4);
}
#care_footer .care_footer_info_box .appicon_box span,
#care_footer .care_footer_info_box .info_text span{
    margin: 0px 0px;
}
#care_footer .appicon_box .appicon{
    width: 115px;
    min-width: 115px;
    display: inline-block;
    padding: 0px;
}
#care_footer .care_footer_app {
    width: 100%;
    max-width: 150px;
}
#care_footer .appicon_box .appicon img,
#care_footer .care_footer_app img{
    width: 100%;
}

#join_section {
    background-color: var(--palette-grey-20);
    padding: calc(var(--spacing) * 6) 0px;
}


/* toast styles, fixed postion on bottom */
.point-toast{
    position: fixed;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);

    background-color: var(--palette-white-main);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, .1);
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .1);

    width: 100%;
    max-width: 840px;
    border-radius: calc(var(--shape-borderRadius) * 2);
    opacity: 1;
    z-index: 99;
}
.point-toast-content{
    width: 100%;
    display: flex;
    justify-content: space-between;

    padding: calc(var(--spacing) * 4);
    gap: calc(var(--spacing) * 2);
}


/* modal styles */
#thePoint .modal.modalIFrame .modal-dialog {
    top: 50%;
    transform: translate(0, -50%);

    width: 100%;
    max-width: 800px;
    display: flex;
    margin: 0 auto;
    padding-top: calc(var(--spacing) * 4);
    padding-bottom: calc(var(--spacing) * 4); 
}
.modal.modalIFrame .modal-content {
    overflow: hidden;
    border-radius: 20px;
    width: 100%;
}

.modal.modalIFrame .modal-content .modal-body {
    overflow: hidden;
    position: relative;
    padding-top: 78px;
}

.modal.modalIFrame .modal-content .modal-body:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 18px;
    background: var(--palette-primary-main);
}

.modal.modalIFrame .modal-content .modal-body .icon_close {
    position: absolute;
    top: 45px;
    right: 20px;
    width: 18px;
    height: 18px;
    padding: 0;
    background: none;
    border: none;
}

.modal.modalIFrame .modal-content .modal-body .modal-iframe {
    height: 600px;
}

.modal.modalIFrame .modal-content .modal-body .modal-iframe iframe {
    width: 100%;
    height: 100%;
    border: none;
}



@media(max-width: 768px) {
    .desktop {
        display: none;
    }
    .mobile {
        display: block;
    }


    #thePoint.point-section-wrapper{
        padding-top: calc(var(--spacing) * 10);
    }
    .inner-container {
        max-width: calc(1400px + (var(--spacing) * 10));
        padding-left: calc(var(--spacing) * 5);
        padding-right: calc(var(--spacing) * 5);
    }
    .point-inner-section{
        margin-bottom: calc(var(--spacing) * 12);
    }
    .point-title-box{
        padding: calc(var(--spacing) * 8) calc(var(--spacing) * 8);
    }
    .point-buttons-container{
        flex-direction: column;
    }
    .point-buttons-container .point-button{
        width: 100%;
    }
    .point-buttons-container .point-button button{
        width: 100%;
    }


    .point-section-register{
        padding-top: 0px;
        padding-bottom: 0px;
    }
    #earn_now{
        padding-top: calc(var(--spacing) * 12);
        padding-bottom: calc(var(--spacing) * 12);
    }
    .point-detail-group{
        gap: calc(var(--spacing) * 12);
        margin-bottom: calc(var(--spacing) * 12);
    }
    .point-group .point-detail-part{
        flex-direction: column;
        gap: calc(var(--spacing) * 6);
    }

    .point-steps-group{
        flex-direction: column;
        margin-bottom: calc(var(--spacing) * 12);
    }
    .point-group .point-step-titlebox{
        height: auto;
    }
    .point-group .point-step-imagebox{
        transform: scale(1) translateX(13px);
        border-left: 4px solid rgba(255, 0, 0, 0.3);
    }

    .deco {
        display: none;
    }
    .channel .channel-icon img{
        width: 40px;
        min-width: 40px;
    }
    #faq_section{
        padding: calc(var(--spacing) * 24) 0px;
    }
    #faq_section .faq_item{
        padding: calc(var(--spacing) * 5) 0px;
    }
    #faq_section .faq_item .question_part .question .icon{
        padding: 0px 0px 0px calc(var(--spacing) * 6);
    }
    #faq_section .faq_item .question_part .question .icon img{
        width: 24px;
        height: 24px;
    }
    #faq_section .faq_item .answer_part .answer{
        margin-top: calc(var(--spacing) * 3);
        padding-right: calc(var(--spacing) * 12);
    }

    #care_footer .care_footer_info_group{
        margin: 0px 0px auto 0px;
        padding: 0px 0px;
    }
    #care_footer .care_footer_info_box{
        flex-direction: column;
        padding: calc(var(--spacing) * 2) calc(var(--spacing) * 2) 0px calc(var(--spacing) * 2);
        gap: calc(var(--spacing) * 4);
    }
    #care_footer .care_footer_app_box{
        gap: calc(var(--spacing) * 4);
    }
    #care_footer .care_footer_info_box .appicon_box{
        width: 100%;
    }
    #care_footer .appicon_box .appicon{
        width: 70px;
        min-width: 70px;
    }
    #care_footer .care_footer_info_box .info_text{
        text-align: center;
    }

    .point-toast{
        max-width: calc(100% - 20px);
    }
    .point-toast-content{
        padding: calc(var(--spacing) * 3);
    }

    .modal.modalIFrame .modal-content .modal-body .modal-iframe {
        overflow: auto;
        height: 80vh;
    }
}