@charset "utf-8";
/*--------------------------------------------------------
★レスポンシブ■タブレット対応
--------------------------------------------------------*/
@media screen and (max-width: 1280px) {
    /* layout */
    html{
        width: 1280px;
    }
    body {
        width: 1280px;
    }
}
@media screen and (max-width: 1250px) {
    .wrapper {
        position: relative;
        width: 1200px;
        margin: auto;
    }
}

/*--------------------------------------------------------
★レスポンシブ■スマホ表示切替ボタン
--------------------------------------------------------*/
@media screen and (max-width: 640px) {
    #switch{
        z-index: 6;
        position: relative;
    }
    a#btnSP{
        display: none;
    }
    a#btnPC{
        position: fixed;
        display: block;
        width: auto;
        height: auto;
        font-size: 12px;
        padding: 10px 20px;
        border-radius: 8px;
        box-sizing: border-box;
        border: 2px solid #41C5F9;
        background-color: #fff;
        text-align: center;
        color:#41C5F9;
        text-decoration: none;
        line-height: 1em;
        margin-top: 4px;
        left: 10px;
        bottom: 20px;
        z-index: 10;
    }
}
@media screen and (min-width: 641px) {
    #switch{
        display: none;
        height: 0;
    }
    a#btnSP{
        display: none;
    }
    a#btnPC{
        display: none;
    }
}

