:root {
    --color-theme-1: #0d64c6;
    --color-theme-2: #eaedf6;
    --color-white: #ffffff;
    /*
    --color-theme-2: #2681c4;
    --color-theme-3: #1d6be2;
    --color-theme-4: #0542a0;
    --color-red-1: #dc3232;
    --color-gray-1: #b7b8bd;
    */
    --margin-common-x-small: 4vw;
}

html {
    /* font-size: 16px; */
    font-size: 4vw;
    font-family: sans-serif;
}

* {
    margin: 0;
}

img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

input[type="text"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: rgba(0, 0, 0, 0);
    border-radius: 0;
    color: inherit;
    font: inherit;
    margin: 0;
    padding: 0;
    text-align: inherit;
    text-transform: inherit;
    vertical-align: middle;
}

.pc {
    display: none !important;
}

.sp {
    display: block !important;
}

.pc-flex {
    display: none !important;
}

.sp-flex {
    display: flex !important;
}

.wrapper {
    overflow: hidden;
}

.container {
    min-height: 100vh;
}

.chat {
    background-color: #fff;
    border-radius: 1rem;
    padding: 0.5rem;
    /* max-width: 640px; */
    margin: 0 auto;
}

.error {
    margin: 0.5rem 0;
    border: 2px solid #de1802;
    color: #de1802;
    background-color: #f3a9a1;
    padding: 1rem;
    border-radius: 0.25rem;
}
.error span {
    font-weight: 700;
}

.sec_intro {
    background-color: var(--color-theme-1);
    position: relative;
    z-index: 0;
}
.arrow {
    margin: 15px 0;
}
.sec_intro .sec_hdg {
    position: relative;
    top: -11vw;
    padding: 0 0.75rem;
}
.sec_intro .sec_ttl {
    position: relative;
    top: -5vw;
    width: 66.7%;
    margin: 0 auto;
}

.sec_fvcta {
    margin-top: -1rem;
    background-color: var(--color-theme-1);
    position: relative;
    padding-bottom: 2.5rem;
    z-index: 1;
}
.sec_fvcta .sec_ttl {
    padding-left: 0.5rem;
    padding-bottom: 0.5rem;
    z-index: 1;
}
.sec_fvcta .sec_intro {
    padding-top: 0.5rem;
    padding-bottom: 0.25rem;
    width: 82.5%;
    margin: 0 auto;
    z-index: 1;
}
.sec_fvcta .sec_btn {
    padding: 0.5rem;
    width: 90%;
    margin: 0 auto 0.5rem auto;
}
.sec_fvcta .sec_txt {
    padding: 0.5rem 1rem;
    margin: 0 auto;
    z-index: 1;
}

.sec_sml {
    background-color: var(--color-theme-1);
    padding: 0 0.75rem 1.5rem 0.75rem;
    margin-top: -0.1rem;
}
.sec_sml .chat_wrapper {
    background-color: var(--color-white);
    padding: 0.25rem;
    border-radius: 0.75rem;
}

.sec_comp {
    position: relative;
    margin-bottom: -0.1rem;
}
.sec_comp .sec_conn {
    position: absolute;
    top: -9.5vw;
    width: 100vw;
    text-align: center;
}
.sec_comp .sec_conn img {
    width: 13vw;
}

/* CTA */
.cta {
    background-color: var(--color-theme-1);
    padding: 1.5rem 0.75rem;
}
.cta .cta_ttl {
    margin-bottom: 0.75rem;
}
.cta .cta_content {
    background-color: var(--color-white);
    padding: 1rem;
    border-radius: 0.3rem;
    width: 92%;
    margin: auto;
    z-index: 0;
}
.cta .cta_content .cta_txt {
    margin-bottom: 0.6rem;
    text-align: center;
}
.cta .cta_content .cta_3 {
    margin-bottom: 0.5rem;
    text-align: center;
}
.cta .cta_content .cta_btn_ttl {
    width: 100%;
    text-align: center;
}
.cta .cta_content .cta_btn_ttl img {
    width: 72%;
}
.cta .cta_btn {
    text-align: center;
    margin-bottom: 10px;
}

/* Example */
.sec_example {
    background-color: var(--color-theme-2);
    padding: 0.75rem;
}
.sec_example .sec_ttl {
    width: 100%;
    text-align: right;
    padding: 0.5rem;
}
.sec_example .sec_ttl img {
    width: 86%;
}

