@import url(destyle.css);

/* ------------------------
基本設定
------------------------ */
body {
    background-color: #f6f1e5;
    /*max-width: 390px;*/
    margin: auto;
    font-size: 23px;
    color: #414b2f;
    font-weight: 550;
    font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

.full-bleed {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}



.line_yellow {
    border-bottom: 4px solid #ffe400;
}

.orange {
    color: #f25f31;
}

.green {
    color: #00ca42;
}

.yellow {
    color: #ffe400;
    font-size: 2.5rem
}

.blue {
    color: #419de2
}

.large {
    font-size: 2.6rem;
    letter-spacing: -5px;
}

.large_s {
    font-size: 2.3rem;
    letter-spacing: -3px;
}

.large_ns {
    font-size: 2.3rem;
}

.midium {
    font-size: 2.3rem;
    letter-spacing: -2px;
}

.small {
    font-size: 1.2rem;
}

.bold {
    font-weight: bold;
}

.center {
    margin: auto;
    text-align: center;
    align-items: center;
}

.highlight {
    position: relative;
    background: linear-gradient(transparent 60%, #e15231 30%);
}

/* ------------------------
ヘッダー
------------------------ */
header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: #fff;
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: calc(10px + env(safe-area-inset-top)) 10px 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

.img_logo,
.img_nav {
    display: block;
    width: auto;
    height: 40px;
}

nav ul {
    display: flex;
    gap: .5rem;
}

/* ------------------------
phone-modal
------------------------ */

.phone-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.phone-modal.is-open {
    display: block;
}

.phone-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.phone-modal__dialog {
    position: relative;
    width: min(92vw, 460px);
    margin: 18vh auto 0;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.25);
    padding: 18px 18px 16px;
}

.phone-modal__title {
    margin: 0 0 10px;
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #111;
}

.phone-modal__text {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.7;
    color: #333;
}

.phone-modal__actions {
    display: flex;
    gap: 10px;
}

.phone-modal__btn {
    appearance: none;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 10px;
    padding: 12px 12px;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    width: 100%;
    user-select: none;
}

.phone-modal__btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.phone-modal__btn:active {
    transform: translateY(1px);
}

.phone-modal__btn--sub {
    background: #fff;
}

.phone-modal__btn--main {
    background: #111;
    color: #fff;
    border-color: #111;
}

/* ------------------------
ファーストビュー
------------------------ */
.img_fv {
    width: 100%;
    /*max-width: 390px;*/
}

.button_cta {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1100;
    display: flex;
    justify-content: center;
    padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
    background: transparent;
}

.button_cta button {
    width: 85%;
}

.img_cta {
    width: 100%;
    max-width: 390px;
    object-fit: contain;
    animation: cta-pop 2s cubic-bezier(.2, .7, .3, 1) infinite;
    will-change: transform;
}

@keyframes cta-pop {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.08);
    }
}

/* ------------------------
ファーストビュー
------------------------ */
.fv_top,
.fv_bottom {
    text-align: center;
}

.fv_top>p {
    margin: 25px 0 0;
}

.speechBubble {
    position: relative;
    display: inline-block;
    margin: 20px 0;
    padding: 16px 13px;
    border-radius: 23px;
    background-color: #fff;
    text-align: center;
    font-size: 24px;
    line-height: 1.5;
    filter: drop-shadow(2px 3px 3px rgba(90, 90, 90, .4));
}

.speechBubble::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 44%;
    border-style: solid;
    border-width: 20px 20px 0 0;
    border-color: #fff transparent transparent;
    translate: calc(-50% - 0.4px) 100%;
    transform: skew(-25deg);
    transform-origin: top;
}

.fv_middle {
    position: relative;
}

.message_container {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    position: absolute;
    top: 30%;
    right: 0;
}

.img_pair {
    width: 73%;
    padding: 36px 0 0 2px;
}

.img_fvicon {
    width: 25%;
}

