@charset "UTF-8";
@media screen and (max-width:1399px) {

  body {
    font-size: 1rem;
    line-height: 2.3em;
  }
  .wrap_p0 {
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }
  @media screen and (max-width:969px) {
    .wrap {
      width: 100%;
      max-width: 1400px;
      margin: 0 auto;
      padding: 70px 0;
      overflow: hidden;
    }
  }
  a[href^="tel:"] {
    color: #000;
    text-decoration: none !important;
  }
  h2 {
    line-height: 1.6em;
  }
  h3 {
    font-size: 1.4rem;
  }
  p {
    margin: 0 0 50px;
    text-align: justify;
  }

  header {
    height: 90px;
  }
  header .logo_header {
    width: 280px;
    margin: 0;
  }
  header .logo_header img {
    width: 100%;
  }

  .top_fv {
    height: 70vh;
    background-image: url(../images/fv_pc.webp);
  }
  .top_fv .fv_hero {
    width: 100%;
    position: absolute;
    top: 30%;
    left: 5%;
    transform: translate(-5% , -50%);
    padding: 1rem;
    background-color: rgba(255, 255, 255, 0.2);
  }
  .top_fv .fv_hero p span {
    margin-top: 1em;
  }

  .top_fv .consul_item,
  .consul_box {
    width: 95%;
  }
  .top_fv .consul_item {
    position: absolute;
    top: 45%;
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
  }

  @media screen and (max-width:969px) {
    .top_fv .consul_item li .tel,
    .consul_box li .tel {
      font-size: 1.25em;
      font-weight: 600;
    }
    .top_fv .consul_item li .line,
    .top_fv .consul_item li .mail,
    .consul_box li .line,
    .consul_box li .mail {
      font-size: 1.1em;
    }
    .top_fv .consul_item li .tel span,
    .consul_box li .tel span {
      display: block;
      margin-left: -4em;
      font-size: 0.7rem;
    }
    .top_fv .consul_item li .tel::before,
    .consul_box li .tel::before  { 
      width: 30px; 
      height: 18px; 
      background-image: url(../images/icon_tel_free.svg); 
    }
    .top_fv .consul_item li .line::before,
    .consul_box li .line::before { 
      width: 30px; 
      height: 28px; 
      background-image: url(../images/icon_line.svg); 
    }
    .top_fv .consul_item li .mail::before,
    .consul_box li .mail::before { 
      width: 30px; 
      height: 20px; 
      background-image: url(../images/icon_mail.svg); 
}

  }

  .wrap_footer {
    width: calc(100% - 50px);
    overflow: hidden;
    padding: 50px 25px;
  }
  .footer_info {
    width: 35%;
  }
  .footer_consul {
    width: 30%;
  }
  @media screen and (max-width:969px) {
    .footer_consul {
      width: 40%;
    }
  }
  .footer_consul li {
    width: 80%;
    height: 50px;
    margin: 0 5% 30px;
    font-size: 0.9em;
  }
  .footer_consul li .tel::before  { 
    width: 30px; 
    height: 18px; 
    background-image: url(../images/icon_tel_free_white.svg); 
  }
  .footer_consul li .line::before { 
    width: 28px; 
    height: 25px; 
    background-image: url(../images/icon_line_white.svg); 
  }
  .footer_consul li .mail::before { 
    width: 25px; 
    height: 18px; 
    background-image: url(../images/icon_mail_white.svg); 
  }
  .footer_pagelist {
    width: auto;
  }
  .footer_pagelist li {
    width: 10em;
    margin: 1.5em 0 1.2em;
    font-size: 0.8em;
    line-height: 1.5em;
  }
  .fix_req {
    position: fixed;
    top: 50%;
    right: 0;
    background: rgba(251, 176, 59, .95);
  }
  .fix_req a {
    position: relative;
    padding: 1em 0.5em 40px;
    writing-mode: vertical-rl;
    font-size: 0.9em;
    line-height: 1.3em;
    letter-spacing: 0.1em;
    color: #fff;
  }
  .fix_req a::after {
    position: absolute;
    content: "";
    bottom: 0;
    right: 50%;
    width: 35px;
    height: 35px;
    background: url(../images/req.svg) no-repeat;
    transform: translateX(50%);
  }

  .wrap_pagettl {
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 0 20px;
  }

  @media screen and (max-width:969px) {
    .flow li {
      display: flex;
      flex-direction: column; 
    }
    .flow li .textbox_flow {
      order: 1;
      float: none;
      width: 92%;  
      margin: 0 auto;
      padding: 50px 0 0;
    }
    .flow li .textbox_flow p {
      margin: 0 0 10px;
    }
    .flow li .textbox_flow h2 {
      padding-left: 4em;
    }
    .flow li .textbox_flow h2 span {
      font-size: 3em;
    }
    .flow li .imgbox_flow {
      order: 2; 
      float: none;
      width: 50%;
      max-width: 600px;
      padding: 0 20px;
      margin: 10px auto 50px;
    }

    .flow li {
      width: 90%;
      margin: 0 auto 100px;
    }
    .flow li:last-child {
      margin: 0 auto;
    }
  }


  .modal_service {
    width: 95%;
    margin: 0 auto;
  }
  .modal_contents {
    width: 92%;
  }
  .modal_contents .modal_list_wrap .modal_list {
    width: 45%;
    margin: 0 auto 3em;
    padding: 0 1em;
  }
  @media screen and (max-width:969px) {
    .modal_service {
      width: 100%;
      gap: 20px;
    }
    .modal_service li {
      flex: 0 1 calc((100% - 40px * 2) / 3);
    }
    .modal_contents h3 {
      font-size: 1.7em;
    }
    .modal_contents .modal_step {
      width: 100%;
      margin: 3em auto 30px;
    }
    .modal_contents .modal_step li {
      width: calc(100% - 20px);
      margin: 40px auto;
      padding: 10px;
      border: 1px solid #fff;
      border-radius: 10px;
    }
    .modal_contents .modal_flow li {
      position: relative;
      width: 80%;
      margin: 0 auto 50px;
      padding: 0.5em 1em;
      text-align: center;
    }
    .modal_contents .modal_flow li::after {
      position: absolute;
      top: 2.5em;
      right: 50%;
      content: "↓";
      font-size: 1.5em;
    }

  }

  .tax li {
    width: calc(100% - 120px);
    display: flex;
    flex-wrap: wrap;
    margin: 0 40px;
    padding: 50px 20px;
  }
  @media screen and (max-width:969px) {
    .tax li .imgbox_tax {
      width: 300px;
      margin-top: 50px;
    }
  }

  .faq summary::before {
    position: absolute;
    top: 1.3em;
    left: 1em;
    content: "";
    width: 1.5em;
    height: 1.5em;
    background: url(../images/icon_q.svg) no-repeat;
  }
  .faq summary:after {
    position: absolute;
    top: 1.5em;
    right: 1em;
    content: "";
    width: 0.7em;
    height: 0.7em;
    border-right: 2px solid #555;
    border-bottom: 2px solid #555;
    transform: rotate(45deg); 
    transition: transform 0.3s ease;
  }
  .faq p::before {
    position: absolute;
    top: 1.3em;
    left: 1em;
    content: "";
    width: 1.5em;
    height: 1.5em;
    background: url(../images/icon_a.svg) no-repeat;
  }
  .faq .faq-body p {
    padding: 1em 2em 1em 3.5em;
  }

  .textbox_company {
    width: 80%;
    max-width: 1000px;
    margin: 0 auto;
    float: none;
  }
  .gmap {
    width: 80%;
    max-width: 1000px;
    float: none;
    margin: 50px auto 0;
  }

  @media screen and (max-width:956px) {
    .textbox_l {
      width: calc(60% - 100px);
      float: left;
      margin: 0 0 60px;
      padding: 0 50px;
    }
    .imgbox_r {
      width: calc(40% - 100px);
      float: left;
      margin: 0 0 60px;
      padding: 0 50px;
    }
    .imgbox_r img {
      width: 100%;
    }
  }

}