.example_list .example_s_unit {
    margin-bottom: 1em;
}
.example_list .example_unit {
    background-image: url(img/sp/sec_ex_01_frame@2x.webp);
    background-position: center top;
    background-size: contain;
    background-repeat: no-repeat;
    padding: 0.75rem 1rem;
    width: 100%;
    aspect-ratio: 0.6563;
    margin-bottom: 1.5rem;
}
.example_list .example_unit.long {
    background-image: url(img/sp/sec_ex_03_frame@2x.webp);
}
.example_list .example_unit .example_unit_ttl {
    margin-top: -0.6rem;
    width: 100%;
    text-align: center;
    margin-bottom: 0.1rem;
}
.example_list .example_unit .example_unit_ttl img {
    width: 59%;
}
.example_list .example_unit .example_unit_imgs {
    display: flex;
    align-items: flex-start;
    justify-content: space-around;
    margin-bottom: 0.75rem;
}
.example_list .example_unit .example_unit_imgs .example_unit_imgs_left {
    width: 27%;
    padding: 0 0.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.example_list .example_unit .example_unit_imgs .example_unit_imgs_left .img {
    padding: 0 0.5rem 0.25rem 0.5rem;
}
.example_list .example_unit .example_unit_imgs .example_unit_imgs_left .name {
    font-size: 0.875rem;
    text-align: center;
}
.example_list .example_unit .example_unit_imgs .example_unit_imgs_right {
    width: 73%;
    padding: 0 0.75rem;
}
.example_list .example_unit .example_unit_imgs .example_unit_imgs_right .num {
    width: 58%;
    margin-bottom: 0.5rem;
}
.example_list .example_unit .example_unit_content .example_unit_content_hdg {
    width: 100%;
    margin-top: 0.5rem;
    margin-bottom: 0.75rem;
}
.example_list .example_unit .example_unit_content .example_unit_content_hdg img {
    width: 100%;
}
.example_list .example_unit .example_unit_content .example_unit_content_txt {
    padding: 0.25rem;
    font-size: 0.9rem;
    line-height: 1.5rem;
}

.sec_qa {
    background-image: repeating-linear-gradient(
            to bottom,
            /* 横線 */ transparent 15px,
            #e6e6e6 16px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px,
            #e6e6e6 80px
        ),
        repeating-linear-gradient(
            to right,
            /* 縦線 */ transparent 15px,
            #e6e6e6 16px,
            #e6e6e6 16px,
            transparent 17px,
            transparent 31px,
            #e6e6e6 32px,
            #e6e6e6 32px,
            transparent 33px,
            transparent 47px,
            #e6e6e6 48px,
            #e6e6e6 48px,
            transparent 49px,
            transparent 63px,
            #e6e6e6 64px,
            #e6e6e6 64px,
            transparent 65px,
            transparent 79px,
            #e6e6e6 80px,
            #e6e6e6 80px
        );
    position: relative;
    padding: 1.5rem 0.75rem;
}

.sec_qa .sec_ttl {
    width: 100%;
    padding: 0.5rem;
    text-align: center;
    position: relative;
}
.sec_qa .sec_ttl img {
    width: 60%;
}
.sec_qa .sec_person {
    position: absolute;
    left: 5vw;
    top: 8.5vw;
    width: 17.5vw;
    height: 22.5vw;
    overflow: hidden;
}
.qa-list {
    margin-top: -0.9rem;
    position: relative;
    z-index: 2;
}

.qa-list dl {
    border: 2px solid var(--color-theme-1);
    background-color: var(--color-white);
    border-radius: 2.5vw;
    padding: calc(var(--margin-common-x-small));
    margin: calc(var(--margin-common-x-small) * 1.5) 0;
}

.qa-list dl dd {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* gap: calc(var(--margin-common-x-small) / 2); */
}

.qa-list dl dt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--color-theme-4);
    cursor: pointer;
}

.qa-list dl dt .title-inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    color: var(--color-theme-1);
}

.qa-list dl dt:after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    text-align: right;
    width: 1.2em;
    height: 1.2em;
    background-image: url(img/pc/sec_faq_btn_open@2x.webp);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

.qa-list dl.active dt:after {
    background-image: url(img/pc/sec_faq_btn_close@2x.webp);
}

.qa-list dl dd {
    display: none;
}

