﻿@charset "utf-8";

/**
* top-image
============================== */
.top-image {
    position: relative;
}

.top-image__bg {
    object-fit: cover;
    width: 100%;
}

.top-image__text {
    width: min(50vw, 811px);
    position: absolute;
    top: 50%;
    left: 35%;
    transform: translate(-50%, -50%);
}
@media ( width <= 1240px) {
    .top-image__text {
        width: min(50vw, 737px);
        top: 48%;
        left: 28%;
    }
}
@media ( width <= 640px) {
    .top-image__text {
        width: 100%;
        top: 55%;
        left: 50%;
    }
}

/**
* intro
============================== */
.intro {
    padding-top: 10rem;
    position: relative;
}
@media ( width <= 768px ){
    .intro {
        padding-top: 0;
    }
}

.intro__bg-image {
    height: 320px;
    position: relative;
}

.intro__text-image {
    width: clamp(300px, 57vw, 736px);
}

.intro__bg-image::after {
    background: linear-gradient(
        to top,
        rgba(255, 255, 255, 1) 0%,
        rgba(255, 255, 255, 1) 15%,
        rgba(255, 255, 255, 0) 50%);
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.intro__bg-image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.intro__content {
    position: relative;
    z-index: 3;
}

.intro__text-image {
    margin-bottom: 4rem;
}

.intro-desc {
    font-size: clamp(1.6rem, 1.5vw, 1.8rem);
}

.intro-desc__em {
    color: #0068b7;
    font-size: clamp(1.8rem, 1.5vw, 2rem);
    font-weight: 700;
}
.intro-checklist {
    position: relative;
    text-align: center;
    background-color: #fff;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    margin-top: 85px;
    padding: 35px 40px 80px;
}
.intro-checklist-lead {
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-weight: bold;
    line-height: 1;
    background-color: #f36026;
    padding: 15px 20px;
    border-radius: 4px;
}
.intro-checklist-lead span{
    font-size: 1.5em;
}
.intro-checklist-lead::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -.9rem;
    background-color: #f36026;
    width: 20px;
    height: 10px;
    clip-path: polygon(0 0 , 50% 100% , 100% 0);
}
.intro-checklist-list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    text-align: left;
    margin-top: 40px;
}
.intro-checklist-list li {
    display: flex;
    align-items: center;
    gap: 2rem;
    border-bottom: 1px solid #b8b8b8;
    padding-bottom: 10px;
}
.intro-target {
    position: relative;
    background-color: var(--color-default);
    text-align: center;
    padding: 60px 0 50px;
    width: 100vw;
    margin: 0 calc( 50% - 50vw);
}
@media ( width <= 768px) {
    .intro-target {
        padding-inline: 20px;
    }
}
.intro-target::before {
    content: "";
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    background: url('images/target.png') no-repeat center;
    background-size: contain;
    width: clamp(100px, 25vw, 167px);
    aspect-ratio: 167 / 74;
}

@media ( width > 769px) {

    .intro::before {
        position: absolute;
        display: block;
        content: "";
        top: 0;
        left: 0;
        z-index: 2;
        width: 100vw;
        height: 100%;
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 1) 45%,
            rgba(255, 255, 255, 0) 70%);
    }

    .intro__bg-image {
        height: initial;
        position: absolute;
        top: 0;
        right: 0;
        z-index: 1;
    }

    .intro__bg-image::after {
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 1) 17%,
            rgba(255, 255, 255, 0) 50%);
    }
}

/**
* worry
============================== */
.worry {
    margin-bottom: 85px;
}

.worry__inner {
    background:
    url(svg/worry_bg_on.svg) no-repeat center 100.1% / 100%,
    url(images/worry_bg.jpg) no-repeat center 0 / cover;
    padding: 75px 0 120px;
}

.worry__text-image1 {
    text-align: center;
    margin-bottom: 40px;
}

.worry__image {}

.worry__text-image2 {
    text-align: center;
    margin-top: 50px;
}