.box {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    width: 165px;
    height: 66px;
    padding: 5px 8px;
    border: 2px solid #414b2f;
    border-radius: 50px 0 0 50px;
    background-color: #fff;
}

.fv_bottom {
    background-color: #414b2f;
    color: #fff;
    padding: 80px 0;
    font-size: 2.2rem;
    letter-spacing: -2px;
}

/* ------------------------
メイン（お悩み）
------------------------ */
.character1 {
    font-size: 2.6rem;
}

#trouble h2 {
    margin: 50px 0;
}

.center-wrap {
    display: flex;
}

.contents {
    width: 80%;
    height: 415px;
    background-color: #fff;
    border-radius: 20px;
    margin: 0 10px 30px 10px;
    padding: 15px;
}

.contents h3 {
    padding-top: 10px;
}

#trouble .cnotent_l h3,
.pentagon h2 {
    padding: 20px 0;
    line-height: 2.4rem;
}

.img_bad {
    width: 83%;
}

.cnotent_l {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    background-color: #fff;
    border-radius: 20px;
    width: 99%;
}

.img_fine {
    width: 20%;
}

/* ------------------------
メイン（解決）
------------------------ */
.pentagon {
    --bg: #ee6a41;
    --h: 180px;
    --notch: 35%;
    height: var(--h);
    margin-top: -40px;
    background: var(--bg);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--notch)),
            50% 100%, 0 calc(100% - var(--notch)));
    color: #fff;
    text-align: center;
}

.pentagon h2 {
    padding: 30px;
}

.merit {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 80px 0;
}

.merit-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50%;
    margin: auto;
    padding: 14px 2px;
    border: 2px solid #414b2f;
    border-radius: 10px;
    background: #faf7f2;
    font-size: 25px;
}

.merit-box .check {
    color: #e9552c;
    margin: 0 8px;
    font-size: 30px;
    line-height: 1.4;
}

.merit-box p {
    margin: 0;
}

/* ------------------------
メイン（相談）
------------------------ */
.character3 {
    font-size: 2.1rem;
    font-weight: 600;
}

.character4 {
    font-size: 1.9rem;
    font-weight: 600;
}

.character5 {
    font-size: 1.3rem;
}

.character2 {
    color: #ffe400;
    font-size: 1.7rem;
    font-weight: 600;
}

.consultation {
    margin: auto;
    text-align: center;
}

.speechBubble2 {
    position: relative;
    display: inline-block;
    width: 95%;
    margin-bottom: 13px;
    padding: 16px;
    border-radius: 20px 20px 0 0;
    background-color: #f25f31;
    line-height: 1.5;
    color: #fff;
    filter: drop-shadow(2px 3px 3px rgba(90, 90, 90, .4));
    font-weight: 500;
}

.speechBubble2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    border-style: solid;
    border-width: 13px 13.5px 0 13.5px;
    border-color: #f25f31 transparent transparent;
    translate: -50% 100%;
}

.white_box {
    width: 95%;
    margin: -30px auto 0;
    padding: 80px 0 80px;
    background-color: #fff;
    border-radius: 0 0 20px 20px;
}

.point_group {
    display: grid;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 70px;
    justify-items: center;
    justify-content: center;
    padding: 20px;
}



.img_leaf {
    width: 100%;
}

.point1,
.point2,
.point3 {
    position: relative;
}

.text1 {
    position: absolute;
    top: 30px;
    left: 70px;
}

.text2 {
    position: absolute;
    top: 30px;
    left: 55px;
}

.text3 {
    position: absolute;
    top: 30px;
    left: 70px;
}

/* ========== 相談までの流れ ========== */
/* 見出し */
.flow_box {
    background-color: #419DE2;
    padding: 5% 0;
    text-align: center;
    color: white;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
}

.img_flow_title {
    width: 40%;
    padding-bottom: 1.3vw;
}

.flow_box p {
    margin: 0 auto;
    font-size: 2vw;
    line-height: 5.5vw;
}

