:root {
    --primary: #21B8C5;
    --dark-line: #C5DADB;
}
.sec_text strong {
    font-weight: var(--semi-bold);
}

.main_rebiz {
    width: 800px;
}
.element {
    animation: element 1.5s infinite alternate;
}
@keyframes element {
    to {
        transform: translateY(-20px);
    }
}
.element_1 {
    width: 160px;
    top: 8%;
    left: 0;
}
.element_2 {
    width: 130px;
    top: 21%;
    left: 16%;
    animation-delay: .05s;
}
.element_3 {
    width: 60px;
    top: 3%;
    left: 25%;
    animation-delay: .1s;
}
.element_4 {
    width: 160px;
    top: 0;
    right: 35%;
    animation-delay: .25s;
}
.element_5 {
    width: 85px;
    top: 6%;
    right: 20%;
    animation-delay: .15s;
}
.element_6 {
    width: 350px;
    top: 8%;
    right: 0;
    animation-delay: .2s;
}

/*----------------- concern_list -----------------*/
.concern_list {
    margin-top: 80px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}
.concern_box {
    width: 100%;
    padding: 10px;
}
.concern_img {
    width: 100%;
}
.concern_inner {
    padding: 30px;
}
.concern_title {
    font-size: var(--ft24);
    font-weight: var(--semi-bold);
    margin-bottom: 16px;
}
.concern_text {
    font-size: var(--ft18);
    color: var(--gray-500);
}


