:root {
    /* PC時の各サイズ */
    --num-5: min(calc((5 / 1400) * 100vw), 5px);
    --num-6: min(calc((6 / 1400) * 100vw), 6px);
    --num-8: min(calc((8 / 1400) * 100vw), 8px);
    --num-10: min(calc((10 / 1400) * 100vw), 10px);
    --num-12: min(calc((12 / 1400) * 100vw), 12px);
    --num-13: min(calc((13 / 1400) * 100vw), 13px);
    --num-14: min(calc((14 / 1400) * 100vw), 14px);
    --num-15: min(calc((15 / 1400) * 100vw), 15px);
    --num-16: min(calc((16 / 1400) * 100vw), 16px);
    --num-17: min(calc((17 / 1400) * 100vw), 17px);
    --num-18: min(calc((18 / 1400) * 100vw), 18px);
    --num-20: min(calc((20 / 1400) * 100vw), 20px);
    --num-21: min(calc((21 / 1400) * 100vw), 21px);
    --num-22: min(calc((22 / 1400) * 100vw), 22px);
    --num-24: min(calc((24 / 1400) * 100vw), 24px);
    --num-25: min(calc((25 / 1400) * 100vw), 25px);
    --num-26: min(calc((26 / 1400) * 100vw), 26px);
    --num-28: min(calc((28 / 1400) * 100vw), 28px);
    --num-30: min(calc((30 / 1400) * 100vw), 30px);
    --num-32: min(calc((32 / 1400) * 100vw), 32px);
    --num-34: min(calc((34 / 1400) * 100vw), 34px);
    --num-35: min(calc((35 / 1400) * 100vw), 35px);
    --num-36: min(calc((36 / 1400) * 100vw), 36px);
    --num-38: min(calc((38 / 1400) * 100vw), 38px);
    --num-40: min(calc((40 / 1400) * 100vw), 40px);
    --num-45: min(calc((45 / 1400) * 100vw), 45px);
    --num-50: min(calc((50 / 1400) * 100vw), 50px);
    --num-53: min(calc((53 / 1400) * 100vw), 53px);
    --num-55: min(calc((55 / 1400) * 100vw), 55px);
    --num-60: min(calc((60 / 1400) * 100vw), 60px);
    --num-64: min(calc((64 / 1400) * 100vw), 64px);
    --num-65: min(calc((65 / 1400) * 100vw), 65px);
    --num-70: min(calc((70 / 1400) * 100vw), 70px);
    --num-75: min(calc((75 / 1400) * 100vw), 75px);
    --num-80: min(calc((80 / 1400) * 100vw), 80px);
    --num-90: min(calc((90 / 1400) * 100vw), 90px);
    --num-100: min(calc((100 / 1400) * 100vw), 100px);
    --main-green: #90c31e;
}
@media screen and (max-width: 767px) {
    :root {
        /* SP時の各サイズ */
        --num-5: calc((5 / 540) * 100vw);
        --num-6: calc((6 / 540) * 100vw);
        --num-8: calc((8 / 540) * 100vw);
        --num-10: calc((10 / 540) * 100vw);
        --num-12: calc((12 / 540) * 100vw);
        --num-13: calc((13 / 540) * 100vw);
        --num-14: calc((14 / 540) * 100vw);
        --num-15: calc((15 / 540) * 100vw);
        --num-16: calc((16 / 540) * 100vw);
        --num-17: calc((17 / 540) * 100vw);
        --num-18: calc((18 / 540) * 100vw);
        --num-20: calc((20 / 540) * 100vw);
        --num-21: calc((21 / 540) * 100vw);
        --num-22: calc((22 / 540) * 100vw);
        --num-24: calc((24 / 540) * 100vw);
        --num-25: calc((25 / 540) * 100vw);
        --num-26: calc((26 / 540) * 100vw);
        --num-28: calc((28 / 540) * 100vw);
        --num-30: calc((30 / 540) * 100vw);
        --num-32: calc((32 / 540) * 100vw);
        --num-34: calc((34 / 540) * 100vw);
        --num-35: calc((35 / 540) * 100vw);
        --num-36: calc((36 / 540) * 100vw);
        --num-38: calc((38 / 540) * 100vw);
        --num-40: calc((40 / 540) * 100vw);
        --num-43: calc((43 / 540) * 100vw);
        --num-45: calc((45 / 540) * 100vw);
        --num-50: calc((50 / 540) * 100vw);
        --num-55: calc((55 / 540) * 100vw);
        --num-60: calc((60 / 540) * 100vw);
        --num-64: calc((64 / 540) * 100vw);
        --num-65: calc((65 / 540) * 100vw);
        --num-70: calc((70 / 540) * 100vw);
        --num-75: calc((75 / 540) * 100vw);
        --num-80: calc((80 / 540) * 100vw);
        --num-90: calc((90 / 540) * 100vw);
        --num-100: calc((100 / 540) * 100vw);
    }
}
body {
    background: #fff;
}
article * {
    box-sizing: border-box;
}
@media screen and (min-width: 768px) {
    .sp_only {
        display: none !important;
    }
}

