@charset "UTF-8";

/* ==========================================================================
   Base
   ========================================================================== */
body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    line-height: 1.6;
    color: #333;
    margin: 0;
    padding: 0;
    font-size: 16px;
}

img {
    max-width: 100%;
    height: auto;
}

/* ==========================================================================
   Utility
   ========================================================================== */
.u-text--accent {
    color: #F94568;
}

.u-text--main {
    color: #0BC1AA;
}

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

.u-text--left {
    text-align: left;
}

.u-weight--bold {
    font-weight: bold;
}

.u-text--underline {
    background: linear-gradient(transparent 60%, #fffb80 60%);
}

.u-primary {
    color: #0BC1AA;
}

.u-bold {
    font-weight: bold;
}

.u-block {
    display: block;
}

.u-medium {
    font-size: 18px;
}

.u-large {
    font-size: 22px;
}

.u-text {
    font-size: 16px;
    margin-bottom: 30px;
}

.u-mt-10 {
    margin-top: 10px;
}

.u-mt-20 {
    margin-top: 20px;
}

.u-mt-30 {
    margin-top: 30px;
}

/* ==========================================================================
   Components
   ========================================================================== */
.c-button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: bold;
    border-radius: 6px;
    transition: opacity 0.3s;
    margin: 10px auto;
    box-sizing: border-box;
    padding: 20px;
    color: #fff;
    border: none;
}

.c-button:hover {
    opacity: 0.8;
}

.c-button--line {
    background-color: #06c755;
}

.c-button--primary {
    background-color: #F94568;
}

.c-button--tel {
    background-color: #cf1e40;
}

.c-arrow {
    font-size: 32px;
    color: #F94568;
    margin: 10px 0;
    text-align: center;
}

.c-blank-illust {
    width: 100%;
    aspect-ratio: 1 / 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.c-icon--check {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 1px solid #333;
    border-radius: 50%;
    position: relative;
}

.c-icon--check::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 4px;
    width: 5px;
    height: 9px;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transform: rotate(45deg);
}

.c-table02 {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
    background: #fff;
    margin-bottom: 20px;
}

.c-table02 th,
.c-table02 td {
    border: 1px solid #ddd;
    padding: 15px;
}

.c-table02__ttl {
    background-color: #d8f3f0;
    color: #333;
    font-weight: bold;
    text-align: center;
}

.c-table02__txt {
    line-height: 1.5;
}

/* ==========================================================================
   共通スタイル（SP / PC 共通）
   ========================================================================== */
.p-benefit-card__title {
    color: #0BC1AA;
    font-size: 20px;
}

.p-benefit-card__flow {
    margin-top: 20px;
    text-align: center;
    padding: 15px;
    background-color: #f0f0f0;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-weight: bold;
    color: #395C6B;
    font-size: 14px;
}

.p-fee-guarantee__notes {
    padding-top: 15px;
}

.p-fee-guarantee__notes p {
    margin: 0 0 8px;
}

.p-reason {
    padding: 40px 15px;
}

.p-reason__img-wrapper {
    text-align: center;
}

