@charset "utf-8";

/*-----------------------
    page_contents.css
------------------------*/

/*----- blog -----*/

.blog {
    padding: 100px 0 120px;
}
.blog .frame {
    display: flex;
    justify-content: space-between;
}
.blog .frame .category {
    width: 214px;
}
.blog .frame .category .m_title .ttl {
    font-size: 23px;
}
.blog .frame .category .m_btn {
    margin: 0;
}
.blog .frame .category .m_btn a {
    padding-left: 20px;
    text-align: left;
}
.blog .frame .conts {
    width: calc(100% - 280px);
}

@media screen and (min-width: 768px) and (max-width: 1700px){
    
    .blog .frame .conts {
        margin-right: 30px;
    }

}
@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .blog {
        padding: 7.5vw 0 8vw;
    }
    .blog .frame .category {
        width: 20vw;
    }
    .blog .frame .category .m_title .ttl {
        font-size: 2vw;
    }
    .blog .frame .category .m_btn a {
        padding-left: 2vw;
    }
    .blog .frame .conts {
        margin-right: 10px;
        width: calc(100% - 24vw);
    }
    
}
@media screen and (max-width: 767px){
    
    .blog {
        padding: 50px 0;
    }
    .blog .frame {
        display: block;
    }
    .blog .frame .category {
        margin: 0 auto 50px;
    }
    .blog .frame .category .m_title .ttl {
        font-size: 21px;
    }
    .blog .frame .conts {
        margin-right: 0;
        width: 100%;
    }

}

/* detail */

.blog_detail_header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
.blog_detail_header .cate {
    display: inline-block;
    width: 100px;
    margin-left: 24px;
    padding: 5px;
    background: var(--red);
    border-radius: 3px;
    color: var(--white);
    font-size: 15px;
    text-align: center;
}
.blog_detail_header .ttl {
    width: 100%;
    margin: 10px 0 30px;
    font-size: 30px;
    line-height: 1.5;
}
.blog_detail_slider {
    position: relative;
}
.blog_detail_slider .slick-arrow {
    position: absolute;
    z-index: 9;
    top: calc(50% - 20px);
    left: 0;
    width: 40px;
    height: 80px;
    background: none;
    border: none;
    cursor: pointer;
    text-indent: -9999px;
}
.blog_detail_slider .slick-arrow.slick-next {
    left: auto;
    right: 0;
}
.blog_detail_slider .slick-arrow::after {
    display: block;
    content: "";
    position: absolute;
    top: calc(50% - 20px);
    left: 10px;
    width: 40px;
    height: 40px;
    border-top: solid 2px var(--text);
    border-right: solid 2px var(--text);
    transform: rotate(-135deg);    
}
.blog_detail_slider .slick-arrow.slick-next::after {
    left: -10px;
    transform: rotate(45deg);    
}

.blog_detail_slider .pic {
    display: flex;
    justify-content: center;
}
.blog_detail_slider .pic img {
    max-height: 660px;
}
.blog_detail_thumbnail .thumb {
    padding: 10px 5px;
    cursor: pointer;
}
.blog_detail_thumbnail .thumb img {
    aspect-ratio: 3/2;
}
.blog_detail_text {
    padding: 30px 0 60px;
    font-size: 17px;
    line-height: 2.5;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .blog_detail_header .cate {
        margin-left: 2vw;
        padding: .5vw 1.5vw;
        font-size: 1.5vw;
    }
    .blog_detail_header .ttl {
        margin: 1vw 0 2.5vw;
        font-size: 3vw;
    }
    .blog_detail_slider .pic img {
        max-height: 50vw;
    }
    .blog_detail_thumbnail .thumb {
        padding: 1vw .5vw;
    }
    .blog_detail_text {
        padding: 3vw 0 7vw;
        font-size: 1.6vw;
        line-height: 2.25;
    }
    
}
@media screen and (max-width: 767px){
    
    .blog_detail_header .ttl {
        margin: 10px 0 24px;
        font-size: min(6vw,22px);
    }
    .blog_detail_slider .slick-arrow {
        left: -5vw;
    }
    .blog_detail_slider .slick-arrow.slick-next {
        left: auto;
        right: -5vw;
    }

    .blog_detail_slider .pic img {
        max-height: 72.5vw;
    }
    .blog_detail_thumbnail .thumb {
        padding: 5px 2.5px;
    }
    .blog_detail_text {
        padding: 20px 0 30px;
        font-size: 16px;
        line-height: 2;
    }    
    
}

/* list */

