#top, #about, .come, #contact{ background-color:#efe9e4; }
#about{ padding-top:100px; }
#about .note.intro{ font-size:clamp(120%, 2.5vw, 270%);font-family:"Noto Serif JP", serif;display:block;text-align:center;margin-bottom:3%; }
#about .note.intro .strong{ font-size:120%;font-weight:bold; }
#about .note.intro .inner{ display:inline-block; }
.problem_wrap{ display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:3%; }
.problem_wrap .each_problem{ width:20%; }
.price_detail{ padding-bottom:6%; }
.price_detail *, #service *, #contact *{ font-family:"Noto Serif JP", serif; }
.price_detail .note{ font-size:170%;text-align:justify;letter-spacing:clamp(2px, 0.2vw, 5px);margin-bottom:3%; }
.line_arrow{ margin-bottom:2%; }
.problem_bottom{ margin-bottom:2%;max-width:700px;margin-left:auto;margin-right:auto;display:block; }
.price_detail .price{ font-size:clamp(100%, 6vw, 370%);display:block;text-align:center;font-weight:bold;margin-bottom:2%; }
.price_detail .price span{ font-size:50%; }
.compare{ position:relative;margin-top:3%;border:2px solid  #22548a;border-radius:7px;margin-bottom:5%; }
.compare .th_wrap{ position:absolute;top:0;left:50%;transform:translate(-50%, -50%);width:59%;background-color:#efe9e4;padding:0 5%;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center; }
.compare .th_wrap .th{ width:54%;margin-right:4%; }
.compare .th_wrap .th_sub{ width:43%; }
.each_price_wrap{ display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:5% 6%; }
.each_price_wrap .each_price{ width:48%; }
.additional{ position:relative;margin-left:6%;margin-right:5%; }
.additional .additional_note{ position:absolute;left:-12%;top:-10%;width:15%;z-index:1; }
.additional p{ font-size:150%;position:relative;background-color:#fff;margin:1.5% 0;padding:1% 3% 1% max(63px, 8%); }
.additional p:before{ content:"";position:absolute;width:24px;aspect-ratio:1;border-radius:999px;background-color:#e95a45;left:4.5%;top:0;transform:translateY(50%); }
.achievement{ margin-top:3%; }
.achievement.sp{ display:none; }

#service{ padding:6% 0 0 0; }
#service *{ color:#4d4d4f; }
#service .tax_in{ font-size:70%; }
#service .sec_th{ font-size:230%;margin-bottom:2%;text-align:left;margin-bottom:3%; }
#service table{ border-collapse:collapse;width:100%;margin-bottom:7%;font-size:min(100%, 1.4vw); }
#service table th, #service table td{ border-bottom:1px solid #4d4d4f;padding:3% 0px; }
#service table th{ width:17%;min-width:140px;text-align:left;letter-spacing:2px; }
#service table td{ font-size:210%; }
#service table td .small{ font-size:46%; }
#service table td .middle{ font-size:70%; }
#service table .detail td *{ display:block; }
table .period td{ display:-webkit-box;display:-ms-flexbox;display:flex; }
table .period .small{ max-width:410px;display:block;margin-left:3%; }
.about_clip{ background:url(../img/bg_about_clip.webp) no-repeat center center/cover;padding:min(100px, 6vw) 0; }
#service .about_clip *{ color:#fff; }
#service .about_clip span{ display:inline-block; }
#service .come .sec_th{ display:block;text-align:center;margin-top:9%; }
.about_clip .come p{ text-align:center; }
.about_clip p{ font-size:19px;line-height:174%;text-align:justify; }
#contact .come{ margin-bottom:min(100px, 5vw); }
#contact .come p{ font-size:120%; }
#contact .come p span{ display:inline-block; }
#service .come *{ color:#22548a; }
#contact .come .sec_th span{ display:inline-block; }
.come *{ text-align:center; }

#contact h2 .th{ width:43.3%;display:block;margin:0 auto;transform:translateX(-2.4%); }
#contact .inner{ position:relative; }
#contact .inner .bg{ position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100vw;z-index:-1;height:80%;object-position:top;object-fit:cover; }
#contact .sec_th{ padding-top:min(50px, 2%);margin-bottom:6%;font-size:216%;text-align:center; }
#contact .come .sec_th{ margin-bottom:3%; }
#contact .note{ text-align:center;display:block;margin-left:auto;margin-right:auto;font-size:85%;line-height:170%; }
#contact .note span{ display:inline-block; }
#contact section.contact .tel_num{ display:block;margin:0 auto 2.6% auto;width:58.2%; }
#contact .work_time{ display:block;text-align:center;letter-spacing:1.2px;margin-bottom:9.3%; }
.contact_sec_th{ display:block;margin:8% auto 3.8% auto;display:block;width:28%; }
#contact form{ margin-top:2.6%;max-width:748px;display:block;margin-left:auto;margin-right:auto;padding-bottom:8%; }
#contact .row{ padding:2% 3.2% 2% 2.8%; }
#contact .row .th, #contact .row .td{ font-size:170%; }
#contact form .row .th, section.contact .confirm_note{ line-height:34px; }
#contact form .row .th{ min-width:169px;position:relative;padding-left:15px;margin-left:1.2%;margin-bottom:1.9%; }
#contact form .row .th::before{ content:'';position:absolute;top:50%;left:0px;transform:translateY(-53%);width:7.6px;height:70%;background-color:#22548a; }
#contact .radio_row .td{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column; }
section.contact .confirm_note{ word-break:break-all;font-size:max(16px, 100%); }
#contact .require{ color:#22548a;font-size:80%; } 
.confirm .confirm_th{ font-size:160%;display:block;text-align:center;margin-bottom:5%;margin-top:14%; }
.errors span{ color:#b50009;padding:4px;border:1px solid #b50009;background-color:#ffd9db;border-radius:3px;line-height:164%;display:block;margin-bottom:8px;padding-left:28px;position:relative;font-size:100%;max-width:720px;margin-left:auto;margin-right:auto;box-sizing:border-box; }
.errors span:before{ content:'※';position:absolute;left:11px;top:3px; }

/* リセット start*/
input[type="text"]{ -moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;background-image:none;border:1px solid rgba(0, 0, 0, 0.16);border-radius:0;color:inherit;font-family:inherit;font-size:1em;padding:0.5em 0.8em;width:100%;font-size:16px; }
input[type="text"]:focus{ -moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:none;border:2px solid #22548a;border-radius:0;color:inherit;font-family:inherit;padding:0.5em 0.8em;width:100%; }
input[type="textarea"]{ -moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;background-image:none;border:1px solid rgba(0, 0, 0, 0.16);border-radius:0;color:inherit;font-family:inherit;font-size:1em;height:100px;padding:0.4em 0.8em;width:100%; }
input[type="textarea"]{ border:1px solid rgba(0, 0, 0, 0.32);box-shadow:none;outline:none; }
textarea{ -moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;background-image:none;border:1px solid rgba(0, 0, 0, 0.16);border-radius:0;color:inherit;font-family:inherit;font-size:max(16px, 100%);height:100px;padding:0.4em 0.8em;width:100%;background-color:#fff; }
textarea:focus{ border:2px solid #22548a;box-shadow:none;outline:none; }
input[type="submit"]{ -webkit-appearance:none;background-color:#e95a45;background-image:none;border:none;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:172%;margin:1% auto;padding:1.1% 0 0.9% 0;text-decoration:none;width:243px;letter-spacing:3px;line-height:160%; }
input[type="submit"]:hover, input[type="submit"]:focus { outline:none; }
input[type="submit"]::-moz-foucus-inner{ border:none;padding:0; }
input[type="text"]:focus, textarea:focus{ font-size:max(16px, 80%); }

input[type="radio"]{ display:none; }
input[type="radio"] + span{ cursor:pointer;display:inline-block;margin:0 0.2em 1.5% 0;padding:0 0 0 1.2em;position:relative; }
input[type="radio"] + span::before{ -webkit-transform:translateY(-50%);background:#fff;border:1px solid rgba(0, 0, 0, 0.16);border-radius:50%;content:"";display:block;height:16px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:16px; }
input[type="radio"] + span::after{ -webkit-transform:translateY(-50%);background:#e95a45;border:1px solid transparent;border-radius:50%;content:"";height:8px;left:2px;opacity:0;padding:2px;position:absolute;top:50%;transform:translateY(-50%);transition:all 0.3s ease 0s;width:8px; }
input[type="radio"]:checked + span::after{ opacity:1; }
/* リセット end */

#contact{ overflow:hidden;padding-top:min(100px, 5vw); }
#contact section.contact{ margin-bottom:min(243px ,24.5%); }
#contact .intro_note{ display:block;text-align:center;margin-top:3%;font-size:clamp(14px, 4vw, 128%); }
section.contact .row .td, section.contact .inner_row{ display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;padding-left:0; }
section.contact .row .td{ width:100%; }
section.contact .row.company_name_row .td{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column; }
#contact .remark_row{ border-bottom:none;margin-bottom:2%;padding-bottom:3.6%; }
section.contact .remark_row .confirm_note{ white-space:pre-wrap; }
section.contact .inner_row{ -webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:3.4%;margin-left:0%; }
section.contact .inner_row:first-of-type{ margin-right:2%; }
section.contact .inner_row .th{ width:auto;white-space:nowrap;transform:translateX(-29%); }
section.contact .inner_row input[type="text"]{ width:87%;margin-left:auto;font-size:14px; }
section.contact .annotation{ position:relative;padding-left:33px;font-size:132%;letter-spacing:0.6px;line-height:180%;margin-bottom:3%; }
section.contact .annotation::before{ position:absolute;left:12px;top:-4px;content:'※';font-size:160%; }
input[type="text"], input[type="textarea"], input[type="select"]{ border:2px solid #22548a;box-sizing:border-box;line-height:155%;background-color:#fff; }
#contact select, textarea{ border:2px solid #22548a; }
textarea{ resize:none;height:min(162px, 12vw); }
input[type="text"], input[type="textarea"], input[type="select"], textarea{ font-size:max(16px, 80%); }
section.contact .caution{ position:relative;padding-left:10px;font-size:10px;line-height:10px;margin-top:1%; }
section.contact .caution br{ display:none; }
section.contact .caution::before{ content:'※';left:0px;top:5px;position:absolute;transform:translateY(-50%); }
::placeholder{ color:#B3B3B3; }
::-ms-input-placeholder{ color:#B3B3B3; }
:-ms-input-placeholder{ color:#B3B3B3; }
.privacy_check{ margin-top:6%;text-align:center;font-size:88%;margin-bottom:2.2%; }
.privacy_check br{ display:none; }
.privacy_check a{ text-decoration:underline;color:#22548a; }
#contact .bt_wrap{ margin-left:auto;margin-right:auto;display:block;text-align:center; }
.confirm_page section.contact .inner_row{ -webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;margin-right:5%;max-width:40%; }
.confirm_page section.contact .inner_row .th{ padding-right:6px; }
#contact.confirm form .row .th{ color:#acacac;font-size:max(16px, 150%) }
.bt_next.on,  .bt_send.on{ opacity:1;pointer-events:visible; }
.contact_info .td{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column; }
.contact_info .td input, .contact_info .td .caution{ display:block; }
.contact_info .td .caution{ font-size:55%;padding-left:2%; }

/* 送信完了ページ */
.complete_note_wrap{ text-align:center;font-size:18px;margin:220px auto 200px auto; }
.complete_note_wrap .note{ margin-bottom:7%;font-size:140%;line-height:210%; }
.complete_note_wrap .note br.sp{ display:none; }
.complete_note_wrap .note.sub{ font-size:16px; }
.complete_note_wrap a{ color:#828282;text-decoration:underline; }
.complete_footer{ width:min(400px, 80%);display:block;margin:0 auto; }

.footer img{ display:block;width:73%;margin-left:auto;margin-right:auto;padding-top:min(110px, 8.6%);padding-bottom:min(60px, 5%); }
footer{ background-color:#f5f6f9;z-index:600;width:100%;position:relative; }
footer *{ color:#000; }
footer .wrap{ display:-webkit-box;display:-ms-flexbox;display:flex;padding:min(50px, 5%);justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center; }
footer .logo{ display:block;width:20%;max-width:150px;margin-right:3%; }
footer .detail_wrap{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;display:-webkit-box;display:-ms-flexbox;display:flex; }
footer .company{ margin-bottom:1px; }
footer .addr span{ display:inline-block; }
footer .job{ margin:1% 0; }
footer .job span{ display:inline-block; }

/* プライバシーポリシー */
/* .privacy_wrap .th_each{ padding-top:100px;font-size:200%; }
.privacy_wrap *{ color:#fff;font-size:16px; }
.privacy_wrap .note_wrap{ margin-top:200px;margin-bottom:100px; }
.privacy_wrap h3{ display:block;margin-top:3%;font-size:20px; }
.privacy_wrap p{ margin:2% 0; } */


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

    .problem_wrap{ -ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:center; }
    .problem_wrap .each_problem{ width:37%;margin-bottom:4%;margin-left:2%;margin-right:2%; }
    .problem_bottom{ margin-bottom:4%; }
    .price_detail .note{ margin-bottom:5%;font-size:max(16px, 2.9vw);line-height:166%;letter-spacing:0; }
    .price_detail .price{ margin-bottom:7%;transform:translateX(7%); }
    .compare .th_wrap{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;align-items:center; }
    .compare .th_wrap .th{ margin-right:0;margin-bottom:3%;width:81%; }
    .compare .th_wrap .th_sub{ width:85%; }
    .each_price_wrap{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;align-items:center; }
    .each_price_wrap .each_price{ width:80%;margin:6% 0; }
    .additional p{ padding-top:3%;padding-bottom:3%;padding-left:11%; }
    .additional p:before{ top:5%; }
    .compare{ margin-bottom:9%; }
    .additional .additional_note{ width:20%; }
    .achievement.pc{ display:none; }
    .achievement.sp{ display:block;width:80%;margin-left:auto;margin-right:auto;margin-top:6%; }
    #service table th, #service table td{ display:block;padding-left:1%;padding-right:1%; }
    #service table th{ border-bottom:none;padding-top:3.7vw;padding-bottom:0;font-weight:bold;font-size:167%;width:100%; }
    #service table td{ padding-bottom:3.6vw;padding-top:1%; }
    #service table td .small{ margin-left:0;font-size:57%;width:100%;max-width:79%; }
    #service table .period td .small{ margin-left:4%; }
    #service table .period td{ display:-webkit-box;display:-ms-flexbox;display:flex; }
    #service table .detail td * { margin:3px 0; }





    #contact section.contact .tel_num{ width:88.2%; }
    #contact .work_time{ font-size:90%; }
    .confirm_page section.contact .inner_row{ max-width:50%;width:50%; }
    #contact form .row .th, section.contact .confirm_note{ line-height:25px; }
    input[type="text"], input[type="textarea"], input[type="select"]{ font-size:16px; }

    /* contactページ */
    .contact_sec_th{ width:min(290px, 80vw); }

    #contact .wrap{ width:80%;margin:10% auto 0 auto;overflow:visible; }
    #contact .intro_note{ margin-bottom:6%;margin-top:8%;font-size:16px; }
    #contact .inner .bg{ object-fit:cover;object-position:80% bottom;height:80%; }
    #contact h2 .th{ width:100%;transform:translateX(0); }
    #contact .row{ padding-bottom:5%; }
    #contact .row .th, #contact .row .td{ font-size:120%; }
    input[type="radio"] + span{ font-size:90%;white-space:nowrap;margin-bottom:3.5%;padding-left:7.4%; }
    section.contact .annotation{ font-size:95%;padding-left:8%;width:95%; }
    section.contact .annotation::before{ top:0;font-size:120%; }
    #contact.confirm form .row .th{ font-size:120%; }
    .contact_info .td .caution{ font-size:70%; }

    footer .navs{ width:100%;margin-bottom:8%; }
    .note_wrap .note{ display:block; }
    footer .f_info{ width:100%;max-width:400px;text-align:center; }
    footer .wrap{ -ms-flex-pack:distribute;padding-top:8%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;align-items:center; }
    footer .logo{ max-width:250px;margin:0px auto 5% auto;width:30%; }
    footer .company{ text-align:center; }
    footer .addr{ display:block;width:100%;margin-right:auto;margin-left:auto;padding-left:0;text-align:center; }
    footer .tel, footer .email{ width:100%;margin-left:auto;margin-right:auto;text-align:center; }
    footer .job{ margin:2.5% 0;text-align:center; }
}

@media screen and (max-width:575px){ 
    .header .logo{ width:50%; }
    .hamburger{ min-width:0;box-sizing:border-box;width:100vw; }
    .header .hamburger-btn{ width:10%;max-width:44px; }
    .header .hamburger-btn.close{ width:8%;margin-right:3.5%; }

    #about{ padding-top:50px; }
    #service{ padding:10% 0;padding-bottom:0; }
    .price_detail{ padding-bottom:10%;padding-top:3%; }
    #about .note.intro{ margin-bottom:7%;font-size:155%; }
    .problem_wrap .each_problem{ width:50%;margin-left:0;margin-right:0; }
    .problem_bottom{ margin-top:0; }
    .price_detail .price{ font-size:210%;margin-bottom:14%; }
    .compare .th_wrap{ width:85%; }
    .compare .th_wrap .th{ width:93%; }
    .compare .th_wrap .th_sub{ width:100%; }
    .each_price_wrap .each_price{ width:100%; }
    .compare{ padding-top:5%;padding-bottom:1%;margin-bottom:18%; }
    .additional{ width:100%;margin:0 auto; }
    .additional .additional_note{ width:33%;left:0;top:-18%; }
    .additional p{ font-size:130%;padding-left:39px;padding-top:5%;padding-bottom:5%;margin:0; }
    .additional p:last-of-type:after{ content:none; }
    .additional p:before{ width:20px;top:11px; }
    .additional p:after{ content:"";width:90%;position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:1px;background-image:linear-gradient(to right, #294a81 3px, transparent 0px);background-size:9px 3px;background-repeat:repeat-x; }
    .achievement.sp{ width:100%; }
    #service .sec_th, #contact .sec_th span{ font-size:7vw;line-height:10vw; }
    #service .sec_th{ margin-bottom:5%; }
    #service table{ margin-bottom:24%; }
    #service table tr{ font-size:175%; }
    #service table .period td{ -webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column; }
    #service table .period td .small{ margin-left:0;width:100%;display:block;max-width:100%; }
    #service table th{ padding-bottom:1%;margin:2% 0;padding-top:5vw; }
    #service table td{ padding-bottom:5vw; }
    #service table td .middle{ margin:2.5% 0; }
    #service table td .small{ max-width:100%;font-size:58%; }
    #service .tax_in{ font-size:80%; }
    #service .about_clip span{ display:inline; }
    .about_clip{ padding:10% 0; }
    .about_clip p{ font-size:16px; }
    .come *{ font-size:16px; }    

    #contact{ padding-top:0; }
    #contact .note{ text-align:left; }
    #contact .note span{ display:inline; }
    #contact .note br{ display:none; }
    #contact .note .br_sp{ display:block; }
    .contact_sec_th{ margin-top:18%;margin-bottom:8%; }
    #contact .row{ padding-left:0;padding-right:0; }
    #contact .come p span{ display:inline; }
    .contact_info .td .caution{ padding-left:3%; }
    .confirm_page .row{ padding-top:3.5%; }
    section.contact .inner_row input[type="text"], #contact select, input[type="text"]:focus, textarea:focus{ font-size:16px; }
    textarea{ height:39.5vw; }
    #contact .intro_note{ text-align:left; }
    #contact .intro_note br{ display:none; }
    .privacy_check{ line-height:160%;margin-bottom:12%;max-width:270px;margin-left:auto;margin-right:auto; }
    .privacy_check input[type="checkbox"]{ margin-right:4px;width:18px;height:18px;position:absolute;left:0; }
    .privacy_check br{ display:block; }
    input[type="submit"]{ font-size:120%;width:200px;margin:3% 0; }
    section.contact .caution{ line-height:140%; }
    section.contact .caution::before{ top:7px; }
    .complete_note_wrap .note{ line-height:160%;font-size:120%; }
    .complete_note_wrap .note br.sp{ display:block; }
    .complete_note_wrap .note.sub{ text-align:left; }
    .complete_note_wrap .note.sub br{ display:none; }
    section.contact .caution br{ display:block; }
    
    footer .logo{ width:40%; }
    footer .detail_wrap{ -webkit-box-align:center;-ms-flex-align:center;align-items:center; }
    footer .company{ margin-bottom:2%; }
    footer .company, footer .addr, footer .job, footer .tel, footer .email{ font-size:12px; }
}