.p-reason__img-wrapper img {
    width: 100%;
    max-width: 1000px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.p-faq {
    padding: 40px 15px;
}

.p-faq__list {
    border-radius: 8px;
    overflow: hidden;
}

.p-faq__q {
    padding: 15px 70px 15px 15px;
    border-bottom: 1px solid #eee;
    font-weight: bold;
    color: #f94568;
    position: relative;
    margin-top: 10px;
    font-size: 18px;
}

.p-faq__a {
    display: none;
    padding: 15px;
    background-color: #fafafa;
    margin: 0;
}
.l-footer {
    padding: 15px;
    background-color: #333;
    color: #ccc;
    text-align: center;
    font-size: 12px;
}


/* ==========================================================================
   SP Styles（〜768px）
   ========================================================================== */
@media screen and (max-width: 780px) {
    html, body {
        overflow-x: hidden ;
    }
    /* section */
    .p-problem,
    .p-benefit,
    .p-single-request,
    .p-flow,
    .p-fee,
    .p-fee-intro,
    .p-fee-zangyo,
    .p-reason,
    .p-faq {
        padding: 15px;
        margin: 0 0 30px 0;
    }   
    .p-contact__message {
        font-size: 19px;
        color: #395c6b;
    }
    .p-contact{
        padding: 15px 15px 25vw 15px;
    }


    /* キービジュアル */
    .l-fv {
        width: 100%;
        background-color: #fff;
        border-top: 4px solid #0BC1AA;
    }

    .p-main-visual {
        margin: 0;
        padding: 0;
        line-height: 0;
    }

    .p-main-visual img {
        width: 100%;
        height: auto;
        display: block;
    }

    .c-heading {
        font-size: 30px;
        color: #395c6b;
        text-align: center;
        margin-bottom: 20px;
        padding-top: 50px;
        font-weight: 500;
        position: relative;
        z-index: 1;
    }

    .c-heading span {
        position: relative;
        /* display: inline-block; */
        word-break: break-all;
    }

    .c-heading span:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0px 0 90px 60px;
        border-color: transparent transparent #ffadbd transparent;
        position: absolute;
        z-index: -1;
        transform: rotate(30deg);
        top: -43px;
        left: -10px;
    }

    .c-heading span:after {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 60px 0 20px 40px;
        border-color: transparent transparent #bdf3ed transparent;
        position: absolute;
        z-index: -1;
        transform: rotate(40deg);
        bottom: -5px;
        right: -10px;
        margin: 0;
    }

    .l-container {
        width: 100%;
        margin: 0 auto;
        box-sizing: border-box;
    }

    /* 一つでも当てはまればぜひご相談ください */
    /* .p-problem__list {
        list-style: none;
        padding: 20px;
        margin: 0;
        background-color: #f1f5f9;
        border-radius: 8px;
        color: #395c6b;
    }

    .p-problem__item {
        padding: 5px 0;
        margin-bottom: 0;
        font-size: 17px;
        font-weight: 700;
        list-style: disc inside;
    } */

    .p-problem__container {
        display: flex;
        flex-direction: column; /* 縦に並べる */
        margin: 40px 15px;
    }
    
    .p-problem__list {
        list-style: none;
        padding: 20px;
        margin: 0;
        background-color: #f1f5f9;
        border-radius: 8px;
        color: #395c6b;
    }
    
    .p-problem__item {
        padding: 5px 0;
        margin-bottom: 0;
        font-size: 17px;
        font-weight: 700;
        list-style: disc inside;
    }
    
    /* イラスト（スマホではリストの下） */
    .p-problem__image {
        margin: 20px auto 0;
        max-width: 200px; /* スマホでのイラストサイズ */
        width: 100%;
        text-align: center;
    }
    
    .p-problem__image img {
        width: 100%;
        height: auto;
    }


    .p-problem__item::marker {
        color: #0BC1AA;
    }

    .p-problem__message {
        font-size: 18px;
        font-weight: bold;
        color: #F94568;
        text-align: center;
        margin-bottom: 10px;
    }

    /* 「残業代請求」と「退職代行」をセットで依頼するメリット */

    .p-benefit-card {
        background-color: #fff;
        padding: 20px;
        margin-bottom: 20px;
        border-radius: 8px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        border-top: 4px solid #0BC1AA;
    }

    .p-benefit-card__title {
        display: flex;
        align-items: center;
        gap: 3vw;
        margin-bottom: 4vw;
    }

    .p-benefit-card__icon {
        flex-shrink: 0;
        width: 18vw;
    }

    .p-benefit-card__icon img {
        width: 100%;
        height: auto;
    }

    .p-benefit-card__text-group {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1vw;
        min-width: 0;
    }

    .p-benefit-card__label {
        display: inline-block;
        background-color: #0BC1AA;
        color: #fff;
        font-size: 3.7vw;
        font-weight: bold;
        padding: 0.5vw 4vw;
        border-radius: 50px;
        line-height: 1.5;
    }

    .p-benefit-card__main-text {
        color: #0BC1AA;
        font-size: 5.3vw;
        font-weight: bold;
        line-height: 1.4;
        word-break: break-all;
    }

    /* 退職代行と残業代どちらか一方のみのご依頼もおまかせください */


    /* 退職代行＋残業代請求のご相談から解決までの流れ */
    .p-flow__list {
        list-style: none;
        padding: 0;
    }

    .p-flow__item {
        border: 2px solid #0bb6c1;
        border-radius: 8px;
        padding: 15px;
        background-color: #fff;
        margin-bottom: 10px;
        position: relative;
    }

    .p-flow__step {
        background-color: #0bb6c1;
        color: white;
        padding: 5px 10px;
        border-radius: 4px;
        font-weight: bold;
        display: inline-block;
    }

    .p-flow__title {
        font-size: 20px;
        color: #0bb6c1;
        margin: 10px 0;
        cursor: pointer;
        position: relative;
        padding-right: 45px;
        transition: color 0.3s;
    }

    .p-flow__title:hover {
        opacity: 0.7;
    }

    .p-flow__title::after {
        content: '';
        position: absolute;
        right: 5px;
        top: 50%;
        transform: translateY(-50%);
        width: 28px;
        height: 28px;
        background-color: #0bb6c1;
        border-radius: 50%;
        transition: transform 0.3s;
    }

    .p-flow__title::before {
        content: '';
        position: absolute;
        right: 12px;
        top: 50%;
        width: 14px;
        height: 2px;
        background-color: #fff;
        z-index: 2;
        transform: translateY(-50%);
    }

    .p-flow__title span.acc-line {
        position: absolute;
        right: 18px;
        top: 50%;
        width: 2px;
        height: 14px;
        background-color: #fff;
        z-index: 3;
        transform: translateY(-50%);
        transition: transform 0.3s, opacity 0.3s;
    }

    .p-flow__title.is-open span.acc-line {
        transform: translateY(-50%) rotate(90deg);
    }

    .p-flow__text {
        display: none;
        padding-top: 10px;
        border-top: 1px dashed #eee;
        margin-top: 10px;
    }

    .p-flow__arrow {
        text-align: center;
        color: #0bb6c1;
        font-size: 24px;
        margin: 10px 0;
    }

    .p-flow__notes {
        margin-top: 30px;
        border: 1px solid #ddd;
        padding: 15px;
        border-radius: 8px;
        background-color: #f5f5f5;
    }

    /* 退職代行×残業代の費用について */
    .p-fee-intro__price-display {
        text-align: center;
        margin-bottom: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        line-height: 1.2;
    }

    .p-fee-intro__plan-name {
        font-size: 27px;
        font-weight: bold;
        color: #f94568;
        display: block;
        margin-top: 20px;
    }

    .p-fee-intro__main-price {
        font-size: 60px;
        font-weight: bold;
        color: #F94568;
        font-family: "Arial", sans-serif;
    }

    .p-fee-intro__unit {
        font-size: 20px;
        margin-left: 4px;
    }

    .p-fee-intro__flex {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 25px;
    }

    .p-fee-intro__bubble {
        position: relative;
        background: #fff;
        border: 2px solid #0bc1ab;
        border-radius: 10px;
        padding: 15px;
        width: 60%;
        box-sizing: border-box;
    }

    .p-fee-intro__bubble::after,
    .p-fee-intro__bubble::before {
        left: 100%;
        top: 50%;
        border: solid transparent;
        content: "";
        height: 0;
        width: 0;
        position: absolute;
        pointer-events: none;
    }

    .p-fee-intro__bubble::after {
        border-color: rgba(255, 255, 255, 0);
        border-left-color: #fff;
        border-width: 10px;
        margin-top: -10px;
    }

    .p-fee-intro__bubble::before {
        border-color: rgba(11, 193, 171, 0);
        border-left-color: #0bc1ab;
        border-width: 13px;
        margin-top: -13px;
    }

    .p-fee-intro__text {
        margin: 0;
        font-size: 3.8vw;
        line-height: 1.5;
        color: #333;
    }

    .p-fee-intro__image {
        width: 35%;
        flex-shrink: 0;
    }

    .p-fee__cash-flows {
        text-align: center;
    }

    /* 委任期間・支払い方法テーブル */
    .p-fee-info {
        margin-top: 30px;
    }

    .p-fee-info__title {
        color: #0bc1aa;
        font-size: 22px;
        text-align: center;
        margin: 20px 0 10px;
        font-weight: bold;
    }

    .p-fee-info__title--border {
        border: 1px solid #333;
        color: #333;
        background-color: #fff;
        padding: 10px;
        margin-top: 30px;
        margin-bottom: 0;
    }

    .p-fee-info__table {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 40px;
        border: 1px solid #ddd;
    }

    .p-fee-info__table th,
    .p-fee-info__table td {
        border: 1px solid #ddd;
        padding: 12px;
    }

    .p-fee-info__table th {
        background-color: #d8f3f0;
        text-align: center;
        width: 35%;
    }

    .p-fee-info__table td {
        background-color: #fff;
    }

    .p-fee-info__table--bg-accent td {
        background-color: #fff2e6;
        text-align: center;
    }

    .p-fee-info__list {
        margin-bottom: 20px;
        padding: 20px;
        border: 1px solid #ddd;
        list-style: none;
        background-color: #d8f3f0;
    }

    .p-fee-info__list li {
        position: relative;
        padding-left: 20px;
        margin-bottom: 12px;
        color: #395c6b;
        line-height: 1.4;

        &:last-child {
            margin-bottom: 0;
        }
    }

    .p-fee-info__list li::before {
        content: "●";
        position: absolute;
        left: 0;
        color: #0bc1aa;
        font-size: 10px;
        top: 1px;
    }

    /* 残業代請求の費用について */
    .p-price-zangyo__accordion {
        margin-bottom: 20px;
    }

    .p-price-zangyo__acc-trigger {
        border: 2px solid #ddd;
        border-radius: 8px;
        background-color: #fff;
        padding: 20px 20px 20px 10px;
        position: relative;
        cursor: pointer;
        transition: background-color 0.2s;
    }

    .p-price-zangyo__list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .p-price-zangyo__list li {
        font-size: 16px;
        margin-bottom: 10px;
    }

    .p-price-zangyo__list li:last-child {
        margin-bottom: 0;
    }

    .p-price-zangyo__label {
        color: #395C6B;
    }

    .p-price-zangyo__acc-icon {
        position: absolute;
        right: 15px;
        bottom: 20px;
        width: 28px;
        height: 28px;
        background-color: #0BC1AA;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .p-price-zangyo__acc-icon::before,
    .p-price-zangyo__acc-icon::after {
        content: "";
        position: absolute;
        background-color: #fff;
    }

    .p-price-zangyo__acc-icon::before {
        width: 14px;
        height: 2px;
    }

    .p-price-zangyo__acc-icon::after {
        width: 2px;
        height: 14px;
        transition: transform 0.3s;
    }

    .js-acc-trigger.is-open .p-price-zangyo__acc-icon::after {
        transform: rotate(90deg);
    }

    .p-price-zangyo__acc-content {
        display: none;
        margin-top: -2px;
        border-radius: 8px;
        overflow: hidden;
        padding-top: 20px;
    }

    .p-fee__acc-table {
        border: none;
    }

    .p-fee__acc-table td,
    .p-fee__acc-table th {
        border-left: none;
        border-right: none;
    }

    .p-fee__acc-table-dashed {
        border-top: 1px dashed #ddd;
    }

    .p-price-zangyo__box {
        margin-top: 40px;
        padding: 25px;
        background-color: #f5f5f5;
        border-radius: 8px;
        font-size: 14px;
    }

    /* 損をさせない保証セクション */
    .p-fee-guarantee {
        margin: 60px 15px;
        width: auto;
        position: relative;
        /* 外側の線（2pxで細く設定） */
        border: 2px solid #0BC1AA;
        border-radius: 8px;
        background-color: #fff;
        z-index: 1;
        box-sizing: border-box;
    }

    /* 内側の線を作成 */
    .p-fee-guarantee::before {
        content: "";
        position: absolute;
        /* 隙間の広さ：5px（ここをお好みで調整） */
        top: 5px;
        left: 5px;
        right: 5px;
        bottom: 5px;
        /* 内側の線（2px） */
        border: 1px solid #0BC1AA;
        border-radius: 4px;
        pointer-events: none;
    }

    .p-fee-guarantee__label {
        position: absolute;
        top: -25px;
        left: 50%;
        transform: translateX(-50%);
        background-color: #F94568;
        color: #fff;
        padding: 4px 15px;
        font-weight: bold;
        font-size: 20px;
        border-radius: 504px;
        white-space: nowrap;
        z-index: 1;
    }

    .p-fee-guarantee__inner {
        padding: 25px 20px 20px;
    }

    .p-fee-guarantee__title {
        font-size: 28px;
        color: #0BC1AA;        
        margin: 10px 0 15px;
        font-weight: bold;
        text-align: center;
    }

    .p-fee-guarantee__body {
        font-size: 17px;
        line-height: 2;
        margin-bottom: 20px;
    }

    /* FAQセクション */
    .p-faq__acc-icon {
        position: absolute;
        right: 15px;
        bottom: 40%;
        width: 28px;
        height: 28px;
        background-color: #f94568;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.3s ease;
    }

    .p-faq__acc-icon::before,
    .p-faq__acc-icon::after {
        content: "";
        position: absolute;
        background-color: #fff;
        transition: all 0.3s ease;
    }

    /* 横棒 */
    .p-faq__acc-icon::before {
        width: 14px;
        height: 2px;
    }

    /* 縦棒 (プラスを形成) */
    .p-faq__acc-icon::after {
        width: 2px;
        height: 14px;
    }

    /* 開いた状態：縦棒を消してマイナスにする */
    .p-faq__q.is-open .p-faq__acc-icon::after {
        transform: rotate(90deg);
        opacity: 0;
    }   

    /* CTAセクション */
    .cta {
        background-color: #ecf3f4;
    }   
    .cta__inner {
        max-width: 100%;
        margin: 0 auto 30px;
        padding: 30px;
    }

    .cta__ttl {
        font-size: 4vw;
        text-align: center;
        line-height: 1.5;
        color: #fff;
    }

    .cta__ttl--emphasis {
        font-weight: 700;
        font-size: 7.6vw;
    }

    .cta__tel {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 4.8vw;
    }

    .cta__call--icon {
        width: 12vw;
        margin-right: 3.6vw;
    }

    .cta__call {
        text-align: center;
        line-height: 1.2;
    }

    .cta__call--tel {
        font-size: 6.4vw;
        color: #fff;
        font-weight: 700;
        line-height: 1;
        display: block;
    }

    .cta__call--time {
        font-size: 4vw;
        color: #fff;
    }

    .cta__btn-box {
        max-width: 100%;
        margin: 2.5vw auto 0;
        display: flex;
        flex-direction: row;
        gap: 2.5vw;
    }

    .cta__btn {
        padding: 3vw 2vw;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex: 1 1 0;
        min-width: 0;
        border-radius: 5px;
        font-size: 4vw;
        font-weight: bold;
        transition: transform 0.5s;
        text-align: left;
        line-height: 1.3;
    }

    .cta__btn__time {
        display: inline-block;
        background: #fff;
        color: #FF0000;
        font-size: 2.8vw;
        padding: 0.8vw 1.5vw;
        margin-right: 1.5vw;
        margin-bottom: 0;
        text-align: center;
        border-radius: 5px;
        white-space: nowrap;
        flex-shrink: 0;
    }

    .cta__btn--call {
        color: #fff;
        border: 2px solid #f94568;
        background-color: #f94568;
        box-shadow: 0 3px 0 #d32e4e;       
    }

    .cta__call__text {
        display: flex;
        flex-direction: column;
        margin-top: 2vw;
    }

    .cta__btn--web {
        color: #fff;
        margin-bottom: 0;
        background-color: #09a995;
        border: 2px solid #09a995;
        padding: 4vw 0;
        box-shadow: 0 3px 0 #00584f;       
    }

    .cta__btn__time--web {
        background: #fff;
        color: #09a995;
    }

    .cta__btn--line {
        background-color: #fff;
        color: #0bc1aa;
        border: 2px solid #0bc1aa;
    }

    .cta__btn__time--line {
        background: #0bc1aa;
        color: #fff;
    }

    .cta__btn__text {
        font-size: 4.3vw;
        color: #fff;
        text-align: center;
        margin-top: 4.8vw;
        line-height: 1.3;
    }

    .floating {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background: #fff;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
        z-index: 1000;
        padding: 15px 30px 0 30px;    
        box-sizing: border-box;   
        overflow: hidden;
    }
    .floating__inner {
        padding-bottom: 15px;
        box-sizing: border-box;           
    }
}

/* ==========================================================================
   PC Styles（769px〜）
   ========================================================================== */
@media screen and (min-width: 781px) {

    /* section */
    .p-problem,
    .p-benefit,
    .p-single-request,
    .p-flow,
    .p-fee,
    .p-fee-intro,
    .p-reason,
    .p-faq {
        margin: 0 0 10vw 0;
    }
    .p-fee-zangyo{
        margin: 0 0 90px 0;
    }
    .p-contact__message {
        font-size: 19px;
        color: #395c6b;
    }
    .p-contact{
        padding-bottom: 15vw;
    }


    .l-fv {
        width: 100%;
        background-color: #fff;
    }

    .p-main-visual {
        margin: 0;
        padding: 0;
        line-height: 0;
        text-align: center;
        background-color:#f5f5f5;
    }

    .p-main-visual img {
        width: 100%;
        max-width: 1200px;
        height: auto;
        margin: 0 auto;
        display: block;
    }

    .c-heading {
        font-size: 40px;
        color: #395c6b;
        text-align: center;
        margin-bottom: 40px;
        padding-top: 50px;
        font-weight: 500;
        position: relative;
        z-index: 1;
    }

    .c-heading span {
        position: relative;
        display: inline-block;
    }

    .c-heading span:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0px 0 90px 60px;
        border-color: transparent transparent #ffadbd transparent;
        position: absolute;
        z-index: -1;
        transform: rotate(30deg);
        top: -43px;
        left: -10px;
    }

    .c-heading span:after {
        content: "";
        width: 0;
        height: 80px;
        border-style: solid;
        border-width: 80px 0 30px 50px;
        border-color: transparent transparent #bdf3ed transparent;
        position: absolute;
        z-index: -1;
        transform: rotate(40deg);
        bottom: -30px;
        right: 0;
        margin: auto;
    }

    .l-container {
        max-width: 900px;
        margin: 0 auto;
    }

    /* 一つでも当てはまればぜひご相談ください */
    .p-problem__list {
        list-style: none;
        padding: 20px 40px;
        margin: 40px auto;
        background-color: #f1f5f9;
        border-radius: 8px;
        color: #395c6b;       
    }

    .p-problem__item {
        padding: 5px 0;
        margin-bottom: 8px;
        font-size: 22px;
        list-style: disc inside;
        font-weight: 700;
    }

    .p-problem__item::marker {
        color: #0BC1AA;
    }

    .p-problem__message {
        font-size: 24px;
        font-weight: bold;
        color: #F94568;
        text-align: center;
        margin-bottom: 10px;
    }

    /* 「残業代請求」と「退職代行」をセットで依頼するメリット */
    .p-benefit-card {
        background-color: #fff;
        padding: 20px;
        margin-bottom: 30px;
        border-radius: 8px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        border-top: 4px solid #0BC1AA;
    }

    .p-benefit-card__title {
        display: flex;
        align-items: center;
        gap: 20px;
        margin-bottom: 25px;
    }

    .p-benefit-card__icon {
        flex-shrink: 0;
        width: 80px;
    }

    .p-benefit-card__icon img {
        width: 100%;
        height: auto;
    }

    .p-benefit-card__text-group {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }

    .p-benefit-card__label {
        display: inline-block;
        background-color: #0BC1AA;
        color: #fff;
        font-size: 16px;
        font-weight: bold;
        padding: 2px 20px;
        border-radius: 50px;
        line-height: 1.6;
    }

    .p-benefit-card__main-text {
        color: #0BC1AA;
        font-size: 24px;
        font-weight: bold;
        line-height: 1.3;
    }

    /* 退職代行と残業代どちらか一方のみのご依頼もおまかせください */

    /* 退職代行＋残業代請求のご相談から解決までの流れ */
    .p-flow__wrapper {
        margin: 0 auto;
    }

    .p-flow__list {
        list-style: none;
        padding: 0;
    }

    .p-flow__item {
        border: 2px solid #0bb6c1;
        border-radius: 8px;
        padding: 15px;
        background-color: #fff;
        margin-bottom: 10px;
        position: relative;
    }

    .p-flow__step {
        background-color: #0bb6c1;
        color: white;
        padding: 5px 10px;
        border-radius: 4px;
        font-weight: bold;
        display: inline-block;
    }

    .p-flow__title {
        font-size: 20px;
        color: #0bb6c1;
        margin: 10px 0;
        cursor: pointer;
        position: relative;
        padding-right: 45px;
        transition: color 0.3s;
    }

    .p-flow__title:hover {
        opacity: 0.7;
    }

    .p-flow__title::after {
        content: '';
        position: absolute;
        right: 5px;
        top: 50%;
        transform: translateY(-50%);
        width: 28px;
        height: 28px;
        background-color: #0bb6c1;
        border-radius: 50%;
        transition: transform 0.3s;
    }

    .p-flow__title::before {
        content: '';
        position: absolute;
        right: 12px;
        top: 50%;
        width: 14px;
        height: 2px;
        background-color: #fff;
        z-index: 2;
        transform: translateY(-50%);
    }

    .p-flow__title span.acc-line {
        position: absolute;
        right: 18px;
        top: 50%;
        width: 2px;
        height: 14px;
        background-color: #fff;
        z-index: 3;
        transform: translateY(-50%);
        transition: transform 0.3s, opacity 0.3s;
    }

    .p-flow__title.is-open span.acc-line {
        transform: translateY(-50%) rotate(90deg);
    }

    .p-flow__text {
        display: none;
        padding-top: 10px;
        border-top: 1px dashed #eee;
        margin-top: 10px;
    }

    .p-flow__arrow {
        text-align: center;
        color: #0bb6c1;
        font-size: 24px;
        margin: 10px 0;
    }

    .p-flow__notes {
        margin-top: 30px;
        border: 1px solid #ddd;
        padding: 15px;
        border-radius: 8px;
        background-color: #f5f5f5;
    }

    /* 退職代行×残業代の費用について */

    .p-fee-intro__price-display {
        text-align: center;
        margin-bottom: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        line-height: 1.2;
    }

    .p-fee-intro__plan-name {
        font-size: 45px;
        font-weight: bold;
        color: #f94568;
        display: block;
        margin-top: 20px;
    }

    .p-fee-intro__main-price {
        font-size: 100px;
        font-weight: bold;
        color: #F94568;
        font-family: "Arial", sans-serif;
    }

    .p-fee-intro__unit {
        font-size: 28px;
    }

    .p-fee-intro__flex {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-top: 25px;
    }

    .p-fee-intro__bubble {
        padding: 30px;
        border-radius: 10px;
        width: 65%;
        position: relative;
        background: #fff;
        border: 2px solid #0bc1ab;
    }

    .p-fee-intro__bubble::after,
    .p-fee-intro__bubble::before {
        left: 100%;
        top: 50%;
        border: solid transparent;
        content: "";
        height: 0;
        width: 0;
        position: absolute;
        pointer-events: none;
    }

    .p-fee-intro__bubble::after {
        border-color: rgba(255, 255, 255, 0);
        border-left-color: #fff;
        border-width: 10px;
        margin-top: -10px;
    }

    .p-fee-intro__bubble::before {
        border-color: rgba(11, 193, 171, 0);
        border-left-color: #0bc1ab;
        border-width: 13px;
        margin-top: -13px;
    }

    .p-fee-intro__text {
        font-size: 18px;
    }

    .p-fee-intro__image {
        width: 240px;
    }

    .p-fee__cash-flows {
        margin-top: 30px;
        text-align: center;
        width: 50%;
        margin-left: auto;
        margin-right: auto;
    }

    /* 委任期間・支払い方法テーブル */
    .p-fee-info {
        margin: 40px auto 0;
    }

    .p-fee-info__title {
        color: #0bc1aa;
        font-size: 26px;
        text-align: center;
        margin: 20px 0 10px;
        font-weight: bold;
    }

    .p-fee-info__title--border {
        font-size: 24px;
        padding: 15px;
        border: 1px solid #333;
        color: #333;
        background-color: #fff;
        margin-top: 30px;
        margin-bottom: 0;
    }

    .p-fee-info__table {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 60px;
        border: 1px solid #ddd;
    }

    .p-fee-info__table th,
    .p-fee-info__table td {
        border: 1px solid #ddd;
        padding: 20px;
        font-size: 16px;
    }

    .p-fee-info__table th {
        background-color: #d8f3f0;
        text-align: center;
        width: 35%;
    }

    .p-fee-info__table td {
        background-color: #fff;
    }

    .p-fee-info__table--bg-accent td {
        background-color: #fff2e6;
        text-align: center;
    }

    .p-fee-info__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px 24px;
        margin-bottom: 20px;
        padding: 20px;
        border: 1px solid #ddd;
        list-style: none;
        background-color: #d8f3f0;
    }

    .p-fee-info__list li {
        position: relative;
        padding-left: 20px;
        margin-bottom: 0;
        color: #395c6b;
        line-height: 1.4;
    }

    .p-fee-info__list li::before {
        content: "●";
        position: absolute;
        left: 0;
        color: #0bc1aa;
        font-size: 10px;
        top: 1px;
    }

    /* 残業代請求の費用について */
    .p-price-zangyo__accordion {
        margin-bottom: 20px;
    }

    .p-price-zangyo__acc-trigger {
        border: 2px solid #ddd;
        border-radius: 8px;
        background-color: #fff;
        padding: 20px;
        position: relative;
        cursor: pointer;
        transition: background-color 0.2s;
    }

    .p-price-zangyo__acc-trigger:hover {
        background-color: #f9f9f9;
    }

    .p-price-zangyo__list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .p-price-zangyo__list li {
        font-size: 16px;
        margin-bottom: 10px;
    }

    .p-price-zangyo__list li:last-child {
        margin-bottom: 0;
    }

    .p-price-zangyo__label {
        color: #395C6B;
    }

    .p-price-zangyo__acc-icon {
        position: absolute;
        right: 15px;
        bottom: 15px;
        width: 28px;
        height: 28px;
        background-color: #0BC1AA;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .p-price-zangyo__acc-icon::before,
    .p-price-zangyo__acc-icon::after {
        content: "";
        position: absolute;
        background-color: #fff;
    }

    .p-price-zangyo__acc-icon::before {
        width: 14px;
        height: 2px;
    }

    .p-price-zangyo__acc-icon::after {
        width: 2px;
        height: 14px;
        transition: transform 0.3s;
    }

    .js-acc-trigger.is-open .p-price-zangyo__acc-icon::after {
        transform: rotate(90deg);
    }

    .p-price-zangyo__acc-content {
        display: none;
        margin-top: -2px;
        border-radius: 8px;
        overflow: hidden;
        padding-top: 20px;
    }

    .p-fee__acc-table {
        border: none;
    }

    .p-fee__acc-table td,
    .p-fee__acc-table th {
        border-left: none;
        border-right: none;
    }

    .p-fee__acc-table-dashed {
        border-top: 1px dashed #ddd;
    }

    .p-price-zangyo__box {
        margin-top: 40px;
        padding: 25px;
        background-color: #f5f5f5;
        border-radius: 8px;
        font-size: 14px;
    }

    .c-button {
        width: 400px;
        font-size: 18px;
    }

    /* 損をさせない保証セクション */
    .p-fee-guarantee {
        max-width: 600px;
        margin: 60px auto;
        width: 100%;
        position: relative;
        /* 外側の線（2px） */
        border: 2px solid #0BC1AA;
        border-radius: 8px;
        background-color: #fff;
        z-index: 1;
    }

    /* 内側の線を作成 */
    .p-fee-guarantee::before {
        content: "";
        position: absolute;
        /* 隙間の広さ：PCは少しリッチに8px */
        top: 8px;
        left: 8px;
        right: 8px;
        bottom: 8px;
        /* 内側の線（2px） */
        border: 1px solid #0BC1AA;
        border-radius: 4px;
        pointer-events: none;
    }

    .p-fee-guarantee__label {
        position: absolute;
        top: -22px;
        left: 50%;
        transform: translateX(-50%);
        background-color: #F94568;
        color: #fff;
        padding: 6px 30px;
        font-weight: bold;
        font-size: 18px;
        border-radius: 504px;
        white-space: nowrap;
        z-index: 1;
    }

    .p-fee-guarantee__inner {
        padding: 40px;
    }

    .p-fee-guarantee__title {
        font-size: 32px;
        color: #0BC1AA;       
        margin: 10px 0 15px;
        font-weight: bold;
        text-align: center;        
    }

    .p-fee-guarantee__body {
        font-size: 17px;
        line-height: 2;
        margin-bottom:20px;
    }

    .p-price__flex {
        display: flex;
        gap: 20px;
        justify-content: center;
        align-items: stretch;
    }

    .p-price-card {
        flex: 1;
        margin-bottom: 0;
    }

    .p-contact__btns {
        display: flex;
        justify-content: center;
        gap: 20px;
        margin-top: 20px;
    }

    .p-contact__btns .c-button {
        margin: 0;
    }
    /* FAQセクション */
    .p-faq__acc-icon {
        position: absolute;
        right: 20px;
        top: 50%;
        transform: translateY(-50%); /* 垂直中央揃え */
        width: 32px; /* PCは少し大きく */
        height: 32px;
        background-color: #f94568;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: opacity 0.3s ease;
    }

    .p-faq__acc-icon::before,
    .p-faq__acc-icon::after {
        content: "";
        position: absolute;
        background-color: #fff;
        transition: all 0.3s ease;
    }

    /* 横棒 */
    .p-faq__acc-icon::before {
        width: 16px;
        height: 2px;
    }

    /* 縦棒 */
    .p-faq__acc-icon::after {
        width: 2px;
        height: 16px;
    }

    /* 開いた状態：縦棒を消してマイナスにする */
    .p-faq__q.is-open .p-faq__acc-icon::after {
        transform: rotate(90deg);
        opacity: 0;
    }

    /* ホバー時の挙動 */
    .p-faq__q:hover .p-faq__acc-icon {
        opacity: 0.8;
    }

    /* PC用アコーディオンテーブル幅調整 */
    .c-table02__ttl {
        width: 200px;
    }

    /* CTAセクション */
    .cta {
        padding: 60px 0;
        width: 100%;
        background-color: #ecf3f4;
        margin-bottom: 10vw;
    }

    .cta__inner {
        max-width: 1000px;
        margin: 0 auto;
    }

    .cta__ttl {
        font-size: 20px;
        text-align: center;
        line-height: 1.5;
        color: #fff;
    }

    .cta__ttl--emphasis {
        font-weight: 700;
        font-size: 32px;
    }

    .cta__tel {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 20px;
    }

    .cta__call--icon {
        width: 80px;
        margin-right: 15px;
    }

    .cta__call {
        text-align: center;
        line-height: 1.2;
    }

    .cta__call--tel {
        font-size: 60px;
        color: #f94568;
        font-weight: 700;
        margin-bottom: 5px;
        display: block;
    }
    .cta__call--rb1,.cta__call--rb2 {
        font-size: 18px;
        color: #f94568;
        display: inline-block       
    }

    .cta__call--rb1 {
        transform: translateX(50px);
    }   

    .cta__call--rb2 {
        transform: translateX(130px);
    }

    .cta__call--time {
        font-size: 19px;
        color: #f94568;
    }

    .cta__btn-box {
        max-width: 660px;
        margin: 40px auto 0;
        /* display: flex;
        flex-direction: row;
        justify-content: space-between;
        gap: 15px;         */
    }

    .cta__btn {
        padding: 15px 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 5px;
        color: #ee3281;
        font-size: 24px;
        font-weight: bold;
        flex:1;       
        /* max-width: 350px; */
    }

    .cta__btn:hover {
        transform: translateY(4px);
    }

    .cta__btn__time {
        display: inline-block;
        background: #fff;
        color: #09a995;
        font-size: 14px;
        padding: 5px 8px;
        margin-right: 15px;
        text-align: center;
        border-radius: 5px;
    }

    .cta__btn--web {
        color: #fff;
        background-color: #09a995;
        border: 2px solid #09a995;
        box-shadow: 0 3px 0 #00584f;          
    }

    .cta__btn__time--web {
        background: #fff;
        color: #09a995;
    }
    .cta__btn__time--web:hover {
        transform: translateY(4px);
        box-shadow: 0 1px 0 #00584f; 
    }

    .cta__btn--line {
        background-color: #ffffff;
        color: #008d7f;
        border: 2px solid #008d7f;
    }

    .cta__btn__time--line {
        background: #008d7f;
        color: #fff;
    }

    .cta__btn__text {
        font-size: 18px;
        color: #fff;
        text-align: center;
        margin-top: 20px;
    }
    .floating {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background: #fff;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
        z-index: 1000;
        padding: 15px 30px 0 30px;
    }
    .floating__inner {
        padding-bottom: 15px;
    }   
}