.blog_list .webgene-blog {
    display: flex;
    flex-wrap: wrap;
    gap: 45px 30px;
}
.blog_list .webgene-blog .li {
    width: calc(33.33% - 20px);
}
.blog_list .li a {
    color: var(--text);
}
.blog_list .li a .pic {
    display: block;
    width: 100%;
    height: 210px;
    margin-bottom: 15px;
    background: var(--white);
    border-radius: 3px;
}
.blog_list .li a .inner {
    padding: 0 10px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.blog_list .li a .date {
    margin-top: 4px;
    font-size: 15px;
}
.blog_list .li a .cate {
    display: block;
    width: 90px;
    padding: 3px 5px;
    background: var(--red);
    border-radius: 3px;
    color: var(--white);
    font-size: 14px;
    text-align: center;
}
.blog_list .li a .ttl {
    margin-top: 10px;
    width: 100%;
    line-height: 1.5;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .blog_list .webgene-blog {
        gap: 4vw 1.5vw;
    }
    .blog_list .webgene-blog .li {
        width: calc(33.33% - 1vw);
    }
    .blog_list .li a .pic {
        height: 16.66vw;
        margin-bottom: 1.5vw;
    }
    .blog_list .li a .inner {
        padding: 0;
    }
    .blog_list .li a .date {
        margin-top: .4vw;
        font-size: 1.4vw;
    }
    .blog_list .li a .cate {
        width: 8vw;
        padding: .3vw .5vw;
        font-size: 1.3vw;
    }
    .blog_list .li a .ttl {
        margin-top: 1vw;
    }
    
}
@media screen and (max-width: 767px){
    
    .blog_list .webgene-blog {
        display: block;
    }
    .blog_list .webgene-blog .li {
        width: min(400px,100%);
        margin: 0 auto 30px;
    }
    .blog_list .li a .pic {
        height: min(60vw,240px);
        margin-bottom: 10px;
    }
    .blog_list .li a .inner {
        padding: 0 2vw;
    }

}

/* pager */

.webgene-pagination {
    width: 100%;
    padding: 50px 0 0;
}
.webgene-pagination .number {
    padding: 0;
}
.webgene-pagination ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 15px;
    font-size: 17px;
    font-weight: 700;
}
.webgene-pagination ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1;
    width: 45px;
    height: 45px;
    background: #cdcdcd;
    border-radius: 50%;
    color: var(--white);
    text-decoration: none;
}
.webgene-pagination ul li a:hover {
    background: var(--brown);
}
.webgene-pagination ul li.selected a {
    background: var(--brown);
}
.webgene-pagination ul li.prev a,
.webgene-pagination ul li.next a {
    background: none;
    color: #999;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .webgene-pagination {
        width: 100%;
        padding: 4vw 0 0;
    }
    .webgene-pagination ul {
        gap: 1vw 1.5vw;
        font-size: 1.6vw;
    }
    .webgene-pagination ul li a {
        width: 4vw;
        height: 4vw;
    }
    
}
@media screen and (max-width: 767px){

    .webgene-pagination {
        padding: 40px 0;
    }
    .webgene-pagination ul {
        gap: 10px 10px;
    }
    .webgene-pagination ul li a {
        width: 40px;
        height: 40px;
    }

}

/*----- voice -----*/

.voice {
    padding: 100px 0;
}
.voice_list .li {
    margin-bottom: 20px;
    background: #e1d9d3;
    padding: 20px;
}
.voice_list .li .ttl {
    margin: 0 30px 15px;
    font-size: 25px;
    line-height: 1.75;
}
.voice_list .li .conts {
    padding: 20px 30px;
    background: var(--white);
}

/* form */

.voice_form .m_title {
    position: relative;
}
.voice_form .m_title .face {
    position: absolute;
    top: -30px;
    right: calc(50% - 350px);

    width: 76px;
}
.voice_form .m_title .ttl br {
    display: none;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .voice {
        padding: 7.5vw 0;
    }
    .voice_list .li {
        margin-bottom: 2vw;
        padding: 1.8vw;
    }
    .voice_list .li .ttl {
        margin: 0 2vw 1.5vw;
        font-size: 2.25vw;
    }
    .voice_list .li .conts {
        padding: 1.5vw 2vw;
    }
    
    /* form */

    .voice_form .m_title .face {
        top: -2vw;
        right: calc(50% - 30vw);
        width: 5.5vw;
    }
    
}
@media screen and (max-width: 767px){
    
    .voice {
        padding: 50px 0;
    }
    .voice_list .li {
        margin-bottom: 20px;
        padding: 15px 4vw 20px;
    }
    .voice_list .li .ttl {
        margin: 0 0 15px;
        font-size: 18px;
    }
    .voice_list .li .conts {
        padding: 15px 4vw;
    }
    
    /* form */

    .voice_form .m_title .face {
        top: 15px;
        right: calc(50% - 150px);
        width: 48px;
    }
    .voice_form .m_title .ttl {
        line-height: 1.75;
    }
    .voice_form .m_title .ttl br {
        display: inline-block;
    }
    
}

/*----- flow -----*/

.flow {
    padding: 90px 0 100px;
}
.flow .m_dl .dt {
    position: relative;
    padding-top: 5px;
}
.flow .m_dl .dt .num {
    position: absolute;
    top: -22px;
    left: 20px;
    color: var(--white);
    font-size: 55px;
}
.flow .m_dl .dd {
    width: 60%;
}

/* faq */

