/* デフォルト設定&定義 --------------------------------------*/

/* デフォルト設定 ---------------------------------- */
:root{
/* Alarmboxのオレンジ（必要に応じて調整） */
--alarm-orange: #ff6a00;
--axis-color: #cfcfcf;
--grid-color: #e9e9e9;
--label-color: #666;
}

body {
    font-family: "noto-sans-jp";
    font-size: 16px;
    font-weight: 400;
    color: #333333;
    box-sizing: border-box !important;
}

img {
    width: 100%;
}

a,
input {
    cursor: pointer;
}

/* End デフォルト設定 ---------------------------------- */

/* 定義 ------------------------------------------------*/
/* フォントサイズ ------------------------------------*/
.page_title {
    font-size: 36px;
    text-align: center;
    line-height: 1.2;
}

.message_strong {
    font-size: 28px;
    color: #DB6525;
    font-weight: bold;
}

.head_l {
    font-size: 28px;
}

.head_s {
    font-size: 20px;
}

.text {
    font-size: 16px;
}

.text_etc {
    font-size: 14px;
}

.notes {
    font-size: 12px;
}

/* ※例外: そのスペースに合わせて調整したフォント */
/* End フォントサイズ ----------------------------------*/


/* 太さ  -----------------------------------*/
.fw-bl {
    font-weight: 900;
}

.fw-b {
    font-weight: 700;
}

.fw-m {
    font-weight: 500;
}

.fw-r {
    font-weight: 400;
}

/* ※通常: font-weight: 400; */
/* End 太さ  -----------------------------------*/


/* 配色 --------------------------------------*/
.text_strong {
    color: #DB6525;
    font-weight: 700;
}

.error_msg_items, .error_msg_item, .error_msg_accidental{
    color: #ee0101;
}

.bg_head1 {
    background-color: #F3AD18;
}

.bg_head2 {
    background-color: #F29118;
}

.bg_con1 {
    background-color: #FCE6B4;
}

.bg_con2 {
    background-color: #FDE9D1;
}

.bg_orange {
    background-color: #F3AD18;
}

.bg_lightorange {
    background-color: #FEF8EC;
}

.bg_white {
    background-color: #FFFFFF;
}

.bg_gray {
    background-color: #E9E9E9;
}

.bg_lightgray {
    background-color: #F8F8F8;
}

.bg_darkgray {
    background-color: #182E38;
}

/* ※例外: そのページに合わせて調整した配色 */
/* End 配色 --------------------------------------*/

/* その他 --------------------------------------*/
.primary_button {
    background-color: #0872CE;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;

    a {
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #ffffff;

        img {
            width: 6%;
        }

        p {
            padding-left: 10px;
        }

        &:hover {
            box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
        }
    }
}

.secondary_button {
    background-color: #fff;
    border: 1px solid #0872CE;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;

    a {
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #0872CE;

        img {
            width: 6%;
        }

        p {
            padding-left: 10px;
        }

        &:hover {
            box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
        }
    }
}

.tertiary_button {
    background-color: #fff;
    border: 1px solid #000000;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;

    a {
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #000000;

        img {
            width: 6%;
        }

        p {
            padding-left: 10px;
        }

        &:hover {
            box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
        }

    }
}

.form_next_button {
    background-color: #0872CE;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;
    color: #FFF;
    border: none;
    width: 200px;
    height: 52px;
    font-size: 16px;

    &:hover {
        box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
    }
}

.form_prev_button {
    background-color: #E9E9E9;
    border: 1px solid #C9C9C9;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;
    color: #333333;
    width: 200px;
    height: 52px;
    font-size: 16px;

    &:hover {
        box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
    }
}

.pc {
    display: none !important;
}

.sp {
    display: block;
}

.sp_flex {
    display: flex;
}

.scroll-hint-icon-green {
    background-color: green;
}

/* End その他 --------------------------------------*/
/* End 定義---------------------------------------------- */
/* End 定義 & デフォルト設定 ------------------------------------- */


/* 全体項目 */
/* すべてのページ(お問い合わせ、資料請求を除く) */
#top,
#real_estate,
#owner,
#tenant,
#guarantee,
#about,
#faq,
#document {

    /* ヘッダー */
    header {
        width: 100%;
        position: fixed;
        z-index: 999;
        transition: background-color 0.5s;

        >.inner {
            width: 100%;
            max-width: 1200px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 60px;
            margin: 0 auto;
            position: relative;

            .header_logo {
                width: 150px;
                padding: 0 2%;
            }

            .header_front {
                position: absolute;
                z-index: 30;
                width: 100%;
                height: 60px;
                background-color: #FFFFFF;
                display: flex;
                align-items: center;
            }

            .header_navi {
                .phone {
                    position: absolute;
                    right: 64px;
                    top: 16px;
                    cursor: pointer;
                    z-index: 300;
                    width: 130px;

                    >p {
                        font-size: 10px;
                        letter-spacing: 0px;
                    }

                    .phone_number {
                        display: flex;
                        padding-top: 4px;

                        p {
                            color: #DB6525;
                            font-size: 16px;
                            letter-spacing: 0.5px;
                        }

                        img {
                            width: 13%;
                        }
                    }
                }

                .hamburger {
                    position: absolute;
                    right: 16px;
                    top: 18px;
                    width: 36px;
                    height: 40px;
                    cursor: pointer;
                    z-index: 300;

                    .hamburger__line {
                        position: absolute;
                        width: 100%;
                        height: 3px;
                        right: 0;
                        background-color: #000;
                        transition: all 0.5s;
                        border-radius: 4px;
                    }

                    .hamburger__line1 {
                        top: 0px;
                    }

                    .hamburger__line2 {
                        top: 12px;
                    }

                    .hamburger__line3 {
                        top: 24px;
                    }
                }

                .hamburger.open {
                    .hamburger__line1 {
                        transform: rotate(-45deg);
                        top: 11px;
                    }

                    .hamburger__line2 {
                        opacity: 0;
                    }

                    .hamburger__line3 {
                        transform: rotate(45deg);
                        top: 11px;
                    }
                }

                .navi_section {
                    position: fixed;
                    top: -100%;
                    left: 0;
                    width: 100%;
                    height: 80vh;
                    background-color: #F5F5F5;
                    transition: all 0.5s;
                    z-index: 20;
                    overflow-y: auto;
                    ;

                    .navi_menu_user {
                        display: flex;
                        flex-wrap: wrap;
                        justify-content: space-evenly;
                        align-items: center;
                        padding-top: 12px;

                        li {
                            width: 46%;
                            height: 64px;
                            background-color: #FFF;
                            border-radius: 7px;
                            margin-bottom: 12px;

                            a {
                                color: #333333;
                                width: 100%;
                                height: 100%;
                                display: flex;
                                align-items: center;
                                justify-content: center;
                            }
                        }
                    }

                    .request_info {
                        margin: 0 auto;
                        padding-top: 20px;
                        text-align: center;

                        .request_button {
                            width: 275px;
                            border: none;
                            border-radius: 7px;
                            background-color: #F3AD19;
                            font-weight: 700;
                            font-size: 20px;
                            margin: 0 auto;
                            margin-top: 12px;
                            box-sizing: border-box;

                            a {
                                color: #333333;
                                width: 100%;
                                height: 100%;
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                box-sizing: border-box;
                                padding: 16px 0;

                                img {
                                    width: 8%;
                                    padding-right: 8px;
                                }
                            }
                        }
                    }

                    .navi_menu_other {
                        margin-top: 20px;

                        li {
                            width: 100%;
                            height: 60px;
                            background-color: #FFF;
                            padding-left: 16px;
                            border: 1px solid #C9C9C9;
                            box-sizing: border-box;

                            a {
                                color: #333333;
                                display: flex;
                                align-items: center;
                                width: 100%;
                                height: 100%;
                            }
                        }
                    }
                }

                .bg_black {
                    position: fixed;
                    left: 0;
                    top: 0;
                    width: 100vw;
                    height: 100vh;
                    z-index: 5;
                    background-color: #000;
                    opacity: 0;
                    visibility: hidden;
                    transition: all 0.5s;
                    cursor: pointer;
                    z-index: 10;
                    top: 80px;
                }

                &.open {
                    .bg_black {
                        opacity: 0.3;
                        visibility: visible;
                    }

                    .navi_section {
                        top: 60px;
                    }
                }
            }
        }
    }

    /* Endヘッダー */
    /* フッター */
    footer {
        .cta {
            >.inner {
                width: 95%;
                max-width: 920px;
                margin: 0 auto;
                padding: 40px 0;

                ul {
                    display: flex;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        display: flex;
                        align-items: center;

                        .inner {
                            text-align: center;
                            width: 100%;
                        }
                    }

                    .phone {
                        order: 3;
                        padding-top: 32px;

                        .inner {
                            >p {
                                letter-spacing: 2px;
                            }

                            a {
                                color: #333333;
                                display: flex;
                                justify-content: center;
                                width: 100%;
                                padding-top: 5px;

                                img {
                                    width: 10%;
                                    object-fit: contain;
                                    max-width: 40px;
                                }

                                p {
                                    font-size: 36px;
                                }
                            }

                            span {
                                padding-top: 8px;
                                display: block;
                                font-size: 14px;
                            }
                        }
                    }

                    .request,
                    .inquiry {
                        .inner {
                            >p {
                                font-size: 16px;
                            }

                            .button {
                                width: 77%;
                                margin: 0 auto;
                                margin-top: 10px;

                                a {
                                    padding: 20px 0;
                                    border-radius: 30px;

                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
                                    }
                                }
                            }
                        }
                    }

                    .request {
                        order: 1;
                    }

                    .inquiry {
                        order: 2;
                        padding-top: 32px;
                    }
                }
            }
        }

        .navi {
            color: #FFF;

            a {
                color: #FFF;
            }

            >.inner {
                width: 100%;
                max-width: 920px;
                margin: 0 auto;
                padding-top: 20px;
                display: flex;
                justify-content: space-between;
                flex-wrap: wrap;

                .navi_text {
                    width: 95%;
                    margin: 0 auto;

                    .navi_logo {
                        display: flex;
                        align-items: center;
                        position: relative;

                        >img {
                            width: 48%;
                            max-width: 250px;
                        }

                        >a {
                            img {
                                width: 90%;
                                padding-right: 16px;
                            }
                        }

                        .sns {
                            position: absolute;
                            top: 60px;
                            right: 10px;
                            display: flex;

                            a {
                                width: 100%;
                                margin-left: 20px;

                                img {
                                    &:hover {
                                        filter: opacity(70%);
                                    }
                                }
                            }
                        }
                    }

                    >ul {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;

                        >li {
                            padding-top: 20px;
                            width: 100%;

                            >ul {
                                margin-top: 16px;
                                padding-top: 16px;
                                border-top: 1px solid #fff;

                                >li {
                                    font-size: 14px;
                                    margin-bottom: 10px;

                                    &:hover {
                                        filter: opacity(70%);
                                    }
                                }
                            }
                        }
                    }
                }

                .navi_icon {
                    width: 100%;
                    display: flex;
                    flex-wrap: wrap;

                    .banner {
                        width: 95%;
                        display: flex;
                        justify-content: space-between;
                        align-items: flex-start;
                        flex-direction: row-reverse;
                        padding-top: 20px;
                        margin: 0 auto;

                        >div:nth-of-type(1) {
                            width: 22%;
                            background-color: #FFF;

                            img {
                                width: 100%;
                                object-fit: contain;

                                &:hover {
                                    filter: opacity(70%);
                                }
                            }
                        }

                        >div:nth-of-type(2) {
                            width: 75%;

                            a {
                                background-color: #FFF;
                                display: block;

                                img {
                                    &:hover {
                                        filter: opacity(70%);
                                    }
                                }
                            }

                            p {
                                font-size: 10px;
                                text-align: left;
                                padding-top: 10px;
                                padding-top: 5px;
                                line-height: 1.35;
                            }
                        }
                    }
                }

                >p {
                    margin: 0 auto;
                    padding-top: 32px;
                    padding-bottom: 10px;
                    display: block;
                }
            }
        }
    }

    /* Endフッター */
}

/* End すべてのページ */

/* 下層ページ（お問い合わせ、資料請求以外） */
#real_estate,
#owner,
#tenant,
#guarantee,
#about,
#faq,
#document {

    /* フッター */
    footer {
        .cta {
            padding: 20px 8px;

            .inner {
                border-radius: 8px;
            }
        }
    }

    /* Endフッター */
}