/* --------------------------------------------------------------------------
   残業代チェッカー（lp/zangyoudaiseikyuu/2510 より移植）
   -------------------------------------------------------------------------- */

.p-flow .inner {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    background: #f3f3f3;
    padding: 50px 15px;
}

@media screen and (max-width: 767px) {
    .p-flow .inner {
        padding: 30px 15px 40px;
    }
}

/* 残業代計算ツール - スライド式UI */

/* 計算ツール全体のコンテナ */
.calculator-slider {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  padding: 40px 30px;
}

@media screen and (max-width: 767px) {
  .calculator-slider {
    padding: 30px 20px;
  }
}

/* スライドアイテム */
.calculator-slide-item {
  position: absolute;
  width: 100%;
  left: 0;
  top: 40px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .calculator-slide-item {
    top: 30px;
  }
}

.calculator-slide-item.active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* 質問コンテナ */
.calculator-question {
  min-height: 300px;
  margin-bottom: 20px;
}

@media screen and (max-width: 767px) {
  .calculator-question {
    min-height: 350px;
    margin-bottom: 15px;
  }
}

/* 質問番号 */
.question-number {
  display: inline-block;
  background: #1AC067;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  padding: 8px 20px;
  border-radius: 25px;
  margin-bottom: 15px;
}