.faq {
    padding: 120px 0;
}
.faq_title {
    width: 260px;
    margin: 80px 0 30px;
    padding: 10px 0;
    background: var(--brown);
    color: var(--white);
    font-size: 27px;
    text-align: center;
}
.faq_box {
    margin-bottom: 20px;
    background: #e1d9d3;
    padding: 20px;
}
.faq_box .question {
    position: relative;
    display: flex;
    padding-right: 40px;
    cursor: pointer;
}
.faq_box .question::after {
    position: absolute;
    top: 5px;
    right: 0;
    font-size: 25px;
    content: "＋";
}
.faq_box .question.open::after {
    content: "－";
}
.faq_box .question .q {
    position: relative;
    top: 5px;
    width: 50px;
    color: var(--brown);
    font-size: 27px;
    text-align: center;
}
.faq_box .question .text {
    width: calc(100% - 50px);
    font-size: 25px;
    line-height: 1.75;
}
.faq_box .answer {
    display: none;
    margin-top: 10px;
    padding: 20px 30px;
    background: var(--white);
}
.faq_box .answer a {
    color: var(--red);
    text-decoration: underline;
}
.faq_box .answer a:hover {
    opacity: .6;
}
/* for CMS */
body:has(#wrapper) .faq_box .answer { display: block; }

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .flow {
        padding: 7vw 0 8vw;
    }
    .flow .m_dl .dt {
        padding-top: .5vw;
    }
    .flow .m_dl .dt .num {
        top: -2vw;
        left: 2vw;
        font-size: 4vw;
    }
    
    /* faq */

    .faq {
        padding: 8vw 0;
    }
    .faq_title {
        width: 24vw;
        margin: 6vw 0 3vw;
        padding: 1vw 0;
        font-size: 2.25vw;
    }
    .faq_box {
        margin-bottom: 2vw;
        padding: 1.8vw;
    }
    .faq_box .question {
        padding-right: 3vw;
    }
    .faq_box .question::after {
        top: .5vw;
        font-size: 2.25vw;
    }
    .faq_box .question .q {
        top: .5vw;
        width: 4vw;
        font-size: 2.5vw;
    }
    .faq_box .question .text {
        width: calc(100% - 4vw);
        font-size: 2.25vw;
    }
    .faq_box .answer {
        margin-top: 1vw;
        padding: 1.5vw 2vw;
    }

}
@media screen and (max-width: 767px){
    
    .flow {
        padding: 50px 0;
    }
    .flow .m_dl .dt {
        padding-top: 5px;
    }
    .flow .m_dl .dt .num {
        top: -16px;
        left: 5vw;
        font-size: 40px;
    }
    .flow .m_dl .dt .pic {
        margin: 0 auto 20px;
        width: min(400px,100%);
    }
    .flow .m_dl .dd {
        width: 100%;
    }
    
    /* faq */

    .faq {
        padding: 50px 0;
    }
    .faq_title {
        width: 200px;
        margin: 40px auto 20px;
        padding: 7px 0;
        font-size: 20px;
    }
    .faq_box {
        margin-bottom: 20px;
        padding: 15px 4vw 20px;
    }
    .faq_box .question {
        padding-right: 30px;
    }
    .faq_box .question::after {
        top: calc(50% - 10px);
        font-size: 22px;
    }
    .faq_box .question .q {
        top: 4px;
        width: 40px;
        font-size: 20px;
    }
    .faq_box .question .text {
        width: calc(100% - 40px);
        font-size: 18px;
    }
    .faq_box .answer {
        padding: 15px 4vw;
    }
    
}

/*----- company -----*/

.com_greet {
    padding: 75px 0 90px;
}
.com_greet .frame {
    margin-top: 60px;
    display: flex;
    justify-content: space-between;
}
.com_greet .frame .conts {
    width: 57%;
}
.com_greet .frame .pics {
    position: relative;
    width: 36.6666%;
    order: 2;
}
.com_greet .frame .pic img {
    aspect-ratio: 22/29;
}
.com_greet .frame .m_en {
    position: absolute;
    z-index: 9;
    top: 0;
    right: -70px;
}
.com_greet .frame .name {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    margin-top: 30px;
}
.com_greet .frame .name .text {
    font-size: 35px;
    margin-left: 20px;
}

/* info */

