@charset "UTF-8";

/*==============================================
共通スタイル
==============================================*/

img {
    max-width: 100%;
    height: auto;
    border: 0;
    vertical-align: bottom;
    -webkit-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;
}

.sp {
    display: none;
}

#mainvisual a img,
.sec a img,
#sec04 a img {
    -webkit-transition: all 0.2s ease-out;
    transition: all 0.2s ease-out;
}

#mainvisual a:hover img,
.sec a:hover img,
#sec04 a:hover img {
    opacity: .6;
}

/* 共通ボタンスタイル */
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 26px 46px;
    background: linear-gradient(90deg, #05cdff 0%, #0db69a 100%);
    border-radius: 56px;
    color: white;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease-out;
}
.btn-primary:hover {
    opacity: 0.8;
}
.btn-primary img {
    width: 5px;
    height: 10px;
    transform: rotate(90deg);
}

/* 共通セクション内包 */
.inner {
    max-width: 1540px;
    margin: 0 auto;
    padding: 0 20px;
}

/*==============================================
640px以下 共通スタイル
==============================================*/
@media only screen and (max-width: 640px) {
    /* 共通 */
    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    header .inner {
        padding: 0;
    }
    .inner {
        padding: 0 20px;
    }
}

/*==============================================
640px以下 strengthページ
==============================================*/
@media only screen and (max-width: 640px) {
    .strength-mv {
        padding: 20px 0 40px;
    }

    .strength-mv .mv-illust {
        position: static;
        width: 100%;
        height: auto;
        margin-bottom: 40px;
    }

    .strength-mv .mv-content {
        gap: 60px;
    }

    .mv-lead {
        font-size: 16px;
    }

    .mv-cta {
        gap: 18px;
    }
}

/*==============================================
strengthページ - コンテンツセクション
==============================================*/
.strength-section {
}

.section-title {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 80px;
}

/*==============================================
640px以下 strengthページ - コンテンツセクション
==============================================*/
@media only screen and (max-width: 640px) {
    .strength-section {
    }

    .section-title {
        gap: 8px;
        margin-bottom: 40px;
    }
}

/*==============================================
共通CTAエリア
==============================================*/
.common-cta {
    padding: 32px 20px 26px;
    background: white;
    border-radius: 16px;
    box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

/* 各セクションでのマージン調整 */
#sec03 .sec03-cta,
#sec05 .sec05-cta {
    margin-top: 86px;
}

#strength01 .common-cta,
#strength02 .common-cta {
    margin-top: 96px;
}

/* CTA内コンテンツ */
.common-cta .cta-contact {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: center;
    width: 32%;
    max-width: 340px;
}

.common-cta .contact-header {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.common-cta .contact-label {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1.44px;
    margin: 0;
}

.common-cta .contact-label-blue {
    color: #17acca;
}

.common-cta .contact-label-gray {
    color: #828f91;
}

.common-cta .contact-label-green {
    color: #89be17;
}

.common-cta .contact-phone {
    display: flex;
    align-items: center;
    gap: 10px;
}

.common-cta .phone-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.common-cta .phone-icon img {
    width: 100%;
    height: 100%;
}

.common-cta .phone-number {
    font-family: 'Poppins', sans-serif;
    font-size: 38px;
    font-weight: 500;
    letter-spacing: 0.76px;
    line-height: 30px;
    color: #393636;
    margin: 0;
}

.common-cta .contact-hours {
    font-family: 'Noto Sans', sans-serif;
    font-size: 20px;
    letter-spacing: 0.4px;
    color: #393636;
    margin: 0;
}

.common-cta .cta-buttons {
    display: flex;
    align-items: center;
    width: 64%;
    justify-content: space-between;
    max-width: 670px;
}

.common-cta .cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 14px 10px;
    border-radius: 56px;
    font-family: 'Noto Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: white;
    text-decoration: none;
    transition: all 0.2s ease-out;
    flex-shrink: 0;
    width: 45.5%;
}

.common-cta .cta-button:hover {
    opacity: 0.9;
}

.common-cta .cta-button-green {
    background: linear-gradient(108.68deg, #1bbc3f 0.27%, #1f983a 99.73%);
}

.common-cta .cta-button-lime {
    background: linear-gradient(107.03deg, #a1de1d 0%, #89be17 99.98%);
}

.common-cta .cta-button span {
    color: #FFF;
}

.common-cta .cta-button img {
    width: 5px;
    height: 10px;
}

/*==============================================
640px以下 共通CTAエリア - コンテンツセクション
==============================================*/
@media only screen and (max-width: 640px) {
    .common-cta {
        margin-top: 30px;
        padding: 31px 6%;
        gap: 23px;
        display: flex;
        flex-direction: column;
        border-radius: 16px;
        background: #FFF;
        box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.14);
    }

    .common-cta .cta-contact {
        gap: 8px;
        width: 100%;
    }

    .common-cta .contact-label {
        font-size: 11.5px;
        margin-bottom: 15px;
    }

    .common-cta .contact-phone {
        gap: 10px;
    }

    .common-cta .phone-number {
        font-size: 28px;
        line-height: 1.2;
        letter-spacing: .05em;
    }

    .common-cta .contact-hours {
        font-size: 16px;
    }

    .common-cta .cta-buttons {
        flex-direction: column;
        gap: 17px;
        width: 100%;
    }

    .common-cta .cta-button {
        padding: 13px 32px;
        font-size: 20px;
        width: 100%;
        box-sizing: border-box;
    }
}
