@charset "UTF-8";
/*common*/
.pc-only { display: block !important; }

.sp-only { display: none !important; }

section, main { position: relative; display: block; }

body { width: 100%; overflow-x: hidden; }

img { max-width: 100%; }

@media screen and (max-width: 900px) {
    .pc-only { display: none !important; }
    .sp-only { display: block !important; }
    html, body { width: 100%; overflow-x: hidden; } 
}

/*no-js*/
.no-js #loading { display: none; }

/*loading*/
body #loading { background: #fff; display: block; height: 100%; left: 0; position: fixed; top: 0; width: 100%; z-index: 100010; pointer-events: none; -webkit-transition: opacity 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.5s; transition: opacity 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.5s; }

body #loading.is-animation { opacity: 0; }

/*loop*/
@keyframes loop { 0% { transform: translateX(100%); }
  to { transform: translateX(-100%); } 
}
@keyframes loop2 { 0% { transform: translateX(0); }
  to { transform: translateX(-200%); } 
}

@keyframes link_arrow {
  0% { margin-left: 0; }
  50% { margin-left: 2.0rem; }
  51% { margin-left: -2.0rem; }
  to {  margin-left: 0; } 
}

/*fade*/
.js-scroll-fade:not(.top_about_ph):not(.hd_anime) { opacity: 0; }

.isActive:not(.top_about_ph):not(.hd_anime) { -webkit-animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1); animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1); -webkit-animation-duration: 1.8s; animation-duration: 1.8s; -webkit-animation-name: fadeUp; animation-name: fadeUp; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; }

@-webkit-keyframes fadeUp { 0% { opacity: 0; -webkit-transform: translateY(50px); transform: translateY(50px); }
  10% { opacity: 0; }
  to { opacity: 1; -webkit-transform: none; trfooter_logo_setansform: none; } }
@keyframes fadeUp { 0% { opacity: 0; -webkit-transform: translateY(50px); transform: translateY(50px); }
  10% { opacity: 0; }
  to { opacity: 1; -webkit-transform: none; transform: none; } }