/*----------------- advantages -----------------*/
.section .bg {
    padding-top: 170px;
    background: linear-gradient(180deg, #EFFEFF 0%, #FFF 100%);
}
.franplan_svg {
    transform: translateY(-10%);
}

.advantages {
    padding-bottom: 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 80px;
    position: relative;
}
.advantages::after {
    content: '';
    width: calc(100% - (((100% - 80px)/2) - 20px)/2);
    height: 1px;
    border-top: 1px dashed var(--dark-line);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.advantages_title {
    display: flex;
    align-items: center;
}
.advantages_title p {
    width: 260px;
    padding: 10px 0;
    background-color: #E1F1F3;
    border-radius: var(--radius-md);
    font-size: var(--ft18);
    font-weight: var(--semi-bold);
    color: var(--primary);
    text-align: center;
    flex-shrink: 0;
}
.advantages_title::before,
.advantages_title::after {
    content: '';
    width: 100%;
    height: 1px;
    background-color: var(--dark-line);
}
.advantages_list {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
.advantages_box {
    width: 100%;
    padding: 70px 40px 50px 40px;
    border-radius: var(--radius-lg);
    border: 1px dashed var(--dark-line);
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.advantages_box::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: url('/images/s_pin.svg') no-repeat center/contain;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translateY(50%);
    z-index: 1;
}
.advantages_box::after {
    content: '';
    display: block;
    width: 1px;
    height: 50px;
    border-left: 1px dashed var(--dark-line);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translate(1px, 100%);
}
.advantages_icon {
    width: 120px;
    height: 120px;
    margin-bottom: 32px;
}
.advantages_name {
    font-size: var(--ft20);
    font-weight: var(--semi-bold);
    text-align: center;
    margin-bottom: 12px;
}
.advantages_text {
    font-size: var(--ft18);
    color: var(--gray-500);
    text-align: center;
}


.before_box::after {
    background: url('/images/fran_before.svg') no-repeat center/contain;
}

/*----------------- t_order -----------------*/
.t_order {
    padding: 120px 0;
    background-color: #EFFEFF;
}
.t_order .sec_inner {
    max-width: 1300px;
}
.t_order .sec_text {
    font-size: var(--ft20);
}
.t_order_icon {
    width: 90px;
    height: 90px;
    margin: 0 auto;
    background-color: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.10);
    display: flex;
    justify-content: center;
    align-items: center;
}
.t_order_icon img {
    width: 70px;
    height: 70px;
}
.t_order_list {
    width: 100%;
    padding-top: 50px;
    margin-top: 80px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    position: relative;
}
.t_order_list::after {
    content: '';
    display: block;
    width: calc(100% - ((100% - 40px)/3));
    height: 1px;
    border-top: 1px dashed var(--dark-line);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.t_order_box {
    width: 100%;
    padding: 60px 40px 50px 40px;
    border-radius: var(--radius-md);
    border: 1px solid var(--dark-line);
    background-color: var(--white-500);
    position: relative;
}
.t_order_box::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: url(/images/s_pin.svg) no-repeat center / contain;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translateY(-50%);
    z-index: 1;
}
.t_order_box::after {
    content: '';
    display: block;
    width: 1px;
    height: 50px;
    border-left: 1px dashed var(--dark-line);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translate(1px, -100%);
}
.t_order_img {
    width: 240px;
    height: 240px;
    margin: 0 auto;
}
.t_order_title {
    margin-top: 40px;
    margin-bottom: 12px;
    font-size: var(--ft18);
    font-weight: var(--semi-bold);
    text-align: center;
}
.t_order_text {
    font-size: var(--ft18);
    color: var(--gray-500);
    text-align: center;
}
.t_oder_btm {
    width: 100%;
    padding: 16px 20px;
    margin-top: 20px;
    border-radius: var(--radius-md);
    background-color: var(--primary);
    font-size: var(--ft20);
    font-weight: var(--semi-bold);
    text-align: center;
    color: var(--white);
}


/*----------------- graph -----------------*/
.graph {
    width: 100%;
    margin-top: 80px;
    position: relative;
}
.graph_img {
    width: 100%;
    margin-top: 60px;
}
.graph_line {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
.graph_line {
    display: flex;
    justify-content: space-between;
}
.graph_line span {
    display: block;
    width: 1px;
    height: 100%;
    background-color: var(--gray-100);
}
.graph_list {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(6 ,1fr);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
.graph_list li {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.graph_icon {
    width: 58px;
    height: 58px;
    border-radius: var(--radius-lg);
    background-color: var(--white);
    box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.10);
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: absolute;
    transition: transform .4s ease;
}
.graph_icon img {
    width: 32px;
    height: 32px;
}
.graph_title {
    padding: 4px 12px;
    border-radius: 40px;
    background-color: var(--gray-500);
    font-size: var(--ft14);
    font-weight: var(--semi-bold);
    color: var(--white);
    text-align: center;
    text-wrap: nowrap;
    position: absolute;
    top: -10px;
    transform: translateY(-100%);
    opacity: 0;
    transition: opacity .3s ease;
}
.graph_icon:hover {
    transform: translateY(-10px);
}
.graph_icon:hover .graph_title {
    opacity: 1;
}

/*----------------- graph_btm -----------------*/
.graph_btm {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.chk_title {
    width: 100%;
    height: 50px;
    border-radius: var(--radius-md);
    background-color: var(--color);
    font-size: var(--ft20);
    font-weight: var(--semi-bold);
    color: var(--white);
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}
.chk_text {
    margin: 32px 0;
    font-size: var(--ft18);
    color: var(--gray-500);
    text-align: center;
}

/*----------------- chk -----------------*/
.chk {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, auto);
    grid-template-areas:
        "a c e"
        "b d f";
    gap: 6px;
}
.chk .chk_h {
    display: none;
}
.chk_box {
    width: 100%;
    height: 100%;
    padding: 10px;
    border-radius: var(--radius-md);
    background-color: var(--bg);
}
.chk_inner {
    width: 100%;
    height: 100%;
    padding: 40px;
    border-radius: var(--radius-sm);
    background-color: var(--white);
}
.chk_step {
    font-weight: var(--semi-bold);
    color: var(--primary);
    margin-bottom: 12px;
}
.chk_name {
    font-size: var(--ft22);
    font-weight: var(--semi-bold);
    margin-bottom: 28px;
}
.chk_list {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 18px;
}
.chk_list label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}
.chk_list label span {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    border: 1px solid #d6d6d6;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.chk_list label span::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background: url('/images/fran_chk.svg') no-repeat center/contain;
    opacity: 0;
}
.chk_list label p {
    color: var(--gray-500);
}
.chk_list input:checked ~ label span {
    background-color: #EFFEFF;
    border-color: var(--primary);
}
.chk_list input:checked ~ label span::before {
    opacity: 1;
}

/*----------------- faq_sec -----------------*/
.faq_sec * {
    text-align: start;
}
.faq_sec .sec_name {
    justify-content: start;
}
.faq_list {
    margin-top: 80px;
}
.faq_list li {
    width: 100%;
    margin-bottom: 10px;
    border-radius: var(--radius-md);
    background-color: rgba(256, 256, 256, 0);
    border: 1px solid rgba(256, 256, 256, 0);
    transition: all .3s ease;
}
.faq_list li:last-child {
    margin-bottom: 0;
}
.faq_main {
    width: 100%;
    padding: 30px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}
.faq_main p {
    font-size: var(--ft18);
    font-weight: var(--semi-bold);
}
.faq_main p span {
    color: var(--primary);
    font-weight: var(--semi-bold);
    margin-right: 6px;
}
.faq_main::after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background: url('/images/down.svg') no-repeat center/contain;
    transition: transform .3s ease;
    flex-shrink: 0;
}
.faq_sub {
    padding: 0 50px 40px;
    display: none;
}
.faq_sub p {
    display: flex;
    align-items: start;
    gap: 16px;
    color: var(--gray-500);
}
.faq_sub p::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background: url('/images/faq.svg') no-repeat center/contain;
    flex-shrink: 0;
}

.faq_list li:hover {
    border-color: var(--dark-line);
}

.faq_list li.open {
    background-color: #F4FEFF;
    border-color: var(--dark-line);
}
.faq_list li.open .faq_main::after {
    transform: rotate(180deg);
}

/*----------------- btm_sec -----------------*/
.btm_sec {
    background: url(/images/fran_btm.png) no-repeat center / cover;
}

@media all and (max-width: 1600px) {
    /*-- main_sec --*/
    .element_1 {
        width: 120px;
    }
    .element_2 {
        width: 100px;
    }
    .element_3 {
        width: 50px;
    }
    .element_4 {
        width: 120px;
    }
    .element_5 {
        width: 70px;
    }
    .element_6 {
        width: 270px;
    }

    /*- -advantages --*/
    .advantages {
        gap: 40px;
    }
    .advantages_title p {
        font-size: var(--ft16);
    }
    .advantages_box {
        padding: 40px 20px;
    }
    .advantages_icon {
        width: 90px;
        height: 90px;
    }
    .advantages_name {
        font-size: var(--ft18);
    }
    .advantages_text {
        font-size: var(--ft14);
    }
    
    /*-- graph --*/
    .chk_text {
        margin: 24px 0;
        font-size: var(--ft16);
    }
}

@media all and (max-width: 1400px) {
    /*-- main_sec --*/
    .element_6 {
        width: 200px;
    }

    /*-- concern_list --*/
    .concern_list {
        margin-top: 40px;
        gap: 20px;
    }
    .concern_inner {
        padding: 20px;
    }
    .concern_title {
        font-size: var(--ft20);
        margin-bottom: 12px;
    }
    .concern_text {
        font-size: var(--ft16);
    }

    /*- -advantages --*/
    .franplan_svg {
        display: none;
    }
    .advantages {
        margin-top: 40px;
        grid-template-columns: repeat(1, 1fr);
    }
    .advantages_box::before,
    .advantages_box::after {
        display: none;
    }
    .advantages_title p {
        width: 100%;
    }
    .advantages_title p::before,
    .advantages_title p::after {
        display: none;
    }
    .advantages_icon {
        width: 70px;
        height: 70px;
    }

    /*-- t_order --*/
    .t_order_icon {
        width: 70px;
        height: 70px;
    }
    .t_order_icon img {
        width: 50px;
        height: 50px;
    }
    .t_order_list {
        margin-top: 60px;
    }
    .t_order_img {
        width: 200px;
        height: 200px;
    }
    .t_oder_btm {
        font-size: var(--ft18);
    }

    /*-- graph --*/
    .graph_icon {
        width: 45px;
        height: 45px;
    }
    .graph_icon img {
        width: 24px;
        height: 24px;
    }
    .chk_title {
        font-size: var(--ft18);
    }
    .chk_list {
        gap: 12px;
    }
    .chk_list label {
        gap: 8px;
    }
    .chk_list label span {
        width: 20px;
        height: 20px;
    }
    .chk_list label span::before {
        width: 14px;
        height: 14px;
    }

    /*-- faq_list --*/
    .faq_list {
        margin-top: 40px;
    }
}

@media all and (max-width: 1200px) {
    /*-- main_sec --*/
    .element_2 {
        width: 70px;
        top: 10%;
    }

    /*-- concern_list --*/
    .concern_list {
        grid-template-columns: repeat(1, 1fr);
    }
    .concern_box {
        display: flex;
        gap: 20px;
    }
    .concern_img {
        width: 350px;
        flex-shrink: 0;
    }
    .concern_inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    /*-- graph --*/
    .chk_inner {
        padding: 24px;
    }
    .chk_step {
        font-size: var(--ft14);
    }
    .chk_name {
        font-size: var(--ft18);
        margin-bottom: 24px;
    }

    /*-- faq_list --*/
    .faq_main::after {
        width: 12px;
        height: 12px;
    }
}

@media all and (max-width: 1024px) {
    /*-- main_sec --*/
    .element_1 {
        width: 80px;
    }
    .element_2 {
        width: 60px;
    }
    .element_3 {
        width: 35px;
    }
    .element_4 {
        width: 80px;
    }
    .element_5 {
        width: 40px;
    }
    .element_6 {
        width: 140px;
    }

    /*-- t_order --*/
    .t_order_list {
        margin-top: 40px;
        padding-top: 0;
        grid-template-columns: repeat(2, 1fr);
    }
    .t_order_box {
        padding: 40px;
    }
    .t_order_img {
        width: 160px;
        height: 160px;
    }
    .t_order_title {
        margin-top: 24px;
    }
    .t_order_list::after,
    .t_order_box::before,
    .t_order_box::after {
        display: none;
    }

    /*-- graph --*/
    .graph_btm {
        display: none;
    }
    .chk {
        display: block;
    }
    .chk .chk_h {
        margin-top: 32px;
        display: block;
    }
    .chk_title {
        height: auto;
        padding: 10px 0;
    }
    .chk_box {
        margin-bottom: 12px;
    }

    /*-- faq_list --*/
    .faq_main {
        padding: 24px 32px;
    }
    .faq_sub {
        padding: 0 32px 24px;
    }
}

@media all and (max-width: 768px) {
    /*-- main_sec --*/
    .element_1 {
        width: 40px;
    }
    .element_2 {
        width: 50px;
        left: 15%;
        top: 5%;
    }
    .element_3 {
        width: 30px;
        left: 35%;
    }
    .element_4 {
        width: 60px;
    }
    .element_5 {
        width: 40px;
    }
    .element_6 {
        width: 80px;
    }

    @keyframes element {
        to {
            transform: translateY(-10px);
        }
    }

    /*-- concern_list --*/
    .concern_box {
        flex-direction: column;
        gap: 0;
    }
    .concern_inner {
        padding: 16px;
    }
    .concern_img {
        width: 100%;
    }

    /*-- advantages --*/
    .section .bg {
        padding-top: 80px;
    }
    .advantages_list {
        grid-template-columns: repeat(1, 1fr);
        gap: 12px;
    }
    .advantages_box {
        padding: 20px;
    }
    .advantages_icon {
        width: 50px;
        height: 50px;
        margin-bottom: 16px;
    }

    /*-- t_order --*/
    .t_order {
        padding: 80px 0;
    }
    .t_order_icon {
        width: 50px;
        height: 50px;
    }
    .t_order_icon img {
        width: 30px;
        height: 30px;
    }
    .t_order .sec_text {
        font-size: var(--ft16);
    }
    .t_order_list {
        grid-template-columns: repeat(1, 1fr);
        gap: 12px;
    }
    .t_order_box {
        padding: 20px;
    }
    .t_order_img {
        width: 100px;
        height: 100px;
    }
    .t_order_title {
        margin-top: 16px;
        margin-bottom: 8px;
    }
    .t_order_text {
        font-size: var(--ft16);
    }
    .t_oder_btm {
        font-size: var(--ft16);
    }

    /*-- graph --*/
    .graph {
        display: none;
    }

    /*-- faq_list --*/
    .faq_sec .sec_name {
        justify-content: center;
    }
    .faq_sec .sec_title {
        text-align: center;
    }
    .faq_main {
        padding: 20px;
    }
    .faq_sub {
        padding: 0 20px 20px;
    }
    .faq_sub p::before {
        width: 12px;
        height: 12px;
    }
}