/* 元請向け--------------------------- */
strong.strong2{
    font-size: var(--strong2);
}
strong.strong3{
    font-size: var(--headline);
}

/* ヘッダー */

.menu_area {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    column-gap: 12px;
}

.menu_area ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.menu_area .login {
    text-align: right;
    margin: 8px 0;
}

.menu_area .login a {
    color: var(--contractors);
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.menu_area .login a .material-icons {
    font-size: 21px;
    color: var(--keyblack);
}

.menu_area ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    column-gap: 12px;
    margin: 8px 0;
}

.menu_area ul li a {
    font-weight: bold;
    color: var(--keyblack);
    text-decoration: none;
}

.menu_area ul li a:hover {
    color: var(--warning);
}

.heder_contact_btn a {
    display: flex;
    align-items: center;
    border-radius: 0 0 8px 8px;
    background: var(--warning);
    color: var(--white);
    font-weight: bold;
    padding: 8px 12px;
    text-decoration: none;
    line-height: 1.2;
    height: 68px;
}

/* ハンバーガーメニュー */
@media only screen and (max-width: 1080px) {
    .logo{
        width: 70vw;
    }
    .header_nav{
        display: block;
        height: 0;
    }
    .header_nav .checkbox {
        position: absolute;
        display: block;
        height: 32px;
        width: 32px;
        top: 24px;
        right: 20px;
        z-index: 5;
        opacity: 0;
        cursor: pointer;
    }

    .hamburger-lines {
        display: block;
        height: 26px;
        width: 32px;
        position: absolute;
        top: 24px;
        right: 20px;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .hamburger-lines .line {
        display: block;
        height: 4px;
        width: 100%;
        border-radius: 10px;
        background: #0e2431;
    }

    .hamburger-lines .line1 {
        transform-origin: 0% 0%;
        transition: transform 0.4s ease-in-out;
    }

    .hamburger-lines .line2 {
        transition: transform 0.2s ease-in-out;
    }

    .hamburger-lines .line3 {
        transform-origin: 0% 100%;
        transition: transform 0.4s ease-in-out;
    }

    .menu_area {
        background: #fff;
        max-width: 300px;
        position: absolute;
        top: 70px;
        right: -300px;
        display: flex;
        flex-direction: column;
        transition: right 0.5s ease-in-out;
        box-shadow: 5px 0px 10px 0px #aaa;
        padding: 8px;
    }
    .login_menu{
        display: flex;
        flex-direction: column;
    }
    .menu_area .heder_menu{
        order: -1;
        margin: 0;
    }
    .menu_area .login{
        order: 1;
        margin: 0;
        border-top: 1px solid var(--keyblack-20);
    }
    .header_nav input[type="checkbox"]:checked ~ .menu_area {
        right: 0;
    }
    .menu_area ul {
        flex-direction: column;
    }
    .menu_area .login a,
    .menu_area ul li a,
    .heder_contact_btn a{
        padding: 16px 24px;
        font-size: 16px;
        display: flex;
        background: var(--white);
        color: var(--keyblack);
    }
    .menu_area .login a:hover,
    .heder_contact_btn a:hover{
        color: var(--warning);
    }
    .heder_contact_btn a br{
        display: none;
    }
    .header_nav input[type="checkbox"]:checked~.menu-items {
        transform: translateX(0);
    }

    .header_nav input[type="checkbox"]:checked~.hamburger-lines .line1 {
        transform: rotate(45deg);
    }

    .header_nav input[type="checkbox"]:checked~.hamburger-lines .line2 {
        transform: scaleY(0);
    }

    .header_nav input[type="checkbox"]:checked~.hamburger-lines .line3 {
        transform: rotate(-45deg);
    }


}


/* ティザーサイトのメインビジュアル */

#top_image {
    margin-top: 77px;
    position: relative;
    padding: 0;
}

#top_image h1 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#top_image .top_image_btn {
    position: absolute;
    background: none;
    padding: 0;
    top: 26vw;
    left: 15vw;
}

.top_image_btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28vw;
    background: var(--white);
    color: var(--warning);
    border: 0.35vw solid var(--warning);
    border-radius: 12px;
    font-size: 2vw;
    font-weight: bold;
    text-decoration: none;
    padding: 0.8vw 1vw;
}

.top_image_btn a img {
    width: 2.5vw;
}


@media only screen and (max-width: 780px) {
    #top_image .top_image_btn {
        top: 47vw;
        left: 0;
        right: 0;
        margin: auto;
    }

    .top_image_btn a {
        width: 50vw;
        background: var(--white);
        color: var(--warning);
        border: 0.5vw solid var(--warning);
        border-radius: 8px;
        font-size: 4vw;
        font-weight: bold;
        text-decoration: none;
        padding: 0.8vw 1vw;
        margin: auto;
    }

    .top_image_btn a img {
        width: 5vw;
    }
}

#about_link,
#price_link,
#case_link{
    height: 0;
    padding-top: 77px;
    margin-top: -77px;
}

/* コンテンツ共通 */

section .inner{
    text-align: center;
}
.title_area{
    background: var(--contractors);
}