@media screen and (max-width: 767px) {
  .question-number {
    font-size: 16px;
    padding: 6px 16px;
    margin-bottom: 12px;
  }
}

/* 質問タイトル */
.question-title {
  font-size: 22px;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 25px;
  color: #222;
}

@media screen and (max-width: 767px) {
  .question-title {
    font-size: 18px;
    margin-bottom: 20px;
  }
}

/* 質問コンテンツ */
.question-content {
  margin-bottom: 20px;
}

/* セレクトボックスのスタイル */
.calculator-slider .c-select {
  position: relative;
  margin-bottom: 15px;
}

.calculator-slider .c-select select {
  width: 100%;
  padding: 12px 40px 12px 15px;
  font-size: 16px;
  border: 2px solid #ddd;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.3s ease;
  appearance: none;
}

.calculator-slider .c-select select:focus {
  outline: none;
  border-color: #1AC067;
}

.calculator-slider .c-select::after {
  content: '▼';
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: #666;
  pointer-events: none;
  font-size: 12px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .c-select select {
    padding: 10px 35px 10px 12px;
    font-size: 14px;
  }
  
  .calculator-slider .c-select::after {
    right: 12px;
    font-size: 10px;
  }
}

/* 複数セレクトの横並び */
.calculator-slider .select-group {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .select-group {
    gap: 10px;
  }
}

