@charset "UTF-8";
.sub-mv {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 500px;
    color: #fff;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-image: url(../img/top/mv.jpg);
}

.sub-mv::after {
    content: '';
    position: absolute;
    left: 0;
    top: 100%;
    width: 100%;
    height: 350px;
    background-color: #fff;
    transform: skewY(-8deg);
    transform-origin: left top;
}

.sub-mv .en {
    font-size: 8rem;
    text-transform: uppercase;
}

.sub-main {
    position: relative;
    z-index: 2;
}

.sub-btn a {
    position: relative;
    display: inline-block;
    width: 100%;
    max-width: 400px;
    text-align: center;
    color: #fff;
    background: #00A0C6;
    line-height: 68px;
    border: 2px solid #00A0C6;
    border-radius: 40px;
}

.sub-btn a:hover {
    color: #00A0C6;
    background: #fff;
    opacity: 1;
    filter: opacity(1);
    -webkit-filter: opacity(1);
}

.sub-btn--o a {
    background: #E7AB4C;
    border-color: #E7AB4C;
}

.sub-btn--o a:hover {
    color: #E7AB4C;
}

@media screen and (max-width: 768px) {
    .sub-mv {
        height: 350px;
    }
    .sub-mv .en {
        font-size: 6rem;
    }
}

@media screen and (max-width: 480px) {
    .sub-mv {
        height: 200px;
    }
    .sub-mv .en {
        font-size: 3rem;
    }
}


/******************************
********* お知らせ *********
*******************************/

.sub-mv--news {
    background-image: url(../img/sub/news_mv.jpg);
}

.m-pagenation ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
    font-weight: 700;
    font-size: 2.8rem;
    line-height: 1
}

.m-pagenation ul li {
    margin: 10px 8px 0;
}

.m-pagenation ul li span.current {
    color: #459EC2;
}

.post_single_header {
    padding-bottom: 15px;
    border-bottom: 1px solid #459EC2;
}

@media screen and (max-width: 480px) {
    .m-pagenation ul {
        font-size: 1.4rem;
    }
}


/******************************
************ SERVICE **********
*******************************/

.sub-mv--relations {
    background-image: url(../img/sub/relations_mv.jpg);
}

.sub-mv--architecture {
    background-image: url(../img/sub/architecture_mv.jpg);
}

.sub-mv--consultant {
    background-image: url(../img/sub/consultant_mv.jpg);
}

.sub-mv--preserve {
    background-image: url(../img/sub/preserve_mv.jpg);
}

.sub-mv--food {
    background-image: url(../img/sub/food_mv.jpg);
}

.sub-mv--personal {
  background-image: url(../img/sub/personal_mv.jpg);
}

.sub-mv--virtual {
    background-image: url(../img/sub/virtual_mv.jpg);
}

.sub-mv--media {
  background-image: url(../img/sub/media_mv.jpg);
}

.sub-img-txt .txt {
    width: 46.5%;
}

.sub-img-txt .img {
    width: 50%;
}

.sub-service {
    border-bottom: 2px solid #000;
}

.virtual-rest h3 {
    padding-bottom: 5px;
    border-bottom: 2px solid #459EC2;
}

.virtual-rest ul {
    margin: 0 -12px;
}

.virtual-rest ul li {
    width: calc(33.33% - 24px);
    margin-left: 12px;
    margin-right: 12px;
}

.virtual-rest__delivery a {
    width: 48%;
    text-align: center;
    margin-top: 10px;
    line-height: 36px;
    color: #E7AB4C;
    border-radius: 5px;
    border: 2px solid #E7AB4C;
}

@media screen and (max-width: 768px) {
    .virtual-rest ul li {
        width: calc(50% - 24px);
    }
}

@media screen and (max-width: 600px) {
    .sub-img-txt .img,
    .sub-img-txt .txt {
        width: 100%;
    }
}

@media screen and (max-width: 480px) {
    .virtual-rest ul li {
        width: calc(100% - 24px);
    }
}


/******************************
************ 会社案内 ***********
*******************************/

.outline-info {
    margin-top: 40px;
}

.outline-info .w_50,
.offices-img .w_50,
.media-img .w_50 {
    width: 48%;
    max-width: 518px;
}

.outline-info dl {
    display: flex;
    line-height: 1.325;
}

.outline-info dl dt {
    width: 140px;
    padding: 20px 0;
    font-weight: 700;
    border-bottom: 1px solid #00A0C6;
}