/* フロー */
.container {
    font-family: 'Noto Sans JP', sans-serif;
    display: flex;
    align-items: center;
    padding: 3% 20%;
}

.img_step {
    width: 30vw;
    margin-right: 2vw;
}

.contain {
    width: 60vw;
    gap: 10px;
    line-height: 4.2vw;
}

.step {
    width: 20vw;
}

.contain img {
    width: 25%;
    margin-left: -2%;
    padding-bottom: 10px;
}

.contain h3 {
    margin: -3% 0 0 0;
    color: #037ABB;
    font-size: 2.2vw;
    font-weight: bold;
}

.flow_containers .contain p {
    margin: 0;
    font-size: 1.2vw;
    font-weight: 500;
}

.add_coment {
    text-align: center;
    font-weight: bold;
    font-size: 2.3vw;
    line-height: 5.2vw;
    margin: 2% 0 7% 0;
    font-family: 'Noto Sans JP', sans-serif;
    color: #037ABB;
}

/* ------------------------
メイン（方法）
------------------------ */
#howto h1 {
    background-color: #419de2;
    color: #fff;
    text-align: center;
    padding: 50px;
    margin-top: 30px;
    font-size: 1.8em;
}

.howto h2 {
    font-size: 2rem;
    padding: 50px 20px 20px;
}

.img_updown {
    width: 50%;
}

.img_icon {
    width: 100%;
    margin-top: 5px;
    padding: 70px;
}

/* ------------------------
メイン（カード）
------------------------ */
.cards {
    display: flex;
    justify-content: space-evenly;
    gap: 5px;
    margin: 20px 10px;
}

.card {
    width: 300px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    text-align: center;
    border-radius: 8px;
    background: #fff;
    box-shadow: 2px 4px 8px rgba(0, 0, 0, .2);
    overflow: hidden;
}

.card-header {
    color: #fff;
    padding: 10px;
    font-size: 1.5em;
}

.card:nth-child(1) .card-header {
    background: #ffb600;
}

.card:nth-child(2) .card-header {
    background: #419de2;
}

.card:nth-child(3) .card-header {
    background: #f25f31;
}

.card-content {
    padding: 8px;
}

.card-footer {
    padding: 10px 0 16px;
}

.card-footer button {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 90%;
    margin: 0 auto;
    height: 56px;
    line-height: 1.2;
    font-size: 14px;
    font-weight: bold;
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 0;
    transition: none;
}

.card-footer button::after {
    content: "";
    width: 14px;
    height: 14px;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
    transform: rotate(45deg);
}

/* 任意整理（黄色） */
.card:nth-child(1) .card-footer button {
    background: #ffb600;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, .35),
        0 6px 0 #cc9200,
        0 10px 14px rgba(204, 146, 0, .6);
}

/* 個人再生（青） */
.card:nth-child(2) .card-footer button {
    background: #419de2;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, .35),
        0 6px 0 #2f6faa,
        0 10px 14px rgba(47, 111, 170, .6);
}

/* 自己破産（赤） */
.card:nth-child(3) .card-footer button {
    background: #f25f31;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, .35),
        0 6px 0 #b5361e,
        0 10px 14px rgba(181, 54, 30, .6);
}

.card-footer button:hover {
    opacity: .9;
    transform: translateY(2px);
    box-shadow: 0 2px 0 rgba(0, 0, 0, .2);
}