.com_info {
    padding: 100px 0 120px;
}
.com_info_ttl {
    margin: 30px 0 20px;
    font-size: 30px;
    line-height: 1.75;
    text-align: center;
}
.com_info_ttl br {
    display: none;
}
.com_info .frame {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 60px;
}
.com_info .frame .pics {
    position: relative;
    width: 50%;
    height: 500px;
}
.com_info .frame .pic {
    position: absolute;
    top: 0;
    right: 0;
    width: 58.333%;
}
.com_info .frame .pic:nth-of-type(2) {
    top: auto;
    bottom: 0;
    right: auto;
    left: 0;
}
.com_info .frame .pic img {
    aspect-ratio: 7/8;
}
.com_info .frame .conts {
    order: 2;
    width: 45%;
}
/* for CMS */
body:has(#wrapper) .com_info .frame .pic { position: relative; }

.com_info .dl > div {
    display: flex;
    justify-content: space-between;
}
.com_info .dl .dt,
.com_info .dl .dd {
    padding: 18px 20px;
    box-sizing: border-box;
    font-size: 17px;
}
.com_info .dl .dt {
    width: 35%;
    border-bottom: 1px solid var(--red);
}
.com_info .dl .dd {
    width: calc(65% - 5px);
    border-bottom: 1px solid var(--text);
}
.com_info .dl .dd a {
    color: var(--text);
}

@media screen and (min-width: 768px) and (max-width: 1700px){
    
    .com_greet .frame .pics {
        margin-right: 3%;
    }
    .com_greet .frame .m_en {
        right: -50px;
    }
    
}
@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .com_greet {
        padding: 6vw 0 7.5vw;
    }
    .com_greet .frame {
        margin-top: 4.5vw;
    }
    .com_greet .frame .m_en {
        right: -4vw;
    }
    .com_greet .frame .name {
        margin-top: 3vw;
    }
    .com_greet .frame .name .text {
        font-size: 2.8vw;
        margin-left: 2vw;
    }
    
    /* info */

    .com_info {
        padding: 7.5vw 0 8vw;
    }
    .com_info_ttl {
        margin: 3vw 0 2vw;
        font-size: 2.4vw;
    }
    .com_info .frame {
        margin-top: 5vw;
    }
    .com_info .frame .pics {
        height: 40vw;
    }

    .com_info .dl .dt,
    .com_info .dl .dd {
        padding: 1.6vw 1vw;
        font-size: 1.3vw;
    }
    .com_info .dl .dd {
        width: calc(65% - .5vw);
    }
    
}
@media screen and (max-width: 767px){
    
    .com_greet {
        padding: 40px 0 50px;
    }
    .com_greet .frame {
        margin-top: 30px;
        display: block;
    }
    .com_greet .frame .conts {
        width: 100%;
    }
    .com_greet .frame .pics {
        width: min(400px,100%);
        margin: 0 auto 30px;
    }
    .com_greet .frame .m_en {
        right: auto;
        left: -4vw;
    }
    .com_greet .frame .name {
        margin-top: 20px;
    }
    .com_greet .frame .name .text {
        font-size: 22px;
        margin-left: 15px;
    }

    /* info */

    .com_info {
        padding: 50px 0;
    }
    .com_info_ttl {
        margin: 20px 0 15px;
        font-size: 22px;
    }
    .com_info_ttl br {
        display: inline-block;
    }
    .com_info .frame {
        display: block;
        margin-top: 20px;
    }
    .com_info .frame .pics {
        width: min(400px,100%);
        height: min(320px,70vw);
        margin: 30px auto 0;
    }
    .com_info .frame .conts {
        width: 100%;
    }

    .com_info .dl > div {
        display: block;
    }
    .com_info .dl .dt,
    .com_info .dl .dd {
        width: min(400px,100%);
        margin: 0 auto;
        font-size: min(4.5vw,16px)
    }
    .com_info .dl .dt {
        padding: 20px 4vw 10px;
        border-bottom: none;
    }
    .com_info .dl .dd {
        padding: 0 4vw 20px;
    }
    
}

/*----- service -----*/

.svc_intro {
    padding: 100px 0 120px;
}
.svc_intro .m_title {
    margin-bottom: 80px;
}
.svc_intro .m_title_h3 .ttl {
    font-size: 37px;
}
.svc_intro .m_en {
    color: #eae3de;
    font-size: 90px;
}
.svc_intro .m_outer_wide_main .m_en {
    left: -16%;
}
.svc_intro .m_opp {
    margin-top: 100px;
}
.svc_intro .m_opp .m_outer_wide_main {
    margin-left: 7%;
}
.svc_intro .m_opp .m_en {
    left: -25%;
    writing-mode: vertical-rl;
}

/* char */

.svc_char {
    padding: 110px 0;
}
.svc_char .frame {
    display: flex;
    justify-content: space-between;
    margin-top: 50px;
}
.svc_char .frame .conts {
    width: 47%;
}
.svc_char .frame .conts .pic img {
    aspect-ratio: 113/68;
}
.svc_char .frame .conts .ttl {
    margin: 25px 0 20px;
    font-size: 30px;
    text-align: center;
}

/* flow */

.svc_flow {
    padding: 110px 0;
}
.svc_flow .m_dl {
    margin-top: 50px;
}
.svc_flow .ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px 20px;
    margin-top: 20px;
}
.svc_flow .ul .li {
    width: 300px;
}
.svc_flow .ul .li.tel {
    background: #e5ddd7;
    padding: 10px 0;
    text-align: center;
}
.svc_flow .ul .li.tel img {
    width: 244px;
}
.svc_flow .ul .li .m_btn {
    margin: 0;
    width: 300px;
}

/* ex */

.svc_ex {
    padding: 120px 0;
    background: url("/system_panel/uploads/images/bg_service.jpg") center no-repeat;
    background-size: cover;
    color: var(--white);
}
.svc_ex .frame {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 80px 0 45px; 
}
.svc_ex .frame .conts {
    position: relative;
    width: 40%;
}
.svc_ex .frame .conts .text {
    position: absolute;
    top: 0;
    left: 0;
    width: 120px;
    padding: 5px;
    background: var(--red);
    font-size: 19px;
    text-align: center;
}
.svc_ex .frame .arrow {
    margin: 0 40px;
    width: 43px;
}
.svc_ex_ttl {
    margin-bottom: 10px;
    font-size: 31px;
    line-height: 1.75;
} 