/*header*/
.header_box { width: 100%; position: relative; position: fixed; z-index: 10000; background: #fff; }
.header_box .inner { display: flex; align-items: center; width: 100%; height: 10.0rem; padding: 0 2.50%; justify-content: space-between; box-sizing: border-box; }
.header_box .inner .header_logo { width: 24.3rem; min-width: 18.3rem; padding: 32px 0; line-height: 1; }
.header_box .inner .header_logo a { display: block; }
.header_box .inner .header_logo img { width: 100%; line-height: 0; }

.global_nav .main_nav { display: flex; }
.global_nav .main_nav li { margin-left: 2.0rem; position: relative; }
.global_nav .main_nav li a { display: inline-block; padding: 1.0rem 0; font-size: 1.4rem; line-height: 1.5; white-space: nowrap; }
.global_nav .main_nav li .ico { display: inline-block; width: 1.8rem; margin-right: 0.5rem; line-height: 1.3;}
.global_nav .main_nav .nav_download { margin-left: 3.0rem; }
.global_nav .main_nav .nav_download:before { content: ""; display: block; width: 1px; height: 1.5rem; background: #ccc; position: absolute; left: -1.5rem; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%);  }

.op_global_nav { display: none; }
.btn_humberger_box { display: none; }

@media screen and (max-width: 1200px) { 
    .global_nav .main_nav li a { font-size: 1.2rem; }  
    .global_nav .main_nav li .ico { width: 1.5rem; }
}
@media screen and (max-width: 1100px) { 
    .global_nav .main_nav li a { font-size: 1.0rem; }  
    .global_nav .main_nav li .ico { width: 1.3rem; }
}

@media screen and (max-width: 1024px) { 
    .global_nav .main_nav { display: none; }
    
    .btn_humberger_box { display: block; width: 4.0rem; height: 4.0rem; z-index: 10001; background: #fff; border: 1px solid #ccc; border-radius: 0.5rem; position: relative; box-sizing: border-box; cursor: pointer; }
    .btn_humberger { width: 1.8rem; height: 1.4rem; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); z-index: 2; }
    .btn_humberger span { width: 1.8rem; height: 2px; display: block; -webkit-transition: all 0.2s cubic-bezier(0.36, 0.14, 0, 1); transition: all 0.2s cubic-bezier(0.36, 0.14, 0, 1); background:#333; position: absolute; }
    .btn_humberger span:nth-child(2){ left: 0; bottom: 0; }
    .btn_humberger span:nth-child(1){ left: 0; top: 0; }
    .btn_humberger span:nth-child(3){ left: 0; top: calc(50% - 1px); }
    body.open .btn_humberger span:nth-child(2){ transform: rotate(45deg); top: 50%; }
    body.open .btn_humberger span:nth-child(1){ transform: rotate(-45deg); top: 50%; }
    body.open .btn_humberger span:nth-child(3){ opacity: 0; }

    .op_global_nav { display: block; opacity: 0; pointer-events: none; position: fixed; width: 100%; height: 100%; background: #fff; z-index: 9999; -webkit-transition: opacity 0.6s cubic-bezier(0.36, 0.14, 0, 1); transition: opacity 0.6s cubic-bezier(0.36, 0.14, 0, 1); }
    body.open .op_global_nav { opacity: 1; pointer-events: visible; }
    .op_global_nav > .inner { width: 80%; margin: 0 auto; padding-top: 9.6rem; }
    .op_global_nav ul { border-top: 1px solid #eee; }
    .op_global_nav a { display: block; margin-bottom: 1.0rem; padding: 1.5rem 0; font-size: 2.0rem; line-height: 1.5; white-space: nowrap; border-bottom: 1px solid #eee; }
    .op_global_nav a .ico { display: inline-block; width: 1.8rem; margin-right: 0.5rem; line-height: 1.3;}
}

.service_contents { padding-top: 10.0rem; }
.page_ttl { position: relative; padding: 7.0rem 0 9.0rem; }
.page_ttl_ph img { width: 100%; height: 100%; position: absolute; top: 0; object-fit: cover; }
.page_ttl_body { width: 43.35%; margin-left: 5.64%; position: relative; z-index: 2;}
.page_ttl_body .hd { font-size: 2.2rem; font-weight: 700; color: #CA191D; text-align: center; }
.page_ttl_body .ttl { font-size: 4.0rem; font-weight: 700; text-align: center; }
.page_ttl_body .catch { font-size: 3.0rem; font-weight: 700; line-height: 1.5; text-align: center; margin: 6.0rem 0 4.0rem; }
.page_ttl_body .btn { display: flex; justify-content: space-between; margin-top: 6.0rem; }
.page_ttl_body .btn a { width: 48.65%; padding: 2.5rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
.page_ttl_body .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.0rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.page_ttl_body .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.service_top { background: #F7F7F7; padding: 9.0rem 0 8.0rem; }
.service_top > .inner { width: 58.78%; min-width: 700px; margin: 0 auto; }
.service_top .ttl { font-size: 3.0rem; font-weight: 700; text-align: center; line-height: 1.5; }
.service_top .read { text-align: center; margin-top: 4.0rem; line-height: 2.5; }
.service_top .read span { display: inline-block; position: relative; background: linear-gradient(transparent 60%, rgba(227,127,130,0.12) 0%); }
/*.service_top .read span:before { content: ""; display: block; width: 100%; height: 40%; position: absolute; top: 50%; background: rgba(227,127,130,0.12);  }*/
.service_top .checklist_wrapper { background: #fff; border-radius: 0.4rem; margin-top: 4.0rem; padding: 3.5rem 8.62% 6.0rem; text-align: center; }
.service_top .checklist { display: inline-block; text-align: left; }
.service_top .checklist li { font-size: 1.8rem; font-weight: 700; line-height: 1.5; padding: 1.5rem 0 1.5rem 7.2rem; position: relative; border-bottom: 1px solid #ccc; }
.service_top .checklist li .ico { position: absolute; left: 2.0rem; top: 1.0rem; }
.service_top .checklist li:last-child { border-bottom: none; }
.service_top .img { mix-blend-mode: multiply; margin-top: -4.0rem; text-align: center; }
.service_top .img img { width: 22.5rem; }
.service_top .arrow { text-align: center; margin-top: 3.0rem; }
.service_top .arrow img { width: 7.6rem; }
.service_top .result { margin-top: 3.0rem; text-align: center; font-size: 2.4rem; font-weight: 700; line-height: 1.5;}

.common_hd .en { font-size: 1.6rem; font-weight: 700; color: #CA191D; text-align: center; }
.common_hd .ttl { font-size: 3.0rem; font-weight: 700; text-align: center; margin-top: 1.0rem; }

.service_about { margin-top: 5.5rem; }
.service_about > .inner { width: 58.78%; min-width: 700px; margin: 0 auto; }
.service_about .read { text-align: center; margin: 4.0rem 0 5.0rem; line-height: 2.5; }
.service_about .read span { display: inline-block; position: relative; background: linear-gradient(transparent 60%, rgba(227,127,130,0.12) 0%); }
.service_about_caption { margin-top: 6.0rem; font-size: 1.6rem; font-weight: 700; text-align: center; }
.service_about_table { width: 100%; margin-top: 2.5rem; font-size: 1.6rem; line-height: 1.5; }
.service_about_table th { width: 40%; text-align: center; color: #fff; }
.service_about_table th:first-child { width: 20%; }
.service_about_table th:nth-child(2) { background: #BCBCBC; }
.service_about_table th:nth-child(3) { background: #E27F82; }
.service_about_table td { text-align: center; border-bottom: 1px solid #CFCFCF; }
.service_about_table td:nth-child(3) { background: rgba(227,127,130,0.12); }
.service_about_table th, .service_about_table td { padding: 2.0rem 0; }
.service_about_table td:first-child { text-align: left; background: #F7F7F7; padding: 2.0rem; }

.service_reason { background: #F7F7F7; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
.service_reason > .inner { width: 72.28%; min-width: 700px; margin: 0 auto; }
.service_reason .read { text-align: center; margin-top: 3.5rem; }
.service_reason_list { margin-top: 7.0rem; display: flex; justify-content: space-between; }
.service_reason_item { width: 31.71%; box-sizing: border-box; background: #fff; }
.service_reason_item .item_inner { padding: 14.66%; }
.service_reason_item .ico { text-align: center; }
.service_reason_item .ico img { width: 8.0rem; }
.service_reason_item .ttl { font-size: 1.8rem; line-height: 1.75; margin: 3.0rem 0; text-align: center; }

.service_loadmap { margin-top: 8.4rem;}
.service_loadmap > .inner { width: 58.78%; min-width: 700px; margin: 0 auto; }
.service_loadmap .read { text-align: center; margin-top: 3.5rem; }
.service_loadmap_list { margin-top: 6.0rem; }
.service_loadmap_item { display: flex; justify-content: space-between; position: relative;  }
.service_loadmap_item .num { align-self: center; width: 10.0rem; font-size: 3.7rem; font-weight: 500; line-height: 1.0; text-align: center; }
.service_loadmap_item .num:after { content: ""; display: block; width: 2.4rem; height: 1.3rem; background: url("../img/service_flow_arrow.svg") no-repeat center / cover; position: absolute; left: 4.5rem; bottom: -5.0rem; -webkit-transform: translate(-50%,50%); transform: translate(-50%,50%); }
.service_loadmap_item:last-child .num:after { display: none; }
.service_loadmap_item .num span { font-size: 2.0rem; color: #CA191D; display: block;}
.service_loadmap_item .body { width: calc(100% - 10.0rem); padding-left: 5.0rem; border-left: 1px solid #ccc; }
.service_loadmap_item .ttl { font-size: 2.4rem; font-weight: 700; margin-bottom: 1.0rem; }
.service_loadmap_item + .service_loadmap_item { margin-top: 11.6rem; }

.service_introduction { background: #F7F7F7; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
.service_introduction > .inner { width: 72.28%; min-width: 700px; margin: 0 auto; }
.service_introduction .read { text-align: center; margin: 4.0rem 0 5.0rem; line-height: 2.5; }
.service_introduction_plan { margin-top: 7.0rem; }
.service_introduction_item { box-sizing: border-box; background: #fff; }
.service_introduction_item .item_inner { padding: 5.83%; }
.service_introduction_item .head { display: flex; flex-direction: row-reverse; justify-content: space-between; margin-bottom: 3.0rem; }
.service_introduction_item .hd { width: 48%; }
.service_introduction_item .ph { width: 42%; }
.service_introduction_item .ttl { font-size: 2.4rem; font-weight: 700; line-height: 1.75; color: #CA191D; }
.service_introduction_item .catch { font-size: 1.8rem; line-height: 1.75; margin: 2.0rem 0; }
.service_introduction_item h4 { font-size: 1.6rem; font-weight: 700; margin: 3.0rem 0 1.0rem; }
.service_introduction_item li { font-size: 1.6rem; padding-left: 1.5rem; position: relative; }
.service_introduction_item li:before { content: ""; display: block; width: 0.7rem; height: 0.7rem; background: #BBBBBB; border-radius: 50%; position: absolute; left: 0; top: 1.5rem; }
.service_introduction_item .detail { font-size: 1.6rem; font-weight: 700; margin-top: 3.0rem; }
.service_introduction_item .plan { display: flex; justify-content: space-between; margin-top: 5.0rem; border: 1px solid #ccc; padding: 5% 0; border-radius: 0.4rem; }
.service_introduction_item .plan_item { width: 48%; box-sizing: border-box; padding: 0 5%; }
.service_introduction_item .plan_item + .plan_item { border-left: 1px solid #ccc; }
.service_introduction_item .plan_item_ttl { font-size: 2.4rem; font-weight: 700; line-height: 1.5; }
.service_introduction_item .plan_item_ttl span { color: #CA191D; }
.service_introduction_item .plan_item_read {font-size: 1.6rem; margin: 1.0rem 0 2.0rem; line-height: 1.75; }
.service_introduction_item .plan_item p { font-size: 1.4rem; }
.service_introduction_item + .service_introduction_item { margin-top: 3.0rem; }

.service_introduction_btn a { display: block; width: 48.65%; margin: 6.7rem auto 0; padding: 2.5rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
.service_introduction_btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.service_introduction_btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.service_case { margin-top: 8.4rem;}
.service_case > .inner { width: 58.78%; min-width: 700px; margin: 0 auto; }
.service_case .read { text-align: center; margin-top: 3.5rem; }
.service_case_list { margin-top: 6.6rem; }
.service_case_item { border: 1px solid #DCDCDC; border-radius: 0.4rem; margin-top: 3.3rem; padding: 5.0rem 9%; position: relative; }
.service_case_item:after { content: ""; display: block; width: 100%; height: 12.0rem; background: linear-gradient(0deg, rgba(255, 255, 255, 1.0) 50%, rgba(255, 255, 255, 0)); position: absolute; bottom: 0; left: 0; }
.service_case_item.active { padding-bottom: 10.0rem; }
.service_case_item .num { font-size: 2.0rem; color: #CA191D; }
.service_case_item .ttl { font-size: 2.4rem; font-weight: 700; margin-top: 0.5rem; }
.service_case_item .data { font-size: 1.4rem; background: #F7F7F7; margin: 1.5rem 0 0; padding: 1.0rem 2.3rem; }
.service_case_item .body { max-height: 10.0rem; overflow: hidden; -webkit-transition: max-height 1.0s cubic-bezier(0.16, 1, 0.3, 1); transition: max-height 1.0s cubic-bezier(0.16, 1, 0.3, 1); }
.service_case_item.active .body { max-height: 50rem; }
.service_case_item .body h4 { font-size: 1.6rem; font-weight: 700; margin: 3.0rem 0 1.0rem; } 
.service_case_item .btn { display: flex; justify-content: center; align-items: center; width: 100%; font-size: 1.6rem; text-align: center; position: absolute; bottom: 3.0rem; left: 0; z-index: 2; cursor: pointer; }
.service_case_item .btn .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; margin-right: 1.0rem; background: #CA191D; position: relative; }
.service_case_item .btn .ico:before {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #fff; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.service_case_item .btn .ico:after {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #fff; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) rotate(90deg); transform: translateX(-50%) rotate(90deg); -webkit-transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.service_case_item .btn.open .ico:after { -webkit-transform: translateX(-50%) rotate(0); transform: translateX(-50%) rotate(0); }
.service_case_item .btn .open { display: none; }

.service_faq { margin-top: 8.4rem;}
.service_faq > .inner { width: 58.78%; min-width: 700px; margin: 0 auto; }
.service_faq_item { border: 1px solid #DCDCDC; border-radius: 0.4rem; margin-top: 3.3rem; padding: 1.0rem 3.8rem; position: relative; }
.service_faq_item .ttl { font-size: 1.8rem; font-weight: 700; position: relative; padding: 3.0rem 5.0rem; cursor: pointer; }
.service_faq_item .ttl .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; font-size: 2.2rem; line-height: 1.7; color: #fff; text-align: center; background: #CA191D; position: absolute; left: 0; top: 2.5rem; }
.service_faq_item .body { position: relative; padding: 0.5rem 5.0rem 3.0rem; display: none; }
.service_faq_item .body .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; font-size: 2.2rem; line-height: 1.7; color: #CA191D; text-align: center; border: 1px solid #CA191D; box-sizing: border-box; position: absolute; left: 0; top: 0; }
.service_faq_item .ttl .btn { display: block; width: 3.9rem; height: 3.9rem; border-radius: 50%; position: absolute; right: 0; top: 2.5rem; }
.service_faq_item .ttl .btn:before {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #CA191D; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.service_faq_item .ttl .btn:after {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #CA191D; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) rotate(90deg); transform: translateX(-50%) rotate(90deg); -webkit-transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.service_faq_item .ttl.open .btn:after { -webkit-transform: translateX(-50%) rotate(0); transform: translateX(-50%) rotate(0); }

.service_contact { background: #E27F82; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
.service_contact > .inner { width: 67.07%; min-width: 700px; margin: 0 auto; }
.service_contact .ttl { color: #fff; }
.service_contact_box { margin-top: 5.0rem; padding: 4.5rem 6.38% 5.4rem; border: 1px solid #fff; border-radius: 0.4rem; display: flex; justify-content: space-between; }
.service_contact_box .ph { width: 25%; }
.service_contact_box .txt { width: 70%; }
.service_contact_box .massage { font-size: 2.2rem; font-weight: 700; color: #fff; margin-bottom: 2.0rem; }
.service_contact_box p { color: #fff; }
.service_contact_box .btn a { display: block; width: 30.0rem; margin: 1.7rem 0 0; padding: 1.5rem 2.0rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
.service_contact_box .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.service_contact_box .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.footer_function { background: #F7F7F7; }
.footer_function_inner { display: flex; justify-content: space-between; width: 72.28%; min-width: 1080px; margin: 0 auto; border-left: 1px solid #fff; border-right: 1px solid #fff; }
.footer_function_item { width: 33.33%; position: relative; }
.footer_function_item .item_inner { padding: 7.5rem 12.3% 15.8rem;}
.footer_function_item + .footer_function_item { border-left: 1px solid #fff; }
.footer_function_item .ttl { font-size: 2.4rem; font-weight: 700; margin-bottom: 3.0rem; }
.footer_function_item .ttl .ico { display: inline-block; line-height: 1.2; width: 3.0rem; margin-right: 1.0rem; }
.footer_function_item .btn a { display: block;  width: 75.6%; margin: 2.0rem 0 0; padding: 1.5rem 2.0rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: absolute; bottom: 7.5rem; }
.footer_function_item .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer_function_item .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.footer-empty { display: none; }

@media screen and (max-width: 1080px) { 
    .footer_function_inner { width: auto; min-width: auto; }
}


@media screen and (max-width: 900px) { 
.service_contents { padding-top: 10.0rem; }
    .page_ttl { position: relative; padding: 0 0 9.0rem; }
    .page_ttl_ph img { width: 100%; height: auto; position: relative; top: 0; object-fit: cover; }
    .page_ttl_body { width: 84.07%; margin: 5.0rem auto 0; position: relative; z-index: 2;}
.page_ttl_body .hd { font-size: 2.2rem; font-weight: 700; color: #CA191D; text-align: center; }
.page_ttl_body .ttl { font-size: 4.0rem; font-weight: 700; text-align: center; }
.page_ttl_body .catch { font-size: 3.0rem; font-weight: 700; line-height: 1.5; text-align: center; margin: 6.0rem 0 4.0rem; }
    .page_ttl_body .btn { display: flex; flex-direction: column; justify-content: space-between; align-items: center; margin-top: 6.0rem; }
    .page_ttl_body .btn a { width: 100%; max-width: 30.0rem; padding: 2.5rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
    .page_ttl_body .btn a + a { margin-top: 1.5rem;}
.page_ttl_body .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.0rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.page_ttl_body .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.service_top { background: #F7F7F7; padding: 9.0rem 0 8.0rem; }
    .service_top > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_top .ttl { font-size: 3.0rem; font-weight: 700; text-align: center; line-height: 1.5; }
    .service_top .read { text-align: center; margin-top: 4.0rem; line-height: 2.0; }
    .service_top .read span { display: inline; position: relative; }
.service_top .checklist_wrapper { background: #fff; border-radius: 0.4rem; margin-top: 4.0rem; padding: 3.5rem 8.62% 6.0rem; }
    .service_top .checklist li { font-size: 2.0rem; font-weight: 700; line-height: 1.5; padding: 1.5rem 0 1.5rem 4.2rem; position: relative; border-bottom: 1px solid #ccc; }
    .service_top .checklist li .ico { width: 2.0rem; position: absolute; left: 0; top: 1.0rem; }
.service_top .checklist li:last-child { border-bottom: none; }
.service_top .img { mix-blend-mode: multiply; margin-top: -4.0rem; text-align: center; }
.service_top .img img { width: 22.5rem; }
.service_top .arrow { text-align: center; margin-top: 3.0rem; }
.service_top .arrow img { width: 7.6rem; }
.service_top .result { margin-top: 3.0rem; text-align: center; font-size: 2.4rem; font-weight: 700; line-height: 2.0;}

.common_hd .en { font-size: 1.6rem; font-weight: 700; color: #CA191D; text-align: center; }
.common_hd .ttl { font-size: 3.0rem; font-weight: 700; text-align: center; margin-top: 1.0rem; }

.service_about { margin-top: 5.5rem; }
    .service_about > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
    .service_about .read { text-align: center; margin: 4.0rem 0 5.0rem; line-height: 2.0; }
    .service_about .read span { display: inline; position: relative; line-height: 1.5; }
.service_about_caption { margin-top: 6.0rem; font-size: 1.6rem; font-weight: 700; text-align: center; }
.service_about_table { width: 100%; margin-top: 2.5rem; font-size: 1.6rem; line-height: 1.5; }
.service_about_table th { width: 40%; text-align: center; color: #fff; }
.service_about_table th:first-child { width: 20%; }
.service_about_table th:nth-child(2) { background: #BCBCBC; }
.service_about_table th:nth-child(3) { background: #E27F82; }
.service_about_table td { text-align: center; border-bottom: 1px solid #CFCFCF; }
.service_about_table td:nth-child(3) { background: rgba(227,127,130,0.12); }
    .service_about_table th, .service_about_table td { padding: 2.0rem 1.0rem; }
.service_about_table td:first-child { text-align: left; background: #F7F7F7; padding: 2.0rem; }

.service_reason { background: #F7F7F7; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
    .service_reason > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_reason .read { text-align: center; margin-top: 3.5rem; }
    .service_reason_list { margin-top: 7.0rem; display: block; }
    .service_reason_item { width: auto; box-sizing: border-box; background: #fff; margin-top: 1.0rem; }
    .service_reason_item .item_inner { padding: 5.0rem 7.66%; }
.service_reason_item .ico { text-align: center; }
.service_reason_item .ico img { width: 8.0rem; }
    .service_reason_item .ttl { font-size: 2.4rem; line-height: 1.75; margin: 3.0rem 0; text-align: center; }

.service_loadmap { margin-top: 8.4rem;}
    .service_loadmap > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_loadmap .read { text-align: center; margin-top: 3.5rem; }
.service_loadmap_list { margin-top: 6.0rem; }
.service_loadmap_item { display: flex; justify-content: space-between; position: relative;  }
.service_loadmap_item .num { align-self: center; width: 10.0rem; font-size: 3.7rem; font-weight: 500; line-height: 1.0; text-align: center; }
.service_loadmap_item .num:after { content: ""; display: block; width: 2.4rem; height: 1.3rem; background: url("../img/service_flow_arrow.svg") no-repeat center / cover; position: absolute; left: 4.5rem; bottom: -5.0rem; -webkit-transform: translate(-50%,50%); transform: translate(-50%,50%); }
.service_loadmap_item .num span { font-size: 2.0rem; color: #CA191D; display: block;}
.service_loadmap_item .body { width: calc(100% - 10.0rem); padding-left: 3.5rem; border-left: 1px solid #ccc; }
.service_loadmap_item .ttl { font-size: 2.4rem; font-weight: 700; }
.service_loadmap_item + .service_loadmap_item { margin-top: 11.6rem; }

.service_introduction { background: #F7F7F7; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
    .service_introduction > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_introduction .read { text-align: center; margin: 4.0rem 0 5.0rem; line-height: 2.5; }
    .service_introduction_plan { margin-top: 7.0rem; display: block; }
    .service_introduction_item { width: auto; box-sizing: border-box; background: #fff; margin-top: 2.0rem; }
    .service_introduction_item .item_inner { padding: 5.0rem 7.66%; }
    .service_introduction_item .ttl { font-size: 2.4rem; line-height: 1.75; margin: 4.0rem 0 0.5rem; text-align: center; }
    .service_introduction_item h4 { font-size: 2.0rem; font-weight: 700; margin: 3.0rem 0 1.0rem; }
    .service_introduction_item li { font-size: 2.0rem; padding-left: 1.5rem; position: relative; }
.service_introduction_item li:before { content: ""; display: block; width: 0.7rem; height: 0.7rem; background: #BBBBBB; border-radius: 50%; position: absolute; left: 0; top: 1.5rem; }
    .service_introduction_item .detail { font-size: 2.0rem; font-weight: 700; margin-top: 3.0rem; }
    
    .service_introduction_item .head { display: flex; flex-direction: column; justify-content: center; margin-bottom: 3.0rem; }
    .service_introduction_item .hd { width: 100%; text-align: center; }
    .service_introduction_item .ph { width: 100%; }
    .service_introduction_item .catch { font-size: 2.0rem; line-height: 1.75; margin: 1.0rem 0; }
    .service_introduction_item .plan { display: block; justify-content: space-between; margin-top: 5.0rem; padding: 0 5%; }
    .service_introduction_item .plan_item { width: auto; box-sizing: border-box; padding: 5% 0; }
    .service_introduction_item .plan_item + .plan_item { margin-top: 2.0rem; border: none; border-top: 1px solid #ccc; }
.service_introduction_item .plan_item_ttl { font-size: 2.4rem; font-weight: 700; line-height: 1.5; }
.service_introduction_item .plan_item_ttl span { color: #CA191D; }
    .service_introduction_item .plan_item_read {font-size: 2.0rem; margin: 1.0rem 0 2.0rem; line-height: 1.75; }
    .service_introduction_item .plan_item p { font-size: 1.6rem; }
.service_introduction_item + .service_introduction_item { margin-top: 3.0rem; }
    
    .service_introduction_btn a { display: block; width: 48.65%; min-width: 40.0rem; margin: 6.7rem auto 0; padding: 2.5rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
.service_introduction_btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.service_introduction_btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

.service_case { margin-top: 8.4rem;}
    .service_case > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_case .read { text-align: center; margin-top: 3.5rem; }
.service_case_list { margin-top: 6.6rem; }
    .service_case_item { border: 1px solid #DCDCDC; border-radius: 0.4rem; margin-top: 3.3rem; padding: 5.0rem 7.66%; position: relative; }
.service_case_item:after { content: ""; display: block; width: 100%; height: 12.0rem; background: linear-gradient(0deg, rgba(255, 255, 255, 1.0) 50%, rgba(255, 255, 255, 0)); position: absolute; bottom: 0; left: 0; }
.service_case_item.active { padding-bottom: 10.0rem; }
.service_case_item .num { font-size: 2.0rem; color: #CA191D; }
.service_case_item .ttl { font-size: 2.4rem; font-weight: 700; margin-top: 0.5rem; }
    .service_case_item .data { font-size: 1.8rem; background: #F7F7F7; margin: 1.5rem 0 0; padding: 1.0rem 2.3rem; }
.service_case_item .body { max-height: 10.0rem; overflow: hidden; -webkit-transition: max-height 1.0s cubic-bezier(0.16, 1, 0.3, 1); transition: max-height 1.0s cubic-bezier(0.16, 1, 0.3, 1); }
.service_case_item.active .body { max-height: 50rem; }
    .service_case_item .body h4 { font-size: 2.0rem; font-weight: 700; margin: 3.0rem 0 1.0rem; } 
    .service_case_item .btn { display: flex; justify-content: center; align-items: center; width: 100%; font-size: 2.0rem; text-align: center; position: absolute; bottom: 3.0rem; left: 0; z-index: 2; cursor: pointer; }
.service_case_item .btn .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; margin-right: 1.0rem; background: #CA191D; position: relative; }
.service_case_item .btn .ico:before {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #fff; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.service_case_item .btn .ico:after {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #fff; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) rotate(90deg); transform: translateX(-50%) rotate(90deg); -webkit-transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.service_case_item .btn.open .ico:after { -webkit-transform: translateX(-50%) rotate(0); transform: translateX(-50%) rotate(0); }
.service_case_item .btn .open { display: none; }

.service_faq { margin-top: 8.4rem;}
    .service_faq > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_faq_item { border: 1px solid #DCDCDC; border-radius: 0.4rem; margin-top: 3.3rem; padding: 1.0rem 3.8rem; position: relative; }
    .service_faq_item .ttl { font-size: 2.2rem; font-weight: 700; position: relative; padding: 3.0rem 5.0rem; cursor: pointer; }
.service_faq_item .ttl .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; font-size: 2.2rem; line-height: 1.7; color: #fff; text-align: center; background: #CA191D; position: absolute; left: 0; top: 2.5rem; }
.service_faq_item .body { position: relative; padding: 0.5rem 5.0rem 3.0rem; display: none; }
.service_faq_item .body .ico { width: 3.9rem; height: 3.9rem; border-radius: 50%; font-size: 2.2rem; line-height: 1.7; color: #CA191D; text-align: center; border: 1px solid #CA191D; box-sizing: border-box; position: absolute; left: 0; top: 0; }
.service_faq_item .ttl .btn { display: block; width: 3.9rem; height: 3.9rem; border-radius: 50%; position: absolute; right: 0; top: 2.5rem; }
.service_faq_item .ttl .btn:before {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #CA191D; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.service_faq_item .ttl .btn:after {content: ""; display: block; width: 2.1rem; height: 2px; border-radius: 2px; background: #CA191D; position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) rotate(90deg); transform: translateX(-50%) rotate(90deg); -webkit-transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.service_faq_item .ttl.open .btn:after { -webkit-transform: translateX(-50%) rotate(0); transform: translateX(-50%) rotate(0); }

.service_contact { background: #E27F82; margin-top: 8.4rem; padding: 9.0rem 0 8.0rem; }
    .service_contact > .inner { width: 84.07%; min-width: auto; margin: 0 auto; }
.service_contact .ttl { color: #fff; }
    .service_contact_box { margin-top: 5.0rem; padding: 4.5rem 6.38% 5.4rem; border: 1px solid #fff; border-radius: 0.4rem; display: block; }
    .service_contact_box .ph { width: 50%; max-width: 190px; margin: 0 auto; }
    .service_contact_box .txt { width: auto; margin-top: 3.0rem; }
    .service_contact_box .massage { font-size: 2.4rem; font-weight: 700; color: #fff; margin-bottom: 2.0rem; }
.service_contact_box p { color: #fff; }
    .service_contact_box .btn a { display: block; width: 30.0rem; margin: 1.7rem auto 0; padding: 1.5rem 2.0rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; }
.service_contact_box .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.service_contact_box .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }

    .footer_function_inner { display: block; justify-content: space-between; }
    .footer_function_item { width: auto; background: #F7F7F7; border-top: 2px solid #fff; border-left: none;  }
    .footer_function_item .item_inner { padding: 5.0rem 7.66%; }
    .footer_function_item .ttl { font-size: 2.4rem; font-weight: 700; margin-bottom: 3.0rem; text-align: center; }
.footer_function_item .ttl .ico { display: inline-block; line-height: 1.2; width: 3.0rem; margin-right: 1.0rem; }
.footer_function_item .btn a { display: block;  width: 100%; margin: 2.0rem 0 0; padding: 1.5rem 2.0rem; box-sizing: border-box; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #CCCCCC; border-radius: 0.4rem; position: relative; bottom: 0; }
.footer_function_item .btn a .arrow { display: block; width: 3.0rem; height: 3.0rem; background: #CA191D; border-radius: 50%; position: absolute; top: 50%; right: 2.5rem; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer_function_item .btn a .arrow img { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }
    
}


@media (hover: hover) and (pointer: fine) {
    .page_ttl_body .btn a:hover .arrow img,
    .service_introduction_btn a:hover .arrow img,
    .service_contact_box .btn a:hover .arrow img,
    .footer_function_item .btn a:hover .arrow img { animation: link_arrow 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    
    .global_nav .main_nav a { -webkit-transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1); transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
    .global_nav .main_nav a:hover { opacity: 0.6; }
}