.calculator-slider .select-group .c-select {
  flex: 1;
  margin-bottom: 0;
}

/* チェックボックス */
.calculator-checkbox {
  display: flex;
  align-items: center;
  font-size: 16px;
  margin-top: 10px;
  cursor: pointer;
}

.calculator-checkbox input[type="checkbox"] {
  margin-right: 8px;
  width: 18px;
  height: 18px;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  .calculator-checkbox {
    font-size: 14px;
  }
  
  .calculator-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
  }
}

/* 注釈 */
.calculator-slider .question-note {
  list-style: none;
  padding: 0;
  margin-top: 15px;
  margin-bottom: 40px;
  font-size: 12px;
  line-height: 1.8;
  color: #666;
}

.calculator-slider .question-note li {
  margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .question-note {
    font-size: 11px;
    margin-bottom: 50px;
    line-height: 1.7;
  }
  
  .calculator-slider .question-note li {
    margin-bottom: 10px;
  }
}

/* フォームセクション */
.calculator-slider .form-section-title {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #1AC067;
  color: #222;
}

@media screen and (max-width: 767px) {
  .calculator-slider .form-section-title {
    font-size: 18px;
    margin-bottom: 15px;
  }
}

/* フォームグループ */
.calculator-slider .form-group {
  margin-bottom: 25px;
}