.qa-list dl dt .icon,
.qa-list dl dd .icon {
    width: 11%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.qa-list dl dt .icon img,
.qa-list dl dd .icon img {
    width: calc(var(--margin-common-x-small) * 1.5);
}

.qa-list dl dt .content,
.qa-list dl dd .content {
    font-size: 1rem;
}

.qa-list dl dt .content {
    width: 87.5%;
    font-weight: 600;
}

/* .qa-list dl dd .content {
    width: 85%;
} */

.qa-list dl.active dd {
    border-top: 1px dashed var(--color-theme-1);
    margin-top: calc(var(--margin-common-x-small) * 1);
    padding-top: calc(var(--margin-common-x-small) * 0.5);
}

.qa-list dl.active dd .content-inner {
    display: flex;
    width: 100%;
}
.qa-list dl.active dd .content-inner .content {
    width: 100%;
}

.footer {
    background-color: var(--color-theme-1);
    color: var(--color-white);
}

.footer .footer_contents {
    padding: 1rem 0 0.5rem 0;
    width: 66.7%;
    margin: auto;
    font-size: 75%;
}
.footer .footer_contents ul {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.footer .footer_contents ul li a {
    color: #fff;
    text-decoration: none;
}
.footer .footer_contents ul li a:hover {
    text-decoration: underline;
}

.footer .footer_cr {
    text-align: center;
    padding: 0.5rem;
    font-size: 0.8rem;
}

/* sp to tab to pc */
@media (min-width: 768px) {
    html {
        font-size: 2.5vw;
    }
    .sp {
        display: none !important;
    }
    .pc {
        display: block !important;
    }
    .sp-flex {
        display: none !important;
    }
    .pc-flex {
        display: flex !important;
    }
    span.pc {
        display: inline;
    }
    .container {
        /* padding: 1rem; */
    }
    .chat {
        padding: 1rem;
    }

    .wrapper {
        box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.15);
        max-width: 1080px;
        margin: 0 auto;
    }

    .sec_intro .sec_hdg {
        top: -2.5rem;
        text-align: center;
    }
    .sec_intro .sec_hdg img {
        width: 87.5%;
    }
    .sec_intro .sec_ttl {
        top: -1rem;
        width: 62.5%;
    }

    .sec_fvcta {
    }
    .sec_fvcta .sec_ttl {
        width: 89%;
        margin: 0 auto 0 1rem;
    }
    .sec_fvcta .sec_intro {
        width: 78%;
    }
    .sec_fvcta .sec_btn {
        width: 66.7%;
    }
    .sec_fvcta .sec_txt {
        width: 80%;
        padding: 0.25rem 1rem;
    }

    .sec_sml {
        padding: 0 6rem 2rem;
    }

    .sec_comp .sec_conn {
        top: -2.75rem;
        width: 1080px;
    }
    .sec_comp .sec_conn img {
        width: 4rem;
    }

    .sec_example {
        padding: 0.75rem 3rem;
    }
    .sec_example .sec_ttl {
        /* TODO: 修正 */
    }

    .example_list .example_unit {
        background-image: url(img/pc/sec_ex_01_frame@2x.webp);
        aspect-ratio: 1.32;
    }
    .example_list .example_unit .example_unit_ttl {
        margin-bottom: 0.5rem;
    }
    .example_list .example_unit .example_unit_ttl img {
        width: 47.5%;
    }
    .example_list .example_unit.long {
        background-image: url(img/pc/sec_ex_03_frame@2x.webp);
        aspect-ratio: 1.0551;
    }
    .example_list .example_unit .example_unit_imgs {
        padding-left: 3rem;
        padding-right: 3rem;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_left {
        padding-top: 1rem;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_right {
        width: 70%;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_right .num {
        margin-bottom: 2rem;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_right .num.low-p {
        margin-bottom: 0.75rem;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_right .graph {
        margin-top: 0.75rem;
    }
    .example_list .example_unit .example_unit_imgs .example_unit_imgs_left .name {
        font-size: 0.65rem;
        font-weight: 500;
    }
    .example_list .example_unit .example_unit_content .example_unit_content_txt {
        padding: 0.25rem 1.5rem;
        font-size: 0.725rem;
        line-height: 1.3rem;
    }

    .cta {
        padding: 1.5rem 3rem;
    }
    .cta .cta_ttl {
        margin-left: -1rem;
        margin-right: -1rem;
    }
    .cta .cta_content .cta_txt img {
        width: 97.5%;
    }
    .cta .cta_content .cta_3 img {
        width: 65%;
    }
    .cta .cta_content .cta_btn_ttl img {
        width: 65%;
    }
    .cta .cta_btn img {
        width: 80%;
    }
    .cta .cta_btn .fv_cta_box_wrapper {
        display: flex !important;
        align-items: center;
        justify-content: center;
    }
    .cta .cta_btn .fv_cta_txt p {
        white-space: nowrap;
        font-size: clamp(1px, 7.4vw, 76px);
    }
    .cta .cta_btn .fv_cta_time.pc {
        font-size: clamp(1px, 2.92vw, 24px);
    }
    .cta .cta_btn .fv_cta_box.pc {
        width: 80%;
    }
    .sec_qa {
        padding: 1.5rem 3rem 1rem;
    }
    .sec_qa .sec_ttl img {
        width: 50%;
    }
    .sec_qa .sec_person {
        left: 5.75rem;
        top: 1.8rem;
        width: 6rem;
        height: 8rem;
    }
    .qa-list dl {
        border: 5px solid var(--color-theme-1);
    }
    .qa-list dl.active dd {
        border-top: 2px dashed var(--color-theme-1);
        margin-top: calc(var(--margin-common-x-small) * 0.75);
        padding-top: calc(var(--margin-common-x-small) * 0.5);
    }
    .qa-list dl dt .icon,
    .qa-list dl dd .icon {
        width: 11%;
    }
    .qa-list dl dt .icon img,
    .qa-list dl dd .icon img {
        width: calc(var(--margin-common-x-small) * 1.25);
    }
    .qa-list dl dt:after {
        width: 1.55em;
        height: 1.55em;
    }
    .qa-list dl dt .content {
        font-size: 1rem;
    }
    .footer .footer_contents {
        width: 42.5%;
    }
    .footer {
        font-weight: 600;
    }
}

@media (min-width: 1080px) {
    :root {
        --margin-common-x-small: 40px;
    }
    html {
        font-size: 28px;
    }
}
.bounce-icon {
    animation: bounce 2s infinite 2s;
    display: inline-block;
    transform: translateY(0);
    padding-top: 10px;
}

@keyframes bounce {
    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-10px);
    }
    60% {
        transform: translateY(-5px);
    }
}

.cta-shadow,
.cta-shadow2 {
    position: relative;
    display: inline-block;
    z-index: 0;
}

.cta-shadow::after,
.cta-shadow2::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -8px;
    height: 100%;
    width: 100%;
    border-radius: 1000px;
    filter: blur(1px);
    opacity: 1;
    background: linear-gradient(
        90deg,
        #d26426 0%,
        #d26426 40%,
        #ff8a4a 45%,
        #ffffff 50%,
        #ff8a4a 55%,
        #d26426 60%,
        #d26426 100%
    );
    background-size: 260% 100%;
    animation: shadowFlow 2.8s ease-in-out infinite;
    z-index: -1;
    pointer-events: none;
}

@keyframes shadowFlow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

@media (min-width: 768px) {
    .cta .cta_btn img {
        width: 80%;
        margin: 0 auto;
        display: block;
    }
    .cta .cta_btn img.fv_cta_icon {
        width: 60px;
        height: auto;
        display: inline-block;
        margin-right: -30px;
        margin-left: 30px;
        margin-top: 10px;
    }

    .cta .cta_btn .cta-shadow2::after {
        width: 80%;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
}

.center-logo {
    width: 450px;
    margin: 20px auto 10px auto;
    padding-right: 40px;
    max-width: 35%;
    display: block;
}

@media (max-width: 767px) {
    .center-logo {
        width: 70%;
        padding-top: 10px;
        padding-right: 30px;
        max-width: 70%;
        margin: 10px auto 0 auto;
        display: block;
    }
}
.box-logo {
    width: 450px;
    padding-right: 20px;
    padding-bottom: 10px;
    max-width: 45%;
    margin: 0 auto 20px auto;
    display: block;
}

@media (max-width: 767px) {
    .box-logo {
        width: 70%;
        padding-right: 15px;
        max-width: 70%;
        margin: auto;
        display: block;
    }
}
.header {
    background-color: #fff;
    height: auto;
}

/* フォームセクション（FV下） */
.sec_fvcta .sec_form {
    background: var(--color-white);
    border-radius: 0.3rem;
    padding: 1rem;
    width: 92%;
    margin: 0 auto;
}

.sec_fvcta .sec_form .form_ttl {
    text-align: center;
    margin-bottom: 0.75rem;
}
.sec_fvcta .sec_form .form_ttl img {
    width: 100%;
    max-width: 640px;
}

.sec_fvcta .sec_form .form_q {
    font-size: 1rem;
    font-weight: 800;
    text-align: center;
    margin-bottom: 0.25rem;
}
.sec_fvcta .sec_form .form_q .notice_required {
    color: #de0256;
    font-size: 80%;
}
@media (max-width: 767px) {
    .sec_fvcta .sec_form .form_q {
        font-size: 1.3rem;
        margin-bottom: 0.75rem;
    }
}
.sec_fvcta .sec_form .form_note {
    font-size: 0.8rem;
    text-align: center;
    color: #555;
    font-weight: 600;
}
@media (max-width: 767px) {
    .sec_fvcta .sec_form .form_note {
        font-size: 1.2rem;
        margin-bottom: 0.75rem;
    }
}
.sec_fvcta .sec_form .form_note:last-of-type {
    margin-bottom: 0.75rem;
}

/* ボタン：SPは1列4行 */
.sec_fvcta .sec_form .form_btns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.sec_fvcta .sec_form .form_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    background: #ff8746; /* 画像のオレンジ寄せ（必要なら調整） */
    border-radius: 0.3rem;
    height: 3.4rem;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    cursor: pointer;
}

.sec01 .form_ttl p {
    font-size: 1.35rem;
    font-weight: 700;
    color: #e4576f;
}
@media (max-width: 767px) {
    .sec01 .form_ttl p {
        font-size: 1.6rem;
        font-weight: 700;
        margin: 1rem 0;
    }
}

.conversation {
    display: none;
}
.conversation.active {
    display: block;
}
@media (max-width: 767px) {
    .conversation.active {
        margin-bottom: 2rem;
    }
}

.conversation .form_btn_radio {
    display: none;
}
.conversation .form_inputs.no_label dl dt {
    display: none;
}
.conversation.done input[type="radio"] + label {
    background: #888888;
}
.conversation.done input[type="radio"]:checked + label {
    background: #ff8746;
}
.conversation .form_inputs input[type="text"],
.conversation .form_inputs input[type="tel"],
.conversation .form_inputs input[type="email"] {
    appearance: none;
    border: none;
    background-color: #e7f2f8;
    width: 100%;
    padding: 0.5rem;
    border-radius: 0.25rem;
    height: 1.75rem;
    font-size: 0.6rem;
    text-align: left;
    border: 1px solid #aaa;
}
@media (max-width: 767px) {
    .conversation .form_inputs input[type="text"],
    .conversation .form_inputs input[type="tel"],
    .conversation .form_inputs input[type="email"] {
        height: 3.5rem;
        font-size: 1rem;
    }
}
.conversation .send-button {
    width: 70%;
    height: 3rem;
    color: #fff;
    font-weight: 700;
    border-radius: 3rem;
    border: none;
    background-color: #f68321;
    text-align: center;
    vertical-align: middle;
    box-shadow: 0px 6px 0px 0px #c7c7c7;
    cursor: pointer;
    font-size: 1rem;
}
@media (max-width: 767px) {
    .conversation .send-button {
        font-size: 1.5rem;
        width: 100%;
        height: 4rem;
    }
}
.conversation dl dd .error_blank {
    color: #de1802;
    font-size: 0.75rem;
}
.conversation#step4 dl {
    margin-bottom: 0.75rem;
}
.conversation#step4 dl dt {
    font-size: 0.9rem;
    font-weight: 600;
}
@media (max-width: 767px) {
    .conversation#step4 dl dt {
        font-size: 1.3rem;
        margin-bottom: 0.2rem;
    }
}
.conversation#step4 dl dt i {
    display: none;
}
.conversation#step4 dl dt .notice {
    font-size: 0.75rem;
    font-weight: 600;
    color: #555;
}
@media (max-width: 767px) {
    .conversation#step4 dl dt .notice {
        font-size: 1.2rem;
    }
}
.conversation .form-footer {
    padding: 0.5rem 0 1rem 0;
    text-align: center;
}