@media screen and (min-width:1021px) {
    #switch{
        display: block;
        height: auto;
    }
    a#btnPC{
        display: none;
    }
    a#btnSP{
        position: fixed;
        display: block!important;
        width: 300px;
        height: auto;
        z-index: 100;
        font-size: 24px;
        padding: 8px;
        text-align: center;
        border-radius: 22px;
        background-color: #00866c;
        box-shadow: 3px 3px 1px rgba(0,0,0,0.2);
        color: #fff;
        text-decoration: none;
        bottom: 40px;
        left: 15px;
        z-index: 10;
    }
}
@media screen and (min-width: 1023px) {
    #switch{
        display: none;
        height: 0;
    }
    a#btnSP{
        display: none;
    }
    a#btnPC{
        display: none;
    }
}
/*--------------------------------------------------------
★レスポンシブ■ヘッダ部分
--------------------------------------------------------*/
@media screen and (min-width: 641px) {
    .pc_none{
        display: none!important;
    }
}
@media screen and (max-width: 640px) {
    .sp_none{
        display: none!important;
    }
    /* スマホ用メニュー */
    .index #wrapper {
        overflow: hidden;
        min-width: 20pc;
        height: auto;
        height: auto;
        padding: 0;
    }
    .drawer .contents {
        transition: transform 0.6s;
    }
    .drawer #navTgl:checked~.contents {
        transform: translateX(-250px);
    }
    .index #navTgl {
        display: none;
        overflow: hidden;
    }
    .drawer label.pc_none {
        cursor: pointer;
        position: fixed;
        top: 0;
        right: 0;
        transition: 0.6s;
    }
    .drawer .open{
        z-index: 100;
        width: 50px;
        height: 50px;
        color: #fff;
        background-color:#85D6FF;
        font-size: 2em;
        line-height: 42px;
        text-align: center;
        position: relative;
    }
    .drawer .open span{
        position: absolute;
        display: block;
        font-size: 1rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0;
        margin: auto;
        left: 0;
        right: 0;
        bottom: 5px;
    }
    .drawer .close {
        pointer-events: none;
        z-index: 1;
        width: 100%;
        height: 100%;
        transition: background-color 0.6s;
    }
    .index #navTgl:checked+.open {
        transform: translateX(-250px);
    }
    .drawer #navTgl:checked~.close {
        pointer-events: auto;
        background-color: rgba(0,0,0,.3);
        z-index: 2;
    }
    .menu{
        position: fixed;
        overflow: auto;
        top: 0;
        right: 0;
        width: 250px;
        height: 100%;
        padding: 10px;
        background-color:#fff;
        transform: translateX(100%);
        transition: transform 0.6s;
        box-sizing: border-box;
        z-index: 10;
    }
    .index #navTgl:checked~.menu {
        transform: translateX(0);
    }
    .menu li a{
        position: relative;
        color: #141414;
    }
    .menu li a.arrow_d:after{
        content: "＞";
        position: absolute;
        display: block;
        font-size: 10px;
        height: 10px;
        top: 0;
        right: 1.5em;
        bottom: 0;
        margin: auto 0;
        transform: rotate(90deg);
    }
    .menu ul{
        padding: 0;
    }
    .menu li{
        position: relative;
        border-bottom: 1px solid rgba(255,255,255,.4);
        font-size: 0.9em;
        line-height: 1.4;
    }
    .menu li a{
        display: block;
        padding: 1em 2em .9em;
        text-decoration: none;
        transition: background-color 0.6s;
    }
    .menu .gsst_a{
        padding: 0!important;
    }
    .menu li a .en{
        position: relative;
        display: block;
        font-size: .5em;
    }
    .menu li a:hover span{
        color: #FFF;
    }
    .menu li .sub a,.menu li .sub a:hover{
        background:#e8f7ff;
        color: #3ebeff;
    }
    .menu li ul li:last-child{
        border-bottom: 0;
    }
    .menu .selected{
        background:#85d6ff;
    }
    #sp_tel{
        width: 50px;
        height: 50px;
        position:absolute;
        top: 0;
        text-align: center;
        z-index: 10;
        background: #fa8a9e url(../images/tel_w.svg) no-repeat top 5px center/16px auto;
        right: 50px;
    }
    #sp_mail{
        width: 50px;
        height: 50px;
        position:absolute;
        top: 0;
        text-align: center;
        z-index: 10;
        background: #98d83e url(../images/mail_w.svg) no-repeat top 14px center/20px auto;
        right: 100px;
    }
    #sp_tel span,#sp_mail span{
        position: absolute;
        line-height: 1;
        bottom: 5px;
        left: 0;
        right: 0;
        margin: auto;
        font-size: 1rem;
        color: #fff;
    }
    
    /* swiper */
    .slider1_1 .wrapper{
        height: 60vw;
    }
    .slider1_1 .text span{
        background-image: url(../images/slider1_1_text_sp.svg);
        max-width: 253px;
        width: 50%;
        height: 20vw;
        bottom: 0;
    }
    .slider1 .swiper-slide img{
        min-width: auto;
    }
    .slider1_1 .text::before{
        width: 10%;
        height: 10vw;
        top: 13vw;
        left: 40%;
    }
    .slider1_1 .text::after{
        width: 10%;
        height: 10vw;
        left: -4%;
        bottom: 11vw;
    }
    header .lead,header .operating_name,header .info_list{
        display: none;
    }
    header {
        padding-top: 50px;
    }
    header .logo_list {
        margin-top: 0;
    }
    #header_logo a span{
        width: 165px;
        height: 41px;
        vertical-align: top;
        margin-top: 4px;
        margin-bottom: 4px;
    }
    header .pc_menu{
        position: fixed;
        background: #fff;
        box-shadow: rgb(60 64 67 / 30%) 0px 1px 2px 0px, rgb(60 64 67 / 15%) 0px 1px 3px 1px;
    }
    header .pc_menu::after{
        content: none;
    }
    header #header_logo{
        position: static;
        padding:0;
        box-shadow: none;
        border-radius: 0;
    }
}