.calculator-slider .form-label {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .form-label {
    font-size: 14px;
  }
}

.calculator-slider .label-required {
  display: inline-block;
  background: #ff6b6b;
  color: #fff;
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 3px;
}

.calculator-slider .label-optional {
  display: inline-block;
  background: #999;
  color: #fff;
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 3px;
}

.calculator-slider .form-note-small {
  font-size: 12px;
  color: #666;
  margin: 5px 0;
}

.calculator-slider .form-note-description {
  font-size: 14px;
  line-height: 1.6;
  color: #444;
  margin: 10px 0 15px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .form-note-description {
    font-size: 12px;
  }
}

/* インプットフィールド */
.calculator-slider .c-input {
  width: 100%;
  padding: 12px 15px;
  font-size: 16px;
  border: 2px solid #ddd;
  border-radius: 4px;
  transition: border-color 0.3s ease;
}

.calculator-slider .c-input:focus {
  outline: none;
  border-color: #1AC067;
}

/* placeholder のスタイル */
.calculator-slider .c-input::placeholder {
  color: #bbb;
  opacity: 1;
}

.calculator-slider .c-input::-webkit-input-placeholder {
  color: #bbb;
  opacity: 1;
}

.calculator-slider .c-input::-moz-placeholder {
  color: #bbb;
  opacity: 1;
}