/* 世界観 */
.service {
    background: var(--contractors-10);
    border-radius: 24px;
    padding: 48px;
    margin-top: 24px;
}

.kinds_section{
    margin-bottom: 16px;
}
.view-world{
    padding-bottom: 48px;
}
.service_section+.service_section::before {
    content: "";
    display: block;
    height: 8px;
    background: var(--white);
    border-radius: 4px;
    margin-bottom: 48px;
}

@media only screen and (max-width: 867px) {
    .view_world {
        max-width: 100%;
    }
}

@media only screen and (max-width: 780px){
    #about p{
        font-size: 15px;
    }
}

/* 機能説明 */
.kinds {
    display: flex;
    justify-content: center;
    text-align: left;
    flex-wrap: wrap;
    margin-top: var(--spacing-24);
    column-gap:4vw;
}

.kinds_list {
    display: flex;
    flex-direction: column;
    flex: 0 0 300px;
    margin-bottom: 40px;
}

.kinds_list dt {
    background: var(--contractors-60);
    font-size: var(--strong);
    padding: var(--spacing-16);
}
.kinds_list dd::before {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 65px solid transparent;
    border-left: 65px solid transparent;
    border-top: 40px solid var(--keyblack-20);
    border-bottom: 0;
    margin: var(--spacing-16) auto;
}

.kinds_list dd {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.kinds_list dd div {
    padding: 16px;
    background: var(--white);
    flex-grow: 1;
}

.kinds_list dd h3 {
    text-align: center;
    font-weight: bold;
    font-size: var(--headline-sub);
    margin-bottom: var(--spacing-8);
}

.kinds_list dd p {
    margin-bottom: var(--spacing-8);
}

.kinds_list dd img {
    margin: auto;
}

@media only screen and (max-width: 780px) {
    .kinds_list {
        margin-bottom: 40px;
    }
    .kinds_list dd::before {
        border-style: solid;
        border-right: 50px solid transparent;
        border-left: 50px solid transparent;
        border-top: 30px solid var(--keyblack-20);
        border-bottom: 0;
        margin: 12px auto;
    }

    .kinds_list dd {
        padding-top: var(--spacing-0);

    }
}

/* ご利用料金 */
#price{
    background: var(--keyblack-10);
}
.price_area_content{
    width: 700px;
    max-width: 100%;
    margin: auto;
}
.price_area{
    background: var(--white);
    border-radius: 24px;
    padding: 28px;
    margin-top: 24px;
}
.price_box_area{
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 16px;
    margin-top: 20px;
}
.plus{
    position: relative;
    width: 28px;
    height: 28px;
}
.plus::before,.plus::after{
    content: "";
    display: block;
    background-color: var(--keyblack);
    width: 28px;
    height: 5px;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: 0;
}
.plus::after{
    transform: rotate(90deg);
}
.price_box{
    border: 6px solid var(--warning);
    border-radius: 20px;
    padding: 32px 28px;
    text-align: center;
    width: 320px;
}
.price_box h3{
    font-size: 24px;
}
.price_box p{
    font-size: 20px;
    font-weight: bold;
    line-height: 0.8;
    margin-top: 12px;
}
.price_box strong{
    color: var(--warning);
    font-size: 40px;
}
.price_info{
    display: block;
    text-align: right;
    margin-top: 8px;
}
@media only screen and (max-width: 780px){
    .price_box_area{
        flex-direction:column;
        row-gap: 16px;
    }
    .price_info{
        text-align: center;
    }
}

/* お問い合わせ */
#contact {
    background: var(--keyblack-10);
    padding: var(--spacing-48) var(--spacing-16);
}

/* アプリインストール */
.app {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 16px;
}

.app img {
    margin: 0 16px;
}

.qr {
    height: 130px;
}

/* 各種フォーム */
#form {
    padding: 0 16px;
}

iframe {
    border: none;
}

.checklist {
    display: block;
    margin-top: var(--spacing-24);
    list-style: none;
}

.checklist li {
    margin-bottom: 0.8em;
}

.material-icons-round {
    color: var(--contractors);
    display: inline-flex;
    vertical-align: middle;
}

/* footer */
.info_area{
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
    padding: 16px;
    border-bottom: 1px solid var(--white);
}
.info_area li{
    margin-top: 4px;
    text-align-last: left;
}
.info_area li a{
    display: inline-block;
    font-weight: bold;
    text-decoration: none;
    padding: 8px;
    text-align: left;
    font-size: 14px;
}
.info_area li a img{
    display: inline-block;
}
.info_area li a:hover{
    color: var(--contractors-20);
}
.rvsta_info{
    border-right: 1px solid var(--white);
    min-width: 146px;
}
.rvsta_info ul{
    padding: 12px 32px;
}
.bp_info{
    display: flex;
    flex-wrap: wrap;
}
.info_area h3{
    text-align: left;
    padding: 5px 32px;
}
.contractor_info{
    padding: 12px 32px 0;
}
.contractor_info ul{
    min-width: 264px;
}
.worker_info{
    padding: 12px 32px 0;
}
.worker_info ul{
    min-width: 236px;
}
.worker_info ul ul{
    padding: 0 16px;
}
.worker_info ul ul a{
    font-weight: normal;
}
footer small{
    display: block;
}
@media only screen and (max-width: 750px){
    .rvsta_info{
        border-right:none;
        border-bottom: 1px solid var(--white);
    }
    .info_area h3{
        margin-top: 24px;
    }
}