@media screen and (min-width: 768px) and (max-width: 1800px){
    .svc_intro .m_opp .m_en {
        left: -16%;
    }    
}
@media screen and (min-width: 768px) and (max-width: 1700px){
   
    .svc_intro .m_title_h3 .ttl {
        font-size: 29px;
    }
    .svc_intro .m_en {
        font-size: 64px;
    }
    .svc_intro .m_outer_wide_main .m_en {
        left: -15%;
    }
    
}
@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .svc_intro {
        padding: 7.5vw 0 8vw;
    }
    .svc_intro .m_title {
        margin-bottom: 6vw;
    }    
    
    .svc_intro .m_title_h3 .ttl {
        font-size: 2.5vw;
    }
    .svc_intro .m_en {
        font-size: 5vw;
    }
    .svc_intro .m_outer_wide_main .m_en {
        left: -11%;
    }
    .svc_intro .m_opp {
        margin-top: 7vw;
    }
    .svc_intro .m_opp .m_en {
        left: -16%;
    }    

    /* char */
    
    .svc_char {
        padding: 7.5vw 0;
    }
    .svc_char .frame {
        margin-top: 4vw;
    }
    .svc_char .frame .conts {
        width: 48.5%;
    }
    .svc_char .frame .conts .ttl {
        margin: 2vw 0;
        font-size: 2.4vw;
    }

    /* flow */
    
    .svc_flow {
        padding: 7.5vw 0;
    }
    .svc_flow .m_dl {
        margin-top: 4vw;
    }
    .svc_flow .ul {
        gap: 1.5vw 2vw;
        margin-top: 2vw;
    }
    .svc_flow .ul .li {
        width: 28vw;
    }
    .svc_flow .ul .li.tel {
        padding: 1vw 0;
    }
    .svc_flow .ul .li.tel img {
        width: 22vw;
    }
    .svc_flow .ul .li .m_btn {
        width: 28vw;
    }

    /* ex */

    .svc_ex {
        padding: 8vw 0;
    }
    .svc_ex .frame {
        margin: 6vw 0 4vw; 
    }
    .svc_ex .frame .conts {
        width: 40%;
    }
    .svc_ex .frame .conts .text {
        width: 10vw;
        padding: .5vw;
        font-size: 1.8vw;
    }
    .svc_ex .frame .arrow {
        margin: 0 4vw;
        width: 3.5vw;
    }
    .svc_ex_ttl {
        margin-bottom: 1vw;
        font-size: 2.75vw;
    } 

}
@media screen and (max-width: 767px){
    
    .svc_intro {
        padding: 50px 0;
    }
    .svc_intro .m_title {
        margin-bottom: 30px;
    }    

    .svc_intro .m_title_h3 .ttl {
        font-size: min(7.5vw,22px);
    }
    .svc_intro .m_en {
        font-size: 48px;
    }
    .svc_intro .m_outer_wide_main .m_en {
        left: -4vw;
    }
    .svc_intro .m_opp {
        margin-top: 50px;
    }
    .svc_intro .m_opp .m_en {
        left: -4vw;
    }    
    .svc_intro .m_opp .m_outer_wide_main {
        margin-left: 0;
    }

    /* char */
    
    .svc_char {
        padding: 50px 0;
    }
    .svc_char .frame {
        display: block;
        margin-top: 0;
    }
    .svc_char .frame .conts {
        width: min(400px,100%);
        margin: 30px auto 0;
    }
    .svc_char .frame .conts .ttl {
        font-size: min(5.5vw,23px);
    }

    /* flow */
    
    .svc_flow {
        padding: 50px 0;
    }
    .svc_flow .m_dl {
        margin-top: 0;
    }
    .svc_flow .ul {
        justify-content: center;
        gap: 10px 15px;
        margin-top: 15px;
    }
    .svc_flow .ul .li {
        width: 280px;
    }
    .svc_flow .ul .li.tel img {
        width: 220px;
    }
    .svc_flow .ul .li .m_btn {
        width: 280px;
    }
    .svc_flow .ul .li .m_btn a {
        font-size: 15px;
    }

    /* ex */

    .svc_ex {
        padding: 50px 0;
    }
    .svc_ex .frame {
        display: block;
        margin: 40px 0 30px; 
    }
    .svc_ex .frame .conts {
        width: min(400px,100%);
        margin: 0 auto;
    }
    .svc_ex .frame .conts .text {
        width: 100px;
        font-size: 17px;
    }
    .svc_ex .frame .arrow {
        margin: 20px auto;
        width: 40px;
    }
    .svc_ex .frame .arrow img {
        transform: rotate(90deg);        
    }
    .svc_ex_ttl {
        font-size: 21px;
    } 

    
}

/*----- purchase -----*/

.purchase_message {
    padding: 120px 0 60px;
}
.purchase_message .m_box {
    margin-top: 30px;
}

/* char */

.purchase_char {
    padding: 100px 0 120px;
}
.purchase_char .m_dl .dt {
    width: 30%;
}
.purchase_char .m_dl .dt .num {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    aspect-ratio: 5/2;
    margin: 10px 0 15px;
    background: url("/system_panel/uploads/images/bg_num.png") no-repeat;
    background-size: cover;
    font-size: 30px;
    text-align: center;
}
.purchase_char .m_dl .dd {
    width: 68%;
}