.calculator-slider .c-input:-ms-input-placeholder {
  color: #bbb;
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .calculator-slider .c-input {
    padding: 10px 12px;
    font-size: 14px;
  }
}

/* 名前入力（横並び） */
.calculator-slider .name-inputs {
  display: flex;
  gap: 15px;
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .name-inputs {
    gap: 10px;
  }
}

.calculator-slider .name-inputs .c-input {
  flex: 1;
}

/* プライバシーチェックボックス */
.calculator-slider .privacy-checkbox-wrapper {
  margin: 15px 0;
}

.calculator-slider .privacy-checkbox {
  display: flex;
  align-items: flex-start;
  margin-bottom: 5px;
}

.calculator-slider .privacy-checkbox input[type="checkbox"] {
  margin: 3px 8px 0 0;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  cursor: pointer;
}

.calculator-slider .privacy-checkbox label {
  font-size: 14px;
  line-height: 1.6;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  .calculator-slider .privacy-checkbox label {
    font-size: 12px;
  }
  
  .calculator-slider .privacy-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
  }
}

.calculator-slider .link-text {
  color: #1AC067;
  text-decoration: underline;
}

.calculator-slider .link-text:hover {
  color: #158a4a;
}

.calculator-slider .form-description {
  font-size: 14px;
  line-height: 1.6;
  color: #444;
  margin: 10px 0;
}

