@charset "utf-8";
@media screen and (max-width: 767px) {
/*-------------------------------------
共通
-------------------------------------*/
main {
    overflow: hidden;
}
.sp {
    display: block;
}
.pc {
    display: none;
}
.cta-wrap {
    margin-top: 45px;
}


/*-----------------------------
枠
-----------------------------*/
.wrap {
    padding: 10px;
}
.inner {
    padding: 40px 15px;
}

/*-----------------------------
ttl
-----------------------------*/
.ttl {
    margin: 15px auto 45px;
    display: block;
}
.ttl:before {
    content: '';
    position: absolute;
    top: -1.8em;
    right: -10px;
    background: url(../images/circ_01.png) no-repeat center top;
    background-size: 100%;
    width: 99px;
    height: 37px;
}
.ttl:after {
    content: '';
    position: absolute;
    bottom: -1em;
    left: -10px;
    background: url(../images/circ_02.png) no-repeat center center;
    background-size: contain;
    width: 71px;
    height: 31px;
}
.ttl-inr {
    font-size: 8.5vw;
}
.sub_line {
    font-size: 6vw;
    padding-bottom: 35px;
}
.sub_line:after {
    background-image: url("../images/line_sp.png");
}

/*-----------------------------
header menu
-----------------------------*/
.js-menu-btn {
    width: 60px;
    height: 60px;
}
.js-nav .logo {
    width: 60%;
    margin: 0 auto;
}
.js-nav li a {
    width: 100%;
}
/*-----------------------------
kv
-----------------------------*/
h1.h1logo{
    position: absolute;
    top: 10px;
    left: 10px;
    width: 150px;
}
.catch {
    flex-direction: column;
    text-align: center;
}
.catch p {
    font-size: 6vw;
    padding-right: 0;
    margin-bottom: 20px;
}
.catch a {
    max-width: 100%;
}

/*-----------------------------
problem
-----------------------------*/
#problem h2 {
    font-size: 5vw;
    margin-bottom: -100px;
}
#problem h2 span {
    font-size: 1.6em;
}
#problem p {
    font-size: 7vw;
}
#problem p span._highlight {
    font-size: 9vw;
    letter-spacing: -.1em;
}
#problem p span:last-of-type {
  font-size:9vw;
}

/*-----------------------------
about
-----------------------------*/
#about p.text {
    font-size: 4vw;
    margin-bottom: 0px;
}
#about h3 {
    margin: 25px 0 10px;
    font-size: 6vw;
}
#about h3 span._strong {
    font-size: 1.3em;
}
#about h3.sub-catch {
  margin-bottom: 10px;
}
#about .box {
    padding: 30px 15px;
    margin-bottom: 50px;
}
#about .box p.box-catch {
    font-size: 4.5vw;
}
#about .box p.box-text {
    font-size: 4.5vw;
}
#about .col {
    flex-direction: column;
    gap: 45px;
}
#about .col p {
    font-size: 6vw;
}
#about .col-item .col-img {
    width: 60%;
}

/*-----------------------------
point
-----------------------------*/
#point .ttl-inr span {
    font-size: .8em;
}
.point-box {
    padding: 30px 15px;
    margin-bottom: 30px;
}
.point-box + .point-box {
    margin-top: 50px;
}
.point-ttl {
    flex-direction: column;
}
.point-ttl h3 {
    font-size: 6vw;
}
.point-dtl {
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.point-box:first-of-type .point-dtl {
    align-items: center;
}
.point-dtl .icon {
    width: 45%;
}
.point-box:first-of-type .point-dtl .icon {
  margin-top: 0;
}
.point-dtl p {
    font-size: 4vw;
}
#point h4 {
    font-size: 6vw;
}

/*-----------------------------
items
-----------------------------*/
#items p.text {
    margin-bottom: 15px;
}
.item-box {
    width: 100%;
    flex: auto;
}
.item-box:last-of-type,
.item-col {
    display: block;
    text-align: center;
}
.item-box:last-of-type .item-img {
    width: 100%;
}

/*-----------------------------
flow
-----------------------------*/
#flow .box {
    margin-bottom: 50px;
}
#flow .box .col {
    padding: 20px;
    flex-direction: column;
    /* align-items: stretch; */
    font-size: 20px;
    gap: 15px;
}
#flow .box .col .left {
    padding: 15px;
}
#flow .note {
    margin-top: 15px;
}

/*-----------------------------
qa
-----------------------------*/
#qa .ttl {
    display: inline-block;
}
#qa .ttl:before {
    right: -30px;
}
#qa .ttl:after {
    left: -30px;
}
.accordion {
    margin-bottom: 50px;
}
.js-accordion-item {
    padding-bottom: 80px;
}
.js-accordion-title {
    padding: 25px 5px 25px 3em;
    font-size: 23px;
}
.js-accordion-title span {
    font-size: 33px;
}
.js-accordion-content {
    padding-top: 0;
}
.js-accordion-btn {
    top: initial;
    bottom: 30px;
    right: 50%;
    transform: translateX(1em);
}
.js-accordion-item:nth-of-type(1) .js-accordion-btn,
.js-accordion-item:nth-of-type(4) .js-accordion-btn,
.js-accordion-item:nth-of-type(5) .js-accordion-btn{
  top: initial;
}


/*-----------------------------
footer
-----------------------------*/
footer .footer-inner {
    padding: 20px 20px 30px;
    margin-bottom: 140px;
}
.company {
    width: 80%;
    margin: 0 auto 10px;
}
.contact-txt {
  font-size: 16px;
  margin-bottom: 5px;
}
.contact {
    flex-direction: column;
    gap: 0;
}
.contact p.tel {
  font-size: 35px;
}
.tel span {
  width: 48px;
}
.contact .time {
    line-height: 1.2;
    margin-top: 10px;
    justify-content: center;
    align-items: stretch;
    font-size: 16px;
}
.contact .time span {
    padding: 10px 8px;
    display: flex;
    align-items: center;
}

.cta-fixed-wrap {
    padding: 15px 10px;
}
.cta-fixed-wrap .pc {
    display: none;
}
.cta-fixed-wrap ._txt {
    margin-bottom: 15px;
    font-size: 18px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.cta-fixed-wrap ._txt span {
    font-size: 15px;
}
.cta-fixed-wrap .sp_box {
    display: flex;
    align-items: center;
    gap: 5px;
}


}