/* End 下層ページ */

/* お問い合わせ、資料請求共通パーツ */
#inquiry_entry,
#inquiry_conf,
#inquiry_comp,
#request_entry,
#request_comp {

    /* ヘッダー */
    header {
        width: 100%;
        background-color: #FFFFFF;
        border-top: 5px solid #F3AD18;
        position: fixed;
        z-index: 999;
        transition: background-color 0.5s;

        >.inner {
            width: 100%;
            max-width: 1200px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 60px;
            margin: 0 auto;

            .header_logo {
                width: 150px;
                padding: 0 2%;
            }
        }
    }

    /* End ヘッダー */
    /* フッター */
    footer {
        .navi {
            color: #FFF;

            a {
                color: #FFF;
            }

            >.inner {
                width: 100%;
                max-width: 920px;
                margin: 0 auto;
                display: flex;
                justify-content: space-between;
                flex-wrap: wrap;

                >p {
                    margin: 0 auto;
                    padding: 20px 0;
                }
            }
        }
    }

    /* End フッター */
}

#inquiry_comp,
#request_comp {
    position: relative;

    footer {
        top: 100vh;
        width: 100%;
        position: absolute;
        height: 54px;
        transform: translate(0, -54px);
    }
}

/* End お問い合わせ、資料請求共通パーツ */
/* End 全体項目 */