/* ------------------------
メイン（ホルダー & スライダー）
------------------------ */
.holder-slider {
    width: 95%;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

.holder-track {
    display: flex;
    width: 100%;
    transition: transform .5s ease;
    will-change: transform;
}

.holder {
    flex: 0 0 100%;
    /* border: 2px solid #3b5025; */
    border-radius: 20px;
    width: 60%;
    min-height: 500px;
    margin: 50px auto;
    position: relative;
    overflow: hidden;
    /* background-color: #fff; */
}

.holder_pc_img {
    width: inherit;
    height: initial;
}

.holder h2 {
    font-size: 1.7rem;
    margin: 7px 0;
    text-align: center;
    padding: 0;
}

.holder h3 {
    position: static;
    margin: 0 12px 8px;
    text-align: center;
    font-size: .8rem;
    font-weight: 700;
}

.holder .bottom-txt {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 14px;
    font-size: .9rem;
    line-height: 1.6;
    text-align: left;
}

.img_holder {
    display: none;
}

.caption1,
.caption2,
.caption3,
.caption4,
.caption5,
.caption6,
.caption7,
.caption8,
.caption9,
.caption10,
.caption11 {
    position: absolute;
    font-size: .7rem;
    line-height: 1.1;
    text-align: left;
}

.caption1 {
    top: 109px;
    left: 17px;
}

.caption2 {
    top: 109px;
    left: 217px;
}

.caption3 {
    top: 323px;
    left: 180px;
}

.caption4 {
    top: 115px;
    left: 44px;
}

.caption5 {
    top: 112px;
    left: 213px;
}

.caption6 {
    top: 323px;
    left: 17px;
}

.caption7 {
    top: 323px;
    left: 253px;
}

.caption8 {
    top: 115px;
    left: 51px;
}

.caption9 {
    top: 112px;
    left: 218px;
}

.caption10 {
    top: 326px;
    left: 31px;
}

.caption11 {
    top: 325px;
    left: 253px;
}

.holder-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 8px 0 0;
}

.holder-dots .dot {
    width: 8px;
    height: 8px;
    border: 0;
    border-radius: 50%;
    background: #c9c9c9;
}

.holder-dots .dot.is-active {
    background: #414b2f;
}

/* ------------------------
エンドメッセージ
------------------------ */
/* メッセージ */

.end_message {
    margin-top: 50px;
    padding-bottom: 100px;
    background-color: white;
    position: relative;
}


.end_message h1 {
    text-align: center;
    padding: 50px 0;
    font-size: 1.8em;
}

.end_message p {
    font-size: 1.2rem;
    line-height: 1.6;
    letter-spacing: 2px;
    margin: 0 0 10px 200px;
}

.img_bestman {
    width: 15%;
    position: absolute;
    bottom: 20px;
    right: 15px;
    margin-right: 200px;
}

/* 会社概要 */
.end_company {
    background-color: #ECECEC;
    z-index: 1;
    padding: 20px 0;
}

table {
    width: initial;
    margin: 10px auto;
}

td {
    border: 1px solid black;
    font-size: .8rem;
    padding: 5px 0;
}

.title {
    background-color: #3E492E;
    color: white;
}

/* プライバシーポリシー */
.privacy {
    font-size: .8rem;
}

/* 著名 */
.footer {
    background-color: #3E492E;
    color: white;
    font-size: .8rem;
    text-align: center;
    padding: 5px 0;
}

footer .end {
    background-color: #f6f1e5;
}


/* ------------------------
離脱ポップアップ
------------------------ */
.exit-popup {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: .25s;
    z-index: 9999;
}

.exit-popup.is-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.exit-popup__backdrop {
    position: absolute;
    inset: 0;
}

.exit-popup__panel {
    position: relative;
    width: min(92vw, 380px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .25);
    padding: 0;
}

.exit-popup__panel>a {
    display: block;
}

.exit-popup__img {
    display: block;
    width: 100%;
    height: auto;
}

.exit-popup__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 18px;
    line-height: 1;
    display: grid;
    place-items: center;
    cursor: pointer;
    z-index: 2;
}

/* 固定CTA（最下部で非表示に） */
.fixed-cta {
    transition: opacity .25s ease, transform .25s ease;
}

.fixed-cta.is-hidden-at-bottom {
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
}

.pc_hidden {
    display: none;
}