/* 下の画像 */
.sec_fvcta .sec_form .form_bottom_img {
    text-align: center;
}

/* PC（768px〜）：2列2行 */
@media (min-width: 768px) {
    .sec_fvcta .sec_form {
        width: 78%;
        padding: 1.25rem 1.5rem;
    }
    .sec_fvcta .sec_form .form_btns {
        grid-template-columns: 1fr 1fr;
        gap: 0.6rem;
    }
    .sec_fvcta .sec_form .form_btn {
        height: 3.1rem;
        font-size: 1.1rem;
        border-radius: 0.85rem;
    }
}

/* --- 指摘反映のみ（質問部分は未変更） --- */

/* form_ttl：ボックス幅の45% */
.sec_fvcta .sec_form .form_ttl img {
    width: 45%;
    max-width: none;
}

@media (max-width: 767px) {
    .sec_fvcta .sec_form .form_ttl img {
        width: 70%;
        max-width: none;
        margin-top: 20px;
        margin-bottom: 10px;
    }
}
/* ボタン：角丸を弱く */
.sec_fvcta .sec_form .form_btn {
    border-radius: 0.3rem;
}

/* 下部画像をボックス下端に接地 */
.sec_fvcta .sec_form .form_bottom_img {
    margin-bottom: 0;
}
.sec_fvcta .sec_form .form_bottom_img img {
    display: block;
    margin-bottom: 0;
}