/* flow */

.purchase_flow {
    padding: 120px 0 100px;
}
.purchase_flow .ul {
    position: relative;
    display: flex;
    justify-content: space-between;
    margin-top: 60px;
}
.purchase_flow .ul::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 0;
    display: block;
    content: "";
    width: 100%;
    height: 1px;
    background: var(--brown);
}
.purchase_flow .ul .li {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    padding: 40px 0;
    background: var(--brown);
    color: var(--white);
    box-sizing: border-box;
}
.purchase_flow .ul .li .m_lr {
    font-size: 27px;
}

/* voice */

.voice_area {
    padding: 120px 0 160px;
}
.voice_area_box {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    height: 440px;
    background: url("/system_panel/uploads/images/bg_voice.jpg") center no-repeat;
    background-size: cover;
    color: var(--white);
}
.voice_area_box .title {
    text-align: center;
    margin-bottom: -40px;
}
.voice_area_box .title .ttl {
    font-size: 40px;
}
.voice_area_box .title .m_en {
    position: relative;
    top: -85px;
    opacity: .1;
}

.voice_area.pch {
    padding: 100px 0;
    background: url("/system_panel/uploads/images/bg_voice_large.jpg") top center #4b432e no-repeat;
    background-size: 100% auto;
}
.voice_area.pch .voice_area_box {
    display: block;
    height: auto;
    background: none;
}
.voice_area_ul {
    margin-top: 40px;
}
.voice_area_ul .li {
    display: block;
    margin: 25px 0 0;
    padding: 25px 50px 40px;
    background: var(--white);
}
.voice_area_ul .li .title {
    margin-bottom: 15px;
    padding: 0 10px 10px;
    border-bottom: 3px double var(--brown);
    color: var(--brown);
    font-size: 25px;
    line-height: 1.75;
    text-align: left;
}
.voice_area_ul .li .p {
    padding: 0 10px;
    color: var(--text);
    line-height: 2.25;
}

/* area */

.purchase_area {
    padding: 120px 0;
}
.purchase_area .frame {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 120%;
    margin-left: -10%;
}
.purchase_area .conts {
    order: 2;
    width: 60%;
}
.purchase_area .pic {
    width: 40%;
}

@media screen and (min-width: 768px) and (max-width: 1260px){

    .purchase_message {
        padding: 8vw 0 5vw;
    }
    .purchase_message .m_box {
        margin-top: 2.5vw;
    }

    /* char */

    .purchase_char {
        padding: 7.5vw 0 8vw;
    }
    .purchase_char .m_dl .dt .num {
        width: 8vw;
        margin: 1vw 0 1.5vw;
        font-size: 2.75vw;
    }

    /* flow */

    .purchase_flow {
        padding: 8vw 0 7.5vw;
    }
    .purchase_flow .ul {
        margin-top: 5vw;
    }
    .purchase_flow .ul .li {
        width: 8vw;
        padding: 3vw 0;
    }
    .purchase_flow .ul .li .m_lr {
        font-size: 2.2vw;
    }

    /* voice */
    
    .voice_area {
        padding: 8vw 0 9vw;
    }
    .voice_area_box {
        height: 40vw;
    }
    .voice_area_box .title {
        margin-bottom: -3.3vw;
    }
    .voice_area_box .title .ttl {
        font-size: 3.3vw;
    }
    .voice_area_box .title .m_en {
        top: -6.5vw;
    }

    .voice_area.pch {
        padding: 8vw 0;
    }
    .voice_area_ul {
        margin-top: 3vw;
    }
    .voice_area_ul .li {
        margin: 2vw 0 0;
        padding: 2vw 3vw 3vw;
    }
    .voice_area_ul .li .title {
        margin-bottom: 1.5vw;
        padding: 0 0 1vw;
        font-size: 2vw;
    }
    .voice_area_ul .li .p {
        padding: 0;
        line-height: 2;
    }
    
    /* area */

    .purchase_area {
        padding: 8vw 0;
    }
    .purchase_area .frame {
        width: 100%;
        margin-left: 0;
    }
    .purchase_area .conts {
        width: 65%;
    }
    .purchase_area .pic {
        width: 32%;
    }

}
@media screen and (max-width: 767px){

    .purchase_message {
        padding: 50px 0;
    }
    .purchase_message .m_box {
        margin-top: 30px;
    }

    /* char */

    .purchase_char {
        padding: 50px 0;
    }
    .purchase_char .m_dl .dt {
        width: 100%;
    }
    .purchase_char .m_dl .dt .num {
        width: 70px;
        margin: 0 0 12px;
        font-size: 22px;
    }
    .purchase_char .m_dl .dd {
        width: 100%;
    }

    /* flow */

    .purchase_flow {
        padding: 50px 0;
    }
    .purchase_flow .ul {
        display: block;
        margin-top: 0;
    }
    .purchase_flow .ul::after {
        top: 0;
        left: 50%;
        width: 1px;
        height: 100%;
    }
    .purchase_flow .ul .li {
        display: block;
        width: min(400px,100%);
        margin: 30px auto 0;
        padding: 15px 0;
        text-align: center;
    }
    .purchase_flow .ul .li .m_lr {
        font-size: min(5vw,20px);
        writing-mode: horizontal-tb;
    }

    /* voice */
    
    .voice_area {
        padding: 50px 0;
    }
    .voice_area_box {
        height: auto;
        padding: 40px 4vw;
    }
    .voice_area_box .title {
        margin-bottom: -20px;
    }
    .voice_area_box .title .ttl {
        font-size: 24px;
    }
    .voice_area_box .title .m_en {
        top: -45px;
    }

    .voice_area.pch {
        padding: 50px 0;
        background-size: 100% auto;
    }
    .voice_area.pch .voice_area_box {
        padding: 0;
    }
    .voice_area_ul {
        margin-top: 20px;
    }
    .voice_area_ul .li {
        margin: 20px 0 0;
        padding: 15px 4vw 20px;
    }
    .voice_area_ul .li .title {
        margin-bottom: 12px;
        padding: 0 0 12px;
        font-size: 19px;
    }
    .voice_area_ul .li .p {
        padding: 0;
        line-height: 2;
    }
    
    /* area */

    .purchase_area {
        padding: 50px 0;
    }
    .purchase_area .frame {
        display: block;
        width: 100%;
        margin-left: 0;
    }
    .purchase_area .conts {
        width: 100%;
    }
    .purchase_area .pic {
        margin: 0 auto;
        width: min(400px,100%);
    }

}