@media screen and (max-width: 767px) {
  .calculator-slider .form-description {
    font-size: 12px;
  }
}

/* ボタン共通スタイル */
.calculator-slider .calc-submit-btn,
.calculator-slider .calc-back-btn {
  width: 100%;
  background: linear-gradient(135deg, #1AC067 0%, #158a4a 100%);
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  padding: 18px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(26, 192, 103, 0.4);
  margin: 10px 0;
  text-align: center;
  display: block;
}

.calculator-slider .calc-submit-btn:hover,
.calculator-slider .calc-back-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(26, 192, 103, 0.6);
}

.calculator-slider .calc-submit-btn:active,
.calculator-slider .calc-back-btn:active {
  transform: translateY(0);
}

.calculator-slider .calc-submit-btn:disabled,
.calculator-slider .calc-back-btn:disabled {
  background: #ccc;
  cursor: not-allowed;
  box-shadow: none;
}

/* 戻るボタン */
.calculator-slider .calc-back-btn {
  background: linear-gradient(135deg, #999 0%, #666 100%);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.calculator-slider .calc-back-btn:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* ボタングループ */
.calculator-slider .button-group {
  display: flex;
  gap: 15px;
  margin: 20px 0;
}

/* 単独の戻るボタン（Q1～Q7用） - question-content内に配置 */
.calculator-slider .question-content > .calc-back-btn {
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .calc-submit-btn,
  .calculator-slider .calc-back-btn {
    font-size: 18px;
    padding: 15px;
  }
  
  .calculator-slider .button-group {
    flex-direction: column;
    gap: 10px;
  }
  
  .calculator-slider .question-content > .calc-back-btn {
    margin-top: 12px;
  }
}

/* フォーム注釈 */
.calculator-slider .form-notes {
  list-style: none;
  padding: 0;
  margin-top: 15px;
  margin-bottom: 50px;
  font-size: 12px;
  line-height: 1.8;
  color: #666;
}

.calculator-slider .form-notes li {
  margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .form-notes {
    font-size: 11px;
    margin-bottom: 60px;
    line-height: 1.7;
  }
  
  .calculator-slider .form-notes li {
    margin-bottom: 10px;
  }
}

/* プログレスバー */
.calculator-slider .progress-bar {
  position: relative;
  width: 100%;
  height: 8px;
  background: #e0e0e0;
  border-radius: 10px;
  margin-top: 50px;
  overflow: hidden;
}

.calculator-slider .progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1AC067 0%, #158a4a 100%);
  border-radius: 10px;
  transition: width 0.4s ease;
}

.calculator-slider .progress-text {
  text-align: center;
  font-size: 14px;
  color: #666;
  margin-top: 10px;
  margin-bottom: 20px;
  font-weight: bold;
}

.calculator-slider .progress-text .current-step {
  color: #1AC067;
  font-size: 18px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .progress-bar {
    height: 6px;
    margin-top: 60px;
  }
  
  .calculator-slider .progress-text {
    font-size: 12px;
    margin-top: 8px;
    margin-bottom: 15px;
  }
  
  .calculator-slider .progress-text .current-step {
    font-size: 16px;
  }
}

/* エラーメッセージ */
.calculator-slider .js-vali-err {
  margin-top: 8px;
}

.calculator-slider .c-err {
  color: #ff6b6b;
  font-size: 14px;
  font-weight: bold;
  display: block;
  margin-top: 5px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .c-err {
    font-size: 12px;
  }
}

/* アニメーション */
@keyframes calculator-slide-in-right {
  from {
    transform: translateX(50px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.calculator-slide-item.active {
  animation: calculator-slide-in-right 0.4s ease;
}

/* スライド移動時の調整 */
.calculator-slider form {
  position: relative;
}

/* 結果表示画面 */
.calculator-result {
  text-align: center;
  padding: 30px 20px;
}

.calculator-slider .result-title {
  font-size: 24px;
  font-weight: bold;
  color: #1AC067;
  margin-bottom: 30px;
}

.calculator-slider .result-amount {
  font-size: 48px;
  font-weight: bold;
  color: #1AC067;
  margin: 20px 0;
}

.calculator-slider .result-amount .amount-number {
  font-size: 64px;
}

.calculator-slider .result-amount .amount-unit {
  font-size: 36px;
}

.calculator-slider .result-description {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  margin: 20px 0;
}

.calculator-slider .result-note {
  font-size: 12px;
  color: #666;
  line-height: 1.8;
  margin-top: 30px;
  margin-bottom: 50px;
  text-align: left;
}

.calculator-slider .result-note li {
  margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
  .calculator-slider .result-title {
    font-size: 20px;
    margin-bottom: 20px;
  }
  
  .calculator-slider .result-amount {
    font-size: 36px;
    margin: 15px 0;
  }
  
  .calculator-slider .result-amount .amount-number {
    font-size: 48px;
  }
  
  .calculator-slider .result-amount .amount-unit {
    font-size: 28px;
  }
  
  .calculator-slider .result-description {
    font-size: 14px;
  }
  
  .calculator-slider .result-note {
    font-size: 11px;
    line-height: 1.7;
    margin-bottom: 60px;
  }
  
  .calculator-slider .result-note li {
    margin-bottom: 10px;
  }
}