@media screen and (max-width: 767px) {
    .sp_only {
        display: block;
    }
    .pc_only {
        display: none !important;
    }
}
/* =============
 問い合わせと資料請求共通
============= */
.content-box {
    display: flex;
    max-width: min(calc((1380 / 1400) * 100vw), 1380px);
    margin: 0 auto 5%;
    color: #2e2e2e;
}
.content-box__main {
    width: 61%;
    padding-right: var(--num-70);
}
.content-box__form {
    width: 39%;
}
.content-box__form-inner {
    background-color: #e9ecea;
    padding: var(--num-70) var(--num-64);
    position: sticky;
    top: 0;
}
/* フォーム */
:is(.request, .contact) {
    .form-main {
        input,
        textarea {
            width: 100%;
            background-color: #fff;
        }
        input::placeholder {
            font-size: 12px;
            color: #cbcbcb;
        }
        input[type="checkbox"],
            input[type="radio"] {
            width: var(--num-22);
            height: var(--num-22);
            border-radius: 0;
            border: 1px solid #000;
            padding: 0;
            position: relative;
            top: 5px;
        }
        textarea {
            height: 200px;
        }
        .wpcf7-list-item {
            margin-left: 0;
        }
        .wpcf7-list-item-label {
            font-size: var(--num-16);
        }
    }

    .form-item {
        margin-bottom: var(--num-20);
    }

    .form-head {
        font-size: var(--num-18);
        font-weight: 600;
    }

    .required {
        color: #f25b24;
        font-size: var(--num-12);
    }

    .form-policy-wrap {
        margin-top: var(--num-40);
        margin-bottom: var(--num-30);
    }
    .policy-txt {
        margin-bottom: var(--num-12);
        font-size: var(--num-18);
        line-height: 1.6;
        font-weight: 500;
    }
    .policy-check {
        font-size: var(--num-18);
        font-weight: 600;
        text-align: center;
    }
    .wpcf7-acceptance input[type="checkbox"] {
        width: var(--num-22);
        height: var(--num-22);
        border-radius: 0;
        border: 1px solid #000;
        padding: 0;
        position: relative;
        top: 5px;
    }
    .form-submit {
        display: flex;
        flex-direction: column;
        width: fit-content;
        margin: auto 0;
        position: relative;
        font-size: var(--num-21);
        line-height: 1.2;
    }
    .form-submit input {
        font-weight: 800;
    }
    .form-submit::before {
        content: "";
        display: block;
        width: min(calc((43 / 1400) * 100vw), 43px);
        height: var(--num-30);
        background: url("/web/upload/2026/03/icon-submit.webp") no-repeat center / contain;
        position: absolute;
        top: min(calc((12 / 1400) * 100vw), 12px);
        left: calc(50% - min(calc((110 / 1400) * 100vw), 110px));
        transform: translateX(-50%);
        z-index: 2;
    }
    .co_button {
        display: grid;
        place-content: center;
        width: min(calc((400 / 1400) * 100vw), 400px);
        height: min(calc((53 / 1400) * 100vw), 53px);
        margin: 0;
        padding: 0 0 0 var(--num-60);
        background-image: linear-gradient(90deg, #f15a24 0%, #fbb03b 60%, #fbb03b 100%);
    }
    .co_button:hover {
        background-image: linear-gradient(90deg, #f15a24 0%, #fbb03b 60%, #fbb03b 100%) !important;
        opacity: 0.8;
    }
    .co_button:disabled:hover {
        background-image: linear-gradient(90deg, #f15a24 0%, #fbb03b 60%, #fbb03b 100%) !important;
        opacity: 1;
    }
}
.contact {
    .form-submit::before {
        left: calc(50% - min(calc((47 / 1400) * 100vw), 47px));
    }
    .co_button {
        padding-left: var(--num-50);
    }
}
@media screen and (max-width: 767px) {
    .content-box {
        flex-direction: column;
        max-width: 90%;
        gap: var(--num-32);
    }
    .content-box__main {
        width: 100%;
        padding-right: 0;
    }
    .content-box__form {
        width: 100%;
    }
    .content-box__form-inner {
        padding: var(--num-32) var(--num-25);
        border-radius: var(--num-15);
        position: static;
    }
    :is(.request, .contact) {
        .form-main {
            input::placeholder {
                font-size: var(--num-12);
            }
            input[type="checkbox"],
            input[type="radio"] {
                top:calc((4 / 540) * 100vw);
            }
            .wpcf7-list-item-label {
                font-size: calc((17 / 540) * 100vw);
            }
        }
        .form-item {
            margin-bottom: var(--num-20);
        }
        .required {
            font-size: var(--num-12);
        }
        .form-policy-wrap {
            margin-top: var(--num-45);
            margin-bottom: var(--num-45);
        }
        .policy-txt {
            margin-bottom: var(--num-20);
        }
        .wpcf7-acceptance input[type="checkbox"] {
            width: var(--num-22);
            height: var(--num-22);
            border-radius: 0;
            top: 4px;
        }
        .form-submit {
            font-size: var(--num-22);
        }
        .form-submit::before {
            width: calc((45 / 540) * 100vw);
            height: var(--num-32);
            top: calc((13 / 540) * 100vw);
            left: calc(50% - ((120 / 540) * 100vw));
        }
        .co_button {
            width: calc((428 / 540) * 100vw);
            height: calc((56 / 540) * 100vw);
            margin: 0;
            padding: 0 0 0 var(--num-60);
        }
    }
    .contact {
        .form-submit::before {
            left: calc(50% - ((47 / 540) * 100vw));
        }
        .co_button {
            padding-left: var(--num-50);
        }
    }
}

/* ======================
 資料請求
====================== */
.request {
    .request__main-head {
        margin-top: var(--num-70);
        font-size: var(--num-32);
        font-weight: 600;
    }
    .request__slider-wrap {
        margin-bottom: var(--num-80);
    }
    .request__slider-wrap .slick-dots li {
        width: 20px;
        height: 20px;
    }
    .request__slider-wrap .slick-dots li button:before {
        font-size: 14px;
        opacity: 1;
        color: #c8d0cb;
    }
    .request__slider-wrap .slick-dots li.slick-active button:before {
        color: var(--main-green);
    }
    :is(.request__recommend-head, .request__summary-head) {
        margin-bottom: var(--num-5);
        font-size: var(--num-28);
        font-weight: 600;
        text-align: center;
    }
    .request__recommend .request__icon {
        width: min(calc((118 / 1400) * 100vw), 118px);
        margin: 0 auto;
    }
    .request__summary .request__icon {
        width: min(calc((153 / 1400) * 100vw), 153px);
        margin: 0 auto var(--num-15);
    }
    .request__recommend {
        margin-bottom: var(--num-20);
    }
    .request__recommend-item {
        display: flex;
        gap: var(--num-5);
        font-size: var(--num-21);
        font-weight: 600;
        line-height: 1.8;
    }
    .request__recommend-item::before {
        flex-shrink: 0;
        content: "";
        display: block;
        width: var(--num-24);
        height: var(--num-24);
        margin-top: var(--num-8);
        background: url("/web/upload/2026/03/arrow-green.webp") no-repeat center / contain;
    }
    .request__summary-txt {
        font-size: var(--num-21);
        font-weight: 600;
    }
    .request__form-lead {
        margin-bottom: var(--num-30);
        font-size: var(--num-18);
    }
}

@media screen and (max-width: 767px) {
    .request {
        .request__main-head {
            margin-top: 0;
            font-size: var(--num-22);
            font-weight: 600;
            text-align: center;
        }
        .request__main-head span {
            display: block;
            font-size: var(--num-30);
            text-align: center;
        }
        .request__slider-wrap {
            margin-bottom: var(--num-70);
        }
        .slick-dots {
            margin: 0 0 5% 0 !important;
        }
        :is(.request__recommend-head, .request__summary-head) {
            margin-bottom: var(--num-5);
            font-size: var(--num-32);
        }
        .request__recommend .request__icon {
            width: calc((153 / 540) * 100vw);
            position: relative;
            right: var(--num-15);
        }
        .request__summary .request__icon {
            width: calc((200 / 540) * 100vw);
            margin: 0 auto var(--num-15);
        }
        .request__recommend {
            margin-bottom: var(--num-40);
        }
        .request__recommend-item {
            display: flex;
            gap: var(--num-5);
            font-size: var(--num-24);
        }
        .request__recommend-item::before {
            width: var(--num-28);
            height: var(--num-28);
        }
        .request__summary-txt {
            font-size: var(--num-24);
        }
        .request__form-lead {
            margin-bottom: var(--num-30);
            font-size: var(--num-18);
        }
    }
}

/* ======================
 問い合わせ
====================== */
.contact {
    gap: var(--num-65) 0;
    .content-box__main {
        padding-right: 0;
    }
    :is(.contact__img01, .contact__img02, .contact__img03, .contact__logos) {
        display: block;
        margin-inline: auto;
    }
    .contact__img01 {
        width: min(calc((760 / 1400) * 100vw), 760px);
        margin-top: var(--num-30);
        margin-bottom: var(--num-40);
    }
    .contact__img02 {
        width: min(calc((780 / 1400) * 100vw), 780px);
        margin-bottom: min(calc((42 / 1400) * 100vw), 42px);
    }
    .contact__logos {
        width: min(calc((811 / 1400) * 100vw), 811px);
        margin-bottom: min(calc((57 / 1400) * 100vw), 57px);
    }
    .contact__img03 {
        width: 100%;
        margin-bottom: var(--num-32);
    }
    .contact__online {
        width: min(calc((780 / 1400) * 100vw), 780px);
        margin-inline: auto;
        padding: var(--num-35) min(calc((180 / 1400) * 100vw), 180px) var(--num-22) var(--num-30);
        border: 1px solid #2e2e2e;
        border-radius: var(--num-28);
        position: relative;
    }
    .contact__online::after {
        content: "";
        display: block;
        width: min(calc((250 / 1400) * 100vw), 250px);
        height: min(calc((251 / 1400) * 100vw), 251px);
        background: url("/web/upload/2026/03/contact_img04.webp") no-repeat center / contain;
        position: absolute;
        bottom: max(calc((16 / 1400) * -100vw), -16px);
        right: max(calc((20 / 1400) * -100vw), -20px);
        z-index: 2;
    }
    .contact__online-head {
        display: flex;
        gap: var(--num-5);
        margin-bottom: var(--num-25);
        font-size: var(--num-28);
        font-weight: 600;
        line-height: 1.2;
    }
    .contact__online-head::before {
        content: "";
        display: block;
        width: var(--num-34);
        height: var(--num-34);
        background: url("/web/upload/2026/03/contact_icon_caution.webp") no-repeat center / contain;
    }
    :is(.contact__online-txt01, .contact__online-txt02) {
        margin-bottom: var(--num-10);
        font-size: var(--num-21);
        font-weight: 600;
    }
    :is(.contact__online-txt01, .contact__online-txt02) .link01 {
        text-decoration: underline;
        font-weight: 600;
    }
    .contact__online-note {
        font-size: var(--num-16);
        line-height: 1.6;
    }
    .content-box__form-inner {
        padding-top: var(--num-50);
    }
    .contact__form-head {
        margin-bottom: var(--num-25);
        font-size: var(--num-32);
        font-weight: 600;
        text-align: center;
        line-height: 1.6;
    }
}

@media screen and (max-width: 767px) {
    .contact {
        .contact__img01 {
            width: 100%;
            margin-top: 0;
            margin-bottom: var(--num-25);
        }
        .contact__img02 {
            width: calc((473 / 540) * 100vw);
            margin-bottom: var(--num-25);
        }
        .contact__logos {
            width: calc((436 / 540) * 100vw);
            margin-bottom: var(--num-30);
        }
        .contact__img03 {
            margin-bottom: var(--num-50);
        }
        .contact__online {
            width: 100%;
            padding: var(--num-18) var(--num-20);
            border-radius: var(--num-16);
        }
        .contact__online::after {
            width: calc((211 / 540) * 100vw);
            height: calc((213 / 540) * 100vw);
            bottom: calc((15 / 540) * -100vw);
            right: calc((21 / 540) * -100vw);
        }
        .contact__online-head {
            margin-bottom: var(--num-10);
            font-size: var(--num-25);
        }
        .contact__online-head::before {
            width: calc((27 / 540) * 100vw);
            height: calc((27 / 540) * 100vw);
        }
        :is(.contact__online-txt01, .contact__online-txt02) {
            margin-bottom: 0;
            font-size: var(--num-20);
            line-height: 1.8;
        }
        .contact__online-note {
            font-size: var(--num-13);
        }
        .content-box__form-inner {
            padding-top: var(--num-45);
        }
        .contact__form-head {
            margin-bottom: var(--num-32);
            font-size: var(--num-34);
        }
    }
}
