/* 共通設定 */

html {
    font-size: 62.5%;
}
body {
    font-family: "新丸ゴ DB", "Shin Maru Go DemiBold", sans-serif;
    width: 100%;
    overflow-x: hidden;
    font-size: 1.6rem;
    line-height: 1.5;
    box-sizing: border-box;
    color: #181818;
}
button {
    cursor: pointer;
}
a {
    display: block;
    text-decoration: none;
}

img {
    vertical-align: middle;
}

.bold {
    font-weight: bold;
}

.block {
    display: block;
}

.text-center {
    text-align: center;
}

.orange-border {
    background: linear-gradient(transparent 80%, #FDDB45 80%);
}

.red-text {
    color: #B5100D;
}

.kaku-go {
    font-family:"Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

.text-right {
    text-align: right;
}

.small {
    font-size: 75%;
}

.large {
    font-size: 125%;
}

.x-large {
    font-size: 150%;
}

.xx-large {
    font-size: 175%;
}

.kanteiryu {
    font-family: Kanteiryu, "Kanteiryu", sans-serif;
}

.M-shin-maru {
    font-family: "新丸ゴ M", "Shin Maru Go Medium", sans-serif;
}

.R-shin-maru {
    font-family: "新丸ゴ R", "Shin Maru Go Regular", sans-serif;
}

/* ヘッダー */
.header-subtitle {
    background-color: #43A137;
    color: #ffffff;
    font-size: 1.2rem;
    padding: 5px 0;
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 2%;
    background-color: #F09534;
}

header h1 {
    width: 120px;
}

header h1 img {
    width: 100%;
}

.header-links {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.header-links img {
    width: 45px;
    margin: 0 0 0 10px;
}

.line-height1 {
    line-height: 1;
}

header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 10000;
}

main {
    padding: 92px 0 0;
}

.PC {
    display: none;
}


/* キービジュアル */

.key-visual {
    background-image: url("./img/key_SP.png");
    background-position: top;
    background-repeat: no-repeat;
    background-size: 100%;
    padding: calc(100vw * 1.23) 0 0;
    position: relative;
}

.contact-btn01 {
    width: 90%;
    background-color: #43A137;
    border-radius: 22px;
    padding: 10px 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    color: #ffffff;
}


/* こんな方へ */
.trouble-reason {
    background-image: url("./img/town_bg.png");
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: 270%;
    padding: 40px 0;
    line-height: 1.8;
}

.trouble-reason-box01 {
    width: 85%;
    margin: auto;
    background-color: rgba(255, 255, 255, 0.9);
    border: 1px solid #707070;
    padding: 30px 2.5% 20px;
    position: relative;
}

.trouble-reason-p1 {
    margin: 0 0 10px;
}

.trouble-reason-p2 {
    font-size: 1.4rem;
}

.trouble-img01, .trouble-img02 {
    position: absolute;
}

.trouble-img01 {
    width: 40px;
    top: 10px;
    left: calc((100% - 225px) / 2 - 45px);
}

.trouble-img02 {
    width: 30px;
    top: 10px;
    right: calc((100% - 225px) / 2 - 45px);
}

.trouble-reason-box02 {
    background-color: #F09534;
    width: 85%;
    margin: 20px auto 0;
    padding: 15px 2.5%;
}

.trouble-reason-box02 h2 {
    background-color: #ffffff;
    text-align: center;
    border-radius: 20px;
    padding: 5px 0;
}

.white-back {
    background-color: #ffffff;
    display: inline-block;
    padding: 0 10px;
    margin: 0 0 0 5px;
}

.trouble-reason-box02 ul {
    margin: 15px 0 0;
}

.trouble-reason-box02 ul li {
    display: flex;
    align-items: center;
    margin: 5px 0;
}

.trouble-reason-box02 ul li img {
    width: 25px;
}

.trouble-reason-box03 {
    background-color: rgba(255, 255, 255, 0.9);
    width: 85%;
    margin: 20px auto 0;
    padding: 10px 2.5%;
    border: 2px solid #D8AE00;
    border-radius: 20px;
}

.trouble-reason-box03 img {
    width: 30px;
}

.game-over-img {
    display: block;
    width: 90%;
    margin: 20px auto 0;
}

/* その結果 */

.trouble-result {
    margin: -20px 0 0;
}

.trouble-result-Lp {
    font-size: 2rem;
}

.trouble-result-Sp {
    line-height: 1.8;
    margin: 10px 0;
}

.trouble-result-LLp {
    font-size: 2.3rem;
}

.contact-btn02 {
    width: 90%;
    background-color: #43A137;
    border-radius: 22px;
    padding: 10px 0;
    bottom: 0;
    color: #ffffff;
    margin: 20px auto 0;
}

.free-to-contact {
    margin: 10px 0;
    font-size: 1.4rem;
}


/* 理由 */

.resolution-reason{
    padding: 30px 0 0;
}

.resolution-reason-title {
    background: linear-gradient(#ffffff, #F4D1AC);
    padding: 0 0 20px;
}

.resolution-reason-title img {
    display: block;
    width: 90%;
    max-width: 750px;
    margin: auto;
}

.resolution-reason-wrap {
    background-image: url("./img/dot_bg.png");
    background-size: 150%;
    padding: 30px 0 20px;
    background-color: #F4D1AC;
}

.resolution-reason-content {
    margin: 0 0 40px;
}

.resolution-reason-content h3 {
    margin: 0 0 -15px;
}

.resolution-reason-content h3 img {
    display: block;
    width: 90%;
    margin: auto;
    position: relative;
    z-index: 1;
}

.resolution-reason-box {
    background-color: #F09534;
    width: 90%;
    margin: auto;
    border-radius: 20px;
    padding: 30px 0;
}

.resolution-reason-box h4 {
    color: #181818;
    text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;
    font-size: 1.8rem;
    text-align: center;
}

.resolution-reason-box p {
    color: #ffffff;
    margin: 10px 0;
    font-size: 1.4rem;
}

.reason-see-btn {
    padding: 5px 0;
    width: 70%;
    margin: auto;
    background-color: #43A137;
    color: #ffffff;
    border-radius: 15px;
}


/* 間違った対応 */
.incorrect-fix {
    background-image: url("./img/town_bg.png");
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: 195%;
    padding: 20px 0 40px;
    margin: 0 0 -10px;
}

.incorrect-fix-box {
    width: 85%;
    margin: auto;
    background-color: rgba(255, 255, 255, 0.9);
    padding: 10px 2.5%;
}

.incorrect-fix-box h2 {
    padding: 10px 0;
    border-radius: 20px;
    text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;
    color: #181818;
    background-color: #3595DB;
    text-align: center;
}

.incorrect-fix-p1 {
    margin: 10px 5%;
    font-size: 1.4rem;
}

.failure-story-box {
    background-color: #3595DB;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 10px;
}

.failure-story-box:not(:first-child) {
    margin: 10px 0 0;
}

.failure-story-box h3 {
    background: linear-gradient(90deg, #ffffff 50%, transparent 100%);
    padding: 5px 10px;
    font-size: 1.4rem;
    margin: 0 0 5px;
}

.failure-story-box img {
    margin: 0 10px 0 0;
    width: 33%;
}

.failure-story-inner {
    width: calc(67% - 10px);
}

.failure-story-inner p {
    color: #ffffff;
    font-size: 1.2rem;
}


/* 料金プラン */

.price-plan {
    padding: 20px 0;
}

.price-plan-box {
    width: 85%;
    margin: auto;
    background-color: #F09534;
    padding: 10px 2.5% 5px;
}

.price-plan-box h2 {
    background-color: #ffffff;
    padding: 10px 0;
    border-radius: 20px;
    margin: 0 0 10px;
}

.price-plan-inner {
    background-color: #ffffff;
    padding: 5px;
}

.price-plan-inner p:not(.price-plan-ribbon) {
    color: #B5100D;
}

.price-plan-inner p:not(.price-plan-leftp ) {
    font-size: 1.4rem;
}

.price-plan-ribbon {
    background-color: #B5100D;
    color: #ffffff;
    margin: 0 0 5px;
}

.price-plan-inner-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 0;
}

.price-plan-leftp {
    font-size: 4rem;
    margin: -15px 10px 0 0;
    line-height: 1;
    -moz-text-shadow: 4px 3px 0px rgba(255, 219, 69, 1);
    -webkit-text-shadow: 4px 3px 0px rgba(255, 219, 69, 1);
    -ms-text-shadow: 4px 3px 0px rgba(255, 219, 69, 1);
    text-shadow: 4px 3px 0px rgba(255, 219, 69, 1);
}

.price-plan-0 {
    vertical-align: -5%;
}

.price-plan-whitep img {
    width: 100%;
    margin: 5px 0 0;
}


/* 借金問題解決の流れについて */

.flow {
    padding: 20px 0;
}

.flow-box {
    width: 85%;
    margin: auto;
    background-color: #3595DB;
    padding: 10px 2.5% 5px;
}

.flow-box h2 {
    background-color: #ffffff;
    padding: 10px 0;
    border-radius: 20px;
    margin: 0 0 10px;
}

.flow-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px;
    background-color: #ffffff;
    position: relative;
}

.flow-inner h3 {
    margin: 0 0 5px 30px;
}

.flow-p {
    font-size: 1.2rem;
}

.flow-inner img {
    width: 33%;
    margin: 0 0 0 10px;
}

.flow-num {
    width: 40px;
    line-height: 40px;
    border-radius: 20px;
    position: absolute;
    left: -5px;
    top: -5px;
    color: #ffffff;
    background-color: #4BBFE7;
    font-size: 2.2rem;
}

.flow-white-arrow {
    width: 30px;
    margin: 5px auto;
}

.flow-whitep {
    font-size: 1rem;
    color: #ffffff;
    margin: 5px 0;
    line-height: 1.8;
}


/* 利用者の声 */

.voice {
    padding: 20px 2.5%;
    width: 85%;
    margin: auto;
}

.voice-wrap {
    padding: 0 10px;
}

.voice h2 {
    padding: 10px 0;
    border-radius: 20px;
    text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;
    color: #181818;
    background-color: #F09534;
}

.voice-p1 {
    margin: 10px 0;
    font-size: 1.4rem;
}

.voice-box {
    background-color: #F4D1AC;
    width: 80%;
    margin: 70px auto 0;
    position: relative;
    padding: 40px 5% 20px;
    border-radius: 20px;
}

.voice-inner-p1 {
    font-size: 1.4rem;
}

.voice-inner-p2 {
    font-size: 1.3rem;
    margin: 5px 0 0;
}

.customer-img {
    position: absolute;
    width: 80px;
    left: 50%;
    top: -50px;
    transform: translateX(-50%);
}


/* お問い合わせ */

.contact {
    padding: 20px 0;
}

.contact-box {
    width: 85%;
    padding: 10px 2.5%;
    background-color: #F09534;
    margin: auto;
}

.contact-box h2 {
    background-color: #ffffff;
    padding: 10px 0;
    border-radius: 20px;
    margin: 0 0 10px;
}

.form {
    background-color: #ffffff;
    padding: 10px;
}

.form-item input, .form-item textarea {
    width: calc(100% - 12px);
    padding: 5px;
    border: 1px solid #707070;
    outline: none;
}

.form-item select {
    width: 100%;
    padding: 5px;
    border: 1px solid #707070;
    outline: none;
}

.submit-btn {
    display: block;
    width: 200px;
    padding: 10px 0;
    margin: 10px auto;
    color: #ffffff;
    background-color: #43A137;
    border-radius: 20px;
    border: none;
    outline: none;
}

.form-item {
    margin: 0 0 10px;
    font-size: 1.4rem;
}


/* フッター */

.footer-content {
    background-color: #F09534;
    padding: 30px 0 20px;
}

.footer-logo {
    display: block;
    width: 45%;
    margin: auto;
}

.footer-links {
    display: flex;
    justify-content: center;
    margin: 10px 0 0;
}

.footer-links a {
    color: #ffffff;
    font-size: 1.2rem;
    margin: 0 5px;
}

.copyright {
    font-size: 1rem;
    color: #ffffff;
    background-color: #43A137;
    padding: 5px 0;
}


/* 会社概要・プライバシーポリシー */

.company {
    padding: 20px 0 60px;
    height: calc(100vh - 172px);
}

.privacy-policy {
    padding: 20px 0;
}

.company-box, .privacy-policy-box {
    width: 85%;
    padding: 10px 2.5%;
    background-color: #F09534;
    margin: auto;
}

.company-box h2, .privacy-policy-box h2  {
    background-color: #ffffff;
    padding: 10px 0;
    border-radius: 20px;
    margin: 0 0 10px;
}

.company-inner, .privacy-policy-inner  {
    background-color: #ffffff;
    padding: 10px;
}

.company-inner table, .privacy-policy-p {
    font-size: 1.4rem;
    width: 100%;
}

.privacy-policy-p:not(:last-child) {
    margin: 0 0 15px;
}

.privacy-policy-list {
    position: relative;
}

.privacy-policy-list li {
    list-style: none;
    list-style-position: outside;
    margin: 0;
    padding-left: 1.25em
}

.privacy-policy-list li span {
    position: absolute;
    left: 0;
    margin: 0
}

.company-inner table td {
    vertical-align: middle;
    padding: 5px 0;
}

.company-inner table td:first-child {
    padding: 5px 10px 5px 0;
}

.company-inner table tr:not(:last-child) {
    border-bottom: 1px solid #707070;
}

.company-footer {
    position: fixed;
    width: 100%;
    bottom: 0;
}


/* サンクスページ */

.thanks {
    background-image: url("./img/town_bg.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 200%;
    padding: 40px 0 60px;
}

.thanks-img {
    display: block;
    width: 70%;
    max-width: 500px;
    margin: auto;
}

@media only screen and (min-width:741px) {

    .phone {
        display: none;
    }

    .PC {
        display: block;
    }

    body {
        font-size: 3.2rem;
    }

    .header-subtitle {
        font-size: 2.4rem;
    }

    header h1 {
        width: 240px;
    }

    .header-links img {
        width: 70px;
    }

    main {
        padding: 0;
    }

    .key-visual {
        background-image: url("./img/key_PC_bg.jpg");
        background-size: cover;
        padding: 0;
        height: 100vh;
        max-height: 800px;
        overflow: hidden;
    }

    .key-visual-img {
        display: block;
        height: calc((100% - 151px) * 1.03);
        width: auto;
        max-width: 140%;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translatex(-50%);
        object-fit: contain;
        object-position: bottom;
    }

    .contact-btn01 {
        display: none;
    }

    .trouble-reason {
        padding: 80px 0;
    }

    .trouble-reason-box01 {
        padding: 40px 2.5% 30px;
        max-width: 750px;
    }

    .trouble-reason-p2 {
        font-size: 2.8rem;
    }

    .trouble-img01 {
        width: 50px;
        top: 20px;
        left: calc((100% - 450px) / 2 - 55px);
    }

    .trouble-img02 {
        width: 40px;
        top: 20px;
        right: calc((100% - 450px) / 2 - 55px);
    }

    .trouble-reason-box02 {
        padding: 30px 2.5%;
        max-width: 750px;
    }

    .trouble-reason-box02 h2 {
        border-radius: 34px;
    }

    .trouble-reason-box02 ul li img {
        width: 50px;
    }

    .trouble-reason-box03 {
        padding: 20px 2.5%;
        max-width: 750px;
    }

    .trouble-reason-box03 img {
        width: 60px;
    }

    .game-over-img {
        max-width: calc(750px + 5%);
    }

    .trouble-result-Lp {
        font-size: 4rem;
    }

    .trouble-result-LLp {
        font-size: 4.6rem;
    }

    .contact-btn02 {
        max-width: 700px;
        font-size: 3.2rem;
        border-radius: 34px;
    }

    .free-to-contact {
        font-size: 2.8rem;
    }

    .resolution-reason-content h3 img {
        max-width: 750px;
    }

    .resolution-reason-content h3 {
        margin: 0 0 -30px;
    }

    .resolution-reason-box {
        padding: 60px 0;
        max-width: calc(750px + 5%);
    }

    .resolution-reason-box h4 {
        font-size: 3.6rem;
    }
    
    .resolution-reason-box p {
        font-size: 2.8rem;
    }

    .reason-see-btn {
        border-radius: 29px;
    }

    .incorrect-fix-box {
        padding: 20px 2.5%;
        max-width: 750px;
    }

    .incorrect-fix-box h2 {
        border-radius: 34px;
    }

    .incorrect-fix-p1 {
        font-size: 2.8rem;
    }

    .failure-story-box h3 {
        font-size: 2.8rem;
    }

    .failure-story-inner p {
        font-size: 2.4rem;
    }

    .price-plan-box {
        padding: 20px 2.5% 10px;
        max-width: 750px;
    }

    .price-plan-box h2 {
        border-radius: 34px;
        margin: 0 0 20px;
    }

    .price-plan-inner p:not(.price-plan-leftp ) {
        font-size: 2.8rem;
    }

    .price-plan-leftp {
        font-size: 8rem;
    }

    .price-plan-inner {
        padding: 10px;
    }

    .price-plan-whitep {
        font-size: 1.4rem;
        color: #ffffff;
        margin: 10px 0 0;
    }

    .flow-box {
        padding: 20px 2.5% 10px;
        max-width: 750px;
    }

    .flow-box h2 {
        border-radius: 34px;
        margin: 0 0 20px;
    }

    .flow-inner h3 {
        margin: 0 0 5px 50px;
    }

    .flow-p {
        font-size: 2.4rem;
    }
    
    .flow-num {
        width: 60px;
        line-height: 60px;
        left: -10px;
        top: -10px;
        border-radius: 50%;
    }

    .flow-inner-wrap {
        width: calc(77% - 10px);
    }

    .flow-whitep {
        font-size: 2rem;
    }

    .voice {
        padding: 40px 2.5%;
        max-width: 750px;
    }

    .voice h2 {
        border-radius: 34px;
    }

    .voice-p1 {
        font-size: 2.8rem;
    }

    .voice-box {
        width: 70%;
        margin: 100px auto 0;
        padding: 60px 10% 30px;
        border-radius: 30px;
    }

    .customer-img {
        width: 120px;
        top: -70px;
    }

    .voice-inner-p1 {
        font-size: 2.6rem;
    }

    .voice-inner-p2 {
        font-size: 2.4rem;
    }

    .contact {
        padding: 40px 0;
    }

    .contact-box {
        padding: 20px 2.5%;
        max-width: calc(750px - 5%);
    }

    .contact-box h2 {
        border-radius: 34px;
        margin: 0 0 20px;
    }

    .form {
        padding: 20px;
    }

    .form-item {
        font-size: 2.6rem;
    }

    .form-item input, .form-item textarea, .form-item select {
        font-size: 2.6rem;
    }

    .submit-btn {
        width: 400px;
        font-size: 2.6rem;
        border-radius: 31px;
    }

    .footer-logo {
        width: 30%;
        max-width: 350px;
    }

    .footer-links a {
        font-size: 2.4rem;
    }
    
    .copyright {
        font-size: 1.4rem;
    }

    .company, .privacy-policy {
        padding: 170px 0 60px;
    }

    .company {
        height: auto;
    }

    .thanks {
        padding: 170px 0 60px;
    }

    .company-box, .privacy-policy-box {
        padding: 20px 2.5%;
        max-width: 750px;
    }

    .company-box h2, .privacy-policy-box h2 {
        border-radius: 34px;
    }

    .company-inner, .privacy-policy-inner {
        padding: 20px;
    }

    .company-inner table, .privacy-policy-p {
        font-size: 2.8rem;
    }

    .company-footer {
        position: static;
    }

    .privacy-policy-p:not(:last-child) {
        margin: 0 0 20px;
    }


}

@media only screen and (min-height:1280px)  {
    .company-footer, .thanks-footer {
        position: fixed;
        width: 100%;
        bottom: 0;
    }

    .thanks, .company {
        height: calc(100vh - 230px);
    }
}