/* 個別項目 ------------------------------------- */
/* トップページ------------------------------------ */
#top {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        .main_visual {
            display: flex;
            background-color: #FCE6B4;
            width: 100%;
            padding-top: 60px;
            #lottie_pc {
                display: none;
            }
            #lottie_sp {
                width: 40px;
                position: absolute;
                right: 10px;
                top: 150px;
            }
            >.inner {
                display: flex;
                flex-wrap: wrap;
                padding-top: 12px;

                .main_catch {
                    width: 100%;
                    order: 2;

                    h1 {
                        padding: 20px 0;
                        text-align: center;

                        :nth-of-type(1) {
                            font-size: 18px;
                        }

                        :nth-of-type(2) {
                            font-size: 44px;
                            padding-top: 10px;
                            display: block;
                            letter-spacing: -2px;
                        }
                    }
                }

                .sub_catch {
                    width: 100%;
                    order: 1;

                    .title-area {
                        display: flex;
                        flex-wrap: wrap;
                        justify-content: center;
                        color: #FFFFFF;
                        padding: 15px;

                        h2 {
                            font-size: 28px;
                            padding: 5px 0;
                        }
                    }

                    .button_area {
                        background-color: rgba(255, 255, 255, 0.9);

                        .inner {
                            display: flex;
                            justify-content: center;
                            flex-wrap: wrap;
                            padding-top: 20px;
                            width: 80%;
                            margin: 0 auto;

                            .button {
                                width: 100%;
                                margin: 0 auto;
                                height: 44px;

                                a {
                                    border-radius: 30px;
                                }
                            }

                            .phone {
                                width: 100%;
                                padding: 10px 0 20px 0;

                                span {
                                    font-size: 14px;
                                }

                                a {
                                    color: #333333;
                                    display: flex;
                                    flex-wrap: wrap;
                                    justify-content: center;
                                    padding-top: 5px;

                                    img {
                                        width: 12%;
                                    }

                                    p {
                                        font-size: 28px;
                                        padding-left: 6px;
                                    }
                                }
                            }

                            :nth-of-type(1) {
                                a {
                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
                                    }
                                }
                            }

                            :nth-of-type(2) {
                                margin-top: 10px;

                                a {
                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
                                    }
                                }
                            }

                            :nth-of-type(3) {
                                margin-top: 10px;

                                a {
                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        .user_category {
            >.inner {
                padding: 20px 0 40px;

                ul {
                    display: flex;
                    justify-content: space-between;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border-radius: 7px;
                        background-color: #fff;
                        box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);

                        .inner {
                            width: 88%;
                            margin: 0 auto;
                            padding: 20px 0 20px 0;
                            display: flex;
                            flex-direction: column;
                            height: 100%;
                            box-sizing: border-box;

                            .title {
                                text-align: center;
                            }

                            .image {
                                height: auto;
                                display: flex;
                                justify-content: center;
                                align-items: flex-end;
                                border-radius: 7px;
                                margin-top: 12px;
                            }

                            .message {
                                padding-top: 12px;
                                padding-left: 3px;
                                line-height: 1.35;
                                letter-spacing: 1px;
                            }

                            .button {
                                width: 80%;
                                height: 36px;
                                margin: 0 auto;
                                margin-top: 20px;

                                a {
                                    border-radius: 30px;

                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
                                    }
                                }
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        margin-top: 28px;
                    }

                    li:nth-of-type(1) {
                        border: 2px solid #73A6CD;

                        .image {
                            background-color: #E1F3FF;

                            img {
                                width: 50%;
                                padding-top: 20px;
                            }
                        }

                        .button {
                            margin-top: 20px;
                        }
                    }

                    li:nth-of-type(2) {
                        border: 2px solid #EF9A6B;

                        .image {
                            background-color: #ffe7d9;

                            img {
                                width: 53%;
                                padding-top: 20px;
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        border: 2px solid #6EBC86;

                        .image {
                            background-color: #E1F9E9;

                            img {
                                width: 50%;
                                padding-top: 20px;
                            }
                        }
                    }

                    li:nth-of-type(4) {
                        border: 2px solid #D2CE6C;

                        .image {
                            background-color: #FFFAD9;

                            img {
                                width: 51%;
                                padding-top: 20px;
                            }
                        }
                    }
                }
            }
        }

        .case {
            .inner {
                padding: 40px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 60px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border: 2px solid #F5AF18;
                        border-radius: 7px;
                        position: relative;

                        .inner {
                            padding: 50px 20px 20px 20px;

                            span {
                                position: absolute;
                                top: 0;
                                left: 0;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 100px;
                                height: 30px;
                                background-color: #F5AF18;
                                text-align: center;
                                border-radius: 0 0 7px 0;
                            }

                            .overview {
                                display: flex;
                                justify-content: space-between;

                                img {
                                    width: 40%;
                                }

                                .text {
                                    width: 60%;
                                    padding-left: 5%;
                                    padding-top: 8px;
                                    line-height: 1.2;

                                    .about {
                                        padding-top: 10px;
                                    }
                                }
                            }

                            .detail {
                                line-height: 1.35;
                                padding-top: 10px;
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        margin-top: 32px;
                    }
                }
            }
        }

        .message {
            .inner {
                padding: 40px 0;

                h2,
                p {
                    text-align: left;
                    br {
                        display: none;
                    }
                }

                h2 {
                    line-height: 1.35;
                    font-size: 36px;
                }

                p {
                    padding-top: 24px;
                    line-height: 2;
                    letter-spacing: 0px;
                }
            }
        }
    }

    /* チャットボット */
    .open-chat {
        border: solid 4px #fff;
        border-radius: 100px;
        position: fixed;
        bottom: 50px;
        right: 50px;
        width: 140px;
        height: 140px;
        box-shadow: 1px 2px 6px 3px rgba(100, 100, 100, 0.3);
        cursor: pointer;
        animation: floating-y 1.2s ease-in-out infinite alternate-reverse;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.5s ease, visibility 0.5s;
    }

    .open-chat.show {
        opacity: 1;
        visibility: visible;
    }

    .open-chat-bg {
        background-color: #00A89C;
        border-radius: 100px;
        text-align: center;
        width: 100%;
        height: 100%;

        & img {
            width: 100px;
            margin-left: -20px;
        }

        & p {
            color: #fff;
            font-feature-settings: 'palt' 1;
        }
    }

    .close-chat-icon {
        background-color: #fff;
        border-radius: 100px;
        position: absolute;
        right: 0;
        width: 35px;
        height: 35px;
    }

    .close-icon {
        color: #989898;
        font-weight: bold;
        line-height: 2;
    }

    .chat-button {
        position: fixed;
        bottom: 20px;
        right: 20px;
        background-color: #00A89C;
        color: white;
        border: none;
        border-radius: 50%;
        width: 60px;
        height: 60px;
        font-size: 24px;
        cursor: pointer;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    }

    .chat-container {
        width: 450px;
        height: 70vh;
        border: 1px solid #ccc;
        border-radius: 10px 10px 0 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        background-color: white;
        position: fixed;
        bottom: 0;
        right: 20px;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
        display: none;
    }

    .chat-header {
        background-color: #00A89C;
        color: white;
        padding: 10px 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .close-chat {
        background: none;
        border: none;
        color: white;
        font-size: 20px;
        font-weight: bold;
        cursor: pointer;
    }

    .chat-messages {
        flex-grow: 1;
        font-size: 12px;
        overflow-y: auto;
        padding: 20px;
        .message {
            line-height: 1.25;
            margin-bottom: 10px;
            padding: 8px 12px;
            border-radius: 10px;
            max-width: 70%;
            position: relative;
        }

        .message::after {
            content: '';
            position: absolute;
            top: 10px;
            width: 0;
            height: 0;
            border: 15px solid transparent;
        }
    }

    .bot-message-container {
        display: flex;
        align-items: start;
        margin-bottom: 15px;
    }

    .bot-message {
        background-color: #EDEDED;
        align-self: flex-start;
        margin-left: 5px;
        min-height: 31px;
        min-width: 70px;

        & .question {
            background-color: #fff;
            border: solid 1px #00A89C;
            border-radius: 50px;
            display: block;
            padding: 10px;
            margin-bottom: 5px;
            text-align: center;
            width: 100%;

            &:nth-of-type(1) {
                margin-top: 10px;
            }
        }
    }

    .bot-message::after {
        left: -14px;
        border: 5px solid transparent;
        border-right: 10px solid #EDEDED;
    }

    .bot-message-link {
        color: blue !important;
        text-decoration: underline;
        overflow-wrap: break-word;
    }

    .bot-icon {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        margin-right: 10px;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 20px;
        color: white;
    }

    .bot-icon {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        margin-right: 10px;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 20px;
        color: white;

        & img {
            width: 35px;
        }
    }

    .user-message {
        background-color: #00A89C;
        color: white;
        align-self: flex-end;
        margin-left: auto;
    }

    .user-message::after {
        right: -14px;
        border: 5px solid transparent;
        border-left: 10px solid #00A89C;
    }

    .chat-input {
        display: flex;
        padding-left: 5px;
        border-top: 1px solid #ccc;
    }

    .chat-input input {
        flex-grow: 1;
        font-size: 1rem;
        border: none;
        padding: 0.75rem;
        border-radius: 20px;
        margin-right: 10px;
        outline: none;
    }

    .chat-input input::placeholder {
        color: #989898
    }

    .chat-input button {
        background-color: #00A89C;
        color: white;
        border: none;
        padding: 5px 15px;
        cursor: pointer;
    }

    .open-chat {
        border: solid 4px #fff;
        bottom: 20px;
        right: 20px;
        width: 90px;
        height: 90px;
    }
    .chat-container {
        width: 90vw;
        height: 60vh;
        bottom: 0;
        right: 5vw;
    }
    .open-chat-bg {
        & img {
        width: 70px;
        margin-left: -17px;
        }
        & p {
        display: none;
        }
    }
    .close-chat-icon {
        background-color: #fff;
        border-radius: 100px;
        position: absolute;
        right: -5px;
        width: 25px;
        height: 25px;
    }
    .close-icon {
        color: #989898;
        font-weight: bold;
        position: absolute;
        top: -4px;
        right: 7px;
    }


}

/* End トップページ------------------------------------ */

/* 管理会社さまページ */
#real_estate {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(225, 243, 255, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .main_visual {
            >.inner {
                display: flex;
                padding-top: 100px;
                padding-bottom: 60px;
                justify-content: space-between;
                position: relative;
                flex-wrap: wrap;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .text {
                    width: 100%;

                    h2 {
                        text-align: center;
                    }

                    p {
                        padding-top: 42px;
                        line-height: 2;
                    }

                    ;
                }

                .image {
                    margin: 0 auto;
                    padding-top: 32px;

                    img {
                        width: 100%;
                    }
                }
            }
        }

        .user_merit {
            >.inner {
                padding: 60px 0;

                >h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 60px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border-radius: 7px;
                        background-color: #fff;
                        box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
                        border: 2px solid #F5AF18;

                        .inner {
                            width: 88%;
                            margin: 0 auto;
                            padding: 24px 0 24px 0;
                            display: flex;
                            flex-direction: column;
                            height: 100%;
                            box-sizing: border-box;

                            .title {
                                text-align: center;
                                padding-top: 24px;
                            }

                            .image {
                                display: flex;
                                justify-content: center;
                                align-items: flex-end;
                                border-radius: 7px;
                                margin-top: 12px;
                            }

                            .message {
                                padding-top: 20px;
                                line-height: 1.6;
                                text-align: left;
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .image {
                            img {
                                width: 40%;
                            }
                        }
                    }

                    li:nth-of-type(2) {
                        margin-top: 20px;

                        .image {
                            img {
                                width: 40%;
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        margin-top: 20px;

                        .image {
                            img {
                                width: 40%;
                            }
                        }
                    }
                }
            }
        }

        .property {
            background-color: #E1F3FF;

            >.inner {
                padding: 60px 0;

                >h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: center;
                    column-gap: 48px;
                    row-gap: 40px;
                    width: 75%;
                    margin: 0 auto;
                    padding-top: 80px;
                    flex-wrap: wrap;

                    li {
                        width: 40%;

                        .inner {
                            .image {
                                background-color: #FFF;
                                padding: 16px 0;
                                height: 80px;
                                display: flex;
                                align-items: center;
                                border-radius: 7px;

                                img {
                                    display: block;
                                    margin: 0 auto;
                                }
                            }

                            p {
                                text-align: center;
                                padding-top: 12px;
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .inner {
                            .image {
                                img {
                                    width: 60%;
                                }
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        .inner {
                            .image {
                                img {
                                    width: 65%;
                                }
                            }
                        }
                    }
                }
            }
        }

        .plan {
            .inner {
                padding: 60px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                table {
                    width: 100%;
                    text-align: center;
                    margin-top: 60px;
                    border-collapse: collapse;

                    tr {
                        display: flex;
                        justify-content: center;
                        flex-wrap: wrap;

                        th {
                            width: 100%;
                            padding: 8px 0;
                        }

                        td {
                            width: 100%;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                        }
                    }

                    .plan-name {
                        border-bottom: 0;

                        td {
                            height: 72px;
                        }

                        :nth-of-type(1) {
                            border-radius: 7px 7px 0 0;
                        }
                    }

                    .plan-description {
                        border-bottom: none;

                        th {
                            position: relative;

                            img {
                                position: absolute;
                                width: 50%;
                            }

                            p {
                                position: absolute;
                                bottom: 132%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 3;
                            }

                            img:nth-of-type(1) {
                                bottom: 105%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 2;
                            }

                            img:nth-of-type(2) {
                                bottom: 0%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 1;
                            }
                        }

                        td {
                            box-sizing: border-box;
                            padding: 1rem;
                            line-height: 1.2;
                            letter-spacing: 1px;
                            display: flex;
                            flex-wrap: wrap;
                            text-align: left;

                            a {
                                text-decoration: underline;
                                color: #0872CE;
                            }
                        }
                    }

                    .range {
                        th {
                            border-radius: 7px 0 0 0;
                        }

                        td {
                            width: 100%;
                            display: flex;
                            flex-wrap: wrap;
                            justify-content: center;
                            padding: 12px;
                            padding-bottom: 24px;

                            ul {
                                display: flex;
                                flex-wrap: wrap;

                                li {
                                    width: 100%;
                                    display: flex;
                                    padding: 4px;
                                    box-sizing: border-box;
                                    align-items: center;

                                    img {
                                        width: 9%;
                                        object-fit: contain;
                                    }

                                    span {
                                        padding-left: 8px;
                                        font-weight: 500;
                                    }
                                }
                            }

                            p {
                                display: block;
                                width: 85%;
                                text-align: left;
                            }
                        }
                    }

                    .limitation {
                        td {
                            width: 100%;
                            padding: 32px 0;
                        }
                    }

                    .initial-fee,
                    .yearly-fee,
                    .monthly-fee {
                        td {
                            padding: 24px 0;
                        }
                    }

                    .monthly-fee {
                        border-bottom: 0;

                        td {
                            border-radius: 0 0 7px 7px;
                        }
                        .bg_con2 {
                            display: block;
                            div {
                                margin-top: 0.5rem;
                            }
                        }
                    }
                }

                table:nth-of-type(3) {
                    margin-top: 56px;
                }
            }
        }

        .case {
            .inner {
                padding-top: 80px;
                padding-bottom: 40px;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 80px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border: 2px solid #F5AF18;
                        border-radius: 7px;
                        position: relative;

                        .inner {
                            padding: 50px 20px 20px 20px;
                            background-color: #FFF;
                            border-radius: 7px;

                            span {
                                position: absolute;
                                top: 0;
                                left: 0;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 100px;
                                height: 30px;
                                background-color: #F5AF18;
                                text-align: center;
                                border-radius: 0 0 7px 0;
                            }

                            .overview {
                                display: flex;

                                img {
                                    width: 35%;
                                }

                                .text {
                                    width: 60%;
                                    padding-left: 5%;
                                    line-height: 1.2;

                                    .about {
                                        padding-top: 10px;
                                    }
                                }
                            }

                            .detail {
                                line-height: 1.35;
                                padding-top: 10px;
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        margin-top: 24px;
                    }
                }
            }
        }

        .apply {
            >.inner {
                padding: 60px 0 40px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                >p {
                    text-align: left;
                    padding-top: 60px;
                    width: 100%;
                    margin: 0 auto;
                    line-height: 1.35;
                }

                .flow {
                    width: 100%;
                    padding-top: 40px;

                    li {
                        .inner {
                            display: flex;
                            border: 2px solid #F3AD18;
                            border-radius: 7px;
                            position: relative;
                            flex-wrap: wrap;

                            .step {
                                width: 100%;
                                background-color: #F3AD18;
                                color: #fff;
                                padding: 20px 0;
                                text-align: center;
                                clip-path: polygon(0% 0%, 100% 0%, 100% 65%, 50% 100%, 0% 65%);
                                position: relative;
                                border: 2px solid #F3AD18;
                                order: 1;

                                p {
                                    font-size: 20px;
                                    font-weight: bold;
                                    position: absolute;
                                    top: 50%;
                                    left: 50%;
                                    transform: translate(-55%, -50%);

                                    span {
                                        padding-left: 4px;
                                    }
                                }
                            }

                            .text {
                                width: 100%;
                                padding: 32px 12px;
                                text-align: center;
                                order: 3;

                                h3 {
                                    font-size: 20px;
                                }

                                p {
                                    a {
                                        text-decoration: underline;
                                        color: #0872CE;
                                    }
                                }

                                p:nth-of-type(1) {
                                    padding-top: 12px;
                                    line-height: 1.5;
                                    text-align: left;
                                }

                                .notes {
                                    padding-top: 12px;
                                }
                            }

                            .image {
                                width: 100%;
                                display: flex;
                                align-items: center;
                                padding-top: 24px;
                                order: 2;

                                img {
                                    display: block;
                                    width: 100%;
                                    margin: 0 auto;
                                }
                            }

                            .triangle {
                                position: absolute;
                                top: 100%;
                                left: 50%;
                                width: 0;
                                height: 0;
                                border-style: solid;
                                border-right: 36px solid transparent;
                                border-left: 36px solid transparent;
                                border-top: 36px solid #F3AD18;
                                border-bottom: 0;
                                transform: translate(-50%, 0);
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .inner {
                            .image {
                                img {
                                    width: 32%;
                                }
                            }
                        }
                    }

                    li:nth-of-type(2) {
                        padding-top: 60px;

                        .inner {
                            .image {
                                img {
                                    width: 42%;
                                }
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        padding-top: 60px;

                        .inner {
                            .image {
                                img {
                                    width: 32%;
                                }
                            }
                        }
                    }

                }

                .annotation {
                    padding-top: 8px;
                    line-height: 1.8;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                    }
                }
            }
        }

        .document {
            background-color: #F0F9FD;

            >.inner {
                padding: 60px 0 40px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                table {
                    width: 100%;
                    margin-top: 60px;
                    border-collapse: collapse;
                    border-radius: 7px;
                    overflow-x: scroll;
                    -webkit-overflow-scrolling: touch;
                    white-space: nowrap;
                    display: block;

                    tr {
                        display: flex;
                        align-items: center;
                        height: 80px;
                        border-bottom: 1px solid #C9C9C9;

                        th {
                            width: 160px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }

                        td {
                            width: 240px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            padding-left: 50px;

                            .inner {
                                img {
                                    width: 20px;
                                    padding-right: 10px;
                                }
                            }
                        }

                        td:nth-of-type(2) {
                            border-right: none;
                        }
                    }

                    tr:nth-of-type(1) {
                        th {
                            border-radius: 7px 0 0 0;
                        }

                        td:nth-of-type(2) {
                            border-radius: 0 7px 0 0;
                        }
                    }

                    tr:nth-of-type(5) {
                        height: 80px;
                        border-bottom: none;

                        th {
                            border-radius: 0 0 0 7px;
                        }

                        td:nth-of-type(2) {
                            border-radius: 0 0 7px 0;
                        }
                    }

                    .company,
                    .freelance {
                        td:nth-of-type(1) {
                            .inner {
                                padding-left: 30px;
                            }
                        }
                    }

                    .startup {
                        td {
                            .inner {
                                div:nth-of-type(1) {
                                    display: flex;
                                    align-items: center;
                                    justify-content: left;
                                }

                                div:nth-of-type(2) {
                                    display: flex;
                                    align-items: center;
                                    justify-content: left;
                                    padding-top: 12px;
                                }
                            }
                        }

                        td:nth-of-type(1) {
                            div:nth-of-type(2) {
                                padding-left: 30px;
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End 管理会社さまページ */

/* オーナーさまページ */
#owner {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(255 231 217 / 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .main_visual {
            >.inner {
                display: flex;
                padding-top: 100px;
                padding-bottom: 60px;
                justify-content: space-between;
                position: relative;
                flex-wrap: wrap;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .text {
                    width: 100%;

                    h2 {
                        text-align: center;
                    }

                    p {
                        padding-top: 42px;
                        line-height: 2;
                    }

                    ;
                }

                .image {
                    margin: 0 auto;
                    padding-top: 32px;

                    img {
                        width: 100%;
                    }
                }
            }
        }

        .user_merit {
            >.inner {
                padding: 60px 0;

                >h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 60px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border-radius: 7px;
                        background-color: #fff;
                        box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
                        border: 2px solid #F5AF18;

                        .inner {
                            width: 88%;
                            margin: 0 auto;
                            padding: 24px 0 24px 0;
                            display: flex;
                            flex-direction: column;
                            height: 100%;
                            box-sizing: border-box;

                            .title {
                                text-align: center;
                                padding-top: 24px;
                            }

                            .image {
                                display: flex;
                                justify-content: center;
                                align-items: flex-end;
                                border-radius: 7px;
                                margin-top: 12px;
                            }

                            .message {
                                padding-top: 20px;
                                line-height: 1.6;
                                text-align: left;
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .image {
                            img {
                                width: 40%;
                            }
                        }
                    }

                    li:nth-of-type(2) {
                        margin-top: 20px;

                        .image {
                            img {
                                width: 55%;
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        margin-top: 20px;

                        .image {
                            img {
                                width: 45%;
                            }
                        }
                    }
                }
            }
        }

        .property {
            background-color: rgb(255 231 217);

            >.inner {
                padding: 60px 0;

                >h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: center;
                    column-gap: 48px;
                    row-gap: 40px;
                    width: 75%;
                    margin: 0 auto;
                    padding-top: 80px;
                    flex-wrap: wrap;

                    li {
                        width: 40%;

                        .inner {
                            .image {
                                background-color: #FFF;
                                padding: 16px 0;
                                height: 80px;
                                display: flex;
                                align-items: center;
                                border-radius: 7px;

                                img {
                                    display: block;
                                    margin: 0 auto;
                                }
                            }

                            p {
                                text-align: center;
                                padding-top: 12px;
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .inner {
                            .image {
                                img {
                                    width: 60%;
                                }
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        .inner {
                            .image {
                                img {
                                    width: 65%;
                                }
                            }
                        }
                    }
                }
            }
        }

        .plan {
            .inner {
                padding: 60px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                table {
                    width: 100%;
                    text-align: center;
                    margin-top: 60px;
                    border-collapse: collapse;

                    tr {
                        display: flex;
                        justify-content: center;
                        flex-wrap: wrap;

                        th {
                            width: 100%;
                            padding: 8px 0;
                        }

                        td {
                            width: 100%;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                        }
                    }

                    .plan-name {
                        border-bottom: 0;

                        td {
                            height: 72px;
                        }

                        :nth-of-type(1) {
                            border-radius: 7px 7px 0 0;
                        }
                    }

                    .plan-description {
                        border-bottom: none;

                        th {
                            position: relative;

                            img {
                                position: absolute;
                                width: 50%;
                            }

                            p {
                                position: absolute;
                                bottom: 132%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 3;
                            }

                            img:nth-of-type(1) {
                                bottom: 105%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 2;
                            }

                            img:nth-of-type(2) {
                                bottom: 0%;
                                left: 50%;
                                transform: translate(-50%, 0);
                                z-index: 1;
                            }
                        }

                        td {
                            box-sizing: border-box;
                            padding: 1rem;
                            line-height: 1.2;
                            letter-spacing: 1px;
                            display: flex;
                            flex-wrap: wrap;
                            text-align: left;
                            a {
                                text-decoration: underline;
                                color: #0872CE;
                            }
                        }
                    }

                    .range {
                        th {
                            border-radius: 7px 0 0 0;
                        }

                        td {
                            width: 100%;
                            display: flex;
                            flex-wrap: wrap;
                            justify-content: center;
                            padding: 12px;
                            padding-bottom: 24px;

                            ul {
                                display: flex;
                                flex-wrap: wrap;

                                li {
                                    width: 100%;
                                    display: flex;
                                    padding: 4px;
                                    box-sizing: border-box;
                                    align-items: center;

                                    img {
                                        width: 9%;
                                        object-fit: contain;
                                    }

                                    span {
                                        padding-left: 8px;
                                        font-weight: 500;
                                    }
                                }
                            }

                            p {
                                display: block;
                                width: 85%;
                                text-align: left;
                            }
                        }
                    }

                    .limitation {
                        td {
                            width: 100%;
                            padding: 32px 0;
                        }
                    }

                    .initial-fee,
                    .yearly-fee,
                    .monthly-fee {
                        td {
                            padding: 24px 0;
                        }
                    }

                    .monthly-fee {
                        border-bottom: 0;

                        td {
                            border-radius: 0 0 7px 7px;
                        }

                        .bg_con2 {
                            display: block;
                            div {
                                margin-top: 0.5rem;
                            }
                        }
                    }
                }

                table:nth-of-type(3) {
                    margin-top: 56px;
                }
            }
        }

        .case {
            .inner {
                padding-top: 80px;
                padding-bottom: 40px;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 80px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border: 2px solid #F5AF18;
                        border-radius: 7px;
                        position: relative;

                        .inner {
                            padding: 50px 20px 20px 20px;
                            background-color: #FFF;
                            border-radius: 7px;

                            span {
                                position: absolute;
                                top: 0;
                                left: 0;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 100px;
                                height: 30px;
                                background-color: #F5AF18;
                                text-align: center;
                                border-radius: 0 0 7px 0;
                            }

                            .overview {
                                display: flex;

                                img {
                                    width: 35%;
                                }

                                .text {
                                    width: 60%;
                                    padding-left: 5%;
                                    line-height: 1.2;

                                    .about {
                                        padding-top: 10px;
                                    }
                                }
                            }

                            .detail {
                                line-height: 1.35;
                                padding-top: 10px;
                            }
                        }
                    }

                    li:not(:nth-of-type(1)) {
                        margin-top: 24px;
                    }
                }
            }
        }

        .apply {
            >.inner {
                padding: 60px 0 40px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                >p {
                    text-align: left;
                    padding-top: 60px;
                    width: 100%;
                    margin: 0 auto;
                    line-height: 1.35;
                }

                .flow {
                    width: 100%;
                    padding-top: 40px;

                    li {
                        .inner {
                            display: flex;
                            border: 2px solid #F3AD18;
                            border-radius: 7px;
                            position: relative;
                            flex-wrap: wrap;

                            .step {
                                width: 100%;
                                background-color: #F3AD18;
                                color: #fff;
                                padding: 20px 0;
                                text-align: center;
                                clip-path: polygon(0% 0%, 100% 0%, 100% 65%, 50% 100%, 0% 65%);
                                position: relative;
                                border: 2px solid #F3AD18;
                                order: 1;

                                p {
                                    font-size: 20px;
                                    font-weight: bold;
                                    position: absolute;
                                    top: 50%;
                                    left: 50%;
                                    transform: translate(-55%, -50%);

                                    span {
                                        padding-left: 4px;
                                    }
                                }
                            }

                            .text {
                                width: 100%;
                                padding: 32px 12px;
                                text-align: center;
                                order: 3;

                                h3 {
                                    font-size: 20px;
                                }

                                p {
                                    a {
                                        text-decoration: underline;
                                        color: #0872CE;
                                    }
                                }

                                p:nth-of-type(1) {
                                    padding-top: 12px;
                                    line-height: 1.5;
                                    text-align: left;
                                }

                                .notes {
                                    padding-top: 12px;
                                }
                            }

                            .image {
                                width: 100%;
                                display: flex;
                                align-items: center;
                                padding-top: 24px;
                                order: 2;

                                img {
                                    display: block;
                                    width: 100%;
                                    margin: 0 auto;
                                }
                            }

                            .triangle {
                                position: absolute;
                                top: 100%;
                                left: 50%;
                                width: 0;
                                height: 0;
                                border-style: solid;
                                border-right: 36px solid transparent;
                                border-left: 36px solid transparent;
                                border-top: 36px solid #F3AD18;
                                border-bottom: 0;
                                transform: translate(-50%, 0);
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .inner {
                            .image {
                                img {
                                    width: 32%;
                                }
                            }
                        }
                    }

                    li:nth-of-type(2) {
                        padding-top: 60px;

                        .inner {
                            .image {
                                img {
                                    width: 42%;
                                }
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        padding-top: 60px;

                        .inner {
                            .image {
                                img {
                                    width: 32%;
                                }
                            }
                        }
                    }

                }

                .annotation {
                    padding-top: 8px;
                    line-height: 1.8;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                    }
                }
            }
        }

        .document {
            background-color: rgb(255 231 217);

            >.inner {
                padding: 60px 0 40px 0;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                table {
                    width: 100%;
                    margin-top: 60px;
                    border-collapse: collapse;
                    border-radius: 7px;
                    overflow-x: scroll;
                    -webkit-overflow-scrolling: touch;
                    white-space: nowrap;
                    display: block;

                    tr {
                        display: flex;
                        align-items: center;
                        height: 80px;
                        border-bottom: 1px solid #C9C9C9;

                        th {
                            width: 160px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }

                        td {
                            width: 240px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            padding-left: 50px;

                            .inner {
                                img {
                                    width: 20px;
                                    padding-right: 10px;
                                }
                            }
                        }

                        td:nth-of-type(2) {
                            border-right: none;
                        }
                    }

                    tr:nth-of-type(1) {
                        th {
                            border-radius: 7px 0 0 0;
                        }

                        td:nth-of-type(2) {
                            border-radius: 0 7px 0 0;
                        }
                    }

                    tr:nth-of-type(5) {
                        height: 80px;
                        border-bottom: none;

                        th {
                            border-radius: 0 0 0 7px;
                        }

                        td:nth-of-type(2) {
                            border-radius: 0 0 7px 0;
                        }
                    }

                    .company,
                    .freelance {
                        td:nth-of-type(1) {
                            .inner {
                                padding-left: 30px;
                            }
                        }
                    }

                    .startup {
                        td {
                            .inner {
                                div:nth-of-type(1) {
                                    display: flex;
                                    align-items: center;
                                    justify-content: left;
                                }

                                div:nth-of-type(2) {
                                    display: flex;
                                    align-items: center;
                                    justify-content: left;
                                    padding-top: 12px;
                                }
                            }
                        }

                        td:nth-of-type(1) {
                            div:nth-of-type(2) {
                                padding-left: 30px;
                            }
                        }
                    }
                }
            }
        }
    }
}

/* オーナーさまページ */

/* 入居者さまページ */
#tenant {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(225, 249, 233, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .main_visual {
            >.inner {
                display: flex;
                padding-top: 100px;
                padding-bottom: 60px;
                justify-content: space-between;
                position: relative;
                flex-wrap: wrap;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .text {
                    width: 100%;

                    h2 {
                        text-align: center;
                    }

                    p {
                        padding-top: 42px;
                        line-height: 2;
                    }

                    ;
                }

                .image {
                    margin: 0 auto;
                    padding-top: 32px;

                    img {
                        width: 100%;
                    }
                }
            }
        }

        .achivement {
            background: linear-gradient(rgba(225, 249, 233));

            .inner {
                display: flex;
                justify-content: space-between;
                flex-wrap: wrap;
                padding: 60px 0px;

                h2 {
                    width: 100%;
                    position: relative;
                    padding-left: 20px;

                    &::before {
                        content: "";
                        width: 5px;
                        height: 100%;
                        background-color: #F3AD18;
                        position: absolute;
                        top: 0;
                        left: 0;
                    }
                }

                .contents {
                    display: flex;
                    justify-content: space-evenly;
                    flex-wrap: wrap;
                    margin-top: 20px;
                    padding: 24px 10px;
                    position: relative;
                    border-radius: 7px;

                    .text {
                        width: 100%;

                        .message {
                            font-size: 28px;
                            display: block;
                            text-align: left;
                            width: 100%;
                            line-height: 1.35;
                            letter-spacing: 2px;
                        }

                        .message_text {
                            letter-spacing: 1.2px;
                            line-height: 1.75;
                            padding-top: 32px;

                            .badge {
                                float: right;
                                width: 53%;
                                position: relative;

                                img {
                                    display: none;
                                    width: calc(120% - 10vw);
                                    float: right;
                                    padding-top: 36px;
                                    width: 160px;
                                }

                                .badge_text {
                                    background-color: #fff;
                                    position: absolute;
                                    right: 0;
                                    top: calc(130px - 5vw);
                                    font-size: 18px;
                                    text-align: center;
                                    line-height: 1.2;
                                    letter-spacing: 0px;
                                    transform: translate(calc(40% - 15vw), calc(-70% + 18vw));
                                    border: solid 5px #DB6525;
                                    border-radius: 50%;
                                    padding: 10px;
                                    height: 110px;
                                    width: 110px;
                                    margin-top: 50px;
                                    display: grid;
                                    place-content: center;
                                    left: -120px;
                                    z-index: 1;
                                    >span {
                                        color: #DB6525;

                                        >span {
                                            font-size: 24px;
                                        }
                                    }
                                }

                                .clearfix {
                                    clear: both;
                                }
                            }
                        }
                    }

                    img {
                        width: 100%;
                        object-fit: contain;
                    }

                    #chart-achievements {
                        position: relative;
                        width: 85%;
                        margin: 130px 0 36px;
                        /* 左側にY軸用の余白 */
                        padding-left: 64px;
                    }
                    /* プロット領域（軸を除いた実際の描画エリア） */
                    #chart-achievements .plot-area {
                        position: relative;
                        height: 450px;
                        border-bottom: 1px solid var(--axis-color);
                    }

                    /* Y軸ラベル（左側） */
                    #chart-achievements .y-axis {
                        position: absolute;
                        left: 0;
                        top: 0;
                        bottom: 0;
                        width: 64px;
                    }
                    #chart-achievements .y-tick-label {
                        position: absolute;
                        right: 8px;
                        transform: translateY(50%); /* ラインとラベルを揃える */
                        font-size: 12px;
                        color: var(--label-color);
                        white-space: nowrap;
                        font-weight: bold;
                    }

                    /* グリッド水平線 */
                    #chart-achievements .grid-line {
                        position: absolute;
                        left: 0; right: 0;
                        height: 1px;
                        background: var(--grid-color);
                    }
                    /* Y軸の縦線（任意） */
                    #chart-achievements .y-axis-line {
                        position: absolute;
                        right: 0;
                        top: 0; bottom: 0;
                        width: 1px;
                        background: var(--axis-color);
                    }

                    /* 棒 */
                    #chart-achievements .bar {
                        position: absolute;
                        bottom: 0;
                        background: #fff;
                        border: 2px solid var(--alarm-orange);
                        border-radius: 0;
                        transition: height 600ms ease;
                        overflow: hidden; /* 内側の塗りをクリップ */
                    }
                    /* 内側の塗り（濃さを段階的に） */
                    #chart-achievements .bar .fill {
                        position: absolute;
                        inset: 0;
                        background: var(--alarm-orange);
                        opacity: 0;            /* 最初（t=0）は0＝白のまま */
                        transition: opacity 600ms ease;
                    }
                    #chart-achievements .bar.has-rider { overflow: visible; }

                    /* てっぺんに乗る画像 */
                    #chart-achievements .bar .bar-rider {
                        position: absolute;
                        bottom: calc(100% + var(--rider-offset, 8px)); /* 棒の上端から少し上 */
                        left: 50%;
                        transform: translateX(-50%);
                        width: clamp(40px, 7vw, 88px);  /* 画面に合わせて可変 */
                        height: auto;
                        pointer-events: none;
                        z-index: 5;
                        filter: drop-shadow(0 1px 2px rgba(0,0,0,.15));
                    }

                    /* X軸のラベル */
                    #chart-achievements .x-label {
                        position: absolute;
                        bottom: -22px;
                        text-align: center;
                        font-size: 12px;
                        color: var(--label-color);
                        white-space: nowrap;
                    }

                    #chart-achievements { padding-left: 45px; }
                    #chart-achievements .y-axis { width: 45px; }
                    #chart-achievements .x-label { font-size: 10px; }

                    >.badge_bg {
                        position: absolute;
                        top: 53%;
                        right: 0;
                        z-index: 1;
                        width: 45%;
                    }

                    >.badge_text {
                        position: absolute;
                        top: 58%;
                        right: 3%;
                        z-index: 2;
                        font-size: 18px;
                        text-align: center;

                        >span {
                            color: #DB6525;
                            line-height: 1.5;

                            >span {
                                font-size: 32px;
                            }
                        }
                    }
                }

                .banners {
                    width: 100%;
                    display: flex;
                    justify-content: center;
                    padding-top: 32px;
                    flex-wrap: wrap;

                    li {
                        display: flex;
                        justify-content: center;
                        flex-wrap: wrap;

                        img {
                            width: 100%;
                            height: auto;
                            margin: 0 auto;
                        }

                        p {
                            font-size: 14px;
                            width: 100%;
                            padding-top: 4px;
                            line-height: 1.35;
                        }
                    }

                    li:nth-of-type(1) {
                        width: 40%;
                    }

                    li:nth-of-type(2) {
                        margin-top: 24px;
                    }

                    li:nth-of-type(3) {
                        margin-top: 20px;
                    }

                    li:nth-of-type(4) {
                        margin-top: 24px;
                    }

                    li:not(:nth-of-type(1)) {
                        width: 100%;
                        height: auto;
                    }
                }
            }
        }

        .fee {
            .inner {
                padding: 60px 0;

                h2 {
                    text-align: center;
                    position: relative;
                    line-height: 1.5;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                >ul {
                    display: flex;
                    flex-wrap: wrap;
                    padding-top: 40px;
                    width: 80%;
                    margin: 0 auto;

                    li {
                        width: 100%;
                        border: 2px solid #F5AF18;
                        border-radius: 7px;
                        position: relative;
                        margin-top: 40px;

                        .inner {
                            padding: 88px 20px 20px 20px;

                            >span {
                                position: absolute;
                                top: 0;
                                left: 0;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 100%;
                                height: 64px;
                                text-align: center;
                            }

                            .text {
                                width: 100%;
                                line-height: 1.2;
                                box-sizing: border-box;
                                text-align: center;
                            }
                        }
                    }
                }

                .example {
                    border: 2px solid #F5AF18;
                    border-radius: 7px;
                    margin-top: 32px;
                    background-color: #FFF;

                    >p {
                        text-align: center;
                        padding: 20px 0;
                    }

                    .example_image {
                        position: relative;

                        >ul {
                            display: flex;
                            ;
                            padding-top: 24px;
                            justify-content: center;
                            flex-direction: column;
                            position: relative;
                            z-index: 2;

                            li {
                                width: 70%;
                                margin: 0 auto;

                                .example_item {
                                    padding: 48px 16px 16px 16px;
                                    border: 2px solid #F5AF18;
                                    border-radius: 7px;
                                    position: relative;
                                    background-color: #FFF;

                                    >span {
                                        position: absolute;
                                        top: 0;
                                        left: 0;
                                        display: flex;
                                        justify-content: center;
                                        align-items: center;
                                        width: 100%;
                                        height: 32px;
                                        text-align: center;
                                    }

                                    .text {
                                        width: 100%;
                                        line-height: 1.2;
                                        box-sizing: border-box;
                                        text-align: center;

                                        .cost {
                                            font-size: 20px;
                                            font-weight: 700;
                                        }
                                    }
                                }

                                .year {
                                    text-align: right;
                                    padding-top: 10px;
                                }
                            }

                            li:not(:nth-of-type(1)) {
                                padding-top: 18px;
                            }

                            li:last-of-type {
                                border: none;
                                width: 70%;
                                padding-bottom: 120px;

                                .example_item {
                                    padding: 0;
                                    border: none;
                                    position: relative;

                                    .image_items {
                                        p {
                                            position: absolute;
                                            width: 100%;
                                            z-index: 1;
                                            text-align: center;
                                            top: 19px;
                                            left: 0px;
                                            line-height: 1.35;
                                            letter-spacing: 2px;
                                        }

                                        img:nth-of-type(2) {
                                            width: 75%;
                                            margin: 0 auto;
                                        }

                                        img:nth-of-type(3) {
                                            width: 20%;
                                            position: absolute;
                                        }
                                    }
                                }
                            }
                        }

                        >img {
                            width: 190%;
                            margin: 0 auto;
                            display: block;
                            position: absolute;
                            top: 26%;
                            transform: rotate(90deg);
                            transform-origin: 26%;
                            z-index: 1;
                            max-width: 800px;
                        }
                    }
                }
            }
        }
    }
}

/* End 入居者さまページ */

/* 保証会社さまページ */
#guarantee {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(255, 250, 217, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .main_visual {
            >.inner {
                display: flex;
                padding-top: 100px;
                padding-bottom: 60px;
                justify-content: space-between;
                position: relative;
                flex-wrap: wrap;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .text {
                    width: 100%;

                    h2 {
                        text-align: center;
                    }

                    p {
                        padding-top: 42px;
                        letter-spacing: 1.5px;
                        line-height: 2;
                    }

                    ;
                }

                .image {
                    width: 100%;
                    padding-top: 24px;
                }
            }
        }

        .user_merit {
            >.inner {
                padding: 60px 0;

                >h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                ul {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 60px;
                    flex-wrap: wrap;

                    li {
                        width: 100%;
                        border-radius: 7px;
                        background-color: #fff;
                        box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
                        border: 2px solid #F5AF18;

                        .inner {
                            width: 90%;
                            margin: 0 auto;
                            padding: 24px 0 24px 0;
                            display: flex;
                            flex-direction: column;
                            height: 100%;
                            box-sizing: border-box;

                            .title {
                                text-align: center;
                                padding-top: 24px;
                            }

                            .image {
                                display: flex;
                                justify-content: center;
                                align-items: flex-end;
                                border-radius: 7px;
                            }

                            .message {
                                padding-top: 16px;
                                line-height: 1.6;
                                text-align: left;
                            }
                        }
                    }

                    li:nth-of-type(1) {
                        .image {
                            img {
                                width: 42%;
                            }
                        }
                    }

                    li:nth-of-type(2) {
                        margin-top: 24px;

                        .image {
                            img {
                                width: 46%;
                            }
                        }
                    }

                    li:nth-of-type(3) {
                        margin-top: 24px;

                        .image {
                            padding-top: 12px;

                            img {
                                width: 48%;
                            }
                        }
                    }
                }
            }
        }

        .case {
            >.inner {
                padding: 60px 0 40px;

                h2 {
                    text-align: center;
                    position: relative;

                    &:before {
                        content: '';
                        position: absolute;
                        left: 50%;
                        bottom: -25px;
                        /*線の上下位置*/
                        display: inline-block;
                        width: 50px;
                        /*線の長さ*/
                        height: 2.5px;
                        /*線の太さ*/
                        -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
                        /*位置調整*/
                        background-color: black;
                        /*線の色*/
                        border-radius: 3px;
                        /*線の丸み*/
                    }
                }

                .case_plans {
                    display: flex;
                    justify-content: space-evenly;
                    padding-top: 60px;
                    width: 100%;
                    margin: 0 auto;
                    flex-wrap: wrap;

                    .case_plan {
                        width: 100%;
                        border-radius: 7px;
                        position: relative;

                        .inner {
                            .item_title {
                                text-align: center;
                                padding: 10px 0;
                                line-height: 1.35;
                                border-radius: 7px 7px 0 0;

                            }

                            .text {
                                width: 100%;
                                line-height: 1.2;
                                box-sizing: border-box;
                                text-align: center;
                                padding: 24px 0;
                                border-radius: 7px;
                                background-color: #FCE6B4;
                                border-radius: 0 0 7px 7px;

                                >p {
                                    line-height: 2;
                                }

                                .plan_items {
                                    position: relative;
                                    margin-top: 24px;

                                    ul {
                                        position: absolute;
                                        top: 50%;
                                        left: 50%;
                                        transform: translate(-50%, -50%);

                                        li {
                                            padding: 16px 0;
                                            font-weight: 500;
                                            color: #FFF;
                                        }
                                    }

                                    .bg {
                                        width: 80%;
                                    }
                                }

                                .plan_message {
                                    position: relative;
                                    width: 70%;
                                    margin: 0 auto;
                                    padding-top: 12px;

                                    p {
                                        position: absolute;
                                        top: 50%;
                                        left: 50%;
                                        transform: translate(-50%, -35%);
                                        width: 90%;
                                        letter-spacing: 1px;

                                        span:nth-of-type(1) {
                                            display: flex;
                                            align-items: flex-end;
                                            justify-content: center;
                                            padding-bottom: 12px;
                                            width: 85%;
                                            margin: 0 auto;

                                            img {
                                                padding-right: 4px;
                                            }
                                        }

                                        span:nth-of-type(2) {
                                            position: relative;

                                            &::before {
                                                position: absolute;
                                                content: "";
                                                display: inline-block;
                                                top: 24px;
                                                width: 48px;
                                                height: 5px;
                                                background-color: #F3AD18;
                                                border-radius: 4px;
                                            }

                                        }

                                        .notes {
                                            letter-spacing: 0px;
                                            padding-top: 12px;
                                            display: block;
                                        }
                                    }

                                    img {
                                        width: 100%;
                                    }
                                }
                            }
                        }
                    }

                    .case_plan:nth-of-type(2) {
                        margin-top: 40px;
                    }
                }
            }
        }
    }
}

/* End 保証会社さまページ */

/* 会社概要ページ */
#about {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .contents {
            >.inner {
                position: relative;
                padding: 64px 0 40px;

                .breadcrumb {
                    position: absolute;
                    top: 16px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .service_description {
                    border-radius: 7px 7px 0 0;

                    .inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        width: 90%;
                        margin: 0 auto;
                        padding-top: 20px;

                        h2 {
                            width: 100%;
                            position: relative;
                            padding-left: 20px;

                            &::before {
                                content: "";
                                width: 5px;
                                height: 100%;
                                background-color: #F3AD18;
                                position: absolute;
                                top: 0;
                                left: 0;
                            }
                        }

                        .text {
                            display: flex;
                            justify-content: space-around;
                            flex-wrap: wrap;
                            margin-top: 20px;
                            padding: 20px;
                            border-radius: 7px;

                            .message {
                                font-size: 36px;
                                display: block;
                                text-align: left;
                                width: 100%;
                                line-height: 1.2;
                                order: 1;

                                span {
                                    font-size: 36px;
                                }
                            }

                            .message_text {
                                width: 100%;
                                letter-spacing: 1.2px;
                                line-height: 1.5;
                                padding-top: 24px;
                                order: 3;
                            }

                            img {
                                width: 100%;
                                object-fit: contain;
                                padding-top: 24px;
                                order: 2;
                            }
                        }
                    }
                }

                .company_description {
                    .inner {
                        width: 90%;
                        margin: 0 auto;
                        padding-top: 40px;

                        h2 {
                            width: 100%;
                            position: relative;
                            padding-left: 20px;

                            &::before {
                                content: "";
                                width: 5px;
                                height: 100%;
                                background-color: #F3AD18;
                                position: absolute;
                                top: 0;
                                left: 0;
                            }
                        }

                        .table {
                            width: 100%;
                            padding-top: 12px;
                            margin-top: 20px;
                            border-radius: 7px;

                            table {
                                width: 90%;
                                margin: 0 auto;
                                margin-top: 20px;

                                tr {
                                    width: 100%;
                                    display: flex;
                                    flex-wrap: wrap;

                                    th {
                                        width: 100%;
                                        padding: 20px 0;
                                        padding-left: 12px;
                                        text-align: left;
                                        background-color: #F8F9FA;
                                    }

                                    td {
                                        width: 100%;
                                        padding: 20px 0;
                                        padding-left: 12px;
                                        line-height: 1.2;

                                        a {
                                            text-decoration: underline;
                                            color: #0872CE;
                                        }
                                    }
                                }

                                tr:last-of-type {
                                    td {
                                        padding: 12px 0 24px 12px;

                                        p {
                                            padding-top: 12px;

                                            a {
                                                text-decoration: none;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                .achivement {
                    background: #F8F8F8;

                    .inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        padding: 40px 0px;
                        width: 90%;
                        margin: 0 auto;

                        h2 {
                            width: 100%;
                            position: relative;
                            padding-left: 20px;

                            &::before {
                                content: "";
                                width: 5px;
                                height: 100%;
                                background-color: #F3AD18;
                                position: absolute;
                                top: 0;
                                left: 0;
                            }
                        }

                        .contents {
                            display: flex;
                            justify-content: space-evenly;
                            flex-wrap: wrap;
                            margin-top: 20px;
                            padding: 24px 10px;
                            position: relative;
                            border-radius: 7px;

                            .text {
                                width: 100%;

                                .message {
                                    font-size: 28px;
                                    display: block;
                                    text-align: left;
                                    width: 100%;
                                    line-height: 1.35;
                                    letter-spacing: 2px;
                                }

                                .message_text {
                                    letter-spacing: 1.2px;
                                    line-height: 1.75;
                                    padding-top: 32px;

                                    .badge {
                                        float: right;
                                        width: 53%;
                                        position: relative;

                                        img {
                                            display: none;
                                            width: 100%;
                                            float: right;
                                            padding-top: 36px;
                                            max-width: 160px;
                                            padding-top: calc(60px - 3vw);
                                        }

                                        .badge_text {
                                            background-color: #fff;
                                            position: absolute;
                                            right: 0;
                                            top: calc(130px - 5vw);
                                            font-size: 18px;
                                            text-align: center;
                                            line-height: 1.2;
                                            letter-spacing: 0px;
                                            transform: translate(calc(40% - 15vw), calc(-70% + 18vw));
                                            border: solid 5px #DB6525;
                                            border-radius: 50%;
                                            padding: 10px;
                                            height: 110px;
                                            width: 110px;
                                            margin-top: 50px;
                                            display: grid;
                                            place-content: center;
                                            left: -120px;
                                            z-index: 1;
                                            >span {
                                                color: #DB6525;

                                                >span {
                                                    font-size: 24px;
                                                }
                                            }
                                        }

                                        .clearfix {
                                            clear: both;
                                        }
                                    }
                                }
                            }

                            img {
                                width: 100%;
                                object-fit: contain;
                            }

                            #chart-achievements {
                                position: relative;
                                width: 85%;
                                margin: 130px 0 36px;
                                /* 左側にY軸用の余白 */
                                padding-left: 64px;
                            }
                            /* プロット領域（軸を除いた実際の描画エリア） */
                            #chart-achievements .plot-area {
                                position: relative;
                                height: 450px;
                                border-bottom: 1px solid var(--axis-color);
                            }

                            /* Y軸ラベル（左側） */
                            #chart-achievements .y-axis {
                                position: absolute;
                                left: 0;
                                top: 0;
                                bottom: 0;
                                width: 64px;
                            }
                            #chart-achievements .y-tick-label {
                                position: absolute;
                                right: 8px;
                                transform: translateY(50%); /* ラインとラベルを揃える */
                                font-size: 12px;
                                color: var(--label-color);
                                white-space: nowrap;
                                font-weight: bold;
                            }

                            /* グリッド水平線 */
                            #chart-achievements .grid-line {
                                position: absolute;
                                left: 0; right: 0;
                                height: 1px;
                                background: var(--grid-color);
                            }
                            /* Y軸の縦線（任意） */
                            #chart-achievements .y-axis-line {
                                position: absolute;
                                right: 0;
                                top: 0; bottom: 0;
                                width: 1px;
                                background: var(--axis-color);
                            }

                            /* 棒 */
                            #chart-achievements .bar {
                                position: absolute;
                                bottom: 0;
                                background: #fff;
                                border: 2px solid var(--alarm-orange);
                                border-radius: 0;
                                transition: height 600ms ease;
                                overflow: hidden; /* 内側の塗りをクリップ */
                            }
                            /* 内側の塗り（濃さを段階的に） */
                            #chart-achievements .bar .fill {
                                position: absolute;
                                inset: 0;
                                background: var(--alarm-orange);
                                opacity: 0;            /* 最初（t=0）は0＝白のまま */
                                transition: opacity 600ms ease;
                            }
                            #chart-achievements .bar.has-rider { overflow: visible; }

                            /* てっぺんに乗る画像 */
                            #chart-achievements .bar .bar-rider {
                                position: absolute;
                                bottom: calc(100% + var(--rider-offset, 8px)); /* 棒の上端から少し上 */
                                left: 50%;
                                transform: translateX(-50%);
                                width: clamp(40px, 7vw, 88px);  /* 画面に合わせて可変 */
                                height: auto;
                                pointer-events: none;
                                z-index: 5;
                                filter: drop-shadow(0 1px 2px rgba(0,0,0,.15));
                            }

                            /* X軸のラベル */
                            #chart-achievements .x-label {
                                position: absolute;
                                bottom: -22px;
                                text-align: center;
                                font-size: 12px;
                                color: var(--label-color);
                                white-space: nowrap;
                            }

                            #chart-achievements { padding-left: 45px; }
                            #chart-achievements .y-axis { width: 45px; }
                            #chart-achievements .x-label { font-size: 10px; }

                            >.badge_bg {
                                position: absolute;
                                top: 53%;
                                right: 0;
                                z-index: 1;
                                width: 45%;
                            }

                            >.badge_text {
                                position: absolute;
                                top: 58%;
                                right: 3%;
                                z-index: 2;
                                font-size: 18px;
                                text-align: center;

                                >span {
                                    color: #DB6525;
                                    line-height: 1.5;

                                    >span {
                                        font-size: 32px;
                                    }
                                }
                            }
                        }
                    }
                }

                .philosophy {
                    border-radius: 0 0 7px 7px;

                    .inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        width: 90%;
                        margin: 0 auto;

                        h2 {
                            width: 100%;
                            position: relative;
                            padding-left: 20px;

                            &::before {
                                content: "";
                                width: 5px;
                                height: 100%;
                                background-color: #F3AD18;
                                position: absolute;
                                top: 0;
                                left: 0;
                            }
                        }

                        .contents {
                            display: flex;
                            justify-content: space-around;
                            flex-wrap: wrap;
                            align-items: flex-start;
                            padding: 24px 16px;
                            margin: 20px 0;
                            border-radius: 7px;
                            background-color: #FFF;

                            .message {
                                width: 100%;
                                font-size: 36px;
                                display: block;
                                text-align: left;
                                width: 100%;
                                line-height: 1.2;
                                order: 1;

                                .message_strong {
                                    font-size: 36px;
                                }
                            }

                            .message_text {
                                width: 100%;
                                line-height: 1.5;
                                padding-top: 32px;
                                order: 3;
                            }

                            .image {
                                width: 100%;
                                padding-top: 32px;
                                order: 2;

                                img {
                                    object-fit: contain;
                                }

                                p {
                                    text-align: center;
                                    padding-top: 12px;
                                }
                            }
                        }
                    }
                }

                .character {
                    margin-top: 40px;

                    .inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        padding: 16px;

                        h2 {
                            width: 100%;
                            position: relative;
                            padding-left: 20px;

                            &::before {
                                content: "";
                                width: 5px;
                                height: 100%;
                                background-color: #F3AD18;
                                position: absolute;
                                top: 0;
                                left: 0;
                            }
                        }

                        .contents {
                            display: flex;
                            justify-content: space-around;
                            flex-wrap: wrap;
                            padding: 40px 20px;
                            width: 100%;
                            border-radius: 7px;

                            .message_strong {
                                font-size: 36px;
                                display: block;
                                text-align: left;
                                width: 100%;
                                padding-left: 8px;
                                line-height: 1.35;
                                order: 1;
                            }

                            .message_text {
                                line-height: 1.8;
                                padding-top: 24px;
                                order: 3;
                            }

                            table {
                                margin-top: 24px;
                                width: 100%;
                                order: 4;

                                tr {
                                    th {
                                        width: 23%;
                                        text-align: right;
                                        padding: 16px 0;
                                    }

                                    td {
                                        width: 77%;
                                        font-weight: 500;
                                        text-align: left;
                                        padding: 10px 20px;
                                        letter-spacing: 1px;
                                    }
                                }
                            }

                            .image {
                                width: 100%;
                                margin-top: 32px;
                                order: 2;

                                img {
                                    object-fit: contain;
                                }

                                p {
                                    text-align: center;
                                    padding-top: 12px;
                                    line-height: 1.35;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End 会社概要ページ */

/* よくある質問 */
#faq {
    main {
        width: 100%;

        section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding: 80px 0 32px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                >p {
                    text-align: center;
                    line-height: 1.35;
                }

                .faq_section {
                    margin-top: 28px;
                    border-radius: 7px;

                    .inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        padding: 30px 0;
                        box-sizing: border-box;

                        .faq_overview {
                            width: 100%;
                            box-sizing: border-box;
                            height: 100%;

                            .faq_topics {
                                width: 100%;
                                border: 1px solid #E9E9E9;

                                li {
                                    cursor: pointer;

                                    button {
                                        width: 100%;
                                        height: 50px;
                                        border: none;
                                        text-align: left;
                                        padding-left: 20px;
                                        font-weight: 700;
                                        background-color: #FFF;
                                        color: #333333;
                                        position: relative;

                                        .topics_arrow {
                                            content: "";
                                            display: block;
                                            top: 20px;
                                            right: 16px;
                                            width: 8px;
                                            /* 矢印の大きさの指定 */
                                            height: 8px;
                                            /* 矢印の大きさの指定 */
                                            border-top: 3px solid #333333;
                                            /* 矢印の太さの指定 */
                                            border-left: 3px solid #333333;
                                            /* 矢印の太さの指定 */
                                            transform: rotate(135deg);
                                            /* 矢印の角度の指定 */
                                            position: absolute;
                                            /* 矢印の位置の指定 */
                                            border-radius: 2px;
                                        }
                                    }

                                    button.cat_head.is-active {
                                        background-color: #F3AD18;
                                        color: #FFF;

                                        .topics_arrow {
                                            display: none;
                                        }
                                    }
                                }

                                li:hover {
                                    cursor: pointer;
                                }

                                li.active {
                                    button {
                                        background-color: #F29118;
                                        color: #FFF;
                                    }
                                }

                                li:not(:last-of-type) {
                                    border-bottom: 1px solid #E9E9E9;
                                }
                            }
                        }

                        .faq_contents {
                            width: 100%;

                            .faq_content {
                                h2 {
                                    padding-top: 40px;
                                    padding-bottom: 16px;
                                    position: relative;
                                }

                                h2::before {
                                    position: absolute;
                                    content: "";
                                    width: 30%;
                                    height: 3px;
                                    background-color: #F3AD18;
                                    bottom: -5px;
                                    border-radius: 2px;
                                }

                                h2::after {
                                    position: absolute;
                                    content: "";
                                    width: 70%;
                                    height: 3px;
                                    background-color: #C9C9C9;
                                    bottom: -5px;
                                    right: 0;
                                    border-radius: 2px;
                                }

                                ul {
                                    margin-top: 40px;

                                    li {
                                        padding-bottom: 16px;
                                        border: 1px solid #E9E9E9;
                                        border-radius: 7px;
                                        background-color: #FFF;

                                        p {
                                            position: relative;

                                            .content_arrow {
                                                cursor: pointer;
                                            }
                                        }

                                        p.question {
                                            font-weight: 700;
                                            padding-top: 20px;
                                            padding-left: 64px;
                                            width: 67%;
                                            line-height: 1.35;

                                            .content_arrow {
                                                content: "";
                                                display: block;
                                                top: 55%;
                                                right: -8%;
                                                width: 8px;
                                                /* 矢印の大きさの指定 */
                                                height: 8px;
                                                /* 矢印の大きさの指定 */
                                                border-top: 4px solid #F29118;
                                                /* 矢印の太さの指定 */
                                                border-left: 4px solid #F29118;
                                                /* 矢印の太さの指定 */
                                                transform: rotate(225deg);
                                                /* 矢印の角度の指定 */
                                                position: absolute;
                                                /* 矢印の位置の指定 */
                                                border-radius: 2px;
                                            }
                                        }

                                        p.question::before {
                                            content: "Q";
                                            position: absolute;
                                            top: 12px;
                                            left: 18px;
                                            font-size: 20px;
                                            font-weight: 700;
                                            color: #FFF;
                                            background-color: #F29118;
                                            display: flex;
                                            width: 32px;
                                            height: 32px;
                                            align-items: center;
                                            justify-content: center;
                                            border-radius: 30px;
                                        }

                                        p.question.is-active {
                                            .content_arrow {
                                                content: "";
                                                display: block;
                                                top: 60%;
                                                right: -7%;
                                                width: 8px;
                                                /* 矢印の大きさの指定 */
                                                height: 8px;
                                                /* 矢印の大きさの指定 */
                                                border-top: 4px solid #F29118;
                                                /* 矢印の太さの指定 */
                                                border-left: 4px solid #F29118;
                                                /* 矢印の太さの指定 */
                                                transform: rotate(45deg);
                                                /* 矢印の角度の指定 */
                                                position: absolute;
                                                /* 矢印の位置の指定 */
                                                border-radius: 2px;
                                            }
                                        }

                                        p.answer {
                                            display: none;
                                        }

                                        p.answer.is-open {
                                            display: block;
                                            padding-top: 28px;
                                            padding-left: 64px;
                                            padding-right: 12px;
                                            line-height: 1.6;
                                            width: 75%;
                                        }

                                        p.answer.is-open::before {
                                            content: "A";
                                            position: absolute;
                                            top: 24px;
                                            left: 18px;
                                            font-size: 20px;
                                            font-weight: 700;
                                            color: #F29118;
                                            background-color: #FFF;
                                            border: 1px solid #F29118;
                                            display: flex;
                                            width: 32px;
                                            height: 32px;
                                            align-items: center;
                                            justify-content: center;
                                            border-radius: 30px;
                                        }
                                    }

                                    li:not(:nth-of-type(1)) {
                                        margin-top: 16px;
                                    }
                                }
                            }

                            .faq_content:not(:nth-of-type(1)) {
                                display: none;
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End よくある質問 */

/* 各種書類ダウンロード */
#document {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .contents {
            padding-bottom: 80px;

            .inner {
                position: relative;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                >p {
                    text-align: center;
                    padding-top: 64px;
                    line-height: 1.5;
                }

                table {
                    width: 100%;
                    margin-top: 40px;
                    border-collapse: collapse;
                    border-radius: 7px;
                    overflow-x: scroll;
                    -webkit-overflow-scrolling: touch;
                    white-space: nowrap;
                    display: block;

                    tr {
                        display: flex;
                        align-items: center;
                        height: 80px;
                        border-bottom: 1px solid #E9E9E9;

                        th {
                            width: 240px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            border-right: 1px solid #E9E9E9;
                            box-sizing: border-box;
                        }

                        td {
                            width: 240px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            justify-content: space-evenly;
                            box-sizing: border-box;
                            border-right: 1px solid #E9E9E9;
                            background-color: #FFF;

                            img {
                                width: 40px;
                                display: block;
                                margin: 0 auto;
                            }

                            p {
                                text-align: center;
                                margin-top: 4px;
                                font-size: 14px;
                                color: #333;
                            }
                        }
                    }

                    tr:nth-of-type(1) {
                        height: 64px;

                        th {
                            border: none;
                        }

                        td {
                            border: none;
                            padding: 0;
                            display: flex;
                            justify-content: center;
                        }

                        td:nth-of-type(2) {
                            border-radius: 7px 7px 0 0;
                            background-color: #E9E9E9;
                        }
                    }

                    tr:nth-of-type(2) {
                        th {
                            border-top: none;
                            border-radius: 7px 0 0 0;
                        }
                    }

                    tr:nth-of-type(8) {
                        border-bottom: 0;

                        th,
                        td {
                            border-bottom: 1px solid #E9E9E9;
                        }

                        th {
                            border-radius: 0 0 0 7px;
                        }

                        td:nth-of-type(2) {
                            border-radius: 0 0 7px 0;
                        }
                    }
                }
            }
        }
    }
}

/* End 各種書類ダウンロード */

/* 資料請求_入力画面 */
#request_entry {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding: 64px 0 24px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                >p {
                    text-align: center;
                }

                .error_msg_accidental {
                    margin: 0 auto 1rem;
                    text-align: center;
                    font-size: 1.25rem;
                    line-height: 1.25;
                }

                .error_msg_items {
                    text-align: center;
                    margin-bottom: 1rem;
                }

                .request_section {
                    >.inner {
                        display: flex;
                        justify-content: space-between;
                        flex-wrap: wrap;
                        box-sizing: border-box;

                        .request_overview {
                            width: 100%;
                            box-sizing: border-box;

                            .overview_title {
                                h2 {
                                    font-size: 28px;
                                    letter-spacing: -1px;
                                }

                                p {
                                    padding-top: 24px;
                                    line-height: 1.5;
                                }
                            }

                            .overview_images {
                                position: relative;
                                overflow: hidden;
                                margin-top: 24px;

                                button {
                                    background: #F3AD18;
                                    border: none;
                                    border-radius: 30px;
                                    width: 60px;
                                    height: 60px;
                                    color: #FFF;
                                }
                            }

                            .overview_detail {
                                background-color: #F8F8F8;
                                width: 100%;
                                border-radius: 7px;
                                padding: 24px;
                                margin-top: 24px;
                                box-sizing: border-box;

                                ul {
                                    padding-top: 8px;

                                    li {
                                        padding-top: 12px;
                                        display: flex;
                                        align-items: center;

                                        img {
                                            width: 6%;
                                            padding-right: 4px;
                                        }
                                    }
                                }
                            }
                        }

                        .request_form {
                            width: 100%;
                            margin-top: 40px;
                            border-radius: 7px;

                            .inner {
                                padding: 18px;

                                .form_document {
                                    table {
                                        width: 100%;

                                        tr {
                                            display: flex;
                                            flex-wrap: wrap;

                                            th,
                                            td {
                                                display: flex;
                                                justify-content: left;
                                                align-items: center;
                                            }

                                            th {
                                                width: 100%;

                                                .label-success {
                                                    display: none;
                                                    background-color: #0872CE;
                                                    color: #FFF;
                                                    border-radius: 4px;
                                                    padding: 4px;
                                                    height: 12px;
                                                    font-size: 12px;
                                                }

                                                .label-danger {
                                                    display: inline-block;
                                                    background-color: red;
                                                    color: #FFF;
                                                    border-radius: 4px;
                                                    padding: 4px;
                                                    height: 12px;
                                                    font-size: 12px;
                                                }

                                                label {
                                                    padding-left: 8px;
                                                }
                                            }

                                            td {
                                                position: relative;
                                                width: 100%;
                                                padding-top: 12px;
                                                display: flex;
                                                flex-wrap: wrap;

                                                .error_msg_item{
                                                    margin-bottom: 8px;
                                                }

                                                input,
                                                textarea,
                                                select {
                                                    border: 1px solid #C9C9C9;
                                                    border-radius: 4px;
                                                    padding: 8px;
                                                }

                                                input[type="text"].long_text {
                                                    width: 100%;
                                                }

                                                input[type="text"].middle_text {
                                                    width: 75%;
                                                }

                                                input[type="text"].short_text {
                                                    width: 50%;
                                                }

                                                select {
                                                    width: 100%;
                                                }

                                                ul {
                                                    display: flex;
                                                    flex-wrap: wrap;
                                                    justify-content: space-evenly;

                                                    li {
                                                        width: 50%;
                                                    }

                                                    li:nth-of-type(n+3) {
                                                        padding-top: 12px;
                                                    }
                                                }

                                                .user_types {
                                                    display: flex;
                                                    flex-wrap: wrap;

                                                    li {
                                                        width: 33%;
                                                        padding-top: 8px;
                                                    }
                                                }

                                                .inquiry_types {
                                                    display: flex;
                                                    flex-wrap: wrap;

                                                    li {
                                                        width: 50%;
                                                        padding-top: 8px;
                                                    }
                                                }
                                            }
                                        }

                                        tr:not(:nth-of-type(1)) {
                                            padding-top: 20px;
                                        }
                                    }
                                }

                                .buttons {
                                    margin-top: 20px;
                                    line-height: 1.35;

                                    p:nth-of-type(1) {
                                        text-align: center;
                                        padding-top: 20px;
                                    }

                                    p:nth-of-type(2) {
                                        display: flex;
                                        justify-content: center;
                                        margin-top: 12px;

                                        input {
                                            margin-top: 16px;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End 資料請求_入力画面 */

/* 資料請求_完了画面 */
#request_comp {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding-top: 28px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                >p {
                    text-align: center;
                }

                .form_section {
                    .inner {
                        padding: 40px 20px;
                        box-sizing: border-box;

                        .message {
                            text-align: center;
                            line-height: 1.35;
                        }

                        .button {
                            background-color: #fff;
                            border: 1px solid #000000;
                            border-radius: 30px;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            font-weight: 500;
                            margin: 0 auto;
                            width: 200px;
                            height: 52px;
                            font-size: 16px;
                            margin-top: 44px;

                            &:hover {
                                box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End 資料請求_完了画面 */

/* お問い合わせ_入力画面 */
#inquiry_entry {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding: 64px 0 24px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .error_msg_accidental{
                    line-height: 1.2;
                    font-size: 1.25rem;
                    margin-bottom: 48px;
                    text-align: center;
                }

                .inquiry_info {
                    .inner {
                        width: 100%;
                        margin: 0 auto;
                        position: relative;

                        img {
                            width: 10%;
                            position: absolute;
                            bottom: 90%;
                        }

                        .step {
                            display: flex;
                            width: 100%;
                            justify-content: space-between;

                            li {
                                padding: 8px 32px;
                                background-color: #E9E9E9;
                                border-radius: 7px;
                                width: 32%;
                                box-sizing: border-box;
                                text-align: center;
                                letter-spacing: 4px;

                                span {
                                    display: block;
                                    font-size: 12px;
                                    padding-bottom: 4px;
                                    letter-spacing: 0px;
                                }
                            }

                            li.is-active {
                                background-color: #F3AD18;
                            }
                        }
                    }

                    .error_msg_items{
                        margin-top: 8px;
                        text-align: center;
                    }

                    p {
                        padding-top: 40px;
                        text-align: center;
                    }
                }

                .form_section {
                    margin-top: 40px;

                    .inner {
                        display: flex;
                        justify-content: center;
                        flex-wrap: wrap;
                        padding: 30px 0;
                        box-sizing: border-box;
                        border-radius: 7px;

                        form {
                            width: 92%;

                            table {
                                width: 100%;

                                tr {
                                    display: flex;
                                    padding: 20px 12px;
                                    flex-wrap: wrap;

                                    th,
                                    td {
                                        display: flex;
                                        justify-content: left;
                                        align-items: center;
                                    }

                                    th {
                                        width: 100%;

                                        .label-success {
                                            display: none;
                                            background-color: #0872CE;
                                            color: #FFF;
                                            border-radius: 4px;
                                            padding: 4px;
                                            height: 12px;
                                            font-size: 12px;
                                        }

                                        .label-danger {
                                            display: inline-block;
                                            background-color: red;
                                            color: #FFF;
                                            border-radius: 4px;
                                            padding: 4px;
                                            height: 12px;
                                            font-size: 12px;
                                        }

                                        label {
                                            padding-left: 8px;
                                        }
                                    }

                                    td {
                                        position: relative;
                                        width: 100%;
                                        padding-top: 16px;
                                        letter-spacing: -1px;
                                        display: flex;
                                        flex-wrap: wrap;

                                        input,
                                        textarea {
                                            width: 100%;
                                            border: 1px solid #C9C9C9;
                                            border-radius: 4px;
                                            padding: 8px;
                                            margin-top: 8px;
                                        }

                                        input[type="radio"] {
                                            width: auto;
                                        }

                                        input[type="text"].long_text {
                                            width: 100%;
                                        }

                                        input[type="text"].middle_text {
                                            width: 100%;
                                        }

                                        input[type="text"].short_text {
                                            width: 750%;
                                        }

                                        select {
                                            width: 100%;
                                        }

                                        .user_types {
                                            display: flex;
                                            flex-wrap: wrap;

                                            li {
                                                width: 50%;
                                                padding-top: 8px;
                                            }
                                        }

                                        .inquiry_types {
                                            display: flex;
                                            flex-wrap: wrap;

                                            li {
                                                width: 50%;
                                                padding-top: 8px;
                                            }
                                        }
                                    }
                                }

                                tr:nth-of-type(2n+1) {
                                    background-color: #FFF;
                                }
                            }

                            .buttons {
                                p {
                                    display: flex;
                                    justify-content: space-evenly;
                                    padding-top: 32px;
                                }

                                p:nth-of-type(1) {
                                    text-align: center;
                                    line-height: 1.5;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End お問い合わせ_入力画面 */

/* お問い合わせ_確認画面 */
#inquiry_conf {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding-top: 80px;
                padding-bottom: 30px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                .inquiry_info {
                    .inner {
                        width: 100%;
                        margin: 0 auto;
                        position: relative;

                        img {
                            width: 8%;
                            position: absolute;
                            bottom: 90%;
                            left: 50%;
                            transform: translate(-50%, 0);
                        }

                        .step {
                            display: flex;
                            width: 100%;
                            justify-content: space-between;

                            li {
                                padding: 8px 32px;
                                background-color: #E9E9E9;
                                border-radius: 7px;
                                width: 32%;
                                box-sizing: border-box;
                                text-align: center;
                                letter-spacing: 4px;

                                span {
                                    display: block;
                                    font-size: 12px;
                                    padding-bottom: 4px;
                                    letter-spacing: 0px;
                                }
                            }

                            li.is-active {
                                background-color: #F3AD18;
                            }
                        }
                    }

                    p {
                        padding-top: 40px;
                        text-align: center;
                        line-height: 1.35;
                    }
                }

                >p {
                    text-align: center;
                }

                .form_section {
                    margin-top: 40px;

                    .inner {
                        display: flex;
                        justify-content: center;
                        flex-wrap: wrap;
                        padding: 12px 30px;
                        box-sizing: border-box;
                        background-color: #F8F8F8;
                        width: 100%;
                        border-radius: 7px;

                        .form_document {
                            width: 100%;

                            table {
                                width: 100%;

                                tr {
                                    display: block;
                                    padding: 18px 0;

                                    th,
                                    td {
                                        display: block;
                                        width: 100%;
                                        text-align: left;
                                    }

                                    th {
                                        .label-success {
                                            display: none;
                                            background-color: #0872CE;
                                            color: #FFF;
                                            border-radius: 4px;
                                            padding: 4px;
                                        }

                                        .label-danger {
                                            display: inline-block;
                                            background-color: red;
                                            color: #FFF;
                                            border-radius: 4px;
                                            padding: 4px;
                                        }
                                    }

                                    td {
                                        padding-top: 12px;
                                        position: relative;

                                        input[type="text"].long_text {
                                            width: 100%;
                                        }

                                        input[type="text"].short_text {
                                            width: 50%;
                                        }

                                        select {
                                            width: 100%;
                                        }
                                    }
                                }
                            }

                            .buttons {
                                p {
                                    display: flex;
                                    justify-content: space-evenly;
                                    flex-wrap: wrap;

                                    input {
                                        margin-top: 12px;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End お問い合わせ_確認画面 */

/* お問い合わせ_完了画面 */
#inquiry_comp {
    main {
        width: 100%;

        >section {
            >.inner {
                width: 90%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        #contents {
            >.inner {
                position: relative;
                padding-top: 80px;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }

                >p {
                    text-align: center;
                }

                .inquiry_info {
                    .inner {
                        width: 100%;
                        margin: 0 auto;
                        position: relative;

                        img {
                            width: 12%;
                            position: absolute;
                            bottom: 90%;
                            right: 0;
                        }

                        .step {
                            display: flex;
                            width: 100%;
                            justify-content: space-between;

                            li {
                                padding: 8px 32px;
                                background-color: #E9E9E9;
                                border-radius: 7px;
                                width: 32%;
                                box-sizing: border-box;
                                text-align: center;
                                letter-spacing: 4px;

                                span {
                                    display: block;
                                    font-size: 12px;
                                    padding-bottom: 4px;
                                    letter-spacing: 0px;
                                }
                            }

                            li.is-active {
                                background-color: #F3AD18;
                            }
                        }
                    }

                    p {
                        padding-top: 40px;
                        text-align: center;
                    }
                }

                .form_section {
                    .inner {
                        padding: 60px 8px;
                        box-sizing: border-box;

                        .message {
                            text-align: center;
                            line-height: 1.5;
                        }

                        .button {
                            background-color: #fff;
                            border: 1px solid #000000;
                            border-radius: 30px;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            font-weight: 500;
                            margin: 0 auto;
                            width: 200px;
                            height: 52px;
                            font-size: 16px;
                            margin-top: 32px;

                            &:hover {
                                box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
                            }
                        }
                    }
                }
            }
        }
    }
}

/* End お問い合わせ_完了画面 */


/* XXXXXXXXXX */
#xxx {
    header {
        width: 100%;
        background-color: #FFFFFF;
        border-top: 5px solid #F3AD18;
        position: fixed;
        z-index: 999;
        transition: background-color 0.5s;

        >.inner {
            width: 100%;
            max-width: 1200px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 80px;
            margin: 0 auto;

            .header_logo {
                width: 150px;
                padding: 0 2%;
            }

            .header_navi {
                width: 75%;

                .navi_menu {
                    display: flex;
                    justify-content: space-around;
                    align-items: center;

                    li {
                        position: relative;

                        &:not(:last-of-type) {
                            a {
                                color: #333333;

                                &:hover {
                                    opacity: 0.7;

                                    &:before {
                                        content: '';
                                        position: absolute;
                                        left: 50%;
                                        bottom: -25px;
                                        /*線の上下位置*/
                                        display: inline-block;
                                        width: 50px;
                                        /*線の長さ*/
                                        height: 2.5px;
                                        /*線の太さ*/
                                        -webkit-transform: translateX(-50%);
                                        transform: translateX(-50%);
                                        /*位置調整*/
                                        background-color: black;
                                        /*線の色*/
                                        border-radius: 3px;
                                        /*線の丸み*/
                                    }
                                }
                            }
                        }

                        &:last-of-type {
                            background-color: #F3AD18;
                            border-radius: 30px;
                            width: 90px;
                            height: 35px;
                            display: flex;
                            justify-content: center;
                            align-items: center;

                            input {
                                background-color: #0872CE;
                                border: none;
                                font-family: "noto-sans-jp";
                                font-size: 14px;
                                color: #FFF;
                                height: 35px;
                                width: 100%;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                border-radius: 30px;

                                &:hover {
                                    box-shadow: 0px 4px 2px rgba(0, 0, 0, 0.3);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    main {
        width: 100%;

        section {
            >.inner {
                width: 100%;
                max-width: 920px;
                margin: 0 auto;
            }
        }

        >.title {
            display: flex;
            width: 100%;
            padding-top: 60px;
            background: linear-gradient(rgba(254, 238, 203, 0.95)), url("../images/image_bg_01.png");

            >.inner {
                display: flex;
                height: 160px;
                justify-content: center;
                align-items: center;
            }
        }

        .main_visual {
            >.inner {
                display: flex;
                padding-top: 120px;
                padding-bottom: 60px;
                justify-content: space-between;
                position: relative;

                .breadcrumb {
                    position: absolute;
                    top: 12px;
                    font-size: 14px;
                    display: flex;

                    a {
                        text-decoration: underline;
                        color: #0872CE;
                        margin-right: 6px;
                    }
                }
            }
        }
    }

    footer {
        .cta {
            >.inner {
                width: 100%;
                max-width: 920px;
                margin: 0 auto;
                padding: 40px 0;

                ul {
                    display: flex;
                    padding: 10px;
                    border-radius: 7px;

                    li {
                        width: 33%;
                        display: flex;
                        align-items: center;

                        .inner {
                            text-align: center;
                            width: 100%;
                        }
                    }

                    .phone {
                        .inner {
                            border-right: 2px solid #F3AD18;
                            padding: 20px 12px 20px 0;

                            >p {
                                letter-spacing: 2px;
                            }

                            a {
                                color: #333333;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 100%;
                                padding-top: 5px;

                                img {
                                    width: 12%;
                                    object-fit: contain;
                                }

                                p {
                                    font-size: 36px;
                                }
                            }

                            span {
                                padding-top: 8px;
                                display: block;
                                font-size: 14px;
                            }
                        }
                    }

                    .request,
                    .inquiry {
                        .inner {
                            >p {
                                font-size: 14px;
                            }

                            .button {
                                width: 77%;
                                margin: 0 auto;
                                margin-top: 10px;

                                a {
                                    padding: 20px 0;
                                    border-radius: 30px;

                                    &:hover {
                                        box-shadow: 0px 4px 2px rgba(8, 114, 206, 0.6);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        .navi {
            color: #FFF;

            a {
                color: #FFF;
            }

            >.inner {
                width: 100%;
                max-width: 920px;
                margin: 0 auto;
                padding-top: 80px;
                display: flex;
                justify-content: space-between;
                flex-wrap: wrap;

                .navi-text {
                    width: 75%;

                    img {
                        width: 28%;
                    }

                    >ul {
                        display: flex;
                        justify-content: space-between;

                        >li {
                            padding-top: 20px;

                            >ul {
                                margin-top: 16px;
                                padding-top: 16px;
                                border-top: 1px solid #fff;

                                >li {
                                    font-size: 14px;
                                    margin-bottom: 10px;

                                    &:hover {
                                        filter: opacity(70%);
                                    }
                                }
                            }
                        }

                        >:nth-of-type(1) {
                            width: 30%;
                        }

                        >:nth-of-type(2) {
                            width: 30%;
                        }

                        >:nth-of-type(3) {
                            width: 35%;
                        }
                    }
                }

                .navi_icon {
                    width: 24%;
                    display: flex;
                    flex-wrap: wrap;

                    .sns {
                        width: 100%;
                        display: flex;
                        justify-content: flex-end;
                        align-items: center;
                        padding-top: 20px;
                        padding-bottom: 10px;

                        a {
                            img {
                                width: 100%;
                                object-fit: contain;

                                &:hover {
                                    filter: opacity(70%);
                                }
                            }
                        }

                        >:nth-of-type(1) {
                            margin-right: 20px;
                        }
                    }

                    .banner {
                        width: 100%;
                        display: flex;
                        justify-content: space-between;
                        align-items: flex-start;

                        >a {
                            width: 30%;
                            background-color: #FFF;

                            img {
                                width: 100%;
                                object-fit: contain;

                                &:hover {
                                    filter: opacity(70%);
                                }
                            }
                        }

                        >div {
                            width: 65%;

                            a {
                                background-color: #FFF;
                                display: block;

                                img {
                                    &:hover {
                                        filter: opacity(70%);
                                    }
                                }
                            }

                            p {
                                font-size: 10px;
                                text-align: right;
                                padding-top: 10px;
                                padding-top: 5px;
                                line-height: 1.35;
                            }
                        }
                    }
                }

                >p {
                    margin: 0 auto;
                    padding-top: 80px;
                    padding-bottom: 10px;
                }
            }
        }
    }
}

/* End XXXXXXXXXXXX */
/* End 個別項目 ------------------------------------- */