/**
* reason
============================== */
.reason {
    background-color: #f7f7f7;
    padding-top: 10rem;
}
.reason__text-image {
    text-align: center;
}
.reason-list {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    margin: 8rem 0;
}
.reason-list-item {
    display: flex;
    align-items: flex-start;
    gap: 3rem;
}
@media ( width <= 641px){
    .reason-list-item {
        display: block;
        text-align: center;
    }
    .reason-list-item img {
        width: 100%;
    }
}
.reason-list-title {
    color: #2f455d;
    font-size: clamp(2.4rem, 2vw, 3rem);
    font-weight: bold;
    margin-bottom: 10px;
}
@media ( width <= 641px){
    .reason-list-title{
        margin-top: 10px;
    }
}

/**
* can
============================== */
.can {
    background: #e3dec2 url(images/can_bg.png) no-repeat center 0 / cover;
    padding: 75px 0;
}
.can__text-image {
    text-align: center;
    margin-bottom: 50px;
}
.can-box-wrap {}

.can-box {
    background: #fff;
    border-radius: 10px;
    padding: calc(35 / 960 * 100%) calc(60 / 960 * 100%);
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 500;
}
.can-box-badge {
    display: block;
    margin: 0 auto -10px;
    position: relative;
    z-index: 1;
    width: min(221px, 30%);
}
.can-box + .can-box {
    margin-top: 30px;
}

.can-box__title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(5px, 1.5vw, 15px);
    font-size: clamp(1.8rem, 2.8vw, 30px);
    font-weight: 700;
    text-align: center;
    margin-bottom: 0.5555em;
}

.can-box__title::before,
.can-box__title::after {
    background: #777777;
    content: "";
    width: clamp(40px, 6.2vw, 60px);
    height: 1px;
}

.can-box__title::before {}

.can-box__title::after {}

.can-box__square {
    margin: 20px 0;
}

.can__note {
    font-size: clamp(1.4rem, 1.8vw, 1.8rem);
    text-align: right;
    margin-top: 25px;
}

/**
* voice
============================== */
.voice {
    background-image: repeating-linear-gradient(0deg, #f2f7fc, #f2f7fc 1px, transparent 1px, transparent), repeating-linear-gradient(to right, #e6eaef, #e6eaef 1px, #f2f7fc 1px, #f2f7fc);
    background-size: 1px 3px, 2px 2px;
    padding: 100px 0;
}

.voice__text-image {
    text-align: center;
    margin-bottom: 30px;
}

.voice__desc {
    font-size: clamp(1.6rem, 1.5vw, 1.8rem);
    text-align: center;
}

.voice-list {
    max-width: 840px;
    margin: 60px auto 0;
}

.voice-list__item {}

.voice-list__item + .voice-list__item {
    border-top: 1px solid #dddddd;
    padding-top: 20px;
    margin-top: 20px;
}

.voice-image {
    width: 80px;
    margin-right: 1em;
    float: left;
    position: relative;
}
.voice-image * {
    border-radius: 100px;
}
.voice-image::after {
    border-radius: 100px;
    box-shadow: inset 0 0 0 3px #dae8f6;
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: scale(1.01);
}

.voice-list__desc {
    font-size: clamp(1.6rem, 1.5vw, 1.8rem);
    padding-top: calc(10 / 840 * 100%);
}

@media ( width > 641px) {
    .voice-list__item {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
    }
    .voice-image {
        width: calc(120 / 840 * 100%);
        float: initial;
    }
    .voice-list__desc {
        width: calc(700 / 840 * 100%);
    }
}

/**
* estimate
============================== */
.estimate {
    position: relative;
    z-index: 1;
    overflow: hidden;
    padding: 110px 220px 150px;
}
@media ( width <= 1024px){
    .estimate {
        padding: 20px;
    }
}
.estimate::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(
            to right,
            #fff 45%,
            rgba(255,255,255,.15) 75%
        ),
        url("images/estimate-bg.jpg");
    background-repeat: no-repeat;
    background-position: right;
    background-size: cover;
    filter: blur(3px) opacity(.5);
}
.estimate__text-image {
    text-align: center;
}
.estimate-desc {
    margin-top: 60px;
}
.estimate-desc__lead {
    color: #0068b7;
    font-size: clamp(1.8rem, 2vw, 2.2rem);
}
.estimate-desc-em {
    background: linear-gradient(transparent 50%, #e6eaef 50%);
}
.estimate-desc img {
    padding-block: 20px 40px;
}
.estimate-border {
    border: 1px solid #000;
    width: 80px;
}
.estimate-desc__detail {
    margin-top: 40px;
}

/**
* advantage
============================== */
.advantage {
    margin: 90px 0 70px;
}

.advantage__text-image {
    text-align: center;
    margin-bottom: 45px;
}

.advantage-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: clamp(10px, 1.59vw, 20px);
    font-size: 1.6rem;
}

