@charset "utf-8";

/* -----------------------------------------------------------
　common
----------------------------------------------------------- */

@media screen and (max-width: 800px) {
  body {
    -webkit-text-size-adjust: 100%;
    font-size: 14px;
  }
  .pc_cont {display: none !important;}
  
  hr.anc {
    margin: -75px 0 0;
    padding: 75px 0 0;
  }

}

/* -----------------------------------------------------------
  template
----------------------------------------------------------- */

@media screen and (max-width: 1230px) {
  
/* :::::::::: header :::::::::: */

  header {
    padding: 0;
    height: 80px;
  }
  header .logo {
    position: relative;
    z-index: 11;
    width: 200px;
  }

  /* :::::::::: nav :::::::::: */

  nav {
    position: absolute;
    z-index: 10;
    width: 100%;
    height: 80px;
    inset: 0 0 auto;
    transition: 0.5s;
    padding: 80px 0 0;
  }
  nav {
    position: absolute;
    z-index: 10;
    width: 100%;
    height: 80px;
    inset: 0 0 auto;
    transition: 0.5s;
  }
  nav.open {
    height: 100vh;
  }
  nav .menu_box .logo {
    position: absolute;
    z-index: 1;
    width: 187px;
    inset: 16px auto auto 20px;
  }  
  nav.open .menu_box .logo {display: block;}
  nav .menu {
    position: absolute;
    display: block;
    z-index: 20;
    width: 70px;
    height: 70px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    padding: 40px 0 0;
    inset: 5px 0 auto auto;
    margin: auto;
    cursor: pointer;
    transition: 0.5s;
  }
  nav .menu::after {content: "MENU";}
  nav .menu span {display: block;font-size: 0;}
  nav .menu span::before,
  nav .menu span::after {
    position: absolute;
    z-index: 1;
    display: block;
    content: "";
    width: 30px;
    height: 3px;
    background: var(--color01);
    margin: auto;
    left: 0;
    right: 0;
    transition: 0.5s;
  }
  nav .menu span::before {
    box-shadow: 0 8px 0 0 var(--color01);
    top: 18px;
  }
  nav .menu span::after {top: 34px;}
  nav.open .menu::after {content: "CLOSE";}
  nav.open .menu span::before {
    box-shadow: none;
    top: 26px;
    transform: rotate(45deg);
  }
  nav.open .menu span::after {
    top: 26px;
    transform: rotate(-45deg);
  }
  nav .menu_box {
    position: absolute;
    z-index: 1;
    display: block;
    width: 100%;
    height: calc(100vh - 80px);
    padding: 50px 5%;
    color: #FFFFFF;
    background: var(--color01);
    opacity: 0;
    visibility: hidden;
    transition: 0.5s;
    inset: 80px 0 auto;
    overflow-y: auto;
  }
  nav.open .menu_box {
    opacity: 1;
    visibility: visible;
  }
  nav .menu_box > ul {
    display: block;
    border-top: solid 1px #FFFFFF;
  }
  nav .menu_box > ul > li {
    width: 100%;
    border-bottom: solid 1px #FFFFFF;
  }
  nav .menu_box > ul > li > a,
  nav .menu_box > ul > li > span {font-size: 16px;padding: 15px 0;}
  nav .menu_box > ul > li > a:hover,
  nav .menu_box > ul > li:hover > span {color: #FFFFFF;}
  nav .menu_box > ul > li a{text-decoration: none;}
  nav .menu_box ul li > span > a {
    width: 100%;
    padding: 15px 0;
  }
  nav .menu_box > ul > li > span::after {
    pointer-events: none;
    width: 24px;
    height: 12px;
    inset: 5px 15px 0 auto;
  }
  nav .menu_box > ul > li > span.open::after {transform: rotateX(180deg);}
  nav .menu_box > ul > li > div {
    display: none;
    position: static;
    opacity: 1;
    visibility: visible;
    transition: 0s;
    background: none;
    width: 100%;
    padding: 0 0 15px;
  }
  nav .menu_box > ul > li > div p {border: none;}
  nav .menu_box > ul > li > div ul li {
    font-size: 14px;
    margin: 10px 0 0;
  }
  
  main {
    display: block;
    padding: 80px 0 50px;
  }
  main.home {padding: 80px 0 0;}
  
}

@media screen and (max-width: 800px) {

  
  /* :::::::::: main :::::::::: */
  
  .box {padding: 0 5%;}

  /* :::::::::: footer :::::::::: */
  
.pagetop {
  inset: auto 5% 3% auto;
  width: 60px;
  height: 60px;
}

  
  

  footer .box {padding: 40px 5%;}
  footer h2 {font-size: 18px;}
  footer .contact {margin: 30px 0 0;}
  footer .contact a {font-size: 16px;}
  footer .copyright {font-size: 12px;}

  
}

/* -----------------------------------------------------------
 common_parts
----------------------------------------------------------- */

@media screen and (max-width: 800px) {

  .kv_sub {
    height: 120px;
    margin: 0 auto 60px;
  }
  .join_company .kv_sub .box::after {
    width: 140px;
    inset: auto 0 0 auto;
  }
  .join_advisory .kv_sub .box::after {
    width: 116px;
    inset: auto 5% 0 auto;
  }
  .refer_advisory .kv_sub .box::after {
    width: 120px;
    inset: auto 5% 0 auto;
  }
  .faq_company .kv_sub .box::after {
    width: 60px;
    inset: 0 5% 0 auto;
    margin: auto;
  }
  .faq_advisory .kv_sub .box::after {
    width: 60px;
    inset: 0 5% 0 auto;
    margin: auto;
  }
  .contact .kv_sub .box::after {
    aspect-ratio: 189 / 135;
    width: 45px;
    inset: 0 5% 0 auto;
    margin: auto;
  }
  .kv_sub h1 {font-size: 24px;}
  .h2_common {
    font-size: 24px;
    margin: 50px 0 15px;
    padding: 0 0 10px;
  }
  h2.bottom {
    font-size: 22px;
    padding: 0 0 15px;
  }
  h2.bottom:after {
    width: 36px;
    height: 4px;
  }
  .h3_common {
    font-size: 20px;
    margin: 20px 0 10px;
  }
  .h4_common {
    font-size: 18px;
    margin: 30px 0 15px;
  }

  .btn {
    width: 100%;
    height: auto;
    line-height: 1.2!important;
  }
  .btn a {
    padding: 1.5em;
    transition: 0s;
  }
  .btn a:hover {opacity: 1;}
  .btn_common {
    display: inline-block;
    font-size: 16px;
    min-width: auto;
  }
  .btn_common a {
    padding: 1.25em 2.5em 1.25em 1em;
    transition: 0s;
  }
  .btn_common a:hover {opacity: 1;}
  
  .ad_list {
    display: block;
    margin: 0 0 20px;
  }
  .ad_list section {
    width: 100%;
    margin: 0 0 20px;
  }
  .ad_list section::after {
    clip-path: polygon(
      0 0,
      100% 0,
      100% calc(100% - 15px),
      calc(100% - 15px) 100%,
      0 100%
    );
  }
  .ad_list section h2,
  .ad_list section h3 {
    font-size: 16px;
    padding: 20px 10px 10px 80px;
  }
  .ad_list section h2::before,
  .ad_list section h3::before {
    inset: auto auto 0 30px;
    width: 2em;
  }
  .ad_list section dl {
    display: block;
    padding: 20px;
  }
  .ad_list section dl dt {
    width: 100%;
    padding: 0 0 5px;
    margin: 0 0 10px;
    border-bottom: solid 1px #CCCCCC;
  }
  .ad_list section dl dd {
    width: 100%;
    padding: 0;
    border: none;
    margin: 0 0 15px;
    font-size: 13px;
  }
  
  .contact_box {
    display: block;
    font-size: 16px;
    padding: 30px;
    margin: 30px auto 0;
  }
  .contact_box dt {
    width: 100%;
    margin: 0 auto 10px;
  }
  .contact_box dd {
    width: 100%;
    padding: 10px 0 0;
  }
  .contact_box dd::before {
    width: 100%;
    height: 1px;
    inset: 0 0 auto;
  }
  
  
  
}

/* -----------------------------------------------------------
 home
----------------------------------------------------------- */

@media screen and (max-width: 800px) {
  
  .home_kv {
    height: auto;
    margin: 0 0 70px;
  }
  .home_subject .bg_area {padding: 30px 0 50px;}
  .home_subject .bg_area::after {
    width: 32px;
    height: 38px;
    inset: auto 0 -16px;
  }
  .home_subject .bg_area h2 {
    font-size: 18px;
    margin: 0 auto 20px;
  }
  .home_subject .bg_area ul {display: block;}
  .home_subject .bg_area ul li {
    padding: 20px 10px 20px 40%;
    width: 100%;
    text-align: left;
    font-size: min(20px,3.5vw);
    margin: 0 0 10px;
  }
  .home_subject .bg_area ul li:nth-child(1) {background: url("../img/home/subject01.svg") no-repeat bottom left 20px / 30% ,#FFFFFF;}
  .home_subject .bg_area ul li:nth-child(2) {background: url("../img/home/subject02.svg") no-repeat bottom left 20px / 30% ,#FFFFFF;}
  .home_subject .bg_area ul li:nth-child(3) {background: url("../img/home/subject03.svg") no-repeat bottom left 20px / 30% ,#FFFFFF;}
  .home_subject > .box {padding: 40px 5%;}
  .home_subject > .box p {
    font-size: 16px;
    line-height: 2;
  }
  .home_contents > div {padding: 50px 0 55vw;}
  .home_contents > div::before {
    background: url("../img/home/bg_contents01_sp.png") no-repeat center / contain;
    aspect-ratio: 680 / 310;
    width: auto;
    height: 160px;
    inset: 0 auto auto -30px;
  }
  .home_contents > div::after {
    background: url("../img/home/bg_contents02_sp.png") no-repeat center / contain;
    aspect-ratio: 751 / 413;
    width: 100%;
    height: auto;
    inset: auto 0 0 auto;
  }
  .home_contents > div h2 {
    font-size: 14px;
  }
  .home_contents > div p {font-size: 24px;}
}
  
@media screen and (max-width: 1600px) {
  .home_contents > section {padding: 40px 5%;}
  .home_contents > section::before {display: none;}
}

@media screen and (max-width: 800px) {
  .home_contents > section h3 {font-size: 16px;}
  .home_contents > section ol li {
    padding: 10px 10px 10px 45px;
    font-size: 14px;
    line-height: 1.8;
  }
  .home_contents > section ol li span {font-size: 15px;}
  .home_contents > section ol li::before {
    width: 16px;
    height: 24px;
    inset: 0 auto 0 10px;
  }

  .home_merit {padding: 50px 0;}
  .home_merit::before ,
  .home_merit::after {display: none;}
  .home_merit .box > div {padding: 20px;}
  .home_merit .box > div .bottom {font-size: 18px;}
  .home_merit .box > div ul {display: block;}
  .home_merit .box > div ul li {
    width: 100% ;
    padding: 20px 10px;
    font-size: 14px;
    border-right: none;
    border-bottom: solid 1px #CCCCCC;
    line-height: 1.8;
  }
  .home_merit .box > div ul li figure {
    width: 40%;
    margin: 0 auto 20px;
  }
  .home_merit .box > div ul li p {
    font-size: 16px;
    min-height: auto;
    margin: 0 auto 10px;
  }
  .home_outline {padding: 0 0 60px;}
  .home_outline .h2_area {
    height: 200px;
    background: url("../img/home/bg_outline.jpg") no-repeat center / auto 100%;
    margin: 0 0 30px;
  }
  .home_outline .h2_area h2 {
    padding: 0 5%;
    font-size: 24px;
  }
  .home_outline section h3 {
    font-size: 20px;
    margin: 0 0 10px;
  }
  .home_outline section p {
    font-size: 14px;
    line-height: 1.8;
  }
  .home_outline section > section {
    display: block;
    margin: 40px 0 0;
    padding: 20px;
  }
  .home_outline section > section div h4 {
    font-size: 18px;
    text-align: center;
    margin: 0 0 10px;
  }
  .home_outline section > section div p {
    font-size: 14px;
    text-align: center;
  }
  .home_outline section > section div figure {
    position: static;
    width: 60%;
    margin: 20px auto;
  }
  .home_outline section > section div .btn {
    margin: 0 auto;
    width: 250px;
  }

  .home_bnr {
    color: #FFFFFF;
    padding: 0;
    background: none;
  }
  .home_bnr h2 {
    color: #333333;
    line-height: 1.5;
    font-size: 18px;
    margin: 0 auto 30px;
  }
  .home_bnr ul {display: block;}  
  .home_bnr ul li {
    width: 100%;
    font-size: 14px;
    padding: 30px 20px;
    background: url("../img/home/bg_bnr01.jpg") no-repeat center / cover;
  }
  .home_bnr ul li:nth-child(2) {
    background: url("../img/home/bg_bnr02.jpg") no-repeat center / cover;
  }
  .home_bnr ul li figure {
    width: 40%;
    max-width: none;
    margin: 0 auto 15px;
  }
  .home_bnr ul li p {
    font-size: 18px;
    margin: 0 auto 10px;
  }
  .home_bnr ul li .btn_common {
    display: block;
    font-size: 16px;
    max-width: 300px;
    margin: 20px auto 0;
  }
  .home_advisor {padding: 50px 0 80px;}
  .home_advisor h2 + p {margin: 0 auto 40px;}
  .home_advisor .ad_list {
    display: block;
    padding: 20px 0;
    width: 100%;
  }
  .home_advisor .slick-slide {
   height: inherit !important;
    margin: 0 15px 0 0;
  }
  .home_advisor .indicate {margin: 10px 0 0;}
  .home_advisor .btn_common {
    display: block;
    width: 300px;
    margin: 40px auto 0;
  } 
  .home_contact {padding: 0 5% 20px;}
  .home_contact + .home_contact {padding: 0 5% 40px;}
  .home_contact > div {
    display: block;
    padding: 30px 20px;
    clip-path: polygon(0 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%);
  }
  .home_contact > div div:nth-of-type(1) {
    width: 100%;
    padding: 0 0 0 60px;
  }
  .home_contact > div div:nth-of-type(1) > img {
    width: 42px;
  }
  .home_contact + .home_contact > div div:nth-of-type(1) > img {
    width: 36px;
    inset: 0 auto auto 5px;
  }
  .home_contact > div div:nth-of-type(1) h2 {
    font-size: 22px;
    line-height: 1.5;
    margin: 0 0 10px;
  }
  .home_contact > div div:nth-of-type(1) p {font-size: 16px;}
  .home_contact > div div:nth-of-type(2) {width: 100%;}
  .home_contact > div div .btn_common {
    display: block;
    width: 300px;
    margin: 20px auto 0!important;
  }
  .home_news {padding: 50px 0;}
  .home_news .box {display: block;}
  .home_news .box .bottom {
    width: 100%;
    text-align: center;
    margin: 0 auto 20px;
  }
  .home_news .box .bottom::after {inset: auto 0 0 0;}
  .home_news .box ul {
    width: 100%;
    padding: 0.5em 0 0;
  }
  .home_news .box ul li {
    font-size: 13px;
    padding: 0.75em 0;
    margin: 0;
  }
  .home_news .box ul li span {
    vertical-align: top;
    width: 110px;
  }
  .home_news .box ul li p {
    vertical-align: top;
    width: calc(100% - 110px);
  }

}

/* -----------------------------------------------------------
 join
----------------------------------------------------------- */

@media screen and (max-width: 800px) {

  .anc_list {flex-wrap: wrap;}
  .anc_list::after {display: none;}
  .anc_list > li {
    width: 50%;
    margin: 0 0 10px;
  }
  .anc_list > li:nth-child(odd)::before {
    position: absolute;
    z-index: 0;
    inset: 0 auto 0 0;
    display: block;
    content: "";
    width: 1px;
    height: 100%;
    background: linear-gradient(to right,  #9ccdec 0%,#1e9cd7 60%,#0075be 100%); 
  }
  .anc_list > li a {padding: 1.5em 1em 2em;}
  .anc_list > li:nth-last-child(1) a {padding: 0.75em 1em 2em;}
  .anc_list > li a::after {inset: auto 0 1em;}
  .flex {display: block;}
  .flex > section {width: 100%;}
  .flex > section h3 {
    font-size: 20px;
    height: 140px;
    margin: 40px 0 20px;
  }
  .flex > section h3 + p {min-height: auto;}
  .table_join {margin: 20px 0;}
  .join_company .table_join_g {margin-bottom: 20px;}
  .table_join th {
    width: 140px;
    padding: 10px;
    font-size: 13px;
  }
  .table_join td {
    padding: 10px;
    font-size: 13px;
  }
  ul.mark li {font-size: 15px;}
  ul.mark li::before {
    width: 8px;
    height: 8px;
  }
  ol.num_list {margin: 30px 0 0;}
  ol.step li {margin: 30px 0 0;}
  ol.step li p {
    width: 50px;
    font-size: 14px;
  }
  ol.step li p span {font-size: 30px;}
  ol.step li p::before {
    width: 4px;
    height: 30px;
  }
  ol.step li dl {
    width: calc(100% - 50px);
    padding: 15px 15px 15px 80px;
    min-height: auto;
  }
  ol.step li dl dt {font-size: 16px;}
  ol.step li dl::before {
    width: 50px;
    height: 50px;
    inset: 0 auto 0 15px;
  }

  .dl_box {
    display: block;
    margin: 30px 0 0;
    padding: 20px;
  }
  .dl_box dt {
    width: 100%;
    padding: 0;
    font-size: 16px;
    text-align: center;
  }
  .dl_box dd {
    width: 100%;
    padding: 20px 0;
    font-size: 13px;
  }
  .dl_box dd ul {display: block;}
  .dl_box dd ul li {
    width: 100%;
    margin: 10px 0 0;
    height: 90px;
  }
  .dl_box dd ul li a {
    font-size: 13px;
    padding: 0 20px;
    transition: 0s;
  }
  .dl_box dd ul li a:hover {opacity: 1;}

}

@media screen and (max-width: 940px) {
  .dl_box dd ul li a br {display: none;}
    
}

/* -----------------------------------------------------------
 faq
----------------------------------------------------------- */

@media screen and (max-width: 800px) {
  

  dl.faq dt {
    font-size: 15px;
    padding: 20px 50px 20px 45px;
  }
  dl.faq dt::before {
    width: 20px;
    inset: 0 10px 0 auto;
  }
  dl.faq dt::after {
    height: 20px;
    inset: 0 19px 0 auto;
  }
  dl.faq dt span {
    width: 30px;
    height: 30px;
    line-height: 30px;
    font-size: 14px;
    inset: 15px auto auto 0;
  }
  dl.faq dd {
    font-size: 14px;
    padding: 15px 0 15px 45px;
    line-height: 2;
  }
  dl.faq dd span {
    width: 28px;
    height: 28px;
    line-height: 30px;
    font-size: 14px;
    inset: 16px auto auto 1px;
  }
  dl.faq dd span::after {
    width: 30px;
    height: 30px;
  }
}