/*--------------------------------------------------------
★レスポンシブ■コンテンツ部分
--------------------------------------------------------*/
@media screen and (max-width: 640px) {
    html{
        max-width: 640px;
        width: 100%;

        -webkit-text-size-adjust: 100%;
    }
    body {
        max-width: 640px;
        min-width: 320px;
        width: 100%;
        letter-spacing: .06em;
        line-height: 1.7;
    }
    /* layout
    ------------------------------ */
    .wrapper{
        max-width: 640px;
        width: 90%!important;
        padding: 0 5%;
    }
    .contents {
        padding-top: 50px;
    }
    /* Common
    ------------------------------ */
    .fl_l,.fl_r{
        float: none;
    }
    .float::before,
    .float::after{
        content: " ";
        display: block;
        clear: both;
    }
    .table_b th,.table_b td {
        display: block;
        width: 100%;
    }
    .table_b tr {
        border-bottom: solid 10px #fff;
    }
    .table_b th{
        padding: 2% 4%;
        border-radius: 15px 15px 0 0;
        border-left: 0;
    }
    .table_b td{
        padding: 4% 4%;
        border-radius: 0 0 15px 15px;
    }
    .btn_sky, .btn_g{
        max-width: 300px;
        min-width: 280px;
        width: auto;
        padding: 22px 52px 22px 30px;
    }
    .sp_line{
        display: inline-block;
    }
    .read_text{
        line-height: 1.8;
    }
    .index section .br_dot::after,
    .index section .br_dot_g::after{
        margin-top: 5px;
    }
    .index section .check_list_b li,
    .index section .check_list_g li{
        font-size: 1.8rem;
        padding-left: 1.8em;
    }
    .index section .check_list_b li::before,
    .index section .check_list_g li::before{
        width: 25px;
        height: 31px;
    }
    .index section .dot_list li,
    .index section .dot_list_g li{
        padding-left: 1.4em;
    }
    .index section .dot_list li::before,
    .index section .dot_list_g li::before{
        font-size: 1em;
        top: .4em;
    }
    .index section .box_mark,
    .index section .box_mark_g{
        
    }
    /* index 
    ------------------------------ */
    #index #index_about,#index #index_service,
    #index #index_office,#index #index_news{
        padding: 15% 0;
    }
    #index #index_about .bg_w{
        padding-left: 6%;
        padding-right: 6%;
        padding-bottom: 6%;
        text-align: left;
    }
    #index #index_service .headline+p{
        text-align: left;
        margin-bottom: 10%;
    }
    #index .index_service01{
        margin-right: 0;
    }
    #index .index_service01, #index .index_service02{
        width: auto;
        border-radius: 20px;
    }
    #index .index_service01{
        margin-bottom: 10%;
    }
    #index #index_about .area::before, #index #index_about .area::after{
        position: initial;
        margin: 6% auto;
    }
    #index .index_service01 .box, #index .index_service02 .box {
        padding: 0 4% 10%;
    }
    #index .index_service01_01{
        margin-bottom: 0;
    }
    #index .index_service02_01{
        margin-bottom: 15%;
        min-height: auto;
    }
    #index #index_service h3 {
        font-size: 2.4rem;
    }
    #index .index_service01_02::before,
    #index .index_service01_02::after{
        position: initial;
    }
    #index .index_service01_02::before{
        margin: 2% auto 15%;
    }
    #index .index_service01_02::after{
        margin: 8% auto 0;
    }
    #index #index_service .btn_sky, #index #index_service .btn_g {
        margin-top: 15%;
    }
    #index #index_about h3 {
        font-size: 2.2rem;
    }
    #index #index_service h4{
        font-size: 2rem;
    }
    #index .index_service02 h4 {
        margin-top: 8%;
    }
    #index #index_office .bg_w{
        max-width: none;
        padding-left: 6%;
        padding-right: 6%;
        border-radius: 20px;
    }
    #index #index_office .ggmap {
        border-radius: 20px;
        margin-bottom: 10%;
    }
    #index #index_office .company {
        width: 100%;
        padding-left: 0;
    }
    #index #index_office .info{
        padding-left: 0;
        border-left:0;
        margin-top: 1em;
    }
    #index #index_news .box{
        max-width: none;
        padding-left: 0;
    }
    #index #index_news ul{
        margin-left: 0;
    }
    #index #index_news .headline{
        margin-bottom: 8%;
        display: block;
    }
    #index #index_news .headline span{
        margin: auto;
    }
    article #bottom_contact{
        padding: 15% 0;
    }
    article #bottom_contact h2{
        font-size: 2.4rem;
        line-height: 1.6;
        margin-bottom: 6%;
    }
    article #bottom_contact .tel_box {
        border-right: 0;
        padding-right: 0;
        margin-bottom: 10%;
    }
    article #bottom_contact .mail_box {
        padding-left: 0;
        display: block;
    }
    article #bottom_contact .mail_box .btn_w{
        width: auto;
        max-width: 472px;
        padding: 22px 70px 22px 30px;
        font-size: 2.4rem;
    }
    article #bottom_contact .mail_box .btn_w span::before{
        margin-right: 3%;
        width: 28px;
    }
    article #bottom_contact .tel_box .visit_time {
        margin-bottom: 2%;
    }
    article #bottom_contact .tel_box .frame_w{
        display: block;
        text-align: center;
        max-width: 80px;
    }
    /* sub common
    ------------------------------ */
    .sub .main_title h1{
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .index section.first {
        padding-bottom: 20%;
    }
    .index section:not(.first){
        padding-top: 15%;
        padding-bottom: 15%;
    }
    .sub .radius{
        border-radius: 20px;
    }
    .sub h2.side, .sub h2.side_g{
        line-height: 1.4;
    }
    .sub .breadcrumb{
        margin-bottom: 15%;
    }
    .sub .flex_l, .sub .flex_r{
        display: block;
    }
    .index section .mark::before,
    .index section .mark_g::before{
        margin-bottom: 4%;
    }
    .index section .box_mark::before, .index section .box_mark_g::before, .index section .mark::before, .index section .mark_g::before{
        width: 50px;
        height: 50px;
    }
    /* visit_service
    ------------------------------ */
    #visit_service01 .flex_l {
        width: auto;
        margin-right: 0;
        margin-bottom: 6%;
    }
    #visit_service01 .flex_r{
        text-align: center;
    }
    #visit_service01 .br_sky{
        border: 6px solid #85D6FF;
        border-radius: 20px;
        padding: 6% 4%;
        margin-top: 15%;
    }
    #visit_service01 .point{
        position: initial;
        font-size: 2rem;
        width: auto;
        padding: 0;
        margin-bottom: 4%;
        background: none;
        color: #85D6FF;
    }
    #visit_service01 .flex_l .read_text:first-of-type{
        margin-bottom: 1em;
    }
    #visit_service01 li {
        display: block;
        width: auto;
    }
    #visit_service01 li:nth-of-type(odd) {
        margin-right: 0;
    }
    #visit_service01 .ribbon {
        margin-bottom: 10%;
    }
    #visit_service02 {
        padding-top: 15%;
        padding-bottom: 15%;
    }
    #visit_service02 .list>li {
        border-radius: 20px;
    }
    #visit_service02 .list>li:not(.long) {
        width:100%;
        margin-bottom: 6%;
        margin-right: 0;
        min-height: auto;
        padding: 6% 4%;
    }
    #visit_service02 .list>.long{
        padding: 6% 4%;
    }
    #visit_service02 .list>.long .pict {
        position: initial;
        text-align: center;
        margin-bottom: 4%;
    }
    #visit_service02 .list>.long p {
        width: auto;
    }
    #visit_service03 h2+.flex>.flex_l{
        width: auto;
        margin-right: 0;
        margin-bottom: 15%;
    }
    #visit_service03 .bg_g {
        width: auto;
        padding: 6% 4%;
    }
    #visit_service03 .flow>div:not(.box1){
        padding-left: 4%;
        padding-right: 4%;
    }
    #visit_service03 .price{
        margin-top: 10%;
    }
    #visit_service03 .flow .flex {
        padding-top: 0;
        padding-bottom: 0;
    }
    #visit_service03 .price .flex{
        padding-top: 0;
    }
    #visit_service03 .flow .flex_l,
    #visit_service03 .flow .flex_r,
    #visit_service03 .price .flex_l,
    #visit_service03 .price .flex_r{
        padding: 0;
        width:auto;
        padding: 6% 4%;
        display: block;
    }
    #visit_service03 .flow>.box1>.flex>div{
        min-height: auto;
    }
    #visit_service03 .price .flex_r::before,
    #visit_service03 .flow .flex_r::before{
        width: 90%;
        height: 2px;
        right: 0;
        bottom: auto;
    }
    #visit_service03 .flow .flex h3 {
        margin-bottom: 0;
    }
    #visit_service03 .flow>.box2>div::after{
        content: none;
    }
    #visit_service03 .flow .flex h5 {
        margin-bottom: 6%;
    }
    #visit_service03 .flow>.box1::after{
       content: '';
    }
    #visit_service03 .price{
        margin-bottom: 10%;
    }
    #visit_service03 .flow .num{
        width: 40px;
        padding: 8px 0;
    }
    #visit_service04 {
        padding-bottom: 20%;
    }
    #visit_service04 .bg_w{
        border-radius: 20px;
        padding-bottom: 8%;
        padding-left: 4%;
        padding-right: 4%;
    }
    #visit_service04 h2{
        font-size: 2.6rem;
    }
    #visit_service04 .bg_w .pict p{
        position: relative;
        transform: none;
        top: auto;
        left: auto;
        font-size: 2rem;
    }
    #visit_service04 .bg_w .pict img{
        display: none;
    }
    #visit_service04 .bg_w>p {
        margin-top: 6%;
        text-align: left;
    }
    #visit_service03 .flow>.box1>.flex>div::after{
        content: none;
    }
    /* home_care
    ------------------------------ */
    #home_care01 .flex_l {
        width: auto;
        margin-right: 0;
        margin-bottom: 10%;
    }
    #home_care01 .flex_r{
        text-align: center;
    }
    #home_care01 .br_g{
        border: 6px solid #ade55e;
        border-radius: 20px;
        padding: 6% 4%;
        margin-top: 15%;
    }
    #home_care01 li {
        width: auto;
        display: block;
    }
    #home_care01 li:nth-of-type(odd) {
        margin-right: 0;
    }
    #home_care02{
        padding-top: 15%;
        padding-bottom: 15%;
    }
    #home_care02 .list>li{
        width: auto;
        margin-bottom: 6%;
        margin-right: 0;
        min-height: auto;
        padding: 6% 4%;
    }
    #home_care02 .list>li:first-of-type .emphasis_g,
    #home_care02 .list>li:nth-of-type(3) .emphasis_g{
        margin-top: 0;
        margin-bottom: 6%;
    }
    #home_care03 .bg_g{
        width: auto;
        padding: 6% 4%;
    }
    #home_care03 h2+.flex>.flex_l{
        width: auto;
        margin-right: 0;
    }
    #home_care03 h2+.flex>.flex_l p, #home_care03 .bg_g .ribbon {
        margin-bottom: 15%;
    }
    #home_care03 .price{
        margin-top: 10%;
    }
    #home_care03 .price>div {
        margin-bottom: 10%;
    }
    #home_care03 .price div{
        padding: 6% 4%;
    }
    #home_care03 .flow .flex {
        padding-bottom: 0;
    }
    #home_care03 .flow>.box1>div {
        min-height: auto;
        width: auto;
        padding: 6% 4%;
    }
    #home_care03 .flow .flex h3 {
        margin-bottom: 0;
    }
    #home_care03 .flow .flex_r::before{
        width: 90%;
        height: 2px;
        right: 0;
        bottom: auto;
    }
    #home_care03 .flow>.box1>div::after{
        content: none;
    }
    #home_care03 .flow>.box1::after{
        content: '';
    }
    #home_care03 .flow>div:not(.flex){
        padding-left: 4%;
        padding-right: 4%;
    }
    #home_care03 .flow>div:not(.flex) p {
        margin-top: 4%;
    }
    #home_care03 .flow .num{
        width: 40px;
        padding: 8px 0;
    }
    #home_care04 .bg_w{
        border-radius: 20px;
        padding-bottom: 8%;
        padding-left: 4%;
        padding-right: 4%;
    }
    #home_care04 h2 {
        font-size: 2.6rem;
    }
    #home_care04 .bg_w .pict img{
        display: none;
    }
    #home_care04 .bg_w .pict p{
        position: relative;
        transform: none;
        top: auto;
        left: auto;
        font-size: 2rem;
    }
    #home_care04 .bg_w .pict::after{
        content: none;
    }
    #home_care04 .bg_w>p{
        margin-top: 6%;
        text-align: left;
    }
    #home_care04{
        padding-bottom: 20%;
    }
    /* about
    ------------------------------ */
    #about01 {
        padding-bottom: 5%;
    }
    #about01 .flex_l {
        width: auto;
        margin-right: 0;
        margin-bottom: 10%;
    }
    #about01 .flex_r{
        text-align: center;
    }
    #about01 .btn_list {
        margin-top: 10%;
    }
    #about01 .btn_sky{
        display: block;
    }
    #about01 .btn_sky:first-of-type {
        margin-right: auto;
        margin-bottom: 4%;
    }
    #about02 .float {
        margin-top: 10%;
    }
    #about02 .fl_l, #about02 .fl_r {
        width: auto;
        border-radius: 20px;
    }
    #about02 .fl_l {
        padding: 6% 4%;
    }
    #about02 .fl_r{
        margin-bottom: 6%;
    }
    #about03{
        padding-top: 20%;
    }
    #about03 .bg_w{
        border-radius: 20px;
        padding-bottom: 8%;
        padding-left: 4%;
        padding-right: 4%;
    }
    #about03 .bg_w .pict img{
        display: none;
    }
    #about03 .bg_w .pict::after{
        content: none;
    }
    #about03 .bg_w .pict p{
        position: relative;
        transform: none;
        top: auto;
        left: auto;
        font-size: 2rem;
    }
    #about03 .flex_l{
        margin: 0 auto 4%;
        display: block;
    }
    #about03 .flex {
        padding: 6% 0 4%;
    }
    #about03 .btn_sky {
        margin-top: 10%;
    }
    /* 
    ------------------------------ */
    
    /* contact
    ------------------------------ */
    #contact01 .flex_l, #thanks01 .flex_l {
        margin-right: 0;
    }
    #contact01 .flex_l, #contact01 .flex_r,
    #thanks01 .flex_l, #thanks01 .flex_r{
        width: 100%;
        padding: 6%;
        border-radius: 20px;
    }
    #contact01 .tel, #contact01 .fax,
    #thanks01 .tel, #thanks01 .fax{
        height: 26px;
    }
    #contact01 .flex_l,#thanks01 .flex_l{
        margin-bottom: 4%;
    }
    #contact01 .flex_l .frame_b, #thanks01 .flex_l .frame_b{
        display: block;
        text-align: center;
        max-width: 80px;
    }
    #contact02 .dot_list li{
        margin-right: 2em;
    }
    #contact01 .flex_r p, #thanks01 .flex_r p {
        text-align: left;
    }
    #contact03{
        padding-bottom: 15%;
    }
    #contact03 #mailfield>h3{
        margin-top: 15%;
    }
    #contact03 .type li{
        display: block;
        margin-right: 0;
    }
    #mailformpro .must{
        top: 28%;
    }
    #mailformpro .address input:first-of-type {
        width: 200px!important;
    }
    #privacy_policy{
        padding:6%;
        margin-bottom: 15%;
    }
    #privacy_policy h4{
        font-size: 2rem;
        line-height: 1.6;
    }
    /* thanks
    ------------------------------ */
    #thanks01 .btn_sky {
        margin-top: 6%;
    }
    /* Footer
    ------------------------------ */
    footer{
        padding: 10% 0 180px;
    }
    footer .fl_r{
        display: none;
    }
    .wrapper_l{
        max-width: 640px;
        width: auto;
    }
    /* Page Top
    ------------------------------ */
    .pagetop{
        bottom:20px;
        right: 20px;
    }
}

@media screen and (max-width: 480px) {
    .sub h2.side::before, .sub h2.side_g::before{
        display: block;
        width: 50px;
        height: 50px;
        margin:0 auto 5%;
    }
}
@media screen and (max-width: 350px) {
    article #bottom_contact .mail_box .btn_w span::before{
        content: none;
    }
    #home_care01 .ribbon{
        padding: 2%;
    }
    .index section .ribbon::before, .index section .ribbon::after{
        content: none;
    }
}
@media screen and (max-width: 330px) {
    #header_logo a span {
        width: 150px;
    }
}