/*----- item -----*/

.item_area {
    padding: 120px 0 100px;
}
.item_area_h4 {
    display: inline-block;
    margin: -10px 0 25px;
    padding: 5px 20px;
    background: var(--red);
    color: var(--white);
    font-size: 16px;
    line-height: 1.5;
}
.m_box.item_box {
    margin: 60px 0;
}
.m_box.item_box .title {
    width: 1080px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 20px;
}
.m_box.item_box .title .text {
    color: var(--white);
    font-size: 16px;
    line-height: 1.5;
}

.item_pics .pic {
    margin: 0 5px;
}
.item_pics .pic img {
    aspect-ratio: 3/2;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    .item_area {
        padding: 8vw 0;
    }
    .item_area_h4 {
        margin: -1vw 0 2.5vw;
        padding: .5vw 1.5vw;
        font-size: 1.5vw;
    }
    .m_box.item_box {
        margin: 5vw 0;
    }
    .m_box.item_box .title {
        width: 90%;
        padding: 1vw;
        gap: 0 1.5vw;
    }
    .m_box.item_box .title .ttl {
        width: 15vw;
        text-align: center;
    }
    .m_box.item_box .title .text {
        font-size: 1.15vw;
    }
    
}
@media screen and (max-width: 767px){
    
    .item_area {
        padding: 50px 0;
    }
    .item_area_h4 {
        margin: -5px 0 20px;
        padding: 5px 4vw;
        font-size: 14px;
    }
    .m_box.item_box {
        margin: 0px 0 30px;
    }
    .m_box.item_box .title {
        width: auto;
        display: block;
        padding: 10px 4vw 13px;
    }
    .m_box.item_box .title .text {
        margin-top: 5px;
        font-size: 13px;
    }
    .m_box.item_box .conts .pm {
        line-height: 1.75;
    }
    
}



/*----- purchase -----*/

/* items */

.purchase_items {
    padding: 100px 0;    
}
.purchase_items .ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 60px 100px;
    margin-top: 50px;
}
.purchase_items .ul .li {
    position: relative;
    width: calc(50% - 50px);
}
.purchase_items .ul .li a {
    color: var(--text);
}
.purchase_items .ul .li .en {
    position: absolute;
    z-index: 9;
    top: 10px;
    left: -25px;
    font-size: 70px;
    color: var(--white);
    opacity: .9;
}
.purchase_items .ul .li .pic {
    border-radius: 3px;
}
.purchase_items .ul .li .pic img {
    aspect-ratio: 55/38;
}
.purchase_items .ul .li .ttl {
    margin: 20px 0 15px;
    font-size: 30px;
    text-align: center;
}
.purchase_items .ul .li .p {
    line-height: 2;
    text-align: center;
}

@media screen and (min-width: 768px) and (max-width: 1700px){
    
}
@media screen and (min-width: 768px) and (max-width: 1260px){
    
    
    /* items */

    .purchase_items {
        padding: 8vw 0;    
    }
    .purchase_items .ul {
        gap: 5vw 6vw;
        margin-top: 4vw;
    }
    .purchase_items .ul .li {
        width: calc(50% - 3vw);
    }
    .purchase_items .ul .li .en {
        top: 1vw;
        left: -2vw;
        font-size: 5.5vw;
    }
    .purchase_items .ul .li .ttl {
        margin: 2vw 0 1.5vw;
        font-size: 2.6vw;
    }
    
}
@media screen and (max-width: 767px){
    
    /* items */

    .purchase_items {
        padding: 50px 0;    
    }
    .purchase_items .ul {
        display: block;
        margin-top: 30px;
    }
    .purchase_items .ul .li {
        width: min(400px,100%);
        margin: 0 auto 30px;
    }
    .purchase_items .ul .li .en {
        left: -16px;
        font-size: 48px;
    }
    .purchase_items .ul .li .ttl {
        margin: 15px 0 10px;
        font-size: 22px;
    }
    .purchase_items .ul .li .p {
        line-height: 1.75
    }
    
}


