
@charset "utf-8";

@media screen and (max-width: 767px) {
    :root{
        --main_width: 100%;
        --head_height:50px;
    }

    .pdg_y80 {padding:40px 0 !important;}
    .mgn_t80 {margin-top:50px !important;}

    nav.header_nav {
        position: relative;
    }

    a.hnav_logo {
        display: block;
        width:130px;
        height:24px;
    }

    .hnav_button {
        display: block;
    
    }

    .hnav_menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        transform: translateY(-20px);
        background-color:var(--c_d_gray);
        opacity: 0;
        transition: transform 0.4s ease, opacity 0.3s ease;
    }

    .hnav_menu.is-open {
        display: block;
        transform: translateY(0);
        opacity: 1;
        padding-bottom:30px;
    }

    /* 開いたら × */
    .hnav_button.is-open span:nth-child(1) {
        top: 14px;
        transform: translateY(10px) rotate(45deg);
    }

    .hnav_button.is-open span:nth-child(2) {
        opacity: 0;
    }

    .hnav_button.is-open span:nth-child(3) {
        top: 34px;
        transform: translateY(-10px) rotate(-45deg);
    }

    .pc, .pc_tc, .pc_il, .pc_fl {
        display:none;
    }

    .sp {
        display:block;
    }

    .sp_il {
        display:inline;
    }

    h1.page_h1 {
        font-size:0.9rem;
        line-height:1.3rem;
        padding:calc(var(--head_height) + 5px) 2.5% 5px;
        background-color:var(--c_d_gray);
    }

    header.menu {
        width:100%;
        background-color:var(--c_gray);
        padding:0 2.5% 0;
        position:fixed;
        top:0;
        left:0;
        z-index:9999;
        height:var(--head_height);
    }

    .hnav_logo>img {
        width:130px;
        vertical-align:baseline;
    }

    a.hnav_usual {
        display:block;
        width:100%;
        text-align: center;
        font-size:1.5rem;
        margin:20px 0;

    }
    a.hnav_usual:hover {
        color:var(--c_black);
        font-weight:400;
    }

    .hnav_tel {
        margin:0px auto;
        width:70%;
        font-size:1.5rem;
        line-height:1.6rem;
        text-align: center;
        padding:10px 0;
        border-radius: 5px;
    }

    .hnav_tel_text {
        font-size:1rem;
    }

    .hnav_tel_number {
        background-repeat:no-repeat;
        background-image:url(/img/tel.svg);
        background-size:30px;
        background-position: left center;
        padding:10px 0px 10px 35px;
    }


    a.hnav_toContact {
        display: block;
        text-align: center;
        padding:15px 3%;
        font-size:0.9rem;
        line-height:1rem;
    }

    section.contact_box {
        width:100vw;
        padding:30px 2.5%;
    }

    h2.contact_box_h2 {
        font-size:1.5rem;
        line-height:2.2rem;
    }

    .contact_box_text {
        font-size:1rem;
        line-height:1.5rem;
        margin-top:10px;
    }

    .contact_box_tel {
        margin-top:30px;
        text-align: center;
        margin:30px auto 0;
        border:1px solid var(--c_white);
        width:90%;
        padding:15px 0;
    }

    .contact_box_tel_text {
        font-size:1rem;
        margin-right:0px;
    }
    .contact_box_tel_number {
        display:inline-block;
        background-image:none;
        filter: brightness(100) invert(0);
        font-size:1.2rem;
        line-height:1.5rem;
        padding:0;
    }

    .contact_box_mail {
        padding:15px 0;
        width:90%;
        text-align: center;
        background-color:var(--c_brown);
        margin:30px auto 0;
        display:block;
    }
    .contact_box_mail:hover {
        filter:none;
    }

    .contact_box_mail_1st {
        font-size:1.5rem;
        line-height:2rem;
    }

    .contact_box_mail_2nd {
        font-size:1.2rem;
        line-height:2rem;
    }

    .copyright {
        padding:10px 0;
    }

    .page_title_obi {
        padding:15px 0;
    }

    .page_title {
        padding:20px 0;
    }

    h2.page_title_h2 {
        font-size:2rem;
        width:100%;
        text-align: center;
    }

    /*nomenu*/
    h1.no_menu_1 {
        
    }
    header.no_menu {
        width:100%;
        background-color:var(--c_gray);
        padding-bottom:10px;
        height:auto;
        min-height: 0;
    }

    .nm_logo {
        width:130px;
    }

    main.no_menu {
        padding:0;
    }




    /**** page ****/


    /*index*/

    .hm_top_image::before {
        background-image: url("/img/top_image.webp");
        background-repeat:no-repeat;
        background-size:cover;
        background-position:center right 20%;
        filter:brightness(0.6);
        content: "";
        position: absolute;
        inset: 0;
        width:100%;
        right: 0;
        bottom: 0;
        mask-image:none;
    }

    .hm_top {
        padding:50px 0  50px 5%;
    }

    h2.hm_top_image_h2 {
        font-size:1.7rem;
        line-height:2.7rem;
        font-weight:400;
    }

    p.hm_top_image_text {
        font-size:0.9rem;
        line-height:1.5rem;
        margin-top:30px;
    }

    .hm_top_reason {
        padding:50px 0;
    }

    p.hm_top_reason_p {
        font-size:1.3rem;
        line-height:2.3rem;
    }

    .hm_top_reason_box {
        margin-top:50px;
        padding:0 5%;
    }

    .hm_tu_reason_item {
        width:100%;
        margin-top:20px;
        padding-bottom:30px;
        text-align: center;
    }
    .hm_tu_reason_item:nth-child(n + 2) {
        border-top:1px dotted var(--c_white);
        padding:30px 0;
    }

    .hm_tu_reason_item + .hm_tu_reason_item {
        position: relative;
    }

    .hm_tu_reason_item + .hm_tu_reason_item::before {
        content: "";
        position: static;
        border-left:none;
    }

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

    p.hm_tu_reason_p {
        font-size:1.1rem;
        line-height:1.7rem;
        margin-top:20px;
    }

    .tp_middle {
        padding:50px 2.5%;
        text-align: left;
    }

    .text_underline>span {
        position: relative;
        display: inline-block;
    }

    .text_underline>span::after {
        content: "";
        position: absolute;
        left: 0;
        right: 20px;
        bottom: -2px;       /* 線の位置 */
        height: 2px;        /* 線の太さ */
        background: var(--c_enji);   /* 線の色 */
    }

    .tp_go {
        display:block;
        width:95%;
        font-size:1.2rem;
        line-height:1.7rem;
        background-image:url(/img/hammer.svg);
        background-position: 10px center;
        background-size:50px;
        padding:10px 0 10px 80px;
        margin:0 auto;
        border-bottom:2px solid var(--c_enji);
    }

    .tp_daiku {
        background-image:url(/img/seko001_01.webp);
        background-repeat:repeat;
        background-position:bottom 20% center;
        background-size:cover;
        padding:30px 0;
        border:3px solid var(--c_enji);
        border-radius:8px;
        margin-top:80px;
        text-align: center;
        position:relative;
    }

    .tp_daiku::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255, 255, 255, 0.4);
        pointer-events: none;
    }
    .tp_daiku > * {
        position:relative;
    }

    p.tp_daiku_p {
        font-size: 1.2em;
        line-height:1.5rem;
    }

    h3.tp_daiku_h3 {
        font-size:1.7rem;
        line-height:2.3rem;
        margin-top:10px;
    }


    a.tp_daiku_a {
        width:90%;
        display: block;
        margin:30px auto 0 auto;
        font-size: 1.2rem;
        line-height:2rem;
        padding:15px 0;
    }

    .tp_craftsman {
        width: 100%;
        padding: 50px 5%;
    }

    .tp_craftsman_img {
        width:100%;
    }
    .tp_craftsman_img>img {
        width:100%;
    }

    .tp_craftsman_text {
        width: 100%;
        padding-left:0px;
        margin-top:20px;
    }

    h2.tp_craftsman_h2 {
        font-size:2rem;
        font-weight:400;
    }

    p.tp_craftsman_p {
        margin-top:20px;
        font-size: 1rem;
        line-height:1.7rem;
    }



    /* daiku */
    .dk_top_3items {
        padding:0 2.5%;
    }
    .dk_top_3items>p {
        padding:10px 0;
        width:100%;
        font-size:1.4rem;
        line-height:1.4rem;
        border-radius: 8px;
        border:1px solid var(--c_enji);
        background-color: var(--c_white);
    }
    .dk_top_3items>p:nth-child(n + 2) {
        margin-top:10px;
    }

    .dk_show {
        margin-top:40px;
        width: 100%;
        position:relative;
    }

    .dk_show_text {
        width:100%;
    }

    p.dk_show_subject {
        font-size:1.6rem;
        line-height:2.4rem;
        padding:40px 10%;
        position: relative;
        z-index:1;
        color:var(--c_white);
        text-shadow:0 0 4px #000,0 0 2px #000;

    }

    p.dk_show_text {
        width: 100%;
        line-height:1.8rem;
        margin-top:0px;
        position: relative;
        z-index:1;
        color: var(--c_white);
        padding:30px 10%;
        font-weight:400;
        background-color:rgba(0, 0, 0, 0.5);
    }

    .dk_show_img {
        position: absolute;
        top:0;
        left: 50%;
        transform: translateX(-50%);
        width:100%;
        z-index:0;
        filter:brightness(0.8);
        mask-image: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 1) 60%,
        rgba(0, 0, 0, 0) 97%
        );
    }

    .dk_line_p {
        gap: 30px;
        font-size:1.3rem;
        margin:50px 0;
        text-align: center;
        line-height:1.8rem;
    }

    h2.dk_feature_h2 {
        display: block;
        width:90%;
        padding:30px 5%;
        font-size: 1.5rem;
        line-height:2.5rem;
        text-align: center;
        margin:0px auto;
    }
    h2.dk_feature_h2>span {
        display: block;
        margin-bottom:10px;
        font-size:1.3rem;
        line-height:1.8rem !important;
    }

    .dk_feature {
        margin:50px 0;
        padding:0 5%;
    }

    .dk_feature_item {
        width:100%;
        background-color: var(--c_white);
        padding:30px 5%;
    }

    .dk_feature_item:nth-child(n + 2) {
        margin-top:20px;
    }

    h3.dk_feature_h3 {
        text-align: center;
        font-size:1.5rem;
        line-height:2.3rem;
    }

    h3.dk_feature_h3>span {
        text-emphasis: filled dot;
        text-emphasis-position: over;
    }

    .dk_feature_item>p {
        padding:0 5%;
        line-height:1.5rem;
    }

    /*2つめ以降のp全て*/
    h3.dk_feature_h3 ~ p {
        padding-top:20px;
    }
    /*一つ目のp*/
    h3.dk_feature_h3 + p {
        padding-top:30px;
    }

    .dk_feature_item_img {
        margin-top:20px;
        width:100%;
        height:400px;
        background-image:url(/img/exterior.webp);
        background-size:cover;
        background-position:center center;
        display: flex;
        flex-direction: column;
    }

    h2.dk_example_h2 {
        font-size:1.5rem;
    }

    .dk_exam_item {
        margin-top:50px;
        padding: 0 2.5%;
    }

    .dk_exam_imgbig {
        width:100%;
    }
    .dk_exam_imgbig>img {
        width:50%;
        display:inline-block;
    }

    .dk_exam_textbig {
        width:95%;
        padding-left:0px;
        margin:30px auto 0;
    }

    h3.dk_exam_h3 {
        font-size:1.3rem;
    }


    .dk_exam_small {
        background-color:var(--c_gray);
        width:100%;
        margin:30px auto;
        line-height:1.8rem;
        padding:5px;
    }

    .dk_exam_img_right {
        flex-wrap:wrap;
        flex-direction:column-reverse;
    }

    .dk_exam_textsmall_p::first-letter {
        font-size:2rem;
        
    }

    .dk_exam_textsmall {
        width:100%;
        padding:20px 2.5%;
    }

    .dk_exam_imgsmall {
        width:100%;
    }
    .dk_exam_imgsmall>img {
        width:50%;
    }

    .dk_exam_notice {
        position: relative;
        background: #fff;
        padding: 20px 5%;
        border-radius: 10px;
        text-align: left;
        font-size: 1rem;
        line-height:2rem;
        width:90%;
        margin:0 auto;
    }
    
    .dk_exam_notice::before {
        content: "";
        position: absolute;
        top: -14px;
        left: 50%;
        transform: translateX(-50%);
        
        border-left: 15px solid transparent;
        border-right: 15px solid transparent;
        border-bottom: 15px solid var(--c_enji);
    }

    p.dk_exam_notes {
        font-size: 1rem;
        line-height:1.8rem;
        margin-top:40px;
        padding:0 5%;
        font-weight:400;
    }


    .dk_flow_chart {
        display:block;
        align-items: center;
        padding: 30px;
    }

    .dk_flow_chart_item {
        height: auto;
        margin:0;
        display: block;
        color: #fff;
        position:relative;
        padding:20px 0;
        font-size:1.2rem;
        line-height:1.8rem;
    }
    .dk_flow_chart_item:nth-child(n + 2) {
        margin-top:35px;
    }

    .dk_flow_chart_item::after {
        content: "";
        position: absolute;
        width: 50px;
        height: 25px;
        left: 50%;
        bottom: -24px;
        transform: translateX(-50%);
        background: url(/img/bg.webp) center / cover repeat;

        clip-path: polygon(0 0, 100% 0, 50% 100%);
    }

    .heitan {
        clip-path:none;
    }

    .tongari {
        clip-path:none;
    }

    .dk_flow_chart_text {
        padding-left: 0;
        color: #fff;
        font-weight: bold;
        font-size:1.3rem;
        line-height:2.3rem;
        margin-top:40px;
    }

    h2.dk_flow_h2 {
        background-image:url(/img/hammer.svg);
        background-position:left center;
        background-size:50px;
        padding:10px 0 10px 60px;
        filter: brightness(10);
        font-size:1.5rem;
        line-height:2.1rem;
        margin-left:5%;
    }

    p.dk_flow_p {
        margin-top:20px;
        margin-left:0;
        padding:0 5%;
        line-height:1.5rem;
    }

    .dk_after {
        padding:0 5%;
        margin-top:30px;
    }

    .sp_wrap {
        flex-wrap: wrap;
    }

    .dk_after_text {
        width:100%;
    }


    h3.dk_after_h3 {
        font-size:1.5rem;
        line-height:2.1rem;
    }

    .dk_after_img {
        margin-top:10px;
        width:100%;
        background-image: url(/img/after_care.webp);
        background-position:center center;
        background-size:cover;
        height:150px;    
    }



    /*company*/
    .cy_map {
        width:100%;
        padding:0 5%;
    }

    .cy_map>* {
        width:100%;
    }

    .cy_map_img {
        width:100%;
        text-align: center;
    }

    .cy_map_img>img {
        width:200px;
    }

    p.cy_map_text {
        margin:20px 0 0;
        font-size:1.5rem;
        line-height:2.3rem;
        text-align: center;
    }

    .cy_overview {
        width:95%;
        margin:50px auto;
    }

    table.cy_tbl {
        width:100%;
        border-collapse: collapse;
    }

    table.cy_tbl td {
        padding:20px 0;
        line-height:1.5rem;
        border-bottom: 1px solid var(--c_enji);
    }

    table.cy_tbl td + td {
        border-left:1px dotted var(--c_enji);
    }

    table.cy_tbl tr:first-child td {
        border-top:1px solid var(--c_enji);
    }

    td.cy_tbl_left {
        width:25%;
        font-size:1rem;
        background-color:var(--c_d_gray);
        text-align: center;
    }

    td.cy_tbl_right {
        padding-left: 15px !important;
    }



    /*contact*/
    h2.mf_top_h2 {
        font-size:1.5rem;
        line-height:2.3rem;
    }

    p.mf_top_p {
        font-size:1.2rem;
        line-height:2rem;
        margin-top:30px;
        padding:0 2.5%;
        text-align:left;
    }

    .mf_form {
        margin-top:30px;
        font-size:1.2rem;
        line-height:1.5rem;
        padding:0 2.5%;
    }

    .mf_form label {
        display: inline-block;
        margin-top:30px;
    }

    .mf_form label>span {
        font-size:1rem;
        color:var(--c_enji);
    }

    .mf_form input {
        font-size:1.3rem;
        padding:5px;
    }

    .mf_form input[type="text"],
    .mf_form input[type="tel"],
    .mf_form input[type="email"] {
        width:70%;
    }

    .mf_form .radio {
        display: flex;
        align-items:center;
        justify-content:center;
        gap: 60px;
        font-weight:400;
        background-color:var(--c_white);
        padding:20px !important;
        margin:5px auto 0 auto;
        width:100%;
        border-radius: 8px;

    }

    .mf_form .radio label {
        display: inline-block;
        margin:0;
    }     

    .mf_form .textarea {
        margin-top:5px;
    }

    .mf_form .textarea::placeholder {
        font-weight: 400;
    }

    .mf_form textarea {
        width:100%;
        overflow: hidden;
        resize: none;
        padding:10px;
    }

    .mf_recapcha {
        margin:50px 0;
    }

    p.mf_error {
        font-size:1rem;
        margin-top:5px;
        color:#bb0000;
    }

    .mf_submit {
        margin-top:80px;
        margin-bottom:100px;
    }

    .mf_submit>button {
        display: block;
        width: 280px;
        margin: 40px auto 0;
        padding: 16px 20px;
        border: 1px solid #7a3e48;
        border-radius: 3px;
        background: #7a3e48;
        color: #e8e1d7;
        font-size: 1.2rem;
        letter-spacing: 0.15em;
        cursor: pointer;
        transition: 0.3s;
    }

    .mf_submit>button:hover {
        background: #8a6a4a;
        border-color: #8a6a4a;
    }

    .mf_confirm {
        width:90%;
        margin:40px auto;
        background-color:var(--c_white);
        padding:30px 5% 80px;
    }

    .mf_confirm dt {
        font-weight:600;
        margin-top:30px;
        font-size:1.2rem;
    }

    .mf_confirm dd {
        font-size:1.3rem;
        color:var(--c_enji);
    }

    dd.mf_confirem_textarea {
        font-size:1.1rem;
        line-height:1.6rem;
        text-align: left;
        width:calc(var(--main_width) * 0.5);
        margin:0 auto;
    }

    .mf_confirm_submit {
        margin-top:50px;
        margin-bottom:100px;
    }

    .mf_confirm_submit a.return_a {
        display: block;
        width: 40%;
        margin:0 3%;
        padding: 10px 20px;
        border: 1px solid #7a3e48;
        border-radius: 3px;
        background: var(--c_white);
        color: var(--c_enji);
        font-size: 1.2rem;
        line-height:1.6rem;
        letter-spacing: 0.15em;
        cursor: pointer;
        transition: 0.3s;
    }
    .mf_confirm_submit a.return_a:hover {
        background: var(--c_d_gray);
        border-color: var(--c_black);
        color:var(--c_black);
    }

    .mf_confirm_submit a.send_a {
        display: block;
        width: 40%;
        margin:0 3%;
        padding: 10px 20px;
        border: 1px solid #7a3e48;
        border-radius: 3px;
        background: #7a3e48;
        color: #e8e1d7;
        font-size: 1.2rem;
        line-height:1.6rem;
        letter-spacing: 0.15em;
        cursor: pointer;
        transition: 0.3s;
    }

    .mf_confirm_submit a.send_a:hover {
        background: #8a6a4a;
        border-color: #8a6a4a;
    }

    a.mf_complete_link {
        display: block;
        width: 280px;
        margin: 100px auto 50px;
        padding: 10px 20px;
        border: 1px solid #7a3e48;
        border-radius: 3px;
        background: #7a3e48;
        color: #e8e1d7;
        font-size: 1.2rem;
        letter-spacing: 0.15em;
        cursor: pointer;
        transition: 0.3s;
    }

    a.mf_complete_link:hover {
        background: #8a6a4a;
        border-color: #8a6a4a;
    }



    /* Error */
    p.err_p {
        margin-top:30px;
        font-size:1rem;
        line-height:2.3rem;
    }


}