/* PCでも同条件（質問部分は触らない） */
@media (min-width: 768px) {
    .sec_fvcta .sec_form .form_btn {
        border-radius: 0.3rem;
    }
}
/* 下部画像を「sec_form の下端」に物理的に接地させる */
.sec_fvcta .sec_form .form_bottom_img {
    margin-bottom: -1rem; /* ← sec_form の padding-bottom と同値 */
}

.sec_fvcta .sec_form .form_bottom_img img {
    display: block;
}
@media (min-width: 768px) {
    .sec_fvcta .sec_form .form_bottom_img {
        margin-bottom: -1.25rem; /* PC時の padding-bottom 相当 */
    }
}

/* =========================
   Area セクション
========================= */

.area {
    background: url("img/common/area_bg_japan.jpg") center top / cover no-repeat;
    padding: 2.6rem 0 3rem;
}

.area_inner {
    max-width: 1080px;
    margin: 0 auto;
}

/* =========================
   見出し
========================= */

.area_hdg {
    /* ← 左余白を「倍」に */
    padding-left: 4.8rem;
    margin-bottom: 1.2rem;
}

.area_lead {
    margin: 0;
    text-align: left;
    font-weight: 900;
    line-height: 1.1;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP",
        "Yu Gothic", "Yu Gothic Medium", "Meiryo", sans-serif;
}

.area_line1 {
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
    gap: 0.15em;
}

.area_pref {
    color: #ff2b2b;
    font-size: 2.2rem;
    letter-spacing: 0.02em;
}

.area_blue {
    color: #034a9b;
    font-size: 1.5rem;
    letter-spacing: 0.02em;
}

.area_line2 {
    display: inline-block;
    margin-top: 0.25rem;
}

/* =========================
   対応エリア ボックス
========================= */

.area_box {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
    max-width: 840px;
    margin: 0 auto;
    overflow: hidden;
}

/* 青帯 */
.area_box_ttl {
    height: 67px;
    background: #034a9b;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    box-sizing: border-box;
}