/*----- contact -----*/

/* intro */

.contact_intro {
    padding: 50px 0 45px;
} 
.contact_intro_ttl {
    margin: 50px 0 20px;
    color: var(--brown);
    font-size: 30px;
    text-align: center;
}

/* info */

.contact_info {
    padding: 60px 0;
}
.contact_info .ttl {
    margin-bottom: 35px;
    font-size: 35px;
    text-align: center;
}
.contact_info .ttl br {
    display: none;
}
.contact_info_qr {
    display: flex;
    justify-content: center;
    gap: 0 40px;
}
.contact_info_qr .qr_box {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 380px;
    aspect-ratio: 19/6;
    background: url("/system_panel/uploads/images/bg_sns.png") no-repeat;
    background-size: cover;
}
.contact_info_qr .qr_box .text {
    font-size: 21px;
    margin-right: 20px;
}
.contact_info_qr .qr_box .qr {
    width: 73px;
}
.contact_info_qr .qr_box .qr img {
    aspect-ratio: 1;
}
.contact_info_box {
    width: 800px;
    margin: 40px auto 0;
    padding: 20px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--white);
    box-sizing: border-box;
}
.contact_info_box .title {
    width: 48.5%;
    color: var(--text);
    font-size: 27px;
    text-align: center;
}
.contact_info_box .ul {
    width: 48.5%;
}
.contact_info_box .ul .li {
    margin-bottom: 10px;
}
.contact_info_box .ul .li:last-child {
    margin-bottom: 0;
}
.contact_info_box .ul .li a {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding: 10px;
    background: #e5ddd7;
    color: var(--brown);
    font-size: 14px;
}
.contact_info_box .ul .li a .tel {
    width: 244px;
}
.contact_info_box .ul .li a .text {
    text-align: center;
}
.contact_info_box .ul .li:last-child a .text {
    width: 100%;
}

.form_area {
    padding: 100px 0;
}
.complete {
    padding: 90px 0 120px;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
    
    /* intro */

    .contact_intro {
        padding: 3vw 0 4vw;
    } 
    .contact_intro_ttl {
        margin: 4vw 0 2vw;
        font-size: 2.6vw;
    }

    /* info */


    .contact_info {
        padding: 5vw 0;
    }
    .contact_info .ttl {
        margin-bottom: 3vw;
        font-size: 3vw;
    }
    .contact_info_qr {
        gap: 0 3vw;
    }
    .contact_info_qr .qr_box {
        width: 34vw;
    }
    .contact_info_qr .qr_box .text {
        font-size: 2vw;
        margin-right: 2vw;
    }
    .contact_info_qr .qr_box .qr {
        width: 6vw;
    }
    .contact_info_box {
        width: 71vw;
        margin: 4vw auto 0;
        padding: 1.5vw 2vw;
    }
    .contact_info_box .title {
        font-size: 2.5vw;
    }
    .contact_info_box .ul .li {
        margin-bottom: 1vw;
    }
    .contact_info_box .ul .li a {
        padding: 1vw;
        font-size: 1.2vw;
    }
    .contact_info_box .ul .li a .tel {
        width: 22vw;
    }
    .contact_info_box .ul .li:last-child a .text {
        width: 100%;
    }
    
    .form_area {
        padding: 8vw 0;
    }
    .complete {
        padding: 7.5vw 0 9vw;
    }
    
}
@media screen and (max-width: 767px){
    
    /* intro */

    .contact_intro {
        padding: 30px 0 50px;
    } 
    .contact_intro_ttl {
        margin: 30px 0 15px;
        font-size: min(5vw,24px);
    }

    /* info */

    .contact_info {
        padding: 40px 0;
    }
    .contact_info .ttl {
        margin-bottom: 25px;
        font-size: min(6vw,24px);
        line-height: 1.5;
    }
    .contact_info .ttl br {
        display: inline-block;
    }
    .contact_info_qr {
        flex-wrap: wrap;
        gap: 15px 20px;
    }
    .contact_info_qr .qr_box {
        width: 280px;
    }
    .contact_info_qr .qr_box .text {
        font-size: 17px;
        margin-right: 10px;
    }
    .contact_info_qr .qr_box .qr {
        width: 50px;
    }
    .contact_info_box {
        width: 100%;
        margin: 30px auto 0;
        padding: 15px 4vw;
        display: block;
    }
    .contact_info_box .title {
        width: 100%;
        margin-bottom: 15px;
        font-size: min(5vw,22px);
    }
    .contact_info_box .ul {
        width: 100%;
    }
    .contact_info_box .ul .li a {
        padding: 10px;
        font-size: 14px;
    }
    .contact_info_box .ul .li a .tel {
        width: 244px;
        margin: 0 auto;
    }
    .contact_info_box .ul .li a .text {
        width: 100%;
        margin-top: 5px;
        font-size: min(3.5vw,14px)
    }

    .form_area {
        padding: 60px 0;
    }
    .complete {
        padding: 50px 0 75px;
    }

}