.outline-info dl dd {
    flex: 1;
    padding: 20px 0 20px 24px;
    border-bottom: 1px solid #D6D6D6;
}

.owner-pic {
    width: 95%;
    max-width: calc(50% + 550px);
}

.history li:not(:last-child) {
    margin-bottom: 25px;
}

.history-year {
    position: relative;
    margin-right: 40px;
}

.history-year span {
    position: relative;
    display: inline-block;
    padding-bottom: 20px;
    line-height: 1;
    background-color: #fff;
    z-index: 2;
}

.history-year::after {
    content: '';
    position: absolute;
    left: calc(50% - 1px);
    top: 0;
    width: 2px;
    height: 100%;
    background-color: #DADADA;
}

.history li:last-child .history-year::after {
    display: none;
}

.history-cont,
.history-cont dl dd {
    flex: 1;
}

.history-cont dl {
    margin: 10px 0 15px;
    line-height: 1.35;
}

.history-cont dl dt {
    width: 120px;
}

.offices-ttl {
    padding-left: 16px;
    line-height: 1.35;
    border-left: 5px solid #00A0C6;
}

@media screen and (max-width: 768px) {
    .outline-info dl dt {
        width: 100px;
    }
}

@media screen and (max-width: 600px) {
    .outline-info .w_50, 
    .offices-img .w_50 {
        width: 100%;
    }

}

@media screen and (max-width: 480px) {
    .history-year {
        margin-right: 20px;
    }
    .history-cont dl dt {
        font-weight: 700;
    }
    .history-cont dl dd {
        flex: none;
        width: 100%;
    }
}


/******************************
************ 採用情報 **********
*******************************/

.sub-mv--recruit {
    background-image: url(../img/sub/recruit_mv.jpg);
}


/******************************
************ お問い合わせ **********
*******************************/

.contact-form {
    border-bottom: 2px solid #000;
}

.contact-form dl {
    margin-top: 50px;
}

.contact-form dl dt span {
    margin-left: 20px;
}

.contact-form dl dd {
    margin-top: 10px;
}

.contact-form input[type="text"],
.contact-form input[type="tel"],
.contact-form input[type="email"],
.contact-form select {
    width: 100%;
    height: 64px;
    padding: 0 24px;
    font-size: 2rem;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #F6F6F6;
    border: 1px solid #E5E5E5;
    box-sizing: border-box;
}

.contact-form select {
    background-color: #fff;
    border: 1px solid #000;
}

.contact-form textarea {
    width: 100%;
    padding: 24px;
    font-size: 2rem;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #F6F6F6;
    border: 1px solid #E5E5E5;
    box-sizing: border-box;
}

.contact-cont input[type="submit"] {
    display: block;
    width: 100%;
    max-width: 400px;
    height: 72px;
    margin: 0 auto;
    font-size: 2.4rem;
    font-weight: 700;
    font-family: 'Noto Sans JP', sans-serif;
    color: #fff;
    background-color: #00A0C6;
    border: none;
    outline: none;
    border-radius: 40px;
}

.contact-cont input[type="submit"]:hover {
    opacity: .6;
}

.contact-form dl dd a {
    color: #006CFF;
    text-decoration: underline;
}

@media screen and (max-width: 480px) {
    .contact-form input[type="text"],
    .contact-form input[type="tel"],
    .contact-form input[type="email"],
    .contact-form select,
    .contact-form textarea {
        font-size: 1.6rem;
    }
}

/******************************
************ フランチャイズ募集 **********
*******************************/

.sub-mv--franchise {
    background-image: url(../img/sub/franchise/franchise_mv.jpg);
}

.franchise-ttl {
    position: relative;
    text-align: center;
    margin-bottom: 57px;
    z-index: 2;
}

.franchise-ttl .en {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    text-align: center;
    font-size: 10rem;
    line-height: 1.2;
    color: #459EC2;
    text-transform: uppercase;
    opacity: .24;
    transform: translateY(-50%);
    z-index: -1;
}

.franchise-owner-img figure {
    width: 49%;
}

.franchise-header {
    height: 240px;
}

.franchise-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.franchise-owner-sec .ttl {
    background-color: #00A0C6;
}

.franchise-owner-sec .ttl .num {
    position: absolute;
    left: 50%;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 80px;
    height: 80px;
    line-height: 1.15;
    color: #00A0C6;
    background-color: #fff;
    border: 3px solid #00A0C6;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.franchise-owner-sec .ttl .container {
    position: relative;
    padding: 60px 0 35px;
    text-align: center;
    color: #fff;
    text-shadow: 2px 2px 2px #00566A;
    overflow: hidden;
    z-index: 1;
}