.area_box_ttl span {
    color: #ffffff;
    font-weight: 800;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

/* =========================
   市区町村リスト（重要修正）
========================= */

.area_box_body {
    padding: 1rem 0 1rem 1.6rem;
    text-align: left;
    font-size: 0.85rem;
    line-height: 1.8rem;
    font-weight: 400;
    color: #111;
}
/* =========================
   レスポンシブ
========================= */

@media (max-width: 767px) {
    .area {
        padding: 2.2rem 0 2.6rem;
    }

    .area_hdg {
        padding-left: 2.4rem; /* SPでも倍基準 */
        margin-bottom: 1.6rem;
    }

    .area_pref {
        font-size: 2.6rem;
    }

    .area_blue {
        font-size: 1.7rem;
    }

    .area_line2 {
        margin-top: 0.35rem;
    }

    .area_box {
        max-width: 92%;
    }

    .area_box_ttl {
        height: 60px;
    }

    .area_box_ttl span {
        font-size: 18px;
    }

    .area_box_body {
        font-size: 1.1rem;
        line-height: 1.9rem;
        padding: 1.4rem 0 1.6rem 1.2rem;
    }
}
/* =========================
   ヘッダー電話番号追加
========================= */
header {
    display: block;
    unicode-bidi: isolate;
}
.header_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1080px;
    margin: 0 auto;
}
.header_logo {
    margin-left: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
}
.header_logoimg {
    width: 400px;
    height: auto;
    display: block;
}
.pc {
    display: block;
}
.sp {
    display: none;
}
.header_cta.pc {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    margin-right: 20px;
}
.header_cta {
    margin: 0;
    padding: 0;
}
.header_ctaimg {
    display: block;
    width: 100%;
    height: auto;
}
.header_cta {
    margin: 0;
    padding: 0;
}
.header_cta_box {
    display: inline-block;
    text-align: center;
    width: 300px;
}
.header_cta_ttl {
    background-color: #054a9d;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    padding: 2px 3px 2px 7px;
    margin-bottom: 3px;
    line-height: 1.4;
}
.header_cta_txt {
    display: flex;
    align-items: center;
    justify-content: center;
}
.header_cta_icon {
    width: 28px;
    height: auto;
    display: inline-block;
    margin-right: -10px;
}
.header_cta_txt p {
    margin: 0;
    font-size: 35px;
    font-weight: 1000;
    color: #054a9d;
    line-height: 1;
    font-family: Arial, sans-serif !important;
    transform: scale(0.9, 1);
}
.fv_cta.pc {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.fvcta {
    background-color: var(--color-theme-1);
    padding: 0 3rem 1rem;
}
.fvcta .cta_content {
    background-color: var(--color-white);
    padding: 1rem;
    border-radius: 0.3rem;
    width: 92%;
    margin: auto;
    z-index: 0;
}
.fv_ctaimg {
    display: block;
    width: 100%;
    height: auto;
}
.fv_cta {
    margin: 0;
    padding: 0;
}
.fv_cta_box {
    display: inline-block;
    text-align: center;
    width: 100%;
}
.fv_cta_ttl {
    background-color: #054a9d;
    color: #fff;
    font-size: 38px;
    font-weight: bold;
    padding: 2px 3px 2px 7px;
    margin-bottom: 3px;
    line-height: 1.4;
}
.fv_cta_txt {
    display: flex;
    align-items: center;
    justify-content: center;
}
a {
    text-decoration: none !important;
}
.fv_cta_icon {
    width: 60px;
    height: auto;
    display: inline-block;
    margin-right: -30px;
    margin-left: 30px;
    margin-top: 10px;
}
.fv_cta_txt p {
    margin: 0;
    font-size: clamp(1px, 7.4vw, 80px);
    font-weight: 1000;
    color: #054a9d;
    line-height: 1;
    font-family: Arial, sans-serif !important;
    transform: scale(0.9, 1);
}
.cta_btn_sp {
    position: relative;
    width: 100%;
}
.cta_btnimg_sp {
    width: 100%;
    display: block;
    height: auto;
}
.cta_btn_inner_sp {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    text-align: center;
    pointer-events: none;
}
.cta_btn_inner_sp p {
    font-size: clamp(1px, 9vw, 70px);
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    color: #fff;
    margin: 0;
    line-height: 1;
    white-space: nowrap;
    letter-spacing: -0.02em;
}

.cta_btn2 {
    position: relative;
    width: 100%;
}
.cta_btnimg2 {
    width: 100%;
    display: block;
    height: auto;
}
.cta_btn_inner2 {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    text-align: center;
    pointer-events: none;
}
.cta_btn_inner2 p {
    font-size: clamp(1px, 7.8vw, 70px);
    font-family: Arial, sans-serif !important;
    font-weight: 1000;
    color: #fff;
    margin: 0;
    line-height: 1;
    white-space: nowrap;
    letter-spacing: -0.02em;
}
.cta-shadow3 {
    position: relative;
    display: inline-block;
    z-index: 0;
}

.cta-shadow3::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.5rem;
    height: 100%;
    width: 100%;
    border-radius: 10px;
    filter: blur(1px);
    opacity: 1;
    background: linear-gradient(
        90deg,
        #d26426 0%,
        #d26426 40%,
        #ff8a4a 45%,
        #ffffff 50%,
        #ff8a4a 55%,
        #d26426 60%,
        #d26426 100%
    );
    background-size: 260% 100%;
    animation: shadowFlow 2.8s ease-in-out infinite;
    z-index: -1;
    pointer-events: none;
}
.cta-shadow4 {
    position: relative;
    display: inline-block;
    z-index: 0;
}