/* 導入事例エリア */
#case {
    padding: var(--spacing-48) var(--spacing-16);
}

.case_list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 28px;
    row-gap: 40px;
    justify-content: center;
    margin: auto;
    max-width: 1196px;
}

.case_list>li {
    flex: 0 0 380px;
    max-width: 100%;
}

.case_list a {
    text-decoration: none;
    text-align: left;
    display: block;
    border: 1px solid var(--keyblack-20);
    padding: 28px;
    border-radius: 8px;
    background: var(--white);
    height: 100%;
}

.case_list picture {
    margin-bottom: 12px;
    border: 1px solid var(--keyblack-10);
}

.case_list .event_category {
    margin-bottom: 8px;
}

.case_list h3 {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 12px;
    line-height: 1.4;
}

.case_list_company {
    font-size: 14px;
    font-weight: bold;
}
.case_btn_area{
    margin-top: 40px;
}
@media only screen and (max-width: 750px){
    .case_btn_area {
        margin-top: 0;
    }
}

/* 3個以下の場合 */
.case_list::after {
    content: "";
    flex: 0 0 380px;
    max-width: 100%;
}


/* 導入事例　記事 */
.case_article {
    max-width: 1032px;
    padding: 0 16px;
    margin: auto;
}

.case_header {
    padding: 24px 0 0;
}

.tag_area {
    display: flex;
    flex-wrap: wrap;
    column-gap: 8px;
    margin-bottom: 12px;
}

.tag_area li {
    flex: 0 0 auto;
    font-size: var(--small);
    padding: 4px 8px;
    border-radius: 4px;
    background: var(--keyblack-80);
    color: var(--white);
    border: 1px solid;
    line-height: 1.4;
    margin-bottom: 4px;
    display: inline-block;
}

.case_title {
    padding-bottom: 0;
    line-height: 1.2;
    margin-bottom: 8px;
}

.case_company {
    font-size: var(--headline-sub);
    font-weight: bold;
    margin-bottom: 16px;
}

.case_info_area {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 12px;
}

.case_info div {
    display: flex;
}

.case_info dt {
    display: flex;
    justify-content: space-between;
}

.dt4 dt {
    flex: 0 0 5em;
}

.dt7 dt {
    flex: 0 0 8em;
}

.case_info dt::after {
    content: "：";
    font-weight: normal;
}

.case_info dd {
    flex: 1 1 auto;
}

.main_visual {
    margin-bottom: 12px;
}

.before_after {
    background: var(--contractors-10);
    padding: 24px;
}

.before_after div {
    display: flex;
}

.before_after .after {
    margin-top: 16px;
}

.before_after dt {
    flex: 0 0 150px;
    margin-right: 24px;
    font-size: var(--headline-sub);
    display: flex;
}

.before_after dt::before {
    content: "";
    width: 24px;
    height: 24px;
    margin-right: 4px;
    margin-top: 1px;
    background-repeat: no-repeat;
    background-position: center;
}

.before_after .before dt::before {
    background-image: url(../image/contractors/icon-sad.png);
}

.before_after .after dt::before {
    background-image: url(../image/contractors/icon-smile.png);
}

.before_after dd {
    flex: 1 1 auto;
    font-size: var(--strong);
}

@media only screen and (max-width: 780px) {
    .case_info_area {
        display: block;
    }

    .info_area {
        display: block;
    }

    .before_after div {
        display: block;
    }
}

.case_content {
    padding: 0;
}

.case_point {
    background: var(--accent);
    color: var(--white);
    padding: 4px 16px;
    display: inline-block;
    margin-bottom: 8px;
}

.article_section {
    padding: 24px 0;
}

.article_section h3 {
    font-size: var(--headline-sub);
}

.article_section h3,
.article_section p,
.article_section picture {
    margin-bottom: 16px;
}

.article_section small {
    display: block;
    margin-bottom: 1em;
}

.case_footer {
    padding: 8px 0 48px;
    border-top: 1px solid var(--keyblack-20);
}

.case_time {
    text-align: right;
}

.case_logo {
    padding: 40px 16px;
}

.case_logo img {
    margin: auto;
}

.case_data {
    display: flex;
    justify-content: space-between;
}

.case_data h4 {
    margin-bottom: 16px;
    font-size: var(--headline-sub-2);
}

.case_campany_data {
    flex: 1 1 auto;
    margin-bottom: 40px;
    margin-right: 24px;
}

.interviewee {
    margin-top: 16px;
    display: flex;
}

.interviewee picture {
    margin-right: 8px;
}

@media only screen and (max-width: 780px) {
    .case_data {
        display: block;
    }

    .interviewee picture {
        max-width: 50%;
    }
}