.franchise-owner-sec .ttl .container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1100px;
    background-color: #36B0CC;
    border-radius: 50%;
    transform: translateY(-50%);
    z-index: -1;
}

.franchise-owner-sec .ttl .container .col-yel {
    margin-bottom: 10px;
    color: #FFEC00;
}

.franchise-owner-sec .col3 figure {
    width: 31.5%;
}

.franchise-owner-sec dl dt {
    padding-bottom: 5px;
    border-bottom: 2px solid #00A0C6;
}

.franchise-btn a {
    display: inline-block;
    width: 100%;
    max-width: 400px;
    line-height: 67px;
    border-radius: 40px;
    color: #fff;
    background-color: #EC7A00;
    box-shadow: 0 6px 0 #BF6300;
}

.franchise-owner-sec--voice .ttl {
    background-color: #EC7A00;
}

.franchise-owner-sec--voice .ttl .container {
    text-shadow: 2px 2px 2px #693600;
}

.franchise-owner-sec--voice .ttl .container::before {
    background-color: #E59035;
}

.franchise-owner-sec--voice ul li {
    margin-top: 60px;
}

.franchise-voice-ttl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding-bottom: 5px;
    color: #EC7A00;
    border-bottom: 2px solid #EC7A00;
}

.franchise-voice-ttl-num {
    width: 100px;
    margin-right: 20px;
    text-align: center;
    line-height: 2;
    background-color: #FCEDDB;
}

.franchise-voice-ttl h4 {
    flex: 1;
}

.franchise-voice-cont figure {
    width: 35%;
    margin-right: 6%;
}

.franchise-flow {
    background: url(../img/sub/franchise/bg_flow.jpg) no-repeat center / cover;
}

.franchise-flow .franchise-ttl .en {
    color: #fff;
    opacity: .4;
}

.franchise-flow ul li {
    width: 23%;
    max-width: 240px;
    text-align: center;
    background-color: #fff;
}

.franchise-flow ul li .num {
    padding: 4px;
    color: #fff;
    background-color: #EC7A00;
}

.franchise-flow ul li .cont {
    padding: 32px 10px 25px;
}

.franchise-faq ul li {
    border: 2px solid #000;
}

.faq-q {
    position: relative;
    display: flex;
    align-items: center;
    padding: 20px 72px 20px 30px;
    background-color: #fff;
    cursor: pointer;
}

.faq-q::before {
    content: '';
    position: absolute;
    right: 32px;
    top: calc(50% - 1px);
    width: 24px;
    height: 2px;
    background-color: #459EC2;
}

.faq-q::after {
    content: '';
    position: absolute;
    right: 43px;
    top: calc(50% - 12px);
    width: 2px;
    height: 24px;
    background-color: #459EC2;
}

.faq-q.active::after {
    display: none;
}

.faq-a {
    display: none;
    padding: 25px 30px;
    background-color: #F2F2F2;
}

.faq-mark {
    margin-right: 24px;
    line-height: 1;
}

.franchise-contact .contact-form input[type="text"],
.franchise-contact .contact-form input[type="tel"],
.franchise-contact .contact-form input[type="email"],
.franchise-contact .contact-form textarea {
    background-color: #fff;
    border: 1px solid #959595;
}

@media screen and (max-width: 768px) {
    .franchise-ttl .en {
        font-size: 5.5rem;
    }
    .franchise-owner-sec .ttl .container::before {
        height: 90vw;
    }
    .franchise-flow ul li {
        width: 48%;
        max-width: none;
    }
}

@media screen and (max-width: 600px) {
    .franchise-voice-cont figure {
        width: 100%;
        margin-right: 0;
    }
    .franchise-voice-cont .flex-1 {
        flex: none;
        width: 100%;
    }
}

@media screen and (max-width: 480px) {
    .franchise-voice-ttl h4 {
        flex: none;
        width: 100%;
        margin-top: 10px;
    }
    .faq-q {
        padding: 15px 52px 15px 12px;
    }
    .faq-a {
        padding: 15px 12px;
    }
    .faq-mark {
        margin-right: 16px;
    }
    .faq-q::before {
        right: 12px;
    }
    .faq-q::after {
        right: 23px;
    }
}