.cta-shadow4::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.16rem;
    height: 80%;
    width: 95%;
    border-radius: 1000px;
    filter: blur(1px);
    opacity: 1;
    background: #176307;
    background-size: 260% 100%;
    z-index: -1;
    pointer-events: none;
}
.cta_web {
    padding-top: 1rem;
    padding-bottom: 5px; /* ボタンの下側にもわずかに余白を持たせる */
}

.cta_web picture {
    padding-top: 20px;
    width: 95%;
    margin: auto;
}

cta_btn a.cta-shadow4 {
    overflow: visible !important; /* 影を外にはみ出させる */
    margin-bottom: 10px; /* 下に少し余白を作る */
}

@media screen and (max-width: 768px) {
    
.header_cta.pc {
    margin-right: 0;
    width:0;
}
    .header_inner {
        flex-direction: row;
        justify-content: space-between;
    }
    .header_logo {
        margin-top: 20px !important;
        margin-bottom: 0;
        width: 37%;
    }
    .header_logoimg {
        width: 100%;
    }
    .header_cta {
        width: 44%;
        margin-right: 20px;
        margin-top: 20px;
    }
    .header_ctaimg {
        width: 100%;
    }
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
    .fvcta {
        background-color: var(--color-theme-1);
        padding: 0.5rem 1rem 1rem;
    }
    .fvcta .cta_content {
        background-color: var(--color-white);
        padding: 1rem;
        border-radius: 0.3rem;
        width: 100%;
        margin: auto;
        z-index: 0;
    }
    .fv_cta_txt {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        flex-wrap: nowrap;
        gap: 0;
        margin-top: 5px;
    }
    .fv_cta_icon {
        width: 10%;
        max-width: 40px;
        margin: 1px 0 0;

        flex-shrink: 0;
    }
    .fv_cta_txt p {
        margin: 0;
        font-size: clamp(1px, 9vw, 72px);
        font-weight: 1000;
        color: #4675af;
        line-height: 1;
        font-family: Arial, sans-serif !important;
        transform: none;
    }

    .cta-shadow3::after {
        width: 100%;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
    .cta-shadow4::after {
        width: 95%;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
    .webimg {
        width: 95%;
        margin: auto;
    }
}

@media (min-width: 768px) {
    .cta_btn a.cta-shadow3,
    .cta_btn a.cta-shadow4 {
        display: block;
        width: 100%; /* ここで横幅を共通化 */
        max-width: 6000px; /* 大きくなりすぎないように制限 */
        margin: 0 auto;
    }
    .cta-shadow3::after,
    .cta-shadow4::after {
        width: 80% !important;
        margin: auto;
        left: 0 !important;
        transform: none !important;
    }
    .cta_btn_inner2 {
        position: absolute;
        top: 60%;
        left: 53%;
        transform: translate(-50%, -50%);
        width: 70%;
        text-align: center;
        pointer-events: none;
    }
    .cta_btn_inner2 p {
        font-size: clamp(1px, 6vw, 65px);
        font-family: Arial, sans-serif !important;
        font-weight: 1000;
        color: #fff;
        margin: 0;
        line-height: 1;
        white-space: nowrap;
        letter-spacing: -0.02em;
    }
}
/* --- フローティングバナー基本設定 --- */
.floating-banner {
    position: fixed;
    z-index: 9999;
}

@media screen and (min-width: 768px) {
    .floating-banner.pc {
        width: 330px;
        right: 0;
        bottom: 20px;
        display: flex;
        flex-direction: column;
        gap: 15px;
        opacity: 1;
        visibility: visible;
    }
    .bnr-item {
    position: relative;
    width: 300px; /* バナーの横幅に合わせて調整 */
}.bnr_txt_group {
    position: absolute;
    left: 50%;
    bottom: 15%; /* 画像内の電話番号がある位置に合わせて上下調整 */
    transform: translateX(-50%);
    width: 72%; /* 電話アイコンから番号末尾くらいのサイズ感 */
    text-align: center;
    z-index: 2;
}
    .floating-banner.sp {
        display: none;
    }
   .bnr_txt {
    font-size: 28px; /* 元のサイズに合わせて調整 */
    font-weight: 1000;
    color: #fff;
    margin: 0;
    line-height: 1.2;
    letter-spacing: -0.02em;
}.bnr_time {
    font-size: 11px; /* 番号より小さく、かつ読めるサイズ */
    font-weight: bold;
    color: #fff;
    margin-top: 2px;
    white-space: nowrap; /* 改行させない */
    transform: scale(0.9); /* 少し横幅を凝縮してアイコンの幅に収める */
    line-height: 1;
}.bnr-item img {
    width: 100%;
    display: block;
}
}

@media screen and (max-width: 767px) {
    .floating-banner.pc {
        display: none;
    }
    .floating-banner.sp {
        display: block;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        z-index: 9999;
        opacity: 0;
        visibility: hidden;
        transform: translateY(100%);
        transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s;
    }
    .floating-banner.sp.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .bnr-flex-sp {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 15px 15px 20px;
    box-sizing: border-box;
    justify-content: center;
    align-items: center;
    gap: 15px;
    background-color: rgba(0, 0, 0, 0.5);
}
    .bnr-btn-sp {
    flex: 1;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    text-align: center;
    border-radius: 8px;
    text-decoration: none;
    box-shadow: 0 3px 6px rgba(0,0,0,0.4);
    margin: 0;
}
    .btn-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: clamp(12px, 3.8vw, 24px);
    line-height: 1.2;
}
    .icon-tel-inline {
    padding-top: 2px;
    width: 18px;
    height: auto;
    display: inline-block;
    margin: 0;
}
    .btn-tel-css {
        background: #FF8646;
    }
    .btn-web-css {
        background: #1CA300;
    }
}

.floating-banner img {
    max-width: 100%;
    height: auto;
    display: block;
}
@media (min-width: 768px) {
    /* ボックス全体の幅を維持 */
    .header_cta_box {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 320px; /* 画像のバランスに合わせた固定幅 */
    }

    /* 「無料相談はこちらから」の青い箱 */
    .header_cta_ttl {
        width: 100%; /* 親の幅いっぱいに広げてサイズを維持 */
        background-color: #054a9d;
        color: #fff;
        font-size: 18px;
        font-weight: bold;
        padding: 4px 0;
        text-align: center;
        margin-bottom: 5px;
    }

    /* 電話番号本体 */
    .header_cta_txt p {
        font-size: 39px; /* 指定のサイズ */
        color: #054a9d;
        font-weight: 1000;
        line-height: 1.1;
        letter-spacing: -0.02em;
    }

    /* 受付時間（下の文字を大きく） */
    .header_cta_time {
    font-size: 15px;
    color: #054a9d;
    font-weight: bold;
    margin-top: 2px;
    white-space: nowrap;
    width: 100%;
    text-align: center;
    letter-spacing: -0.01em;
}
}

@media (min-width: 768px) {
    .bnr-item {
        position: relative;
        width: 330px;
    }

    /* 背景画像のみを100%にする（アイコンに干渉させない） */
    .bnr-item img.bnr-bg {
        width: 100%;
        height: auto;
        display: block;
    }

    .bnr_txt_group {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 95%;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
}

    .bnr_txt_top {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 95%;
}

    /* アイコン画像専用のサイズ指定 */
    .bnr_icon_pc {
    width: 21px !important;
    height: auto !important;
    padding-top: 2px;
    margin-right: -10px;
}

    .bnr_txt {
    font-size: 38px;
    font-weight: 1000;
    color: #fff;
    font-family: Arial, sans-serif !important;
    transform: scale(0.9, 1);
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

    .bnr_txt_bottom {
    width: 100%;
    margin-top: -8px;
    margin-bottom: 10px;
    text-align: center;
}

    .bnr_time {
    font-size: 15px;
    font-weight: bold;
    color: #fff;
    margin: 0;
    white-space: nowrap;
    letter-spacing: -0.01em;
    display: inline-block;
    width: 100%;
    transform: scale(0.95, 1);
}
}

@media (min-width: 768px) {
    /* 親ボックス：幅を維持して中央寄せ */
    .fv_cta_box.pc {
        width: 100%; /* 親の .fvcta .cta_content の幅に合わせる */
        display: flex !important;
        flex-direction: column;
        align-items: center;
    }

    /* 「無料相談はこちらから」：幅を100%にして縮ませない */
    .fv_cta_ttl.pc {
        width: 100%; 
        box-sizing: border-box;
        text-align: center;
        font-size: 38px; /* 元のサイズを維持 */
        padding: 5px 0;
        margin-bottom: 10px;
    }

    /* 電話番号ブロック */
    .fv_cta_txt.pc {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin-bottom: 5px;
    }

    /* 受付時間：サイズを大きくし、横幅をアイコン〜番号末尾に合わせる */
    .fv_cta_time.pc {
        font-size: clamp(1px,2.92vw,32px); /* 文字を大きく設定 */
        font-weight: bold;
        color: #054a9d;
        white-space: nowrap;
        
        /* 電話アイコンから番号末尾までの幅感（約80%前後）に調整 */
        width: 82%; 
        text-align: center;
        letter-spacing: -0.01em;
        
        /* わずかに横に引き伸ばして微調整が必要な場合 */
        transform: scale(0.98, 1);
        display: inline-block;
    }
}