.advantage-list__item {
    border: 4px solid #0068b7;
    flex: 1 1 100%;
    text-align: center;
    padding: max(calc(30 / 1120 * 100%), 15px);
}

.advantage-list__image-wrap {}

.advantage-list__image {}

.advantage__title {
    color: #0068b7;
    font-size: 1.125em;
    font-weight: 700;
    margin: .625em 0 .9375em;
}

.advantage__desc {
    text-align: left;
}

@media ( width > 641px) {
    .advantage-list__item {flex: 1 1 calc(360 / 1120 * 100%);}
}
@media ( width > 769px) {
    .advantage {
        margin: 140px 0 120px;
    }
}

/**
* flow
============================== */
.flow {
    padding: 80px 0 110px;
    background-image: repeating-linear-gradient(0deg, #f2f7fc, #f2f7fc 1px, transparent 1px, transparent), repeating-linear-gradient(to right, #e6eaef, #e6eaef 1px, #f2f7fc 1px, #f2f7fc);
    background-size: 1px 3px, 2px 2px;
}

.flow__text-image {
    text-align: center;
    margin-bottom: 55px;
}

.flow-list {}

.flow-list__item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.flow-list__item + .flow-list__item {
    margin-top: 30px;
}

.flow-step {
    background: #2f455d;
    border-radius: 5px;
    color: #fff;
    line-height: 1.1;
    text-align: center;
    width: calc(240 / 960 * 100%);
    padding: 20px;
    margin-right: 1em;
    position: relative;
}

.flow-step::after {
    border-style: solid;
    border-width: 11px 6.5px 0 6.5px;
    border-color: #2f455d transparent transparent transparent;
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
}

.flow-list__item:last-child .flow-step {
    background: #f36026;
}

.flow-list__item:last-child .flow-step::after {
    border-style: none;
}

.flow-step__num {
    font-size: 2em;
}

.flow-list__box {
    font-size: 1.6rem;
    width: calc(690 / 960 * 100%);
}

@media ( width > 768px){
    .flow__icon {
        margin-right: 10px;
    }
}

.flow-list__title {
    border-bottom: 1px solid var(--color-default);
    display: flex;
    align-items: center;
    font-size: clamp(1.8rem, 2vw, 2.4rem);
    font-weight: 700;
    padding-bottom: 5px;
    margin-bottom: 12px;
}
@media(width <= 768px){
    .flow-list__title {
        gap: 10px;
    }
}

.flow-list-title__label {
    color: #fff;
    font-size: 1.4rem;
    padding: 8px 20px;
    background-color: #fe9733;
    border-radius: 3px;
    margin-left: 20px;
}
@media (width <= 768px) {
    .flow-list-title__label {
        margin-left: 0;
        padding: 8px 10px;
    }
}

.flow-list__item:last-child .flow-list__title {
    color: #f36026;
}

.flow-list__item:last-child .flow__icon {
    fill: #f36026;
}

.flow-list__desc {}

@media ( width > 641px) {
    .flow {
        background-size: 1px 3px, 2px 2px;
    }
}

/**
* qa
============================== */
.qa {
    padding-block: 10rem;
}
.qa__text-image {
    text-align: center;
    margin-bottom: 60px;
}
.qa-list {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.qa-list__item + .qa-list__item {
    border-top: 1px solid #e6eaef;
    padding-top: 40px;
}

.qa-list__row {
    display: flex;
    gap: 2rem;
    align-items: center;
    font-weight: bold;
}

.qa-list__row--a {
    margin-top: 20px;
}

.qa-list__icon {
    background-color: #2f455d;
    border-radius: 5px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    font-size: 2.4rem;
}

.qa-list__icon--a {
    background: #f36026;
}

/**
* promise
============================== */
.promise {
    background: #f7f7f7;
    padding-block: 10rem;
}
.promise__text-image {
    text-align: center;
    margin-bottom: 60px;
}
.promise-list {
    display: flex;
    gap: 6rem;
}
@media ( width <= 768px) {
    .promise-list {
        flex-direction: column;
    }
}
.promise-list__item {
    flex: 1;
}
.promise-list__image {
    position: relative;
    margin-bottom: 20px;
}
.promise-list__image::before {
    display: block;
    position: absolute;
    top: -2.4rem;
    left: 1rem;
    color: #2f455d;
    font-size: 4.4rem;
    font-family: '小塚ゴシック Pro';
    font-style: italic;
    font-weight: bold;
    line-height: 1;
    opacity: .5;
}

.promise-list__item:nth-child(1) .promise-list__image::before {
    content: "01";
}

.promise-list__item:nth-child(2) .promise-list__image::before {
    content: "02";
}

.promise-list__item:nth-child(3) .promise-list__image::before {
    content: "03";
}

.promise-list__image img{
    width: 100%;
}

.promise-list__title {
    color: #2f455d;
    font-size: clamp(2rem, 2vw, 2.4rem);
    font-weight: bold;
    padding-block: 20px;
}
@media ( width > 769px){
    .promise-list__title{
        min-height: 5em;
    }
}
.promise-list__desc {
    font-size: clamp(1.6rem, 2vw, 1.8rem);
}

/**
* representative-message
============================== */
.representative-message {
    padding-block: 10rem 15rem;
}

.representative-message__text-image {
    text-align: center;
    margin-bottom: 60px;
}
.representative-message__inner {
    display: flex;
    align-items: flex-start;
    gap: 6rem;
}
@media ( width <= 768px) {
    .representative-message__inner {
        display: block;
    }
}

.representative-message__image {
    margin-bottom: 1.5em;
    text-align: center;
}

.representative-message__box {
    flex: 1;
}

.representative-message__catch {
    font-size: clamp(2rem, 2vw, 2.4rem);
    font-weight: bold;
    margin-bottom: 30px;
}

.representative-message__desc {
    font-size: 1.6rem;
}

.representative-message__name {
    font-weight: bold;
    text-align: right;
    margin-top: 30px;
}

/**
* contacting
============================== */
.contacting {
    background: #f7f7fa url(images/contacting_01.png) no-repeat right 0 / contain;
    padding: 75% 0 80px;
}

.contacting__bg-image {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

.contacting__text-image {
    margin-bottom: 50px;
}

.contacting-desc {}

@media ( width > 769px) {
    .contacting {
        background: linear-gradient(to right, #f7f7fa 0%, #f7f7fa 50%, rgba(255, 255, 255, 0) 60%), #f7f7fa url(images/contacting_01.png) no-repeat right 0 / clamp(50%, 59.2vw, 948px);
        padding: min(8.75vw, 140px) 0 min(14.37vw, 230px);
    }

    .contacting__text-image {
        width: clamp(400px, 51.5vw, 567px);
    }
}

/**
* contact-area
============================== */
.contact-area {
    background: var(--color-default);
}
.contact-area__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin: 0 auto;
    padding-top: 40px;
    padding-bottom: 40px;
    max-width: calc(1120px + (var(--addLR) * 2));
    position: relative;
}
@media ( width <= 768px ){
    .contact-area__inner {
        padding-inline: 50px;
    }
}
.contact-area__tel,
.contact-area__btn {
    filter: brightness(1);
    opacity: 1;
    transition: filter var(--duration), opacity var(--duration);
}
.contact-area__tel {
    margin-left: 0;
}
.contact-area__tel:hover {
    opacity: .8;
}
.contact-area__btn {}
.contact-area__btn:hover {
    filter: brightness(1.2);
}
.contact-area__image {
    display: none;
}

@media ( width > 641px) {
    .contact-area {
        padding: 0;
    }
    .contact-area__inner {
        flex-direction: row;
        gap: 0;
    }
    .contact-area__tel {
        margin-left: calc(40 / 1120 * 100%);
    }
}
@media ( width > 961px) {
    .contact-area__image {
        display: block;
        position: absolute;
        right: 0;
        bottom: 0;
    }
}


/**
* input
============================== */
input:where([type="text"]),
input:where([type="tel"]),
input:where([type="email"]),
input:where([type="password"]),
input:where([type="number"]),
textarea,
select {
    background: #fff;
    border: 1px solid #999;
    border-radius: 2px;
    box-sizing: border-box;
    font-family : inherit;
    font-size : 100%;
    font-weight: 400;
    vertical-align: baseline;
    padding: .72em 1em;
}
input:where([type="text"])#postcode {
    width: 170px;
}
select#address1 {
    background-image: url(svg/form_address_arrow.svg);
    background-repeat: no-repeat;
    background-position: 90% center;
    max-width: 200px;
    width: 100%;
    padding: .72em 2em .72em 1em;
    -webkit-appearance: none;
    appearance: none;
}
input:where([type="text"]),
input:where([type="tel"]),
input:where([type="email"]),
input:where([type="password"]),
input:where([type="number"]),
textarea {
    width: 100%;
}
input:where([type="text"]):focus,
input:where([type="tel"]):focus,
input:where([type="email"]):focus,
input:where([type="password"]):focus,
input:where([type="number"]):focus,
textarea:focus,
select:focus {
    background: var(--color-bg2);
    outline: none;
}
input.imeoff {ime-mode: disabled;}
textarea {width: 100%; height: 200px;}
.iw100 {width: 8em !important;}
.iw200 {width: 16em !important;}
.iw300 {width: 24em !important;}

input::placeholder {
    color: #999;
}

input:where([type="submit"]),
button:where([type="submit"]),
.submit_area input:where([type="button"]) {
    background: #0068b7;
    cursor: pointer;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.4;
    min-width: 100%;
    margin: 5px 0;
    padding: 24px 20px;
    transform: translateY(0);
    transition: background .2s ease-out, filter .2s ease-out;
    -webkit-appearance: none;
    appearance: none;
}

input:where([type="submit"]):hover,
button:where([type="submit"]):hover {filter: brightness(1.2);}

button:where([type="submit"][name="submitBack"]),
input:where([type="submit"][name="submitBack"]) {
    background-color: #eee;
    border-color: #bbb;
    color: #666;
}
button:where([type="submit"][name="submitBack"]):hover,
input:where([type="submit"][name="submitBack"]):hover {
    background: #bbb;
    filter: brightness(1);
}

@media ( width > 769px) {
    input:where([type="submit"]),
    button:where([type="submit"]),
    .submit_area input:where([type="button"]) {
        font-size: 2.2rem;
        min-width: 340px;
        margin: 0;
    }
    .submit_area input:where([type="button"]) {
        min-width: 250px;
    }
}
@media ( width > 1024px) {
    .submit_area input:where([type="button"]) {
        min-width: 300px;
    }
}


/**
* contact
============================== */
.contact {
    background: #f2f7fc;
    padding: 70px 0 45px;
}
.contact__inner {
    margin-top: -100px;
    padding-top: 100px;
}
.contact__text-image {
    text-align: center;
    margin-bottom: 30px;
}
.contact__form-area {background: #fff;border-radius: 3px;padding: calc(40 / 960 * 100%) 5vw;box-shadow: inset 0 0 0 4px #d9ebfc;}
.rei {
    color: #999;
    margin-bottom: 5px;
    font-size: 1.30px;
}

/* form-flow */
.form-flow {
    display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    margin: 0 auto 60px;
    max-width: 640px;
    position: relative;
    z-index: 1;
}
.form-flow::before {
    background: var(--color-border);
    content: "";
    z-index: -1;
    margin: auto;
    height: 1px;
    width: 100%;
    position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        top: 0;
}
.form-flow li {
    background-color: var(--color-bg);
    border-radius: 60px;
    display: flex;
        align-items: center;
        justify-content: center;
    text-align: center;
    height: 60px;
    width: 30%;
}
.form-flow li.active {
    background-color: var(--color-link);
    color: #fff;
}

/* agree */
.agree {
    font-weight: 400;
    margin: 40px auto 60px;
    max-width: 640px;
}
.agree-title {
    font-weight: 700;
    margin-bottom: .5em;
    line-height: 1.5;
}
.agree p {
    font-size: 1.4rem;
    text-align: center;
}
.agree-check {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    margin-top: 1em;
    margin-bottom: 1em;
}
.agree-check .wpcf7-acceptance label {
    background: #fff;
}
.agree-privacy {
    color: #0068b7;
    position: relative;
    transition: color .2s ease-out;
}
.agree-privacy:hover {
    color: #2f455d;
}
.agree-privacy::after {
    content: "";
    border-bottom: 1px solid;
    width: 100%;
    position: absolute;
    top: calc(100% + .1em);
    left: 0;
}




/* form-table */
.form-table {
    border-bottom: 1px solid #d5dadf;
    padding-bottom: 10px;
}
.form-table__wrap {
    border-top: 1px solid #d5dadf;
    font-size: 1.6rem;
    padding-top: 10px;
}
.form-table__wrap + .form-table__wrap {
    margin-top: 10px;
}
.form-table__head,
.form-table__data {
    position: relative;
}

.req {
    position: relative;
    display: flex;
    align-items: center;
}
.req p {
    margin: 0;
}
.req::after {
    background: #a12323;
    content: "必須";
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.6em;
    letter-spacing: 0;
    white-space: nowrap;
    padding: 2px 13px 1px 13px;
    margin-left: 1.6em;
}

.form-table__head-sub {
    font-size: .75em;
    font-weight: 400;
}
.form-table__data--textarea {
    max-height: 200px;
}


.form-table__address {}

.form-table__address-wrap + .form-table__address-wrap {
    margin-top: 10px;
}
.form-table__address-head {
    font-weight: 400;
    min-width: 120px;
}
.form-table__address-data {}

.form-table__address-data > :first-child {
    width: calc(100% - 1em);
    /* margin: 0 0 0 1em; */
}

.form-table__address-data + .form-table__address-data {
    margin-top: .625em;
    /* margin-left: 1.25em; */
}

@media ( width <= 768px) {
    .form-table__address,
    .form-table__data--consult,
    .form-table__data--contact {
        padding: 0 10px;
    }
    .form-table__head {
        background: #d9ebfc;
        border-radius: 4px;
        margin-bottom: 10px;
        padding: 5px 10px;
        position: relative;
    }
}
@media ( width > 769px) {
    .contact__form-area {
        padding: calc(40 / 960 * 100%) calc(70 / 960 * 100%);
    }
    .form-table__wrap {
        display: flex;
        align-items: center;
    }
    .form-table__head {
        align-self: flex-start;
        width: max(calc(260 / 860 * 100%), 200px);
        padding: .72em clamp(30px, 6.13vw, 65px) .72em .8888em;
    }
        .req {
        justify-content: space-between;
    }
    .form-table__data {
        flex: 1;
        max-width: calc((600 / 860 * 100%) - 1.25em);
    }
    .form-table__address-wrap {
        display: flex;
        align-items: center;
    }
    .form-table__consult {
        display: flex;
        flex-wrap: wrap;
        gap: 5px 0;
        margin-top: 1em;
        margin-bottom: .7em;
    }
}

@media ( width > 1025px) {
    .contact {
        padding: 120px 0 95px;
    }
    .contact__inner {
        margin-top: -180px;
        padding-top: 180px;
    }
    .contact__text-image {
        margin-bottom: 80px;
    }
    .contact__form-area {padding: calc(60 / 960 * 100%) calc(50 / 960 * 100%) calc(120 / 960 * 100%);}
}

.submit-area {
    text-align: center;
    margin-top: 30px;
}
.submit-area__btn {
    display: block;
    position: relative;
}
.submit-area__btn p {
    display: inline-block;
    position: relative;
}
.submit-area__btn .wpcf7-spinner {
    position: absolute;
    top: 50%;
    left: 100%;
    margin: 0 0 0 10px;
    transform: translateY(-50%);
}
.submit__icon {
    position: absolute;
    top: 50%;
    right: 26px;
    transform: translateY(-50%);
    pointer-events: none;
    transition: fill .2s ease-out, transform .2s ease-out;
}
input[type="submit"]:hover + .submit__icon,
button[type="submit"]:hover + .submit__icon {
    transform: translateY(calc(-50% + 5px));
}
.wpcf7-form .wpcf7-not-valid-tip {
    background-color: var(--color-red);
    border: 1px solid;
    border-radius: 3px;
    color: #fff !important;
    margin-top: 5px;
    padding: 0 .5em;
    width: 100%;
}

.agree-check .wpcf7-not-valid-tip {
    margin-top: 1em;
    order: 1;
}

@media ( width > 769px) {
    .submit-area__btn {
        display: inline-block;
    }
}

/* wpcf7-list-item / wpcf7-acceptance（旧 mwform-checkbox-field） */
/* 横幅指定は複数選択のチェックボックス群（.wpcf7-checkbox）のみに限定し、
   同意チェックボックス（.wpcf7-acceptance）には適用しない */
.wpcf7-checkbox .wpcf7-list-item {
    display: inline-block;
    width: 49%;
    margin: 0 !important;
}
.wpcf7-list-item input[type=checkbox] {
    appearance: none;
    display: none;
}
.wpcf7-list-item input[type=checkbox] + span {
    display: flex;
    align-items: center;
    font-size: 1.4rem;
    font-weight: 400;
    position: relative;
    cursor: pointer;
}
.wpcf7-list-item input[type=checkbox] + span::before {
    background: #fff;
    border: 1px solid var(--color-default);
    content: "";
    display: block;
    box-sizing: border-box;
    width: 12px;
    min-width: 12px;
    height: 12px;
    margin-right: .5em;
}
.wpcf7-list-item input[type=checkbox]:checked + span::before {
    background: var(--color-default);
}
.wpcf7-list-item input[type=checkbox]:checked + span::after {
    border-bottom: 2px solid;
    border-left: 2px solid;
    border-color: #fff;
    content: "";
    display: block;
    box-sizing: border-box;
    width: 7px;
    height: 4px;
    position: absolute;
    top: calc(50% + -1px);
    left: 4px;
    transform: rotate(-45deg) translateY(-50%);
}
@media ( width > 769px) {
    .wpcf7-list-item input[type=checkbox] + span {
        font-size: 1.6rem;
    }
    .wpcf7-list-item input[type=checkbox] + span::before {
        width: 15px;
        min-width: 15px;
        height: 15px;
    }
    .wpcf7-list-item input[type=checkbox]:checked + span::after {
        width: 8px;
        left: 5px;
    }
}

@media ( width > 1025px) {
    .wpcf7-checkbox .wpcf7-list-item {
        width: 32%;
    }
}

/* privacy-box */
#privacy {
    padding: var(--addLR);
    height: 100vh;
}
.privacy-box {
    background: #fff;
    border: 4px solid var(--color-default);
    border-radius: 20px;
    font-size: 1.4rem;
    font-weight: 400;
    max-width: 940px;
    height: 100%;
    max-height: 814px;
    padding: calc(40 / 940 * 100%) calc(50 / 940 * 100%) calc(45 / 940 * 100%);
    box-shadow: 0 20px 20px 0 rgb(0 0 0 / 30%);
    overflow-y: auto;
}
.privacy-box::-webkit-scrollbar {
    display: none;
}
.privacy-title {
    font-size: 1.5em;
    font-weight: 700;
    margin-bottom: .8333em;
}
.privacy-desc {
    line-height: 1.5;
    margin-bottom: 1.5em;
}
.privacy-decimal {
    line-height: 1.5;
    list-style: decimal;
}
.privacy-decimal__item {
    padding-left: 1em;
    margin-left: 1em;
}
.privacy-decimal__item + .privacy-decimal__item {
    margin-top: 1.5em;
}
.privacy-info {
    font-size: .875em;
    line-height: 1.7;
    margin-top: 2.5em;
}
.privacy-info__title {
    font-size: 1.143em;
}
.privacy-close {
    background: #f4f4f4;
    border-radius: 50px;
    display: block;
    text-align: center;
    max-width: 140px;
    padding: 4px 0;
    margin: 3em auto 0;
    cursor: pointer;
}

@media ( width > 769px) {
    .privacy-box {
        font-size: 1.6rem;
    }
}


/**
* company
============================== */
.company {
    padding-top: 70px;
    padding-bottom: 30px;
}
.company__text-image {
    text-align: center;
    margin-bottom: 30px;
}
.company-list {
    border-bottom: 1px solid;
    max-width: 760px;
    margin: 0 auto;
}
.company-list__item {
    background: #f2f7fc;
    border-top: 1px solid;
    display: flex;
    align-items: center;
    font-size: 1.6rem;
}
.company-list__dt {
    width: clamp(100px, calc(180 / 760 * 100%), 180px);
    text-align: center;
    padding: 20px 10px;
    word-break: auto-phrase;
}
.company-list__dd {
    background: #fff;
    width: min(calc(100% - (180 / 760 * 100%)), calc(100% - 100px));
    padding: 40px 10px;
    position: relative;
}
.company-list__dd::after {
    border-top: 1px solid #d5dadf;
    content: "";
    width: 100%;
    position: absolute;
    top: -1px;
    left: 0;
    pointer-events: none;
}
.company-list__item:last-child .company-list__dd::after {
    border-bottom: 1px solid #d5dadf;
    content: "";
    bottom: -1px;
}
.company-list__map {
    margin-top: 40px;
    max-width: 100%;
}
.company__logo {
    display: block;
    margin: 60px auto 0;
}
@media ( width > 641px) {
    .company__logo {
        margin: 120px auto 0;
    }
    .company-list__dd {
        padding: 20px 10px 20px calc(60 / 760 * 100%);
    }
}
@media ( width > 769px) {
    .company {
        padding-top: 120px;
        padding-bottom: 60px;
    }
    .company__text-image {margin-bottom: 80px;}
}

/**
* history
============================== */
.history__text-image {
    text-align: center;
    margin: 50px;
}



/* CF7 confirm screen */
.cf7-confirm[hidden],
.wpcf7 form > [hidden] {
    display: none !important;
}

.cf7-confirm .form-table__data {
    word-break: break-word;
}

.cf7-confirm__field:empty::before {
    content: "―";
}

.submit-area--confirm {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 12px;
}

.submit-area--confirm .js-back-button {
    background-color: #eee;
    border: 1px solid #bbb;
    border-radius: 2px;
    color: #666;
    cursor: pointer;
    font-family: inherit;
    font-size: 1.8rem;
    line-height: 1.4;
    min-width: 100%;
    padding: 24px 20px;
    transition: background .2s ease-out, filter .2s ease-out;
    -webkit-appearance: none;
    appearance: none;
}

.submit-area--confirm .js-back-button:hover {
    background: #bbb;
}

@media ( width > 769px) {
    .submit-area--confirm {
        flex-direction: row;
        justify-content: center;
        gap: 20px;
    }

    .submit-area--confirm .js-back-button {
        font-size: 2.2rem;
        min-width: 250px;
    }
}

@media ( width > 1024px) {
    .submit-area--confirm .js-back-button {
        min-width: 300px;
    }
}