@media screen and (max-width: 1024px) {

    body {
        max-width: 390px;
    }

    .sp_hidden {
        display: none;
    }

    .pc_hidden {
        display: block;
    }

    .fv_bottom {
        padding: 20px 0;
        font-size: 1.7rem;
    }

    .yellow {
        font-size: 2.1rem
    }

    .center-wrap {
        flex-wrap: wrap;
    }

    .contents {
        width: 80%;
        height: 280px;
        background-color: #fff;
        border-radius: 20px;
        margin: 0 auto 30px;
        padding: 15px 0;
    }

    #trouble h2 {
        margin: 25px 0;
    }

    .cnotent_l {
        display: initial;
        /*flex-direction: row-reverse;*/
        width: 90%;
    }

    .img_fine {
        width: 60%;
    }

    .merit-box {
        justify-content: initial;
        width: 80%;
        font-size: 18px;
    }

    .merit {
        margin: 25px 0;
    }

    .small {
        font-size: .9rem;
    }

    .point_group {
        grid-template-columns: 150px 150px;
        justify-content: space-around;
    }

    .point1 {
        width: 50%;
        grid-column: 1 / span 2;
    }

    .img_flow_title {
        width: 82%;
    }

    .flow_box p {
        font-size: 4vw;
    }

    .container {
        padding: 3% 3% 3% 3%;
    }

    .contain {
        line-height: 5.2vw;
    }

    .contain img {
        width: 38%;
    }

    

    .add_coment {
        font-size: 4.3vw;
    }

    .midium {
        font-size: 1.3rem;
    }

    .text1 {
        position: absolute;
        top: 18px;
        left: 42px;
    }

    .text2 {
        position: absolute;
        top: 18px;
        left: 25px;
    }

    .text3 {
        position: absolute;
        top: 18px;
        left: 40px;
    }

    .white_box {
        padding: 50px 0 20px;
    }

    #howto h1 {
        padding: 15px;
        font-size: initial;
    }

    .howto h2 {
        font-size: 1.1rem;
        padding: 20px;
    }

    .img_updown {
        width: 95%;
    }

    .cards {
        justify-content: initial;
    }

    .img_icon {
        width: 50%;
        padding: 0;
    }

    .card-header {
        font-size: initial;
    }

    .holder {
        /* スライド1枚分 */
        flex: 0 0 100%;
        border: 2px solid #3b5025;
        border-radius: 20px;
        width: 95%;
        height: 550px;
        margin: 0 auto;
        position: relative;
        overflow: hidden;
        background-color: #fff;
    }

    .holder1 {
        background: url("../img/holder1.webp") no-repeat center 105px / 92% auto;
        padding: 16px 18px 88px;
        background-color: white;
    }

    .holder2 {
        background: url("../img/holder2.webp") no-repeat center 105px / 92% auto;
        padding: 16px 18px 88px;
        background-color: white;

    }

    .holder3 {
        background: url("../img/holder3.webp") no-repeat center 105px / 92% auto;
        padding: 16px 18px 88px;
        background-color: white;

    }

    .end_message {
        margin-top: 20px;
        padding-bottom: 20px;
    }

    .end_message h1 {
        padding: 20px 0;
        font-size: initial;
    }

    .img_bestman {
        width: 25%;
        margin-right: 0;
    }

    .end_message p {
        font-size: .8rem;
        line-height: 1.6;
        letter-spacing: 2px;
        margin: 0 0 10px 30px;
    }

    table {
        margin: 20px 10px;
        width: 95%;
    }
}

@media screen and (min-width: 767px) and (max-width: 1024px) {

    .contain h3 {
        font-size: 3.2vw;
    }

    .flow_containers .contain p {
        font-size: 2.2vw;
        font-weight: 500;
    }
}

@media screen and (max-width: 767px) {

    .contain h3 {
        font-size: 4.2vw;
    }

    .flow_containers .contain p {
        font-size: 3.2vw;
        font-weight: 600;
    }

    .button_cta {
        left: 0%;
        transform: translateX(0);
    }

}

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

    .img_bad {
        width: 60%;
    }
}