@charset "UTF-8";



.pageHeader_contact {
    display: flex;
    background: linear-gradient(to right, #00469B, #3382ED);
    padding: min(30%, 16rem) 6rem 12.1rem 8rem;
    justify-content: space-between;
    min-height: 250px;
    align-items: center;
}

.title_contact {
    margin-top: -0.1rem;
}

.title_contact h2 {
    font-family: roboto;
    color: #fff;
    opacity: 50%;
    font-size: min(10vw, 11rem);
    font-weight: 500;
    white-space: nowrap;
    margin-top: -2rem;
}

.title_contact p {
    font-size: 2.3rem;
    color: #fff;
    font-weight: 700;
    margin: -3.5rem 0 0 0;
    letter-spacing: 0.15em;
}



.bgabout01 {
    background-color: #F4F6F8;
}

.bgabout02 {
    background-color: #fff;
}

@media screen and (min-width: 1366px) {
    .pageHeader_contact {
        padding: min(30%, 16rem) calc(100vw / 3 - 395px) 12.1rem calc(100vw / 3 - 375px);
    }

}


@media screen and (max-width: 1028px) {

    .pageHeader_contact {
        padding: 6.8rem 16rem 7.2rem 3rem;
    }

    main .contact_wrapper {
        padding-top: 6.3rem;
    }

    .title_contact h2 {
        font-size: clamp(5.7rem, 10vw, 13rem);
    }

    .title_contact p {
        font-size: 1.8rem;
        margin: -2.5rem 0 0 0;
    }

    .title_contact {
        margin: 1rem 2rem 0;
    }

    .index_contact {
        display: none;
    }

    .title_contact h2 {
        margin-top: 0;
    }

}



@media screen and (max-width: 570px) {
    .pageHeader_contact {
        padding: 7rem 16rem 6rem 0;
    }
}

@media screen and (max-width: 410px) {
    .title_contact h2 {
        font-size: min(14vw, 5.7rem);
    }

    .pageHeader_contact {
        min-height: 200px;
    }
}


/***********************:title****************************/
.contactpage_title {
    position: relative;
    display: flex;
    /* フレックスボックスを有効化 */
    justify-content: center;
    /* 水平方向の中央寄せ */
    align-items: center;
    /* 垂直方向の中央寄せ */
    font-size: 30px;
    /* 通常テキスト用のフォントサイズ */
    color: #000;
    /* 通常テキストの色 */
    letter-spacing: 0.15em;
}



.contactpage_title::after {
    content: 'CONTACT INFORMATION';
    position: absolute;
    font-family: "Roboto Condensed", sans-serif;
    top: 50%;
    /* 垂直方向の中央寄せ */
    left: 50%;
    /* 水平方向の中央寄せ */
    transform: translate(-50%, -55%);
    /* 中央に配置 */
    font-size: clamp(3.5rem, 9.8vw, 14.6rem);
    /* 背景テキストのフォントサイズ */
    color: #f4f6f8;
    /* 背景テキストの色（透明度含む） */
    z-index: 0;
    /* 背景として配置 */
    white-space: nowrap;
    /* テキストの折り返し防止 */
    letter-spacing: normal;
}

.contactpage_title_line {
    background-image: linear-gradient(to right, #00469B, #3382ED);
    min-width: 110px;
    text-align: center;
    /* 線の色 */
    background-size: 110px 8px;
    /* 幅(100%=文字の長さ) | 高さ(線の太さ) */
    background-position: bottom;
    /* 下に配置 */
    background-repeat: no-repeat;
    /* 背景を繰り返さない */
    padding-bottom: 21px;
    /* オフセット */
    z-index: 1;
}

@media (max-width: 767px) {
    .contactpage_title {
        font-size: 22px;
    }

    .contactpage_title_line {
        background-size: 80px 6px;
        /* 幅(100%=文字の長さ) | 高さ(線の太さ) */
        padding-bottom: 12px;
    }
}


/*********************************************************/

.contact_wrapper {
    width: 100%;
    margin: 0 auto;
    padding-top: 11rem;
    padding-bottom: 12.7rem;

}

.contact_container {
    max-width: 1020px;
    width: 100%;
    padding: 0 20px;
    margin: 0 auto;
}

.contact_container > p {
    padding-top: 3.5rem;
    text-align: justify;
    position: relative;
    z-index: 1;
}

.contact_list {
    padding-top: 5.8rem;
}


.contact_card {
    display: flex;
    align-items: center;
    color: #fff;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
}

.contact_card_img {
    max-width: 350px;
    width: 100%;
    max-height: 150px;
    overflow: hidden;
}

.contact_card_img img {
    transform: scale(1.02)
}

.contact_card_title {
    background: #00469b;
    height: 150px;
    width: 100%;
    max-width: 630px;
    display: flex;
    align-items: center;
    padding-left: 30px;
}




.contact_margin:not(:first-child) {
    margin-top: 20px;
}

.btn_contact {
    display: block;
    position: relative;
    animation: progress linear;
    animation-timeline: scroll();
}

.btn_contact::after {
    content: "";
    display: inline-block;
    width: 32px;
    height: 32px;
    background-image: url('../images/common/right_arrow_bl.svg');
    background-position: center;
    background-size: contain;
    position: absolute;
    top: 62px;
    right: 20px;
    transition: 0.2s ease-out;
}

.btn_contact:hover {
    opacity: 0.8;
    color: #fff;
    transition: 0.2s ease-out;
}

.btn_contact:hover::after {
    transform: translate(5px, 0);
}

.back_contact_block {
    margin: 0 auto;
    text-align: center;
    padding-top: 2.5rem;
}


.back_contact {
    margin: 0 auto;
    text-align: center;
    font-size: 1.8rem;
    color: #00469b;

    font-weight: bold;
}

.back_contact:hover {
    opacity: .5;
    transition: 0.2s ease-out;
    color: #00469b;
}




@media screen and (min-width:1029px) {


    .contact_card .contact_br_sp {
        display: none;
    }


}

@media screen and (max-width:1028px) {

    .contact_card .contact_br_pc {
        display: none;
    }

    .contact_card {
        font-size: 2.5rem;
        line-height: 1.6;
    }

}


@media screen and (max-width:767px) {

    .contact_wrapper {

        padding-top: 6.3rem;

    }

    .contact_margin:not(:first-child) {
        margin-top: 50px;
    }

    .contact_card {
        display: block;
        white-space: nowrap;
    }

    .contact_card_img {
        max-width: 100%;
        max-height: 100%;
    }

    .contact_card_title {
        max-width: 100%;
        margin-top: -2px;
        padding: 0;
        justify-content: center;
    }


    .btn_contact::after {
        top: auto;
        bottom: 5.5%;
        right: 4.5%;
    }

    .contact_card img {
        width: 100%;
    }

    .contact_card p {
        padding: 35px 55px;
        text-align: center;
    }

    .contact_card .contact_br_pc {
        display: none;
    }

    .back_contact {
        font-size: 1.6rem;
    }

}

@media screen and (max-width:390px) {
    .btn_contact::after {

        width: 25px;
        height: 25px;
        bottom: 10px;
        right: 10px;

    }
}



/***********************:contactform****************************/

.pageHeader_contactform {
    display: flex;
    background: linear-gradient(to right, #00469B, #3382ED);
    padding: min(30%, 15rem) 16rem 14.225rem 8rem;
    justify-content: space-between;
    min-height: 250px;
    align-items: center;
}

.title_contactform {
    margin-top: 1rem;
}

.title_contactform h2 {
    font-family: roboto;
    color: #fff;
    opacity: 50%;
    font-size: min(10vw, 11rem);
    font-weight: 500;
    white-space: nowrap;
}

.title_contactform p {
    font-size: 2.3rem;
    color: #fff;
    font-weight: 700;
    margin: -3.5rem 0 0 0;
    letter-spacing: 0.15em;
}

.contactform_title {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 30px;
    color: #000;
    letter-spacing: 0.15em;
    padding-bottom: 50px;
    line-height: 1.3;
}

.contactform_title_line {
    background-image: linear-gradient(to right, #00469B, #3382ED);
    min-width: 110px;
    text-align: center;
    background-size: 110px 8px;
    background-position: bottom;
    background-repeat: no-repeat;
    padding-bottom: 27px;
    z-index: 1;
}

.contactform_wrapper {
    width: 100%;
    margin: 0 auto;
    padding-top: 8rem;
    padding-bottom: 4rem;

}

.contactform_intro {
    text-align: center;
    margin-bottom: 20px;
    font-size: 2rem;
}

.contactform_container {
    max-width: 1020px;
    width: 100%;
    padding: 0 20px;
    margin: 0 auto;
}

.contactform_container > p {
    padding-top: 3.5rem;
}

/*form .form-group:first-child {
    border-top: 1px solid #969696;
}*/
form .form-group:first-of-type {
    border-top: 1px solid #969696;
}

form .form-group {
    color: #333;
    font-weight: 500;
    font-size: 1.6rem;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    margin-bottom: 0;
    border-bottom: 1px solid #969696;
    align-items: center;
    justify-content: space-between;
}

form .form-group02 {
    color: #333;
    font-weight: 500;
    font-size: 1.6rem;
    padding-top: 3.2rem;
    padding-bottom: 3.2rem;
    margin-bottom: 0;
    border-bottom: 1px solid #969696;
    align-items: center;
    justify-content: space-between;
}

form .border-bold {
    border-bottom: 2px solid #969696;
}

.row {
    display: flex;
    flex-wrap: wrap;
    /*
    margin-right: -15px;
    margin-left: -15px;
*/
}

.label {
    display: inline-block;
    margin-bottom: 0.5rem;
}

form .form-group input[type="text"],
form .form-group input[type="email"],
form .form-group02 textarea {
    font-size: 1.6rem;
    height: auto;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    border-radius: 0;
}

.form-control-lg {
    height: calc(1.5em + 2rem + 2px);
    padding: 1rem 2rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

.form-control {
    display: block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #ebf0f7;
    background-clip: padding-box;
    border: 1px solid #EBEBEB;
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

form .form-group.align_start {
    align-items: flex-start;
    margin-bottom: 5rem;
}

form .form-group02.align_start {
    align-items: flex-start;
    margin-bottom: 4.8rem;
}

form .form-group.check {
    text-align: center;
}

form .form-group02.check {
    text-align: center;
}


form .form-group.check,
form .form-group.btn_line01 {
    border-bottom: none;
    margin: 0 auto;
    text-align: center;

}

form .form-group.btn_line01 {

    padding-top: 58px;
}

form .form-group02.check,
form .form-group02.btn_line01 {
    border-bottom: none;
}

form .form-group input[type="text"],
form .form-group input[type="email"],
    {
    font-size: 1.6rem;
    height: auto;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    border-radius: 0;
}

form .form-group02 textarea {
    font-size: 1.6rem;
    height: 20rem;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    border-radius: 0;
}


.col-lg-3,
.col-md-4,
.col-md-8 {
    padding: 0 15px;
}

.col-md-8 {
    width: 100%;
}

form .tel-form-box {
    border-bottom: 0px;
    padding-bottom: 0px;
}


.estimate-form {
    margin-top: 100px;
}

.estimate-top-border {
    border-top: 1px solid #969696;
}

.estimate-h {
    font-size: 2.2rem;
    color: #00469b;
    letter-spacing: 0.03em;
    padding-bottom: 1.1rem;
    margin-bottom: 1.4rem;
    border-bottom: 1px solid #00469b;
}

.estimate-p {
    font-weight: 400;
    line-height: 1.75;
    font-size: 1.6rem;
    margin-bottom: 20px;
}

.labe_required {
    color: red;
}

.form-check-inline {
    display: inline-flex;
    align-items: center;
    padding-left: 0;
    margin-right: 4.75rem;
}

.form-check {
    position: relative;
    /*
    display: block;
    padding-left: 1.25rem;
*/
}

.radio01 {
    accent-color: #231815;
    inline-size: 2.2rem;
    block-size: 2.2rem;
    margin: 0 .8rem 0 0;
}

.d-inline-block {
    display: inline-block !important;
}

.attention {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 10px;
}

.attention .attention_link {
    color: #00469b;
}

@media (hover: hover) and (pointer: fine) {
    .checkbox .attention_link:hover {
        opacity: 0.5;
        transition: 0.2s ease-out;
    }

    .attention .attention_link:hover {
        color: #00469b;
        opacity: 0.5;
        transition: 0.2s ease-out;
    }
}


.checkbox input[type="checkbox"] {
    margin-bottom: 5px;
    display: none;
}

.checkbox input[type="checkbox"] + .checkbox-icon::before {
    content: "";
    display: block;
    position: absolute;
    top: 6px;
    left: 6px;
    width: 12px;
    height: 12px;
    border: 1px solid #999;
}

.checkbox input[type="checkbox"] + .checkbox-icon {
    padding-left: 25px;
    position: relative;
    cursor: pointer;
}

.checkbox input[type="checkbox"]:checked + .checkbox-icon::after {
    content: "";
    display: block;
    position: absolute;
    top: 4px;
    left: 10px;
    width: 5px;
    height: 11px;
    transform: rotate(40deg);
    border-bottom: 2px solid #00125e;
    border-right: 2px solid #00125e;
}

.form-group .btn01 {
    margin: 0 auto;
    text-align: center;
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
    cursor: pointer;
}

.notes {
    white-space: nowrap;
}

.tel_box {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
}

.ttl_main {
    margin: auto;
    font-size: 2.5rem;
    letter-spacing: .08em;
    color: #00469b;
    padding-bottom: 28px;
    position: relative;
    text-align: center;
    line-height: 1.2;
    font-size: 48px;
}

.ttl_main a {
    padding: 20px 0;
    width: 100%;
    font-size: 48px;
    text-align: center;
    color: #00469b;
    border: 1px solid #00247d;
    display: block;
    font-weight: bold;
    margin: 0 auto;
}

.ttl_main a span {
    font-size: 16px;
    padding-bottom: 15px;
    display: block;
    font-weight: normal;
}

.ttl_main a i {
    font-size: .6em;
    font-weight: 900;
}

form .border-bottom-none {
    border-bottom: 0px;
}

form .estimate-textarea.align_start {
    padding-top: 0;
    margin-bottom: 0;
}


@media screen and (min-width: 1366px) {
    .pageHeader_contactform {
        padding: min(30%, 15rem) calc(100vw / 3 - 640px) 14.225rem calc(100vw / 3 - 375px)
    }

}


@media screen and (min-width: 1029px) {

    a[href^="tel:"] {
        pointer-events: none;
    }

}

@media screen and (max-width: 1028px) {


    .pageHeader_contactform {
        padding: 6.8rem 16rem 7.2rem 3rem;
    }

    .title_contactform h2 {
        font-size: clamp(5.7rem, 10vw, 13rem);
    }

    .title_contactform p {
        font-size: 1.8rem;
        margin: -2.5rem 0 0 0;
    }

    .title_contactform {
        margin: 1rem 2rem 0;
    }

    .title_contactform h2 {
        margin-top: 0;
    }

}

@media screen and (max-width: 1010px) {
    .form-check-inline {
        margin-right: 1.75rem;
    }
}

@media screen and (max-width: 826px) {
    .contactform_intro {
        font-size: 1.6rem;
    }

    .form-check-inline {
        margin-right: 2.75rem
    }
}



@media screen and (max-width: 570px) {
    .pageHeader_contactform {
        padding: 7rem 16rem 6rem 0;
    }
}

@media screen and (max-width: 410px) {
    .title_contactform h2 {
        font-size: min(14vw, 5.7rem);
    }

    .pageHeader_contactform {
        min-height: 200px;
    }
}


@media (min-width: 992px) {
    .col-lg-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

@media (min-width: 1028px) {
    .contactform_title_line .form_br02 {
        display: none;
    }
}

@media (min-width: 475px) {
    .contactform_title_line .form_br01 {
        display: none;
    }

}

@media (min-width: 768px) {




    .col-md-4 {
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .col-md-8 {
        flex: 0 0 66.66667%;
        max-width: 66.66667%;
    }


    #contact form .form-check {
        margin-right: 4rem;
    }

    .d-md-none {
        display: none !important;
    }


}

@media screen and (max-width:767px) {

    .ttl_main a {
        font-size: 34px;
        max-width: 430px;
    }

    .ttl_main a span {
        font-size: 14px;
        padding-bottom: 10px;
    }

    .form-group label {
        font-size: 1.4rem;
    }

    .contactform_wrapper {

        padding-top: 6.3rem;

    }

    .contactform_title_line {
        font-size: 2.2rem;
    }

    .contactform_title_line {
        background-size: 80px 6px;
        padding-bottom: 12px;
    }

    .contactform_intro {
        text-align: justify;
    }

    .contactform_intro br {
        display: none;
    }

    .col-lg-3,
    .col-md-4,
    .col-md-8 {
        padding: 0;
        font-size: 1.4rem
    }

    .notes br {
        display: none;

    }


    .form-check-inline {
        margin-right: 1.75rem
    }

    .checkbox input[type="checkbox"] + .checkbox-icon::before {

        top: 4.5px;

    }



    .checkbox input[type="checkbox"]:checked + .checkbox-icon::after {

        top: 2.5px;

    }

    .radio01 {
        inline-size: 1.8rem;
        block-size: 1.8rem;
        margin: 3px .8rem 0 5px
    }


    .notes {
        margin-bottom: 5px;
        white-space: normal;
    }
}
